instar 1.3.1219 → 1.3.1221

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +25 -2
  3. package/dist/commands/server.js.map +1 -1
  4. package/dist/core/AspAuthorshipJoin.d.ts +1 -0
  5. package/dist/core/AspAuthorshipJoin.d.ts.map +1 -1
  6. package/dist/core/AspAuthorshipJoin.js +9 -1
  7. package/dist/core/AspAuthorshipJoin.js.map +1 -1
  8. package/dist/core/AspInboundClassifier.d.ts +22 -0
  9. package/dist/core/AspInboundClassifier.d.ts.map +1 -1
  10. package/dist/core/AspInboundClassifier.js +33 -0
  11. package/dist/core/AspInboundClassifier.js.map +1 -1
  12. package/dist/core/ForwardedTopicContext.d.ts +3 -0
  13. package/dist/core/ForwardedTopicContext.d.ts.map +1 -1
  14. package/dist/core/ForwardedTopicContext.js +2 -1
  15. package/dist/core/ForwardedTopicContext.js.map +1 -1
  16. package/dist/core/MessagingToneGate.d.ts.map +1 -1
  17. package/dist/core/MessagingToneGate.js +5 -1
  18. package/dist/core/MessagingToneGate.js.map +1 -1
  19. package/dist/core/PostUpdateMigrator.d.ts +9 -1
  20. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  21. package/dist/core/PostUpdateMigrator.js +37 -3
  22. package/dist/core/PostUpdateMigrator.js.map +1 -1
  23. package/dist/core/SessionManager.d.ts +7 -0
  24. package/dist/core/SessionManager.d.ts.map +1 -1
  25. package/dist/core/SessionManager.js +2 -2
  26. package/dist/core/SessionManager.js.map +1 -1
  27. package/dist/core/StageBActivationGate.d.ts +31 -1
  28. package/dist/core/StageBActivationGate.d.ts.map +1 -1
  29. package/dist/core/StageBActivationGate.js +69 -10
  30. package/dist/core/StageBActivationGate.js.map +1 -1
  31. package/dist/core/aspClassifierRef.d.ts +14 -0
  32. package/dist/core/aspClassifierRef.d.ts.map +1 -0
  33. package/dist/core/aspClassifierRef.js +8 -0
  34. package/dist/core/aspClassifierRef.js.map +1 -0
  35. package/dist/data/stageBCertifiedSet.d.ts +271 -0
  36. package/dist/data/stageBCertifiedSet.d.ts.map +1 -0
  37. package/dist/data/stageBCertifiedSet.js +366 -0
  38. package/dist/data/stageBCertifiedSet.js.map +1 -0
  39. package/dist/data/standards-guard-index.json +1 -1
  40. package/dist/data/standards-guard-index.meta.json +2 -2
  41. package/dist/data/standards-registry.meta.json +1 -1
  42. package/dist/messaging/TelegramAdapter.d.ts +2 -0
  43. package/dist/messaging/TelegramAdapter.d.ts.map +1 -1
  44. package/dist/messaging/TelegramAdapter.js.map +1 -1
  45. package/dist/messaging/shared/signedInbound.d.ts +59 -0
  46. package/dist/messaging/shared/signedInbound.d.ts.map +1 -0
  47. package/dist/messaging/shared/signedInbound.js +67 -0
  48. package/dist/messaging/shared/signedInbound.js.map +1 -0
  49. package/dist/server/AgentServer.d.ts.map +1 -1
  50. package/dist/server/AgentServer.js +2 -0
  51. package/dist/server/AgentServer.js.map +1 -1
  52. package/dist/server/routes.d.ts +2 -0
  53. package/dist/server/routes.d.ts.map +1 -1
  54. package/dist/server/routes.js +21 -8
  55. package/dist/server/routes.js.map +1 -1
  56. package/dist/types/pipeline.d.ts +1 -1
  57. package/dist/types/pipeline.d.ts.map +1 -1
  58. package/dist/types/pipeline.js +13 -10
  59. package/dist/types/pipeline.js.map +1 -1
  60. package/package.json +1 -1
  61. package/scripts/stage-b-certified-fingerprint.mjs +177 -0
  62. package/scripts/verify-codex-stage-b-release-evidence.mjs +9 -0
  63. package/src/data/builtin-manifest.json +65 -65
  64. package/src/data/stageBCertifiedSet.ts +367 -0
  65. package/src/data/standards-guard-index.json +1 -1
  66. package/src/data/standards-guard-index.meta.json +2 -2
  67. package/src/data/standards-registry.meta.json +1 -1
  68. package/upgrades/1.3.1220.md +87 -0
  69. package/upgrades/1.3.1221.md +24 -0
  70. package/upgrades/side-effects/asp-signed-inbound-label.md +117 -0
  71. package/upgrades/side-effects/file-path-advisory-default.md +82 -0
  72. package/upgrades/side-effects/stage-b-evidence-code-binding.md +93 -0
@@ -83,7 +83,37 @@ export declare function resolveStageBProductionActivation(input: StageBProductio
83
83
  export declare function stageBConfigSha256(config: StageBConfigSurface | undefined): string;
84
84
  export declare function parseShippedStageBEvidence(value: unknown): StageBShippedReleaseEvidence | null;
85
85
  export declare function bundledStageBReleaseEvidence(): StageBShippedReleaseEvidence | null;
86
- export declare function verifyBundledStageBReleaseEvidence(packageVersion: string): StageBInactiveReason | null;
86
+ /**
87
+ * Canonical digest of a signed artifact: the exact field-ordered bytes the
88
+ * Echo signature covers, plus the signature. Stable across property order and
89
+ * construction path, unlike JSON.stringify of the object.
90
+ */
91
+ export declare function canonicalShippedArtifactDigest(artifact: StageBRcArtifact): string;
92
+ /**
93
+ * Package-shipped evidence verification (spec: stage-b-evidence-code-binding).
94
+ *
95
+ * Binds the evidence to the CODE the canary certified, not to a version
96
+ * number: `packageVersion`, `gitCommit`, and `echoMachineId` are read from the
97
+ * artifact itself as historical provenance of where the canary ran (the
98
+ * machine-id comparison was artifact-sourced in the version-bound design too),
99
+ * while `configSha256` REMAINS a real comparison against this build's expected
100
+ * behavioral config, and the NEW binding requires the artifact's canonical
101
+ * digest to equal the reviewed certified-set manifest's `artifactDigest`. The
102
+ * code side of that binding — "did the certified sources change since this
103
+ * evidence was approved?" — is enforced where sources exist: the publish gate
104
+ * runs scripts/stage-b-certified-fingerprint.mjs --check, and refuses to ship
105
+ * a package whose certified sources drifted from the manifest. An installed
106
+ * package therefore carries a manifest and evidence the publish gate already
107
+ * proved consistent; runtime re-verifies shape, signature, thresholds, config
108
+ * binding, and the digest linkage.
109
+ */
110
+ export declare function verifyShippedStageBEvidence(shipped: StageBShippedReleaseEvidence | null): StageBInactiveReason | null;
111
+ /**
112
+ * @param _packageVersion Unused since the code-binding spec: the version was a
113
+ * one-shot proxy for "the certified code changed" and froze publishing one
114
+ * release after it shipped. Kept for call-site compatibility.
115
+ */
116
+ export declare function verifyBundledStageBReleaseEvidence(_packageVersion: string): StageBInactiveReason | null;
87
117
  /**
88
118
  * Idempotent migration decision. Explicit false is never changed. A valid RC
89
119
  * moves absent/already-true installs to pending activation for the next restart.
@@ -1 +1 @@
1
- {"version":3,"file":"StageBActivationGate.d.ts","sourceRoot":"","sources":["../../src/core/StageBActivationGate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StageBActivationGate.d.ts","sourceRoot":"","sources":["../../src/core/StageBActivationGate.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ import crypto from 'node:crypto';
8
8
  import fs from 'node:fs';
9
9
  import path from 'node:path';
10
10
  import { SHIPPED_CODEX_STAGE_B_RELEASE_EVIDENCE } from '../data/codexStageBReleaseEvidence.js';
11
+ import { STAGE_B_CERTIFIED_SET } from '../data/stageBCertifiedSet.js';
11
12
  export const STAGE_B_REQUIRED_CASES = [
12
13
  'identical', 'multiline', 'active-turn', 'resize', 'outage', 'transfer',
13
14
  ];
@@ -106,19 +107,35 @@ export function resolveStageBProductionActivation(input) {
106
107
  // fleet machine verifies it against the Echo public key pinned in the
107
108
  // reviewed package; using the target machine's own key/id here would make
108
109
  // fleet activation impossible while looking correctly fail-closed.
109
- const shipped = input.shippedEvidence === undefined
110
+ const usingBundled = input.shippedEvidence === undefined;
111
+ const shipped = usingBundled
110
112
  ? parseShippedStageBEvidence(SHIPPED_CODEX_STAGE_B_RELEASE_EVIDENCE)
111
113
  : input.shippedEvidence;
112
114
  if (!shipped)
113
115
  return localStatus;
114
- return new StageBActivationGate({
115
- packageVersion: input.packageVersion,
116
- gitCommit: input.gitCommit,
116
+ // Code-binding spec: package evidence is verified against the artifact's own
117
+ // run provenance + the certified-set manifest digest, never the CURRENT
118
+ // version — the version binding rejected the shipped artifact on every
119
+ // release after the one it named, leaving Stage B silently dark fleet-wide.
120
+ const shippedGate = new StageBActivationGate({
121
+ packageVersion: shipped.artifact.packageVersion,
122
+ gitCommit: shipped.artifact.gitCommit,
117
123
  configSha256,
118
124
  echoMachineId: shipped.artifact.echoMachineId,
119
125
  echoPublicKeyPem: shipped.echoPublicKeyPem,
120
126
  developmentAgent: input.developmentAgent,
121
- }).evaluate(input.config, shipped.artifact);
127
+ });
128
+ const status = shippedGate.evaluate(input.config, shipped.artifact);
129
+ // The certified-set manifest vouches for the PACKAGE-BUNDLED artifact; an
130
+ // explicitly injected override (the documented test/release-tool seam) keeps
131
+ // every shape/signature/threshold/config check but cannot match a manifest
132
+ // bound to different evidence, so the digest linkage applies only when the
133
+ // bundled constant is in use — which is every production caller.
134
+ if (usingBundled && status.active
135
+ && canonicalShippedArtifactDigest(shipped.artifact) !== STAGE_B_CERTIFIED_SET.artifactDigest) {
136
+ return { ...status, active: false, reason: 'artifact-binding-mismatch' };
137
+ }
138
+ return status;
122
139
  }
123
140
  /** The release candidate and fleet activation share this behavioral config
124
141
  * digest. Rollout-only switches are deliberately excluded: candidateCanary is
@@ -141,17 +158,59 @@ export function parseShippedStageBEvidence(value) {
141
158
  export function bundledStageBReleaseEvidence() {
142
159
  return parseShippedStageBEvidence(SHIPPED_CODEX_STAGE_B_RELEASE_EVIDENCE);
143
160
  }
144
- export function verifyBundledStageBReleaseEvidence(packageVersion) {
145
- const shipped = bundledStageBReleaseEvidence();
161
+ /**
162
+ * Canonical digest of a signed artifact: the exact field-ordered bytes the
163
+ * Echo signature covers, plus the signature. Stable across property order and
164
+ * construction path, unlike JSON.stringify of the object.
165
+ */
166
+ export function canonicalShippedArtifactDigest(artifact) {
167
+ const { signature, ...unsigned } = artifact;
168
+ return crypto.createHash('sha256')
169
+ .update(canonicalStageBRcArtifact(unsigned) + '\n' + signature)
170
+ .digest('hex');
171
+ }
172
+ /**
173
+ * Package-shipped evidence verification (spec: stage-b-evidence-code-binding).
174
+ *
175
+ * Binds the evidence to the CODE the canary certified, not to a version
176
+ * number: `packageVersion`, `gitCommit`, and `echoMachineId` are read from the
177
+ * artifact itself as historical provenance of where the canary ran (the
178
+ * machine-id comparison was artifact-sourced in the version-bound design too),
179
+ * while `configSha256` REMAINS a real comparison against this build's expected
180
+ * behavioral config, and the NEW binding requires the artifact's canonical
181
+ * digest to equal the reviewed certified-set manifest's `artifactDigest`. The
182
+ * code side of that binding — "did the certified sources change since this
183
+ * evidence was approved?" — is enforced where sources exist: the publish gate
184
+ * runs scripts/stage-b-certified-fingerprint.mjs --check, and refuses to ship
185
+ * a package whose certified sources drifted from the manifest. An installed
186
+ * package therefore carries a manifest and evidence the publish gate already
187
+ * proved consistent; runtime re-verifies shape, signature, thresholds, config
188
+ * binding, and the digest linkage.
189
+ */
190
+ export function verifyShippedStageBEvidence(shipped) {
146
191
  if (!shipped)
147
192
  return 'artifact-missing';
148
- return new StageBActivationGate({
149
- packageVersion,
150
- gitCommit: `package:${packageVersion}`,
193
+ const reason = new StageBActivationGate({
194
+ packageVersion: shipped.artifact.packageVersion,
195
+ gitCommit: shipped.artifact.gitCommit,
151
196
  configSha256: stageBConfigSha256({ ledgerObserverEnabled: true }),
152
197
  echoMachineId: shipped.artifact.echoMachineId,
153
198
  echoPublicKeyPem: shipped.echoPublicKeyPem,
154
199
  }).verifyArtifact(shipped.artifact);
200
+ if (reason)
201
+ return reason;
202
+ if (canonicalShippedArtifactDigest(shipped.artifact) !== STAGE_B_CERTIFIED_SET.artifactDigest) {
203
+ return 'artifact-binding-mismatch';
204
+ }
205
+ return null;
206
+ }
207
+ /**
208
+ * @param _packageVersion Unused since the code-binding spec: the version was a
209
+ * one-shot proxy for "the certified code changed" and froze publishing one
210
+ * release after it shipped. Kept for call-site compatibility.
211
+ */
212
+ export function verifyBundledStageBReleaseEvidence(_packageVersion) {
213
+ return verifyShippedStageBEvidence(bundledStageBReleaseEvidence());
155
214
  }
156
215
  /**
157
216
  * Idempotent migration decision. Explicit false is never changed. A valid RC
@@ -1 +1 @@
1
- {"version":3,"file":"StageBActivationGate.js","sourceRoot":"","sources":["../../src/core/StageBActivationGate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StageBActivationGate.js","sourceRoot":"","sources":["../../src/core/StageBActivationGate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Process-wide handle to the inbound ASP classifier.
3
+ *
4
+ * The classifier is built in the messaging wiring (commands/server.ts) AFTER
5
+ * the HTTP route context exists (server/AgentServer.ts), and both the polling
6
+ * ingress and the lifeline-forward ingress must read the SAME classifier's
7
+ * verdicts (single-use nonce: a message is verified once, at log time, and
8
+ * every later reader asks this one instance). A module-level reference is the
9
+ * smallest seam that lets both read it without a construction-order dance.
10
+ */
11
+ import type { AspInboundClassifier } from './AspInboundClassifier.js';
12
+ export declare function setAspClassifierRef(classifier: AspInboundClassifier | null): void;
13
+ export declare function getAspClassifierRef(): AspInboundClassifier | null;
14
+ //# sourceMappingURL=aspClassifierRef.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aspClassifierRef.d.ts","sourceRoot":"","sources":["../../src/core/aspClassifierRef.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAItE,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,oBAAoB,GAAG,IAAI,GAAG,IAAI,CAEjF;AAED,wBAAgB,mBAAmB,IAAI,oBAAoB,GAAG,IAAI,CAEjE"}
@@ -0,0 +1,8 @@
1
+ let ref = null;
2
+ export function setAspClassifierRef(classifier) {
3
+ ref = classifier;
4
+ }
5
+ export function getAspClassifierRef() {
6
+ return ref;
7
+ }
8
+ //# sourceMappingURL=aspClassifierRef.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aspClassifierRef.js","sourceRoot":"","sources":["../../src/core/aspClassifierRef.ts"],"names":[],"mappings":"AAYA,IAAI,GAAG,GAAgC,IAAI,CAAC;AAE5C,MAAM,UAAU,mBAAmB,CAAC,UAAuC;IACzE,GAAG,GAAG,UAAU,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,271 @@
1
+ /**
2
+ * Stage-B certified-set manifest (spec: stage-b-evidence-code-binding).
3
+ * Maintained ONLY by scripts/stage-b-certified-fingerprint.mjs --write, which
4
+ * refuses to rebind old evidence onto changed code. Every closure member is
5
+ * either certified (fingerprinted) or excluded with a written reason; the
6
+ * --check partition is fail-closed for anything new.
7
+ */
8
+ export declare const STAGE_B_CERTIFIED_SET: {
9
+ readonly roots: readonly ["src/core/InboundDeliveryStore.ts", "src/core/CodexDeliveryObserver.ts", "src/core/CodexComposerAdapter.ts", "src/core/CodexLifecycleProductionComposition.ts", "src/core/StageBStartupReadiness.ts"];
10
+ readonly certified: readonly ["src/core/CodexComposerAdapter.ts", "src/core/CodexDeliveryObserver.ts", "src/core/CodexLifecycleProductionComposition.ts", "src/core/InboundDeliveryStore.ts", "src/core/SessionRecoveryChannel.ts", "src/core/SessionRecoveryConsumer.ts", "src/core/StageBStartupReadiness.ts"];
11
+ readonly excluded: readonly [{
12
+ readonly file: "src/core/AccountFollowMeGrants.ts";
13
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
14
+ }, {
15
+ readonly file: "src/core/AccountFollowMeSpendSlice.ts";
16
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
17
+ }, {
18
+ readonly file: "src/core/AnthropicSubscriptionRouter.ts";
19
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
20
+ }, {
21
+ readonly file: "src/core/CircuitBreakingIntelligenceProvider.ts";
22
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
23
+ }, {
24
+ readonly file: "src/core/ClaudeCliIntelligenceProvider.ts";
25
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
26
+ }, {
27
+ readonly file: "src/core/CodexCliIntelligenceProvider.ts";
28
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
29
+ }, {
30
+ readonly file: "src/core/Config.ts";
31
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
32
+ }, {
33
+ readonly file: "src/core/CredentialAuditEmit.ts";
34
+ readonly reason: "cross-cutting utility shared far beyond Codex delivery, certified by its own suite; binding it would re-freeze releases on unrelated churn";
35
+ }, {
36
+ readonly file: "src/core/CredentialWriteFunnel.ts";
37
+ readonly reason: "cross-cutting utility shared far beyond Codex delivery, certified by its own suite; binding it would re-freeze releases on unrelated churn";
38
+ }, {
39
+ readonly file: "src/core/GateSignalDetectors.ts";
40
+ readonly reason: "cross-cutting utility shared far beyond Codex delivery, certified by its own suite; binding it would re-freeze releases on unrelated churn";
41
+ }, {
42
+ readonly file: "src/core/GeminiCliIntelligenceProvider.ts";
43
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
44
+ }, {
45
+ readonly file: "src/core/InFlightSyncOpMarker.ts";
46
+ readonly reason: "cross-cutting utility shared far beyond Codex delivery, certified by its own suite; binding it would re-freeze releases on unrelated churn";
47
+ }, {
48
+ readonly file: "src/core/InstrumentAssessment.ts";
49
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
50
+ }, {
51
+ readonly file: "src/core/InteractivePoolIntelligenceProvider.ts";
52
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
53
+ }, {
54
+ readonly file: "src/core/JargonDetector.ts";
55
+ readonly reason: "cross-cutting utility shared far beyond Codex delivery, certified by its own suite; binding it would re-freeze releases on unrelated churn";
56
+ }, {
57
+ readonly file: "src/core/JudgmentProvenanceLog.ts";
58
+ readonly reason: "cross-cutting utility shared far beyond Codex delivery, certified by its own suite; binding it would re-freeze releases on unrelated churn";
59
+ }, {
60
+ readonly file: "src/core/LlmCircuitBreaker.ts";
61
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
62
+ }, {
63
+ readonly file: "src/core/MessagingToneGate.ts";
64
+ readonly reason: "cross-cutting utility shared far beyond Codex delivery, certified by its own suite; binding it would re-freeze releases on unrelated churn";
65
+ }, {
66
+ readonly file: "src/core/ModelTierEscalation.ts";
67
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
68
+ }, {
69
+ readonly file: "src/core/OAuthRefresher.ts";
70
+ readonly reason: "cross-cutting utility shared far beyond Codex delivery, certified by its own suite; binding it would re-freeze releases on unrelated churn";
71
+ }, {
72
+ readonly file: "src/core/PhysicalEffectLock.ts";
73
+ readonly reason: "cross-cutting utility shared far beyond Codex delivery, certified by its own suite; binding it would re-freeze releases on unrelated churn";
74
+ }, {
75
+ readonly file: "src/core/PiCliIntelligenceProvider.ts";
76
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
77
+ }, {
78
+ readonly file: "src/core/ProjectRoundLock.ts";
79
+ readonly reason: "cross-cutting utility shared far beyond Codex delivery, certified by its own suite; binding it would re-freeze releases on unrelated churn";
80
+ }, {
81
+ readonly file: "src/core/SafeFsExecutor.ts";
82
+ readonly reason: "cross-cutting utility shared far beyond Codex delivery, certified by its own suite; binding it would re-freeze releases on unrelated churn";
83
+ }, {
84
+ readonly file: "src/core/SafeGitExecutor.ts";
85
+ readonly reason: "cross-cutting utility shared far beyond Codex delivery, certified by its own suite; binding it would re-freeze releases on unrelated churn";
86
+ }, {
87
+ readonly file: "src/core/SecretMigrator.ts";
88
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
89
+ }, {
90
+ readonly file: "src/core/SecretStore.ts";
91
+ readonly reason: "cross-cutting utility shared far beyond Codex delivery, certified by its own suite; binding it would re-freeze releases on unrelated churn";
92
+ }, {
93
+ readonly file: "src/core/SessionLivenessOracle.ts";
94
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
95
+ }, {
96
+ readonly file: "src/core/SourceTreeGuard.ts";
97
+ readonly reason: "cross-cutting utility shared far beyond Codex delivery, certified by its own suite; binding it would re-freeze releases on unrelated churn";
98
+ }, {
99
+ readonly file: "src/core/SpawnCapIntelligenceProvider.ts";
100
+ readonly reason: "cross-cutting utility shared far beyond Codex delivery, certified by its own suite; binding it would re-freeze releases on unrelated churn";
101
+ }, {
102
+ readonly file: "src/core/SqliteRegistry.ts";
103
+ readonly reason: "cross-cutting utility shared far beyond Codex delivery, certified by its own suite; binding it would re-freeze releases on unrelated churn";
104
+ }, {
105
+ readonly file: "src/core/StageBActivationGate.ts";
106
+ readonly reason: "release policy, not canaried delivery behavior; binding it would force irrelevant two-hour canaries for gate-policy fixes (incl. the code-binding fix itself), and it adds no adversarial protection since the manifest is equally PR-editable";
107
+ }, {
108
+ readonly file: "src/core/canonicalFeedback.ts";
109
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
110
+ }, {
111
+ readonly file: "src/core/claudeForbiddenGuard.ts";
112
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
113
+ }, {
114
+ readonly file: "src/core/decisionQualityTypes.ts";
115
+ readonly reason: "cross-cutting utility shared far beyond Codex delivery, certified by its own suite; binding it would re-freeze releases on unrelated churn";
116
+ }, {
117
+ readonly file: "src/core/deferral-floor.ts";
118
+ readonly reason: "cross-cutting utility shared far beyond Codex delivery, certified by its own suite; binding it would re-freeze releases on unrelated churn";
119
+ }, {
120
+ readonly file: "src/core/devAgentGate.ts";
121
+ readonly reason: "cross-cutting utility shared far beyond Codex delivery, certified by its own suite; binding it would re-freeze releases on unrelated churn";
122
+ }, {
123
+ readonly file: "src/core/durableSecretScrub.ts";
124
+ readonly reason: "cross-cutting utility shared far beyond Codex delivery, certified by its own suite; binding it would re-freeze releases on unrelated churn";
125
+ }, {
126
+ readonly file: "src/core/dynamicMcpConfig.ts";
127
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
128
+ }, {
129
+ readonly file: "src/core/frameworkFacts.ts";
130
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
131
+ }, {
132
+ readonly file: "src/core/hostSemaphoreCore.ts";
133
+ readonly reason: "cross-cutting utility shared far beyond Codex delivery, certified by its own suite; binding it would re-freeze releases on unrelated churn";
134
+ }, {
135
+ readonly file: "src/core/hostSpawnSemaphore.ts";
136
+ readonly reason: "cross-cutting utility shared far beyond Codex delivery, certified by its own suite; binding it would re-freeze releases on unrelated churn";
137
+ }, {
138
+ readonly file: "src/core/inboundQueueConfig.ts";
139
+ readonly reason: "cross-cutting utility shared far beyond Codex delivery, certified by its own suite; binding it would re-freeze releases on unrelated churn";
140
+ }, {
141
+ readonly file: "src/core/intelligenceProviderFactory.ts";
142
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
143
+ }, {
144
+ readonly file: "src/core/internal-id-leak.ts";
145
+ readonly reason: "cross-cutting utility shared far beyond Codex delivery, certified by its own suite; binding it would re-freeze releases on unrelated churn";
146
+ }, {
147
+ readonly file: "src/core/machineCoherenceAdvert.ts";
148
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
149
+ }, {
150
+ readonly file: "src/core/machineCoherenceManifest.ts";
151
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
152
+ }, {
153
+ readonly file: "src/core/machineServesChannel.ts";
154
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
155
+ }, {
156
+ readonly file: "src/core/models.ts";
157
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
158
+ }, {
159
+ readonly file: "src/core/seamlessnessConfig.ts";
160
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
161
+ }, {
162
+ readonly file: "src/core/self-stop-floor.ts";
163
+ readonly reason: "cross-cutting utility shared far beyond Codex delivery, certified by its own suite; binding it would re-freeze releases on unrelated churn";
164
+ }, {
165
+ readonly file: "src/core/types.ts";
166
+ readonly reason: "universal shared type module; changes routinely for every subsystem";
167
+ }, {
168
+ readonly file: "src/data/codexStageBReleaseEvidence.ts";
169
+ readonly reason: "the evidence itself; bound by artifactDigest, fingerprinting it would be circular";
170
+ }, {
171
+ readonly file: "src/data/provenanceCoverage.ts";
172
+ readonly reason: "cross-cutting utility shared far beyond Codex delivery, certified by its own suite; binding it would re-freeze releases on unrelated churn";
173
+ }, {
174
+ readonly file: "src/data/stageBCertifiedSet.ts";
175
+ readonly reason: "this manifest; self-reference would be circular";
176
+ }, {
177
+ readonly file: "src/monitoring/CredentialProvider.ts";
178
+ readonly reason: "cross-cutting utility shared far beyond Codex delivery, certified by its own suite; binding it would re-freeze releases on unrelated churn";
179
+ }, {
180
+ readonly file: "src/monitoring/DegradationReporter.ts";
181
+ readonly reason: "cross-cutting utility shared far beyond Codex delivery, certified by its own suite; binding it would re-freeze releases on unrelated churn";
182
+ }, {
183
+ readonly file: "src/monitoring/ErrorCodeExtractor.ts";
184
+ readonly reason: "cross-cutting utility shared far beyond Codex delivery, certified by its own suite; binding it would re-freeze releases on unrelated churn";
185
+ }, {
186
+ readonly file: "src/monitoring/Redactor.ts";
187
+ readonly reason: "cross-cutting utility shared far beyond Codex delivery, certified by its own suite; binding it would re-freeze releases on unrelated churn";
188
+ }, {
189
+ readonly file: "src/providers/adapters/gemini-cli/models.ts";
190
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
191
+ }, {
192
+ readonly file: "src/providers/adapters/gemini-cli/observability/geminiCapacityPolicy.ts";
193
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
194
+ }, {
195
+ readonly file: "src/providers/adapters/gemini-cli/transport/geminiSpawn.ts";
196
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
197
+ }, {
198
+ readonly file: "src/providers/adapters/openai-codex/errors.ts";
199
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
200
+ }, {
201
+ readonly file: "src/providers/adapters/openai-codex/models.ts";
202
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
203
+ }, {
204
+ readonly file: "src/providers/adapters/openai-codex/observability/eventNormalizer.ts";
205
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
206
+ }, {
207
+ readonly file: "src/providers/adapters/openai-codex/transport/codexSpawn.ts";
208
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
209
+ }, {
210
+ readonly file: "src/providers/adapters/openai-codex/transport/codexUsageParser.ts";
211
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
212
+ }, {
213
+ readonly file: "src/providers/adapters/pi-cli/config.ts";
214
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
215
+ }, {
216
+ readonly file: "src/providers/adapters/pi-cli/errors.ts";
217
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
218
+ }, {
219
+ readonly file: "src/providers/adapters/pi-cli/policy.ts";
220
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
221
+ }, {
222
+ readonly file: "src/providers/adapters/pi-cli/transport/oneShotCompletion.ts";
223
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
224
+ }, {
225
+ readonly file: "src/providers/adapters/pi-cli/transport/piSpawn.ts";
226
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
227
+ }, {
228
+ readonly file: "src/providers/capabilities.ts";
229
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
230
+ }, {
231
+ readonly file: "src/providers/costAwareRouting.ts";
232
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
233
+ }, {
234
+ readonly file: "src/providers/errors.ts";
235
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
236
+ }, {
237
+ readonly file: "src/providers/events.ts";
238
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
239
+ }, {
240
+ readonly file: "src/providers/primitives/observability/usageMeterProvider.ts";
241
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
242
+ }, {
243
+ readonly file: "src/providers/primitives/transport/oneShotCompletion.ts";
244
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
245
+ }, {
246
+ readonly file: "src/providers/registry.ts";
247
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
248
+ }, {
249
+ readonly file: "src/providers/routing.ts";
250
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
251
+ }, {
252
+ readonly file: "src/providers/types.ts";
253
+ readonly reason: "LLM-provider plumbing reached through a dynamic import in a certified module; shared across every internal LLM feature and certified by its own suites — binding it would re-freeze releases on unrelated provider churn";
254
+ }];
255
+ readonly fingerprint: "6aafe889d2bf5e21aeb821348fdbc593e0ca34282de706d53a5eb44cd848ea4b";
256
+ readonly artifactDigest: "7499d16a6ab0b986757121c3d1b3f97f93f7204d341e0a07aaecb360863c75eb";
257
+ readonly fileHashes: {
258
+ readonly "src/core/CodexComposerAdapter.ts": "8d4753c45f317092f3d1e8d6e5a73a875dbf046cbac20066220fa036b4f0e065";
259
+ readonly "src/core/CodexDeliveryObserver.ts": "7de40edfd2f64adfcef9e18bf6191acb4bdeb294886f0369895b948e1be345dd";
260
+ readonly "src/core/CodexLifecycleProductionComposition.ts": "a94897fbd317af61c5ea8d09da7484b2799b985ef44af2e2cc304f769fff62a4";
261
+ readonly "src/core/InboundDeliveryStore.ts": "93009f9b2cc2c4ee2124c09e8fe3f8ac30edf17b033c13864ff61b0e14ea0e88";
262
+ readonly "src/core/SessionRecoveryChannel.ts": "d38b8ebc6d073008ae2d9f9109a254019813499d5d327a3ff00e4b2a72272b65";
263
+ readonly "src/core/SessionRecoveryConsumer.ts": "6a00ca4993d188f1c95eaa7d156795804f00f7e10e600ea12fa2e8cd40423268";
264
+ readonly "src/core/StageBStartupReadiness.ts": "92275608368d44abc98802f9a445acc6419fd57bddb8c2e4935f32961d401183";
265
+ };
266
+ readonly boundAt: "2026-09-04";
267
+ readonly boundBy: "echo (operator-approved rebinding, topic 52075, 2026-09-03)";
268
+ readonly note: "Initial binding: certified sources verified byte-identical to the evidence commit (git diff 92a21075d..1b46533a7 over the certified set is empty), so the approved 2026-08-31 canary evidence remains the honest witness.";
269
+ };
270
+ export type StageBCertifiedSet = typeof STAGE_B_CERTIFIED_SET;
271
+ //# sourceMappingURL=stageBCertifiedSet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stageBCertifiedSet.d.ts","sourceRoot":"","sources":["../../src/data/stageBCertifiedSet.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqWxB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,OAAO,qBAAqB,CAAC"}