@cleocode/contracts 2026.6.6 → 2026.6.8

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 (55) hide show
  1. package/dist/__tests__/operation-def.test.js.map +1 -1
  2. package/dist/db-recovery.d.ts +63 -0
  3. package/dist/db-recovery.d.ts.map +1 -1
  4. package/dist/dispatch/operation-def.d.ts +42 -0
  5. package/dist/dispatch/operation-def.d.ts.map +1 -1
  6. package/dist/dispatch/operations-registry.d.ts.map +1 -1
  7. package/dist/dispatch/operations-registry.js +7 -1
  8. package/dist/dispatch/operations-registry.js.map +1 -1
  9. package/dist/docs/provenance.d.ts +6 -2
  10. package/dist/docs/provenance.d.ts.map +1 -1
  11. package/dist/docs/provenance.js +1 -0
  12. package/dist/docs/provenance.js.map +1 -1
  13. package/dist/docs/read.d.ts +148 -0
  14. package/dist/docs/read.d.ts.map +1 -0
  15. package/dist/docs/read.js +57 -0
  16. package/dist/docs/read.js.map +1 -0
  17. package/dist/index.d.ts +5 -1
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +2 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/llm/provider-profile.d.ts +54 -0
  22. package/dist/llm/provider-profile.d.ts.map +1 -1
  23. package/dist/operations/__tests__/output-contracts.test.d.ts +16 -0
  24. package/dist/operations/__tests__/output-contracts.test.d.ts.map +1 -0
  25. package/dist/operations/__tests__/output-contracts.test.js +103 -0
  26. package/dist/operations/__tests__/output-contracts.test.js.map +1 -0
  27. package/dist/operations/docs.d.ts +13 -3
  28. package/dist/operations/docs.d.ts.map +1 -1
  29. package/dist/operations/docs.js.map +1 -1
  30. package/dist/operations/output-contract.d.ts +127 -0
  31. package/dist/operations/output-contract.d.ts.map +1 -0
  32. package/dist/operations/output-contract.js +41 -0
  33. package/dist/operations/output-contract.js.map +1 -0
  34. package/dist/operations/output-contracts-data.d.ts +35 -0
  35. package/dist/operations/output-contracts-data.d.ts.map +1 -0
  36. package/dist/operations/output-contracts-data.js +328 -0
  37. package/dist/operations/output-contracts-data.js.map +1 -0
  38. package/dist/operations/tasks.d.ts +14 -4
  39. package/dist/operations/tasks.d.ts.map +1 -1
  40. package/dist/operations/tasks.js.map +1 -1
  41. package/package.json +2 -2
  42. package/src/__tests__/__snapshots__/operations-registry.test.ts.snap +1 -1
  43. package/src/__tests__/operation-def.test.ts +5 -0
  44. package/src/db-recovery.ts +65 -0
  45. package/src/dispatch/operation-def.ts +44 -0
  46. package/src/dispatch/operations-registry.ts +7 -1
  47. package/src/docs/provenance.ts +4 -1
  48. package/src/docs/read.ts +131 -0
  49. package/src/index.ts +19 -0
  50. package/src/llm/provider-profile.ts +59 -0
  51. package/src/operations/__tests__/output-contracts.test.ts +125 -0
  52. package/src/operations/docs.ts +13 -3
  53. package/src/operations/output-contract.ts +140 -0
  54. package/src/operations/output-contracts-data.ts +356 -0
  55. package/src/operations/tasks.ts +14 -4
@@ -1 +1 @@
1
- {"version":3,"file":"operation-def.test.js","sourceRoot":"","sources":["../../src/__tests__/operation-def.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AA6D5D,uEAAuE;AAEvE,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,MAAM,GAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,KAAK,GAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACpD,sEAAsE;QACtE,qDAAqD;QACrD,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,0EAA0E;QAC1E,uEAAuE;QACvE,2DAA2D;QAC3D,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAChD,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAClD,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,MAAM,GAAG,GAAiB;YACxB,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,OAAO;YACf,SAAS,EAAE,MAAM;YACjB,WAAW,EAAE,oBAAoB;YACjC,IAAI,EAAE,CAAC;YACP,UAAU,EAAE,IAAI;YAChB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,CAAC,QAAQ,CAAC;SAC3B,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAChF,MAAM,GAAG,GAAiB;YACxB,OAAO,EAAE,QAAQ;YACjB,MAAM,EAAE,OAAO;YACf,SAAS,EAAE,KAAK;YAChB,WAAW,EAAE,oBAAoB;YACjC,IAAI,EAAE,CAAC;YACP,UAAU,EAAE,KAAK;YACjB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,CAAC,OAAO,CAAC;YACzB,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,mBAAmB;iBACjC;aACF;SACF,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,GAAG,GAAiB;YACxB,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,QAAQ;YACnB,WAAW,EAAE,wBAAwB;YACrC,IAAI,EAAE,CAAC;YACP,UAAU,EAAE,IAAI;YAChB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,EAAE;SACnB,CAAC;QACF,MAAM,CAAC,GAAe;YACpB,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,QAAQ;YACnB,GAAG;SACJ,CAAC;QACF,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,mEAAmE;IACnE,mEAAmE;IACnE,kCAAkC;IAClC,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,MAAM,GAMR,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"operation-def.test.js","sourceRoot":"","sources":["../../src/__tests__/operation-def.test.ts"],"names":[],"mappings":"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"}
@@ -138,4 +138,67 @@ export interface BackupRecoverResult {
138
138
  */
139
139
  dryRun: boolean;
140
140
  }
141
+ /**
142
+ * Per-role outcome of a `cleo doctor repair` pass (T11829 · DHQ-060).
143
+ *
144
+ * `doctor repair` first PROBES each role's live DB via `PRAGMA quick_check`
145
+ * (the same probe the recovery pipeline runs on snapshot candidates) and only
146
+ * invokes the {@link recoverMalformedDb} → quarantine → restore-from-snapshot →
147
+ * verify pipeline for roles that are actually malformed. This record captures
148
+ * what was observed and done for one role.
149
+ *
150
+ * @task T11829
151
+ * @epic T11833
152
+ * @saga T11242
153
+ * @public
154
+ */
155
+ export interface DoctorRepairRoleResult {
156
+ /** Canonical role inspected. */
157
+ role: DbRole;
158
+ /** Absolute path to the role's live DB file (resolved from `DB_INVENTORY`). */
159
+ dbPath: string;
160
+ /** `true` when the live DB file exists on disk. */
161
+ present: boolean;
162
+ /**
163
+ * `true` when the live DB passed `PRAGMA quick_check` (or was absent) — i.e.
164
+ * NO repair was needed. `false` when corruption was detected.
165
+ */
166
+ healthy: boolean;
167
+ /**
168
+ * `'skipped'` — healthy or absent, nothing done;
169
+ * `'would-repair'` — `--dry-run`, corruption detected, repair NOT performed;
170
+ * `'repaired'` — corruption detected and snapshot restore succeeded;
171
+ * `'failed'` — corruption detected but recovery could not complete.
172
+ */
173
+ action: 'skipped' | 'would-repair' | 'repaired' | 'failed';
174
+ /** Absolute path to the snapshot restored (or that would be), when applicable. */
175
+ restoredFrom: string | null;
176
+ /** Absolute path to the quarantined corrupt DB, when a repair was performed. */
177
+ quarantinedTo: string | null;
178
+ /** Approximate data-loss window in hours, when a snapshot timestamp was parsed. */
179
+ dataLossWindowHours: number | null;
180
+ /** Human-readable detail (probe outcome, error reason, or restore summary). */
181
+ detail: string;
182
+ }
183
+ /**
184
+ * Aggregate result of a `cleo doctor repair` invocation across one or more roles
185
+ * (T11829 · DHQ-060).
186
+ *
187
+ * @task T11829
188
+ * @epic T11833
189
+ * @saga T11242
190
+ * @public
191
+ */
192
+ export interface DoctorRepairResult {
193
+ /** `true` when the run was a `--dry-run` (no files mutated). */
194
+ dryRun: boolean;
195
+ /** Per-role outcomes. */
196
+ roles: DoctorRepairRoleResult[];
197
+ /** Count of roles found malformed (`!healthy`). */
198
+ malformedCount: number;
199
+ /** Count of roles actually repaired this run. */
200
+ repairedCount: number;
201
+ /** Count of roles where a needed repair FAILED. */
202
+ failedCount: number;
203
+ }
141
204
  //# sourceMappingURL=db-recovery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"db-recovery.d.ts","sourceRoot":"","sources":["../src/db-recovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;AAE3E;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,gBAAgB;IAC/B,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;;;OAIG;IACH,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC;;;;;OAKG;IACH,SAAS,EAAE,oBAAoB,CAAC;IAChC,6DAA6D;IAC7D,WAAW,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,mBAAmB;IAClC,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,aAAa,EAAE,oBAAoB,CAAC;IACpC;;;;OAIG;IACH,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,+DAA+D;IAC/D,WAAW,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,MAAM,EAAE,OAAO,CAAC;CACjB"}
1
+ {"version":3,"file":"db-recovery.d.ts","sourceRoot":"","sources":["../src/db-recovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;AAE3E;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,gBAAgB;IAC/B,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;;;OAIG;IACH,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC;;;;;OAKG;IACH,SAAS,EAAE,oBAAoB,CAAC;IAChC,6DAA6D;IAC7D,WAAW,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,mBAAmB;IAClC,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,aAAa,EAAE,oBAAoB,CAAC;IACpC;;;;OAIG;IACH,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,+DAA+D;IAC/D,WAAW,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,sBAAsB;IACrC,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,OAAO,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,MAAM,EAAE,SAAS,GAAG,cAAc,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC3D,kFAAkF;IAClF,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,gFAAgF;IAChF,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,mFAAmF;IACnF,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB;IACjC,gEAAgE;IAChE,MAAM,EAAE,OAAO,CAAC;IAChB,yBAAyB;IACzB,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAChC,mDAAmD;IACnD,cAAc,EAAE,MAAM,CAAC;IACvB,iDAAiD;IACjD,aAAa,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;CACrB"}
@@ -27,6 +27,8 @@
27
27
  *
28
28
  * @since SG-ARCH-SOLID Saga T9831 · E-CONTRACTS-FOUNDATION T9832 · T9954 (Phase 0b)
29
29
  */
30
+ import type { OperationInputContract } from '../operations/input-contract.js';
31
+ import type { OperationOutputContract } from '../operations/output-contract.js';
30
32
  import type { ParamDef } from '../operations/params.js';
31
33
  import type { CanonicalDomain, Gateway, Tier } from './identity.js';
32
34
  export type { CanonicalDomain, Gateway, ParamDef, Tier };
@@ -84,6 +86,46 @@ export interface OperationDef {
84
86
  * @task T11448
85
87
  */
86
88
  mcpExposed?: boolean;
89
+ /**
90
+ * Schema-first INPUT contract for this operation (DHQ-033 / T11692).
91
+ *
92
+ * Declares the accepted request payload shape as a JSON Schema draft-07
93
+ * document with worked examples. When present, the dispatch/CLI layer
94
+ * validates the incoming payload against `inputSchema.schema` and rejects
95
+ * unknown keys LOUDLY (the schemas set `additionalProperties: false`), so a
96
+ * typo'd or unsupported field — e.g. passing `relates` to `tasks.add-batch`,
97
+ * which only accepts `depends` — fails fast with a typed {@link ValidationError}
98
+ * instead of being silently dropped.
99
+ *
100
+ * **Optional / incremental**: absent means "no declared input contract yet".
101
+ * The canonical SSoT registry of contracts is keyed by `<domain>.<operation>`
102
+ * (INPUT_CONTRACTS in core); this inline field lets a definition carry its
103
+ * own contract and is resolved by the SDK `describeOperation` when set.
104
+ *
105
+ * @see OperationInputContract
106
+ * @task T11692 — DHQ-033 input shape SSoT
107
+ */
108
+ inputSchema?: OperationInputContract<unknown>;
109
+ /**
110
+ * Schema-first OUTPUT contract for this operation (DHQ-057 / T11692).
111
+ *
112
+ * Declares the shape of the LAFS envelope's `data` payload as a JSON Schema
113
+ * draft-07 document, PLUS the curated list of valid `--field` JSON pointers.
114
+ * This is the SSoT that lets an agent predict the result shape instead of
115
+ * hand-sniffing it per verb — e.g. it encodes that `tasks.show` returns the
116
+ * task under `task`, so the correct pointer is `/data/task/title` and NOT
117
+ * `/data/title` (the latter is the exact `E_FIELD_NOT_FOUND` failure this
118
+ * field exists to prevent).
119
+ *
120
+ * **Optional / incremental**: absent means "no declared output contract yet".
121
+ * The canonical SSoT registry is keyed by `<domain>.<operation>`
122
+ * (OUTPUT_CONTRACTS in contracts); this inline field lets a definition carry
123
+ * its own contract and is resolved by the SDK `describeOperation` when set.
124
+ *
125
+ * @see OperationOutputContract
126
+ * @task T11692 — DHQ-057 output shape SSoT
127
+ */
128
+ outputSchema?: OperationOutputContract;
87
129
  }
88
130
  /**
89
131
  * Resolution output for a dispatch request.
@@ -1 +1 @@
1
- {"version":3,"file":"operation-def.d.ts","sourceRoot":"","sources":["../../src/dispatch/operation-def.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAKpE,YAAY,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAIzD;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,YAAY;IAC3B,8CAA8C;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,sDAAsD;IACtD,MAAM,EAAE,eAAe,CAAC;IACxB,+DAA+D;IAC/D,SAAS,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,IAAI,EAAE,IAAI,CAAC;IACX,8CAA8C;IAC9C,UAAU,EAAE,OAAO,CAAC;IACpB,yDAAyD;IACzD,eAAe,EAAE,OAAO,CAAC;IACzB,kEAAkE;IAClE,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IACpB;;;;;;;;;;;;;;OAcG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAID;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,UAAU;IACzB,4BAA4B;IAC5B,MAAM,EAAE,eAAe,CAAC;IACxB,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,GAAG,EAAE,YAAY,CAAC;CACnB"}
1
+ {"version":3,"file":"operation-def.d.ts","sourceRoot":"","sources":["../../src/dispatch/operation-def.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAKpE,YAAY,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAIzD;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,YAAY;IAC3B,8CAA8C;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,sDAAsD;IACtD,MAAM,EAAE,eAAe,CAAC;IACxB,+DAA+D;IAC/D,SAAS,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,IAAI,EAAE,IAAI,CAAC;IACX,8CAA8C;IAC9C,UAAU,EAAE,OAAO,CAAC;IACpB,yDAAyD;IACzD,eAAe,EAAE,OAAO,CAAC;IACzB,kEAAkE;IAClE,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IACpB;;;;;;;;;;;;;;OAcG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;;;;;;;;;;;;;;;OAkBG;IACH,WAAW,CAAC,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAE9C;;;;;;;;;;;;;;;;;;OAkBG;IACH,YAAY,CAAC,EAAE,uBAAuB,CAAC;CACxC;AAID;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,UAAU;IACzB,4BAA4B;IAC5B,MAAM,EAAE,eAAe,CAAC;IACxB,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,GAAG,EAAE,YAAY,CAAC;CACnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"operations-registry.d.ts","sourceRoot":"","sources":["../../src/dispatch/operations-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAEjG,YAAY,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAMvE;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,YAAY,GAAG,YAAY,CAExD;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,CAE1F;AAMD,6DAA6D;AAC7D,eAAO,MAAM,UAAU,EAAE,YAAY,EAusRpC,CAAC"}
1
+ {"version":3,"file":"operations-registry.d.ts","sourceRoot":"","sources":["../../src/dispatch/operations-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAEjG,YAAY,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAMvE;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,YAAY,GAAG,YAAY,CAExD;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,CAE1F;AAMD,6DAA6D;AAC7D,eAAO,MAAM,UAAU,EAAE,YAAY,EA6sRpC,CAAC"}
@@ -6916,7 +6916,7 @@ export const OPERATIONS = [
6916
6916
  gateway: 'mutate',
6917
6917
  domain: 'docs',
6918
6918
  operation: 'add',
6919
- description: 'docs.add (mutate) — attach a local file or URL to a CLEO owner entity (task, session, observation)',
6919
+ description: 'docs.add (mutate) — attach a local file, URL, or inline content to a CLEO owner entity (task, session, observation)',
6920
6920
  tier: 1,
6921
6921
  idempotent: false,
6922
6922
  sessionRequired: false,
@@ -6940,6 +6940,12 @@ export const OPERATIONS = [
6940
6940
  required: false,
6941
6941
  description: 'Remote URL to attach',
6942
6942
  },
6943
+ {
6944
+ name: 'content',
6945
+ type: 'string',
6946
+ required: false,
6947
+ description: 'Inline document body (T10965); mutually exclusive with file/url',
6948
+ },
6943
6949
  {
6944
6950
  name: 'desc',
6945
6951
  type: 'string',