/** * S-167 → S-178 —— **一个部署级旋钮的值是谁定的**,四词闭集 + 一句运维指路。 * * ## 为什么是一个共享件而不是每键一份 * * S-167 给 `READ_FACE` 造了这套东西(值 + 来源 + 指路句),理由写在 `read-face-posture.ts` 的顶注里: * 「缺席」这一态里塞着两件不同的事(单机 turnkey 没表态 vs 多租户就是要引擎默认),而把它们分开之后, * **env 恒赢的判据**与**运维面「为什么这台机器是这个值」**才有真答案。S-178 把同一条律推到另外三个键 * (`STREAM_ASK_WINDOW_MS` / `DURABLE_APPROVAL` / `SESSION_AUTO_TITLE`)时,唯一诚实的做法是**抽这一份** * ——四词表抄第二遍的那天,两份表会在加词时分家,而「这个值是谁定的」在运维面上是个是非题,不能有两个答案。 * * ## 优先序(与 `config.ts` 的 `postureOn` 同形) * `env 显式` > `center 发布` > `posture 派生` > `引擎/服务端默认`。 * * ## 定界 * 本模块只说**来源**。值本身、以及**两条键专属臂**的句子——「这台机器凭什么派生出这个值」 * ({@link PostureKnobFacts.postureMeaning})与「组织发布的值在这台机器上怎么生效」 * ({@link PostureKnobFacts.centerMeaning})——由每个键自己给。那两句话是键专属的事实,共享它们只会 * 得到一句谁都不认的空话,或者更坏:一句**对某些键是假的**话。 * * 🔴 `centerMeaning` 是 G-7(test [ref])的修复面,成因是一次真的过期断言:这一臂原本硬编码 * 「applied from the config-center (**restart-to-apply**)」,而 S-174(core 7.10.0 [ref])之后 * `readFace.face` 是**热换席**(`Runner.swapDeps({readFace})`,下一拍 refresh 当场换进全部 Runner, * `read-face` 重启片也不再为它签理由)——运维照那句话去滚动重启一片 fleet,重启的是一个已经生效的变更。 * 生效时机是**键**的事实,不是四词表的属性,所以它跟 `postureMeaning` 一样归键。 */ /** 旋钮取值来源的闭集词表(顺序 = 优先序)。 */ export declare const POSTURE_SOURCE_WORDS: readonly ["env", "center", "posture", "engine-default"]; /** 一个旋钮的取值来源(闭集四词)。加词 ⇒ {@link postureSourceNote} 的穷举 switch 编译红。 */ export type PostureSource = (typeof POSTURE_SOURCE_WORDS)[number]; /** 一个旋钮报出「我是谁定的」所需要的三件事。 */ export interface PostureKnobFacts { /** 这台机器上占住这个键的 env 变量名(指路句要逐字点它,运维才知道去改哪个)。 */ readonly knob: string; readonly source: PostureSource; /** * `center` 那一臂**专属**的一句话:组织发布的这个值在这台机器上**怎么生效**(热换席?等重启? * 还是这个键根本没有 center 腿?),以及怎么把这个键取回来。只在 `source === "center"` 时被读到。 * * 🔴 为什么归键而不是共享(G-7 的成因):生效时机是键的事实。同一句「restart-to-apply」对 * `readFace.face` 是假的(S-174 热换席),对三个 S-178 旋钮则连触发条件都没有(`config.ts` 的 * `postureSourceOfKnob` / `postureSourceOfNumEnv` 只产 env/posture/engine-default,center 写不到 * 它们)—— 一句共享的硬编码必然对其中一类说谎。 */ readonly centerMeaning: string; /** * `posture` 那一臂**专属**的一句话:这台机器为什么派生出了这个值,以及怎么把它钉回去。 * 只在 `source === "posture"` 时被读到 —— 别的臂的句子是通用的(见 {@link postureSourceNote})。 */ readonly postureMeaning: string; } /** 运维指路句 —— **穷举 switch,无缺省臂**:四词闭集加一个成员这里就编译红。 * 两条**通用**臂(`env` / `engine-default`)的句子在这里写死并点名旋钮;两条**键专属**臂 * (`center` / `posture`)原样取键给的那句话(理由见 {@link PostureKnobFacts} 的两个字段注)。 */ export declare function postureSourceNote(facts: PostureKnobFacts): string; /** * 这个值是**运维显式表态**的吗? * * 🔴 S-178 施工时真踩(本批全量抓出):`hasOperatorGateIntent`(`src/approval.ts`)判「运维表达过门意图 * 没有」时读的是 `durableApproval` 这个**值** —— 那在本键进 posture 家族之前是对的(它只有显式设过才为 * 真),之后当场失真:单机 turnkey 上 posture 派生的 `true` 会被读成「运维要门」,于是 run-local 那条 * **结构上没有 durable 门**的腿在每次 boot 打一条补偿 warn,而它其实正处在「零门意图的既定姿势」里。 * 这与 S-167 头注①记的是**同一形**病(用一个会被 posture 铸出来的量当「有人表态过」的代理)。 * * ⇒ 判据落到**来源**上,穷举 switch(四词闭集加员即编译红):`env`(这台机器的运维写下的)与 `center` * (组织发布的)是表态;`posture`(姿态派生)与 `engine-default`(内建缺省)都**不是**「有人要求过」。 */ export declare function isExplicitPosture(source: PostureSource): boolean; /** operator 诊断面的一行读数:值 + 来源 + 指路句。三个 S-178 旋钮与 S-167 的 readFace 同形。 */ export interface PostureKnobReading { value: V; source: PostureSource; note: string; } /** 一行读数的铸点(纯数据 ⇒ `build*`)。 */ export declare function buildPostureKnobReading(value: V, facts: PostureKnobFacts): PostureKnobReading; //# sourceMappingURL=posture-source.d.ts.map