@jmanuelcorral/openteam 0.1.42 → 0.2.1

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 (97) hide show
  1. package/.opencode/openteam.example.json +6 -1
  2. package/README.es.md +5 -5
  3. package/README.md +5 -5
  4. package/dist/capabilities/types.d.ts +4 -4
  5. package/dist/classifier/types.d.ts +3 -3
  6. package/dist/cli.js +11 -0
  7. package/dist/commands/doctor.d.ts +2 -0
  8. package/dist/commands/doctor.d.ts.map +1 -1
  9. package/dist/commands/graph.d.ts +28 -2
  10. package/dist/commands/graph.d.ts.map +1 -1
  11. package/dist/config/graphFeatureGate.d.ts +101 -0
  12. package/dist/config/graphFeatureGate.d.ts.map +1 -0
  13. package/dist/config/migrations.d.ts.map +1 -1
  14. package/dist/config/resolve.d.ts +20 -1
  15. package/dist/config/resolve.d.ts.map +1 -1
  16. package/dist/config/schema.d.ts +22 -19
  17. package/dist/config/schema.d.ts.map +1 -1
  18. package/dist/console/render.d.ts.map +1 -1
  19. package/dist/context/redaction.d.ts +23 -0
  20. package/dist/context/redaction.d.ts.map +1 -1
  21. package/dist/context/schema.d.ts +3 -3
  22. package/dist/contract/opencode.d.ts +2 -2
  23. package/dist/contract/opencode.d.ts.map +1 -1
  24. package/dist/graph/certificate.d.ts +515 -0
  25. package/dist/graph/certificate.d.ts.map +1 -0
  26. package/dist/graph/ids.d.ts +9 -0
  27. package/dist/graph/ids.d.ts.map +1 -1
  28. package/dist/graph/privacyPolicy.d.ts.map +1 -1
  29. package/dist/graph/reducer.d.ts.map +1 -1
  30. package/dist/graph/replay.d.ts.map +1 -1
  31. package/dist/graph/reviewerPolicy.d.ts.map +1 -1
  32. package/dist/graph/schema.d.ts +33 -33
  33. package/dist/graph/schema.d.ts.map +1 -1
  34. package/dist/graph/soakLedger.d.ts +167 -0
  35. package/dist/graph/soakLedger.d.ts.map +1 -0
  36. package/dist/graph/types.d.ts +2 -0
  37. package/dist/graph/types.d.ts.map +1 -1
  38. package/dist/graph/validate.d.ts.map +1 -1
  39. package/dist/index.d.ts +52 -0
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +2452 -279
  42. package/dist/local/registry.d.ts.map +1 -1
  43. package/dist/memory/types.d.ts +2 -2
  44. package/dist/orchestrator/graphFacade.d.ts +39 -0
  45. package/dist/orchestrator/graphFacade.d.ts.map +1 -0
  46. package/dist/orchestrator/graphIngress.d.ts +136 -0
  47. package/dist/orchestrator/graphIngress.d.ts.map +1 -0
  48. package/dist/orchestrator/graphShadow.d.ts +121 -0
  49. package/dist/orchestrator/graphShadow.d.ts.map +1 -0
  50. package/dist/orchestrator/ledger.d.ts +11 -30
  51. package/dist/orchestrator/ledger.d.ts.map +1 -1
  52. package/dist/orchestrator/opencodeSessionAdapter.d.ts.map +1 -1
  53. package/dist/orchestrator/roles.d.ts +3 -3
  54. package/dist/orchestrator/sddCompiler.d.ts +31 -3
  55. package/dist/orchestrator/sddCompiler.d.ts.map +1 -1
  56. package/dist/orchestrator/worktreeAdapter.d.ts.map +1 -1
  57. package/dist/orchestrator/worktreeDispatch.d.ts.map +1 -1
  58. package/dist/plugin/graphShadowIngress.d.ts +165 -0
  59. package/dist/plugin/graphShadowIngress.d.ts.map +1 -0
  60. package/dist/plugin/graphTool.d.ts +63 -0
  61. package/dist/plugin/graphTool.d.ts.map +1 -0
  62. package/dist/plugin/hooks.d.ts +6 -0
  63. package/dist/plugin/hooks.d.ts.map +1 -1
  64. package/dist/plugin/legacyRunProducer.d.ts +60 -0
  65. package/dist/plugin/legacyRunProducer.d.ts.map +1 -0
  66. package/dist/plugin/reportRunSchema.d.ts +60 -0
  67. package/dist/plugin/reportRunSchema.d.ts.map +1 -0
  68. package/dist/plugin/sessionTracker.d.ts +42 -0
  69. package/dist/plugin/sessionTracker.d.ts.map +1 -0
  70. package/dist/plugin/shadowPipeline.d.ts +49 -0
  71. package/dist/plugin/shadowPipeline.d.ts.map +1 -0
  72. package/dist/plugin/soakObserver.d.ts +73 -0
  73. package/dist/plugin/soakObserver.d.ts.map +1 -0
  74. package/dist/storage/graph/codec.d.ts.map +1 -1
  75. package/dist/storage/graph/migrateLegacyBriefs.d.ts.map +1 -1
  76. package/dist/storage/graph/migration.d.ts +91 -0
  77. package/dist/storage/graph/migration.d.ts.map +1 -0
  78. package/dist/storage/graph/provider.d.ts +1 -0
  79. package/dist/storage/graph/provider.d.ts.map +1 -1
  80. package/dist/storage/graph/recovery.d.ts.map +1 -1
  81. package/dist/storage/graph/runRegistry.d.ts.map +1 -1
  82. package/dist/storage/graph/soakRecorder.d.ts +59 -0
  83. package/dist/storage/graph/soakRecorder.d.ts.map +1 -0
  84. package/dist/storage/graph/workspaceLease.d.ts.map +1 -1
  85. package/dist/storage/graph/worktreeRegistry.d.ts.map +1 -1
  86. package/dist/storage/graph/writer.d.ts +15 -0
  87. package/dist/storage/graph/writer.d.ts.map +1 -1
  88. package/dist/storage/path.d.ts.map +1 -1
  89. package/dist/telemetry/events.d.ts +12 -12
  90. package/dist/telemetry/graphRuntimeHealth.d.ts +53 -0
  91. package/dist/telemetry/graphRuntimeHealth.d.ts.map +1 -0
  92. package/dist/telemetry/graphView.d.ts +1 -0
  93. package/dist/telemetry/graphView.d.ts.map +1 -1
  94. package/dist/telemetry/types.d.ts +4 -4
  95. package/package.json +7 -5
  96. package/dist/orchestrator/sdd.d.ts +0 -126
  97. package/dist/orchestrator/sdd.d.ts.map +0 -1
@@ -53,5 +53,10 @@
53
53
  "frontierTokensPerSession": 250000,
54
54
  "hardStopOnBudgetExhaustion": false
55
55
  },
56
- "privacyMode": "forceLocalOnSensitive"
56
+ "privacyMode": "forceLocalOnSensitive",
57
+ "graph": {
58
+ "mode": "off",
59
+ "killSwitch": false,
60
+ "operatorApproval": false
61
+ }
57
62
  }
package/README.es.md CHANGED
@@ -46,7 +46,7 @@ El router mantiene una garantía de privacidad: con `privacyMode: "forceLocalOnS
46
46
 
47
47
  ## Requisitos
48
48
 
49
- - opencode compatible con `@opencode-ai/plugin` `1.17.13`.
49
+ - opencode compatible con `@opencode-ai/plugin` `1.18.18`.
50
50
  - Bun `1.3.14` para instalaciones, desarrollo y tests reproducibles.
51
51
  - Node.js `^22.22.2 || ^24.15.0 || >=26.0.0` para la CLI y el plugin publicados.
52
52
  - Runtimes locales opcionales:
@@ -723,13 +723,13 @@ Gates no negociables:
723
723
 
724
724
  ## Compatibilidad
725
725
 
726
- Consulta [docs/compatibility.md](docs/compatibility.md). Resumen verificado el `2026-08-19`:
726
+ Consulta [docs/compatibility.md](docs/compatibility.md). Resumen verificado el `2026-08-23`:
727
727
 
728
728
  | Superficie | Versión / contrato |
729
729
  | --- | --- |
730
- | openteam | `0.1.42`; versión actual del paquete |
731
- | `@opencode-ai/plugin` | `1.17.13` |
732
- | `@opencode-ai/sdk` | `1.17.13` |
730
+ | openteam | `0.2.1`; versión actual del paquete |
731
+ | `@opencode-ai/plugin` | `1.18.18` |
732
+ | `@opencode-ai/sdk` | `1.18.18` |
733
733
  | Hook de routing | `chat.message`; no `chat.params` para cambiar modelo |
734
734
  | Subsesiones | `client.session.create` + `client.session.prompt({ body: { model } })` |
735
735
 
package/README.md CHANGED
@@ -51,7 +51,7 @@ The router keeps a privacy guarantee: with `privacyMode: "forceLocalOnSensitive"
51
51
 
52
52
  ## Requirements
53
53
 
54
- - opencode compatible with `@opencode-ai/plugin` `1.17.13`.
54
+ - opencode compatible with `@opencode-ai/plugin` `1.18.18`.
55
55
  - [Bun](https://bun.sh) `1.3.14` for reproducible installs, development, and tests.
56
56
  - Node.js `^22.22.2 || ^24.15.0 || >=26.0.0` for the published CLI/plugin.
57
57
  - Optional local runtimes:
@@ -340,13 +340,13 @@ Non-negotiable gates (see [docs/testing-and-quality.md](docs/testing-and-quality
340
340
 
341
341
  ## Compatibility
342
342
 
343
- See [docs/compatibility.md](docs/compatibility.md). Verified summary as of `2026-08-19`:
343
+ See [docs/compatibility.md](docs/compatibility.md). Verified summary as of `2026-08-23`:
344
344
 
345
345
  | Surface | Version / contract |
346
346
  | --- | --- |
347
- | openteam | `0.1.42`; current package version |
348
- | `@opencode-ai/plugin` | `1.17.13` |
349
- | `@opencode-ai/sdk` | `1.17.13` |
347
+ | openteam | `0.2.1`; current package version |
348
+ | `@opencode-ai/plugin` | `1.18.18` |
349
+ | `@opencode-ai/sdk` | `1.18.18` |
350
350
  | Routing hook | `chat.message`; not `chat.params` for model changes |
351
351
  | Child sessions | `client.session.create` + `client.session.prompt({ body: { model } })` |
352
352
 
@@ -2,10 +2,10 @@ import { z } from "zod";
2
2
  import type { ModelSelection, ProviderKind } from "../router/types";
3
3
  export type ComplexityTier = "trivial" | "simple" | "moderate" | "hard";
4
4
  export declare const ComplexityTierSchema: z.ZodEnum<{
5
- trivial: "trivial";
6
- simple: "simple";
7
- moderate: "moderate";
8
5
  hard: "hard";
6
+ moderate: "moderate";
7
+ simple: "simple";
8
+ trivial: "trivial";
9
9
  }>;
10
10
  export declare const ModelCapabilityProfileSchema: z.ZodObject<{
11
11
  ref: z.ZodObject<{
@@ -13,9 +13,9 @@ export declare const ModelCapabilityProfileSchema: z.ZodObject<{
13
13
  modelID: z.ZodString;
14
14
  }, z.core.$strip>;
15
15
  kind: z.ZodEnum<{
16
+ frontier: "frontier";
16
17
  local: "local";
17
18
  router: "router";
18
- frontier: "frontier";
19
19
  }>;
20
20
  contextWindow: z.ZodNumber;
21
21
  maxOutputTokens: z.ZodNumber;
@@ -8,10 +8,10 @@ export type ClassifierResult = {
8
8
  };
9
9
  export declare const LocalClassifierOutputSchema: z.ZodObject<{
10
10
  tier: z.ZodEnum<{
11
- trivial: "trivial";
12
- simple: "simple";
13
- moderate: "moderate";
14
11
  hard: "hard";
12
+ moderate: "moderate";
13
+ simple: "simple";
14
+ trivial: "trivial";
15
15
  }>;
16
16
  confidence: z.ZodNumber;
17
17
  reasons: z.ZodArray<z.ZodString>;
package/dist/cli.js CHANGED
@@ -674,6 +674,7 @@ var GraphModeSchema = z3.enum(["off", "shadow", "active"]);
674
674
  var GraphConfigSchema = z3.object({
675
675
  mode: GraphModeSchema.default("off"),
676
676
  killSwitch: z3.boolean().default(false),
677
+ operatorApproval: z3.boolean().default(false),
677
678
  worktrees: z3.object({
678
679
  enabled: z3.boolean().default(false)
679
680
  }).default({ enabled: false })
@@ -2035,6 +2036,7 @@ function healthBanner(health) {
2035
2036
  '<div class="graph-health" role="status">',
2036
2037
  chip("gh-recovery", health.recoveryRequired, health.recoveryRequired ? "recuperación requerida" : "sin recuperación"),
2037
2038
  chip("gh-unknown", health.unknownEffects > 0, `efectos desconocidos: ${health.unknownEffects}`),
2039
+ chip("gh-stale", health.staleCompletions > 0, `completaciones tardías: ${health.staleCompletions}`),
2038
2040
  chip("gh-conflict", health.conflicts > 0, `conflictos lease/worktree: ${health.conflicts}`),
2039
2041
  chip("gh-kill", health.killSwitch, health.killSwitch ? "kill switch activo" : "kill switch inactivo"),
2040
2042
  "</div>"
@@ -4424,6 +4426,15 @@ function renderDoctor(input) {
4424
4426
  if (reachable === 0) {
4425
4427
  lines.push(" ⚠ Ningún runtime local alcanzable: todo el tráfico irá a frontier.");
4426
4428
  }
4429
+ if (input.graphHealth !== undefined) {
4430
+ const h = input.graphHealth;
4431
+ lines.push(" graph health:");
4432
+ lines.push(` recuperación requerida: ${h.recoveryRequired ? "sí" : "no"}`);
4433
+ lines.push(` efectos desconocidos: ${h.unknownEffects}`);
4434
+ lines.push(` completaciones tardías: ${h.staleCompletions}`);
4435
+ lines.push(` conflictos: ${h.conflicts}`);
4436
+ lines.push(` kill switch: ${h.killSwitch ? "activo" : "inactivo"}`);
4437
+ }
4427
4438
  return lines.join(`
4428
4439
  `);
4429
4440
  }
@@ -1,10 +1,12 @@
1
1
  import type { OpenTeamConfig } from "../config/schema";
2
2
  import type { LocalRuntimeSnapshot } from "../local/types";
3
+ import type { GraphViewHealth } from "../telemetry/graphView";
3
4
  export type DoctorInput = {
4
5
  config: OpenTeamConfig;
5
6
  snapshots: readonly LocalRuntimeSnapshot[];
6
7
  telemetryPath: string;
7
8
  telemetryRecords: number;
9
+ graphHealth?: GraphViewHealth;
8
10
  };
9
11
  export declare function renderDoctor(input: DoctorInput): string;
10
12
  //# sourceMappingURL=doctor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAWF,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAkCvD"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B,CAAC;AAWF,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAgDvD"}
@@ -1,6 +1,9 @@
1
1
  import type { ConfigSource } from "../config/resolve";
2
2
  import type { GraphMode } from "../config/schema";
3
+ import type { GraphJournalHealth } from "../graph/types";
3
4
  import type { WorktreeReconcileReport } from "../orchestrator/worktreeReconciler";
5
+ import type { LegacyImportRecordV1 } from "../storage/graph/importLegacy";
6
+ import type { MigrationBackup, MigrationPlan } from "../storage/graph/migration";
4
7
  import type { LeaseRecord } from "../storage/graph/workspaceLease";
5
8
  /**
6
9
  * GE-045 — operator commands for the graph runtime as pure dry-run plans.
@@ -17,8 +20,6 @@ import type { LeaseRecord } from "../storage/graph/workspaceLease";
17
20
  * - Cancelling a run held by another holder (a stale takeover) is blocked
18
21
  * unless the operator explicitly forces it.
19
22
  */
20
- /** Health of the on-disk journal tail as classified by recovery. */
21
- export type GraphJournalHealth = "clean" | "recovered" | "corrupt";
22
23
  /** Settled, side-effect-free view of the graph runtime for the operator. */
23
24
  export type GraphHealthSnapshot = {
24
25
  /** Where the effective graph config was resolved from. */
@@ -70,4 +71,29 @@ export declare function planGraphCancel(snapshot: GraphHealthSnapshot, options:
70
71
  * the operator can see isolation is off without any worktree being touched.
71
72
  */
72
73
  export declare function renderWorktreeReconciliation(report: WorktreeReconcileReport): string;
74
+ /** Action a migration command would take. */
75
+ export type MigrationActionKind = "none" | "dry-run" | "backup" | "apply" | "rollback" | "blocked";
76
+ /** Result of planning a migration command. */
77
+ export type MigrationActionPlan = {
78
+ readonly kind: MigrationActionKind;
79
+ readonly reason: string;
80
+ readonly safe: boolean;
81
+ /** Number of records the action would affect. */
82
+ readonly recordCount: number;
83
+ };
84
+ /** Plan a migration dry-run from a settled migration plan. */
85
+ export declare function planMigrationDryRun(plan: MigrationPlan): MigrationActionPlan;
86
+ /** Plan a backup creation from current authority. */
87
+ export declare function planMigrationBackup(authority: readonly LegacyImportRecordV1[]): MigrationActionPlan;
88
+ /** Options for planning a migration apply. */
89
+ export type MigrationApplyOptions = {
90
+ /** Operator explicitly acknowledges applying a migration. */
91
+ readonly acknowledge?: boolean;
92
+ };
93
+ /** Plan a migration apply from a settled migration plan. */
94
+ export declare function planMigrationApply(plan: MigrationPlan, options?: MigrationApplyOptions): MigrationActionPlan;
95
+ /** Plan a rollback from a validated backup. */
96
+ export declare function planMigrationRollback(backup: MigrationBackup, currentAuthority: readonly LegacyImportRecordV1[]): MigrationActionPlan;
97
+ /** Render a migration action plan for the operator. */
98
+ export declare function renderMigrationPlan(plan: MigrationActionPlan): string;
73
99
  //# sourceMappingURL=graph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/commands/graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAEnE;;;;;;;;;;;;;;GAcG;AAEH,oEAAoE;AACpE,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC;AAEnE,4EAA4E;AAC5E,MAAM,MAAM,mBAAmB,GAAG;IAChC,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,oDAAoD;IACpD,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC;IAClC,qEAAqE;IACrE,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,CAAC;IACxC,2BAA2B;IAC3B,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,kDAAkD;IAClD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,mEAAmE;IACnE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF,2EAA2E;AAC3E,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAExE,8CAA8C;AAC9C,MAAM,MAAM,eAAe,GAAG;IAC5B,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,uDAAuD;IACvD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,+CAA+C;AAC/C,MAAM,MAAM,mBAAmB,GAAG;IAChC,8EAA8E;IAC9E,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACtC,CAAC;AAEF,+CAA+C;AAC/C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,sDAAsD;IACtD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAUF,yEAAyE;AACzE,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,CAkBvE;AAED,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,GAAE,mBAAwB,GAChC,eAAe,CAejB;AAED,6EAA6E;AAC7E,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,EAAE,kBAAkB,GAC1B,eAAe,CAejB;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,uBAAuB,GAC9B,MAAM,CAoBR"}
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/commands/graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * **Cutover gate** for Graph active mode (GE-057).
3
+ *
4
+ * Pure and deterministic — no I/O, clock, random, or env vars. The gate
5
+ * evaluates pre-parsed certificate statuses, migration state, and operator
6
+ * approval. All inputs are injected by the wiring layer (`index.ts`).
7
+ *
8
+ * Design decisions:
9
+ *
10
+ * 1. **Noisy degradation, not abort.** When the gate denies `active`, the
11
+ * effective mode degrades to `off` with explicit violations. This is
12
+ * preferable to aborting the entire plugin (disproportionate for an opt-in
13
+ * feature) and to silent degradation (the operator would believe they're in
14
+ * `active`). Every violation carries a distinct code and human-readable
15
+ * detail so the operator can distinguish "absent" from "invalid" from
16
+ * "stale" — diagnostics with different remedies.
17
+ *
18
+ * 2. **No raw certificate reads.** The gate never inspects certificate fields.
19
+ * It receives `CertificateStatus` values produced by the recomputing
20
+ * parsers (`parseShadowCertificate`, `parseReleaseCertificate`,
21
+ * `parseSoakCertificate`), which derive verdicts from evidence. This module
22
+ * itself contains no version logic. A `status: "valid"` means the parser
23
+ * accepted it — verdict recomputed from the embedded evidence and digest
24
+ * verified. For shadow and release that acceptance additionally required the
25
+ * live opencode version to match the version stamped in the certificate; the
26
+ * soak parser performs no live-version check, so its opencode guarantee rests
27
+ * on the eligibility filter applied to the recorded evidence, not on this
28
+ * gate.
29
+ *
30
+ * 3. **Operator approval is a declaration, not a proof.** The `operatorApproval`
31
+ * flag records that the operator has reviewed the certificates and completed
32
+ * migration. Nothing in the system can verify the operator actually read the
33
+ * certificates or performed migration locally. This is an organizational
34
+ * trust boundary, not a cryptographic guarantee. We say so explicitly rather
35
+ * than building a mechanism that *appears* to verify what it cannot.
36
+ *
37
+ * 4. **Absence is not zero — it's a distinct failure.** Missing, unreadable,
38
+ * expired, and invalid certificates are all distinguished so the operator
39
+ * gets the right remediation advice.
40
+ */
41
+ /** Status of a certificate after the wiring layer attempted to parse it. */
42
+ export type CertificateStatus = {
43
+ readonly status: "valid";
44
+ readonly digest: string;
45
+ } | {
46
+ readonly status: "absent";
47
+ } | {
48
+ readonly status: "invalid";
49
+ readonly code: string;
50
+ readonly detail: string;
51
+ };
52
+ /**
53
+ * Migration readiness as determined by the wiring layer.
54
+ *
55
+ * - `complete`: no pending migration work (empty ledger, or all imported).
56
+ * - `pending`: ledger has entries that may not be imported yet.
57
+ * - `unknown`: could not determine (e.g., ledger unreadable).
58
+ */
59
+ export type MigrationStatus = "complete" | "pending" | "unknown";
60
+ /** All inputs the gate needs, pre-resolved by the wiring layer. */
61
+ export type GraphGateInput = {
62
+ readonly shadow: CertificateStatus;
63
+ readonly release: CertificateStatus;
64
+ readonly soak: CertificateStatus;
65
+ readonly migration: MigrationStatus;
66
+ readonly operatorApproval: boolean;
67
+ };
68
+ /**
69
+ * Violation codes. Each maps to a distinct failure with a distinct remedy.
70
+ * Codes use kebab-case with the certificate name as prefix so log grep is
71
+ * unambiguous.
72
+ */
73
+ export type GateViolationCode = "shadow-certificate-absent" | "shadow-certificate-invalid" | "release-certificate-absent" | "release-certificate-invalid" | "soak-certificate-absent" | "soak-certificate-invalid" | "migration-pending" | "migration-unknown" | "operator-approval-missing";
74
+ /** A single gate violation with code and human-readable detail. */
75
+ export type GateViolation = {
76
+ readonly code: GateViolationCode;
77
+ readonly detail: string;
78
+ };
79
+ /** Result of evaluating the cutover gate. */
80
+ export type GraphGateResult = {
81
+ /** `true` only when every condition is satisfied. */
82
+ readonly allowed: boolean;
83
+ /** All violations found, even when `allowed` is already `false`. */
84
+ readonly violations: readonly GateViolation[];
85
+ };
86
+ /**
87
+ * Evaluates the cutover gate. Pure and deterministic: same inputs always
88
+ * produce the same result.
89
+ *
90
+ * All five conditions are **independently necessary**: shadow, release, soak,
91
+ * migration, and operator approval. A single missing condition closes the gate.
92
+ * All violations are collected (not short-circuited) so the operator sees
93
+ * everything that needs fixing.
94
+ */
95
+ export declare function evaluateGraphGate(input: GraphGateInput): GraphGateResult;
96
+ /**
97
+ * Whether the cutover gate applies to a given mode. Only `active` mode
98
+ * requires the gate — `shadow` and `off` bypass it entirely.
99
+ */
100
+ export declare function isGateApplicable(mode: "off" | "shadow" | "active"): boolean;
101
+ //# sourceMappingURL=graphFeatureGate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphFeatureGate.d.ts","sourceRoot":"","sources":["../../src/config/graphFeatureGate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAIH,4EAA4E;AAC5E,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;CAAE,GAC7B;IACE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAIN;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAIjE,mEAAmE;AACnE,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;CACpC,CAAC;AAIF;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GACzB,2BAA2B,GAC3B,4BAA4B,GAC5B,4BAA4B,GAC5B,6BAA6B,GAC7B,yBAAyB,GACzB,0BAA0B,GAC1B,mBAAmB,GACnB,mBAAmB,GACnB,2BAA2B,CAAC;AAEhC,mEAAmE;AACnE,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAIF,6CAA6C;AAC7C,MAAM,MAAM,eAAe,GAAG;IAC5B,qDAAqD;IACrD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,oEAAoE;IACpE,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAC;CAC/C,CAAC;AAuBF;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe,CAyCxE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAE3E"}
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/config/migrations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,kDAAkD;AAClD,eAAO,MAAM,sBAAsB,EAAG,CAAU,CAAC;AAEjD,8CAA8C;AAC9C,MAAM,MAAM,wBAAwB,GAChC,iBAAiB,GACjB,qBAAqB,CAAC;AAE1B,yDAAyD;AACzD,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,IAAI,EAAE,wBAAwB,EAAE,MAAM,EAAE,MAAM;CAM3D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAoBnD"}
1
+ {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/config/migrations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,kDAAkD;AAClD,eAAO,MAAM,sBAAsB,EAAG,CAAU,CAAC;AAEjD,8CAA8C;AAC9C,MAAM,MAAM,wBAAwB,GAChC,iBAAiB,GACjB,qBAAqB,CAAC;AAE1B,yDAAyD;AACzD,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,YAAY,IAAI,EAAE,wBAAwB,EAAE,MAAM,EAAE,MAAM,EAKzD;CACF;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAoBnD"}
@@ -1,3 +1,4 @@
1
+ import type { GateViolation, GraphGateResult } from "./graphFeatureGate";
1
2
  import type { GraphMode, OpenTeamConfig } from "./schema";
2
3
  /**
3
4
  * Resolver **efectivo** y compartido de la config de Graph (GE-040).
@@ -11,6 +12,10 @@ import type { GraphMode, OpenTeamConfig } from "./schema";
11
12
  * - **Shadow sin executor**: solo `active` habilita el executor; `shadow` y
12
13
  * `off` no reciben executor.
13
14
  * - **Fuente visible**: el origen de la config se propaga al resultado.
15
+ * - **Cutover gate (GE-057)**: `active` mode additionally requires the cutover
16
+ * gate to pass. When the gate denies, `effectiveMode` degrades to `off` and
17
+ * `gateDenied` is `true`. This degradation is **never silent**: the wiring
18
+ * layer emits warnings for each violation.
14
19
  *
15
20
  * Puro: sin I/O, reloj ni estado global.
16
21
  */
@@ -20,7 +25,7 @@ export type ConfigSource = "file" | "inline" | "default";
20
25
  export type ResolvedGraphConfig = {
21
26
  /** Modo declarado en la config (default `off`). */
22
27
  readonly configuredMode: GraphMode;
23
- /** Modo efectivo tras aplicar el kill switch. */
28
+ /** Modo efectivo tras aplicar el kill switch and cutover gate. */
24
29
  readonly effectiveMode: GraphMode;
25
30
  /** Solo `active` habilita el executor. */
26
31
  readonly executorEnabled: boolean;
@@ -28,7 +33,21 @@ export type ResolvedGraphConfig = {
28
33
  readonly killSwitch: boolean;
29
34
  /** Origen de la config. */
30
35
  readonly source: ConfigSource;
36
+ /**
37
+ * `true` when the cutover gate denied `active` mode and degraded to `off`.
38
+ * Absent or `false` when the gate was not evaluated (non-active modes) or
39
+ * when it passed.
40
+ */
41
+ readonly gateDenied?: boolean;
42
+ /** Violations found by the cutover gate, if evaluated. */
43
+ readonly gateViolations?: readonly GateViolation[];
31
44
  };
32
45
  /** Resuelve la config de Graph efectiva a partir de la config y su origen. */
33
46
  export declare function resolveGraphConfig(config: OpenTeamConfig, source: ConfigSource): ResolvedGraphConfig;
47
+ /**
48
+ * Applies the cutover gate result to a resolved config. When the gate denies
49
+ * `active` mode, degrades `effectiveMode` to `off` and marks `gateDenied`.
50
+ * Pure: the gate result is pre-computed by the wiring layer.
51
+ */
52
+ export declare function applyGraphGate(resolved: ResolvedGraphConfig, gateResult: GraphGateResult): ResolvedGraphConfig;
34
53
  //# sourceMappingURL=resolve.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/config/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1D;;;;;;;;;;;;;;GAcG;AAEH,uEAAuE;AACvE,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEzD,iDAAiD;AACjD,MAAM,MAAM,mBAAmB,GAAG;IAChC,mDAAmD;IACnD,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC;IACnC,iDAAiD;IACjD,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC;IAClC,0CAA0C;IAC1C,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,2BAA2B;IAC3B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,2BAA2B;IAC3B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;CAC/B,CAAC;AAEF,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,YAAY,GACnB,mBAAmB,CAWrB"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/config/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1D;;;;;;;;;;;;;;;;;;GAkBG;AAEH,uEAAuE;AACvE,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEzD,iDAAiD;AACjD,MAAM,MAAM,mBAAmB,GAAG;IAChC,mDAAmD;IACnD,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC;IACnC,kEAAkE;IAClE,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC;IAClC,0CAA0C;IAC1C,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,2BAA2B;IAC3B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,2BAA2B;IAC3B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,0DAA0D;IAC1D,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CACpD,CAAC;AAEF,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,YAAY,GACnB,mBAAmB,CAWrB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,mBAAmB,EAC7B,UAAU,EAAE,eAAe,GAC1B,mBAAmB,CAWrB"}
@@ -4,13 +4,13 @@ export declare const ModelRefSchema: z.ZodObject<{
4
4
  modelID: z.ZodString;
5
5
  }, z.core.$strip>;
6
6
  export declare const RouterModeSchema: z.ZodEnum<{
7
- economy: "economy";
8
7
  balanced: "balanced";
8
+ economy: "economy";
9
9
  quality: "quality";
10
10
  }>;
11
11
  export declare const PrivacyModeSchema: z.ZodEnum<{
12
- forceLocalOnSensitive: "forceLocalOnSensitive";
13
12
  consentBeforeFrontier: "consentBeforeFrontier";
13
+ forceLocalOnSensitive: "forceLocalOnSensitive";
14
14
  off: "off";
15
15
  }>;
16
16
  export declare const BaselineModeSchema: z.ZodEnum<{
@@ -22,9 +22,9 @@ export declare const BaselineModeSchema: z.ZodEnum<{
22
22
  * observa sin ejecutar efectos; `active` habilita el executor. Default `off`.
23
23
  */
24
24
  export declare const GraphModeSchema: z.ZodEnum<{
25
+ active: "active";
25
26
  off: "off";
26
27
  shadow: "shadow";
27
- active: "active";
28
28
  }>;
29
29
  /**
30
30
  * Sección `graph` de la config. Opcional: cuando falta, el resolver aplica
@@ -32,11 +32,12 @@ export declare const GraphModeSchema: z.ZodEnum<{
32
32
  */
33
33
  export declare const GraphConfigSchema: z.ZodObject<{
34
34
  mode: z.ZodDefault<z.ZodEnum<{
35
+ active: "active";
35
36
  off: "off";
36
37
  shadow: "shadow";
37
- active: "active";
38
38
  }>>;
39
39
  killSwitch: z.ZodDefault<z.ZodBoolean>;
40
+ operatorApproval: z.ZodDefault<z.ZodBoolean>;
40
41
  worktrees: z.ZodDefault<z.ZodObject<{
41
42
  enabled: z.ZodDefault<z.ZodBoolean>;
42
43
  }, z.core.$strip>>;
@@ -80,16 +81,16 @@ export declare const StorageConfigSchema: z.ZodDefault<z.ZodObject<{
80
81
  }, z.core.$strip>>;
81
82
  export declare const LocalRuntimeSchema: z.ZodObject<{
82
83
  id: z.ZodEnum<{
83
- ollama: "ollama";
84
- lmstudio: "lmstudio";
85
84
  "foundry-local": "foundry-local";
85
+ lmstudio: "lmstudio";
86
+ ollama: "ollama";
86
87
  }>;
87
88
  enabled: z.ZodDefault<z.ZodBoolean>;
88
89
  baseURL: z.ZodOptional<z.ZodString>;
89
90
  discovery: z.ZodOptional<z.ZodEnum<{
90
91
  cli: "cli";
91
- sdk: "sdk";
92
92
  manual: "manual";
93
+ sdk: "sdk";
93
94
  }>>;
94
95
  defaultModel: z.ZodObject<{
95
96
  providerID: z.ZodString;
@@ -218,8 +219,8 @@ export declare const OpenTeamConfigObjectSchema: z.ZodObject<{
218
219
  }, z.core.$strip>>;
219
220
  router: z.ZodDefault<z.ZodObject<{
220
221
  mode: z.ZodDefault<z.ZodEnum<{
221
- economy: "economy";
222
222
  balanced: "balanced";
223
+ economy: "economy";
223
224
  quality: "quality";
224
225
  }>>;
225
226
  localDefault: z.ZodDefault<z.ZodObject<{
@@ -233,16 +234,16 @@ export declare const OpenTeamConfigObjectSchema: z.ZodObject<{
233
234
  local: z.ZodDefault<z.ZodObject<{
234
235
  runtimes: z.ZodDefault<z.ZodArray<z.ZodObject<{
235
236
  id: z.ZodEnum<{
236
- ollama: "ollama";
237
- lmstudio: "lmstudio";
238
237
  "foundry-local": "foundry-local";
238
+ lmstudio: "lmstudio";
239
+ ollama: "ollama";
239
240
  }>;
240
241
  enabled: z.ZodDefault<z.ZodBoolean>;
241
242
  baseURL: z.ZodOptional<z.ZodString>;
242
243
  discovery: z.ZodOptional<z.ZodEnum<{
243
244
  cli: "cli";
244
- sdk: "sdk";
245
245
  manual: "manual";
246
+ sdk: "sdk";
246
247
  }>>;
247
248
  defaultModel: z.ZodObject<{
248
249
  providerID: z.ZodString;
@@ -257,8 +258,8 @@ export declare const OpenTeamConfigObjectSchema: z.ZodObject<{
257
258
  hardStopOnBudgetExhaustion: z.ZodDefault<z.ZodBoolean>;
258
259
  }, z.core.$strip>>;
259
260
  privacyMode: z.ZodDefault<z.ZodEnum<{
260
- forceLocalOnSensitive: "forceLocalOnSensitive";
261
261
  consentBeforeFrontier: "consentBeforeFrontier";
262
+ forceLocalOnSensitive: "forceLocalOnSensitive";
262
263
  off: "off";
263
264
  }>>;
264
265
  console: z.ZodDefault<z.ZodObject<{
@@ -330,11 +331,12 @@ export declare const OpenTeamConfigObjectSchema: z.ZodObject<{
330
331
  }, z.core.$strip>>;
331
332
  graph: z.ZodOptional<z.ZodObject<{
332
333
  mode: z.ZodDefault<z.ZodEnum<{
334
+ active: "active";
333
335
  off: "off";
334
336
  shadow: "shadow";
335
- active: "active";
336
337
  }>>;
337
338
  killSwitch: z.ZodDefault<z.ZodBoolean>;
339
+ operatorApproval: z.ZodDefault<z.ZodBoolean>;
338
340
  worktrees: z.ZodDefault<z.ZodObject<{
339
341
  enabled: z.ZodDefault<z.ZodBoolean>;
340
342
  }, z.core.$strip>>;
@@ -358,8 +360,8 @@ export declare const OpenTeamConfigSchema: z.ZodObject<{
358
360
  }, z.core.$strip>>;
359
361
  router: z.ZodDefault<z.ZodObject<{
360
362
  mode: z.ZodDefault<z.ZodEnum<{
361
- economy: "economy";
362
363
  balanced: "balanced";
364
+ economy: "economy";
363
365
  quality: "quality";
364
366
  }>>;
365
367
  localDefault: z.ZodDefault<z.ZodObject<{
@@ -373,16 +375,16 @@ export declare const OpenTeamConfigSchema: z.ZodObject<{
373
375
  local: z.ZodDefault<z.ZodObject<{
374
376
  runtimes: z.ZodDefault<z.ZodArray<z.ZodObject<{
375
377
  id: z.ZodEnum<{
376
- ollama: "ollama";
377
- lmstudio: "lmstudio";
378
378
  "foundry-local": "foundry-local";
379
+ lmstudio: "lmstudio";
380
+ ollama: "ollama";
379
381
  }>;
380
382
  enabled: z.ZodDefault<z.ZodBoolean>;
381
383
  baseURL: z.ZodOptional<z.ZodString>;
382
384
  discovery: z.ZodOptional<z.ZodEnum<{
383
385
  cli: "cli";
384
- sdk: "sdk";
385
386
  manual: "manual";
387
+ sdk: "sdk";
386
388
  }>>;
387
389
  defaultModel: z.ZodObject<{
388
390
  providerID: z.ZodString;
@@ -397,8 +399,8 @@ export declare const OpenTeamConfigSchema: z.ZodObject<{
397
399
  hardStopOnBudgetExhaustion: z.ZodDefault<z.ZodBoolean>;
398
400
  }, z.core.$strip>>;
399
401
  privacyMode: z.ZodDefault<z.ZodEnum<{
400
- forceLocalOnSensitive: "forceLocalOnSensitive";
401
402
  consentBeforeFrontier: "consentBeforeFrontier";
403
+ forceLocalOnSensitive: "forceLocalOnSensitive";
402
404
  off: "off";
403
405
  }>>;
404
406
  console: z.ZodDefault<z.ZodObject<{
@@ -470,11 +472,12 @@ export declare const OpenTeamConfigSchema: z.ZodObject<{
470
472
  }, z.core.$strip>>;
471
473
  graph: z.ZodOptional<z.ZodObject<{
472
474
  mode: z.ZodDefault<z.ZodEnum<{
475
+ active: "active";
473
476
  off: "off";
474
477
  shadow: "shadow";
475
- active: "active";
476
478
  }>>;
477
479
  killSwitch: z.ZodDefault<z.ZodBoolean>;
480
+ operatorApproval: z.ZodDefault<z.ZodBoolean>;
478
481
  worktrees: z.ZodDefault<z.ZodObject<{
479
482
  enabled: z.ZodDefault<z.ZodBoolean>;
480
483
  }, z.core.$strip>>;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,cAAc;;;iBAGzB,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;EAA6C,CAAC;AAC3E,eAAO,MAAM,iBAAiB;;;;EAI5B,CAAC;AACH,eAAO,MAAM,kBAAkB;;;EAA6B,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;EAAsC,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;iBAe5B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;EAAqC,CAAC;AAEpE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;kBA8C5B,CAAC;AAEL;;GAEG;AAEH;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;;;kBAW5B,CAAC;AAWL,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;iBAM7B,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;EAA8B,CAAC;AAC7D,eAAO,MAAM,0BAA0B;;;EAGrC,CAAC;AACH,eAAO,MAAM,8BAA8B;;;EAA4B,CAAC;AAExE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAkD7B,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAE7B,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgErC,CAAC;AAEH,gDAAgD;AAChD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA6B,CAAC;AAE/D,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,cAAc,GACrB,oBAAoB,CAEtB"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,cAAc;;;iBAGzB,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;EAA6C,CAAC;AAC3E,eAAO,MAAM,iBAAiB;;;;EAI5B,CAAC;AACH,eAAO,MAAM,kBAAkB;;;EAA6B,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;EAAsC,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;iBAyB5B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;EAAqC,CAAC;AAEpE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;kBA8C5B,CAAC;AAEL;;GAEG;AAEH;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;;;kBAW5B,CAAC;AAWL,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;iBAM7B,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;EAA8B,CAAC;AAC7D,eAAO,MAAM,0BAA0B;;;EAGrC,CAAC;AACH,eAAO,MAAM,8BAA8B;;;EAA4B,CAAC;AAExE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAkD7B,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAE7B,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgErC,CAAC;AAEH,gDAAgD;AAChD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA6B,CAAC;AAE/D,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,cAAc,GACrB,oBAAoB,CAEtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/console/render.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAGV,qBAAqB,EACtB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,KAAK,EAGV,YAAY,EAIb,MAAM,SAAS,CAAC;AASjB,mFAAmF;AACnF,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOhD;AAyhBD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,qBAAqB,GAAG,IAAI,GACvC,MAAM,CAwBR;AAmED,MAAM,MAAM,aAAa,GAAG;IAC1B,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,+DAA+D;IAC/D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,SAAS,CAAC,EAAE;QACV,QAAQ,CAAC,UAAU,EAAE,qBAAqB,GAAG,IAAI,CAAC;KACnD,CAAC;IACF;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,YAAY,EACnB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAyDR"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/console/render.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAGV,qBAAqB,EACtB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,KAAK,EAGV,YAAY,EAIb,MAAM,SAAS,CAAC;AASjB,mFAAmF;AACnF,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOhD;AAyhBD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,qBAAqB,GAAG,IAAI,GACvC,MAAM,CAwBR;AAwED,MAAM,MAAM,aAAa,GAAG;IAC1B,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,+DAA+D;IAC/D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,SAAS,CAAC,EAAE;QACV,QAAQ,CAAC,UAAU,EAAE,qBAAqB,GAAG,IAAI,CAAC;KACnD,CAAC;IACF;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,YAAY,EACnB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAyDR"}
@@ -39,10 +39,33 @@ export declare function redactedRef(ref: ContextRef): {
39
39
  sha256: string;
40
40
  bytes: number;
41
41
  };
42
+ /** Claves prohibidas por transportar potencialmente contenido crudo. */
43
+ export declare const FORBIDDEN_RAW_KEYS: ReadonlySet<string>;
42
44
  /**
43
45
  * Recorre una estructura y lanza `RedactionError` si encuentra alguna clave de
44
46
  * contenido crudo. Guard barato para journal/snapshots/telemetría; no valida
45
47
  * esquema, solo ausencia de campos crudos.
46
48
  */
47
49
  export declare function assertReferenceOnly(value: unknown): void;
50
+ /** Result of a counting privacy scan. */
51
+ export type PrivacyScanResult = {
52
+ /** Number of top-level structures scanned (the denominator). */
53
+ readonly surfacesScanned: number;
54
+ /**
55
+ * Total forbidden-key occurrences across all surfaces. Zero means the
56
+ * scanner ran, examined the surfaces, and found nothing forbidden.
57
+ */
58
+ readonly rawFindings: number;
59
+ };
60
+ /**
61
+ * Counting privacy scanner. Walks one or more structures and returns both the
62
+ * number of surfaces examined and the total forbidden-key findings, without
63
+ * throwing.
64
+ *
65
+ * **Surface definition:** one surface = one top-level value passed in the
66
+ * `surfaces` array. In soak context, this is the trace being scanned — one
67
+ * trace per observation. The definition is deliberately not inflatable: it
68
+ * counts logical units of work, not internal leaves.
69
+ */
70
+ export declare function scanReferenceOnly(surfaces: readonly unknown[]): PrivacyScanResult;
48
71
  //# sourceMappingURL=redaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"redaction.d.ts","sourceRoot":"","sources":["../../src/context/redaction.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE1D;;;;;;;;;GASG;AAEH,mEAAmE;AACnE,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;gBAET,GAAG,EAAE,MAAM;CAMxB;AAED,2DAA2D;AAC3D,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,qEAAqE;AACrE,MAAM,MAAM,MAAM,GAAG;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,2EAA2E;AAC3E,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK/C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,CAAC,EAAE,UAAU,GACf,aAAa,CAKf;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,GAAG;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAEA;AAgBD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAkBxD"}
1
+ {"version":3,"file":"redaction.d.ts","sourceRoot":"","sources":["../../src/context/redaction.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE1D;;;;;;;;;GASG;AAEH,mEAAmE;AACnE,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAErB,YAAY,GAAG,EAAE,MAAM,EAKtB;CACF;AAED,2DAA2D;AAC3D,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,qEAAqE;AACrE,MAAM,MAAM,MAAM,GAAG;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,2EAA2E;AAC3E,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK/C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,CAAC,EAAE,UAAU,GACf,aAAa,CAKf;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,GAAG;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAEA;AAED,wEAAwE;AACxE,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAWjD,CAAC;AA+BH;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAIxD;AAED,yCAAyC;AACzC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,gEAAgE;IAChE,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,SAAS,OAAO,EAAE,GAC3B,iBAAiB,CASnB"}
@@ -14,8 +14,8 @@ import { z } from "zod";
14
14
  */
15
15
  /** Clase de privacidad de un artefacto o contrato de contexto. */
16
16
  export declare const PrivacyClassSchema: z.ZodEnum<{
17
- public: "public";
18
17
  internal: "internal";
18
+ public: "public";
19
19
  sensitive: "sensitive";
20
20
  }>;
21
21
  export type PrivacyClass = z.infer<typeof PrivacyClassSchema>;
@@ -74,8 +74,8 @@ export declare const ArtifactManifestSchema: z.ZodObject<{
74
74
  version: z.ZodLiteral<1>;
75
75
  taskID: z.ZodString;
76
76
  privacyClass: z.ZodEnum<{
77
- public: "public";
78
77
  internal: "internal";
78
+ public: "public";
79
79
  sensitive: "sensitive";
80
80
  }>;
81
81
  entries: z.ZodArray<z.ZodObject<{
@@ -105,8 +105,8 @@ export declare const NodeContextContractSchema: z.ZodObject<{
105
105
  mediaType: z.ZodOptional<z.ZodString>;
106
106
  }, z.core.$strict>>;
107
107
  privacyClass: z.ZodEnum<{
108
- public: "public";
109
108
  internal: "internal";
109
+ public: "public";
110
110
  sensitive: "sensitive";
111
111
  }>;
112
112
  maxInputTokens: z.ZodOptional<z.ZodNumber>;