@tacuchi/agent-workflow-cli 21.0.0 → 21.3.0

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 (170) hide show
  1. package/README.md +3 -2
  2. package/dist/adapters/git-cli.js +12 -7
  3. package/dist/adapters/git-cli.js.map +1 -1
  4. package/dist/application/capability/compose.js +161 -0
  5. package/dist/application/capability/compose.js.map +1 -0
  6. package/dist/application/capability/descriptor-loader.js +109 -0
  7. package/dist/application/capability/descriptor-loader.js.map +1 -0
  8. package/dist/application/capability/design-handler.js +299 -0
  9. package/dist/application/capability/design-handler.js.map +1 -0
  10. package/dist/application/capability/dispatcher.js +312 -0
  11. package/dist/application/capability/dispatcher.js.map +1 -0
  12. package/dist/application/capability/durable-effect.js +220 -0
  13. package/dist/application/capability/durable-effect.js.map +1 -0
  14. package/dist/application/capability/installed-inventory.js +168 -0
  15. package/dist/application/capability/installed-inventory.js.map +1 -0
  16. package/dist/application/capability/readiness.js +204 -0
  17. package/dist/application/capability/readiness.js.map +1 -0
  18. package/dist/application/capability/resolution.js +264 -0
  19. package/dist/application/capability/resolution.js.map +1 -0
  20. package/dist/application/capability/wrapper.js +195 -0
  21. package/dist/application/capability/wrapper.js.map +1 -0
  22. package/dist/application/context/manifest.js +11 -5
  23. package/dist/application/context/manifest.js.map +1 -1
  24. package/dist/application/context/measure.js +5 -2
  25. package/dist/application/context/measure.js.map +1 -1
  26. package/dist/application/context/plan-service.js +6 -6
  27. package/dist/application/context/plan-service.js.map +1 -1
  28. package/dist/application/design/design-bundle-service.js +148 -0
  29. package/dist/application/design/design-bundle-service.js.map +1 -0
  30. package/dist/application/design/design-proposal-service.js +69 -0
  31. package/dist/application/design/design-proposal-service.js.map +1 -0
  32. package/dist/application/design/design-publish-service.js +275 -7
  33. package/dist/application/design/design-publish-service.js.map +1 -1
  34. package/dist/application/design/design-record-service.js +100 -0
  35. package/dist/application/design/design-record-service.js.map +1 -0
  36. package/dist/application/flow/advance.js +533 -0
  37. package/dist/application/flow/advance.js.map +1 -0
  38. package/dist/application/flow/flow-service.js +65 -0
  39. package/dist/application/flow/flow-service.js.map +1 -0
  40. package/dist/application/flow/run-projection.js +80 -0
  41. package/dist/application/flow/run-projection.js.map +1 -0
  42. package/dist/application/flow/run-state-service.js +107 -0
  43. package/dist/application/flow/run-state-service.js.map +1 -0
  44. package/dist/application/flow/submit.js +423 -0
  45. package/dist/application/flow/submit.js.map +1 -0
  46. package/dist/application/markdown.js +16 -2
  47. package/dist/application/markdown.js.map +1 -1
  48. package/dist/application/resume-service.js +23 -10
  49. package/dist/application/resume-service.js.map +1 -1
  50. package/dist/application/self/hooks-toml.js +137 -17
  51. package/dist/application/self/hooks-toml.js.map +1 -1
  52. package/dist/application/self/host-states.js +87 -1
  53. package/dist/application/self/host-states.js.map +1 -1
  54. package/dist/application/self/install-hooks.js +62 -6
  55. package/dist/application/self/install-hooks.js.map +1 -1
  56. package/dist/application/self/install-skill.js +37 -6
  57. package/dist/application/self/install-skill.js.map +1 -1
  58. package/dist/application/self/uninstall.js +21 -0
  59. package/dist/application/self/uninstall.js.map +1 -1
  60. package/dist/application/skills-resolver-service.js +8 -2
  61. package/dist/application/skills-resolver-service.js.map +1 -1
  62. package/dist/application/status-service.js +4 -1
  63. package/dist/application/status-service.js.map +1 -1
  64. package/dist/application/workline-index-service.js +15 -2
  65. package/dist/application/workline-index-service.js.map +1 -1
  66. package/dist/application/workspace-init-service.js +13 -1
  67. package/dist/application/workspace-init-service.js.map +1 -1
  68. package/dist/cli/commands/capability.js +182 -0
  69. package/dist/cli/commands/capability.js.map +1 -0
  70. package/dist/cli/commands/flow.js +71 -0
  71. package/dist/cli/commands/flow.js.map +1 -0
  72. package/dist/cli/commands/index.js +4 -0
  73. package/dist/cli/commands/index.js.map +1 -1
  74. package/dist/cli/commands/skills.js +55 -2
  75. package/dist/cli/commands/skills.js.map +1 -1
  76. package/dist/cli/commands/status.js +5 -0
  77. package/dist/cli/commands/status.js.map +1 -1
  78. package/dist/cli/help-groups.js +6 -0
  79. package/dist/cli/help-groups.js.map +1 -1
  80. package/dist/cli/parser.js +6 -0
  81. package/dist/cli/parser.js.map +1 -1
  82. package/dist/cli/tui/components/host-admin-section.js +14 -2
  83. package/dist/cli/tui/components/host-admin-section.js.map +1 -1
  84. package/dist/cli/tui/data/workflow-content.js +13 -1
  85. package/dist/cli/tui/data/workflow-content.js.map +1 -1
  86. package/dist/cli/tui/tabs/workflow-tab.js +8 -1
  87. package/dist/cli/tui/tabs/workflow-tab.js.map +1 -1
  88. package/dist/domain/capability/descriptor.js +553 -0
  89. package/dist/domain/capability/descriptor.js.map +1 -0
  90. package/dist/domain/capability/effects.js +90 -0
  91. package/dist/domain/capability/effects.js.map +1 -0
  92. package/dist/domain/capability/protocol.js +494 -0
  93. package/dist/domain/capability/protocol.js.map +1 -0
  94. package/dist/domain/contract-reader.js +84 -0
  95. package/dist/domain/contract-reader.js.map +1 -0
  96. package/dist/domain/design/adapter.js +161 -0
  97. package/dist/domain/design/adapter.js.map +1 -0
  98. package/dist/domain/design/artifact.js +148 -4
  99. package/dist/domain/design/artifact.js.map +1 -1
  100. package/dist/domain/design/capability.js +263 -4
  101. package/dist/domain/design/capability.js.map +1 -1
  102. package/dist/domain/design/direct.js +108 -0
  103. package/dist/domain/design/direct.js.map +1 -0
  104. package/dist/domain/design/external-send.js +65 -0
  105. package/dist/domain/design/external-send.js.map +1 -0
  106. package/dist/domain/design/maturity.js +71 -0
  107. package/dist/domain/design/maturity.js.map +1 -1
  108. package/dist/domain/design/offline.js +92 -0
  109. package/dist/domain/design/offline.js.map +1 -0
  110. package/dist/domain/design/profiles.js +212 -0
  111. package/dist/domain/design/profiles.js.map +1 -0
  112. package/dist/domain/design/proposal.js +234 -0
  113. package/dist/domain/design/proposal.js.map +1 -0
  114. package/dist/domain/design/render-bundle.js +0 -0
  115. package/dist/domain/design/render-bundle.js.map +1 -0
  116. package/dist/domain/design/rendition.js +472 -0
  117. package/dist/domain/design/rendition.js.map +1 -0
  118. package/dist/domain/design/sources.js +180 -0
  119. package/dist/domain/design/sources.js.map +1 -0
  120. package/dist/domain/design/validation.js +12 -68
  121. package/dist/domain/design/validation.js.map +1 -1
  122. package/dist/domain/design/visual-evidence.js +155 -0
  123. package/dist/domain/design/visual-evidence.js.map +1 -0
  124. package/dist/domain/flow/answer.js +459 -0
  125. package/dist/domain/flow/answer.js.map +1 -0
  126. package/dist/domain/flow/authority.js +2338 -0
  127. package/dist/domain/flow/authority.js.map +1 -0
  128. package/dist/domain/flow/authorization.js +62 -0
  129. package/dist/domain/flow/authorization.js.map +1 -0
  130. package/dist/domain/flow/directive.js +421 -0
  131. package/dist/domain/flow/directive.js.map +1 -0
  132. package/dist/domain/flow/rules.js +140 -0
  133. package/dist/domain/flow/rules.js.map +1 -0
  134. package/dist/domain/flow/run-state.js +317 -0
  135. package/dist/domain/flow/run-state.js.map +1 -0
  136. package/dist/domain/harnesses.js +124 -4
  137. package/dist/domain/harnesses.js.map +1 -1
  138. package/dist/domain/host-verification.js +8 -8
  139. package/dist/domain/skills.js +13 -14
  140. package/dist/domain/skills.js.map +1 -1
  141. package/dist/domain/structured-choice-stamp.js +106 -0
  142. package/dist/domain/structured-choice-stamp.js.map +1 -0
  143. package/package.json +1 -1
  144. package/skills/w/SKILL.md +5 -5
  145. package/skills/w/context/MANIFEST.json +42 -1
  146. package/skills/w/harness/HARNESS.md +30 -4
  147. package/skills/w/loops/CHASSIS.md +11 -20
  148. package/skills/w/loops/CODE-POLICIES.md +9 -15
  149. package/skills/w/loops/plan-exec-loop/LOOP.md +11 -13
  150. package/skills/w/loops/plan-new-loop/LOOP.md +6 -4
  151. package/skills/w/loops/plan-refine-loop/LOOP.md +5 -3
  152. package/skills/w/loops/quick-loop/LOOP.md +18 -26
  153. package/skills/w/loops/spec-refine-loop/LOOP.md +14 -18
  154. package/skills/w/modules/COMPACTION.md +2 -6
  155. package/skills/w/modules/DB-SCRIPTS-ONLY.md +2 -0
  156. package/skills/w/modules/DESIGN-REFERENCES.md +15 -11
  157. package/skills/w/modules/IDEATION-GATE.md +3 -3
  158. package/skills/w/modules/PLAN-EXECUTION-BATCHES.md +17 -36
  159. package/skills/w/modules/PLAN-INPUT.md +5 -3
  160. package/skills/w/modules/PLAN-REFINE-SPLIT.md +3 -1
  161. package/skills/w/modules/PLAN-SPLIT-GATE.md +7 -5
  162. package/skills/w/modules/PROMPT-CONTINUITY.md +3 -1
  163. package/skills/w/modules/SPEC-CHANGE-SHAPE.md +4 -4
  164. package/skills/w/roles/README.md +2 -0
  165. package/skills/w/roles/design/CONTRACT.md +80 -0
  166. package/skills/w/roles/design/ROLE.md +7 -0
  167. package/skills/w/schemas/capability-descriptor.schema.json +260 -0
  168. package/skills/w/schemas/design/design-render-bundle.v1.schema.json +191 -0
  169. package/skills/w/schemas/design/design-rendition.v1.schema.json +232 -0
  170. package/skills/w/schemas/design/ui-screen.v1.schema.json +29 -1
@@ -0,0 +1,264 @@
1
+ /**
2
+ * What will actually run, and who gets credit for it.
3
+ *
4
+ * The resolution answers three questions that used to have no answer at all:
5
+ * whether the capability is available, whether an improvement contributes, and —
6
+ * when one does — WHICH exact instance, pinned so it cannot change mid-
7
+ * conversation. Everything here is built so that the honest answer is always
8
+ * reachable:
9
+ *
10
+ * - **No improvement is the ordinary case, not a degradation.** A machine with
11
+ * nothing extra installed runs the floor and reports `ready`. Calling that
12
+ * "degraded" would make the normal state look broken and hide the real one.
13
+ * - **A degradation names its cause and its loss, and attributes nothing.** When
14
+ * a selection cannot be identified, the run does not guess who helped; it says
15
+ * what it could not verify.
16
+ * - **A floor is what keeps a missing skill from blocking a flow.** A capability
17
+ * a core gate needs declares `floor.builtin`; one that does not may be
18
+ * `unavailable`, and then it blocks ITS operations and nothing else.
19
+ */
20
+ import { findInstalled } from "./installed-inventory.js";
21
+ export function resolveCapability(input) {
22
+ const { descriptor, binding } = input;
23
+ const operations = availability(descriptor, binding);
24
+ if (binding.state === "off") {
25
+ return {
26
+ capability: descriptor.name,
27
+ state: "disabled",
28
+ // The operations `off` leaves alive still run on the floor. Reporting
29
+ // `floor: false` here would say nothing implements `validate`, which is
30
+ // exactly the consumption `off` is required to preserve.
31
+ floor: descriptor.floor.builtin && operations.some((o) => o.available),
32
+ selection: [],
33
+ degradations: [],
34
+ operations,
35
+ reason: binding.reason,
36
+ action: `para reactivarla, quitá el binding o ponelo en '${descriptor.name}'`,
37
+ };
38
+ }
39
+ if (binding.state === "misconfigured") {
40
+ return degradeToFloor(input, operations, {
41
+ cause: "invalid_binding",
42
+ loss: binding.reason ?? "el binding no selecciona una instancia identificable",
43
+ action: binding.action,
44
+ });
45
+ }
46
+ const contributors = input.hostSelection?.contributors ?? [];
47
+ if (descriptor.floor.improvements === "none" || contributors.length === 0) {
48
+ // Nothing extra selected. Not a loss — there was nothing to lose.
49
+ return floorOnly(descriptor, operations);
50
+ }
51
+ const verified = verifyContributors(input, contributors);
52
+ if (verified.degradation !== null) {
53
+ return degradeToFloor(input, operations, {
54
+ cause: verified.degradation.cause,
55
+ loss: verified.degradation.loss,
56
+ action: verified.degradation.action,
57
+ });
58
+ }
59
+ return {
60
+ capability: descriptor.name,
61
+ state: "ready",
62
+ floor: false,
63
+ selection: verified.selection,
64
+ degradations: [],
65
+ operations,
66
+ reason: null,
67
+ action: null,
68
+ };
69
+ }
70
+ function availability(descriptor, binding) {
71
+ return descriptor.operations.map((op) => operationState(op, binding));
72
+ }
73
+ function operationState(op, binding) {
74
+ if (binding.state === "off" && op.off === "blocked") {
75
+ return {
76
+ operation: op.name,
77
+ available: false,
78
+ // `off` is not reverted by a host, a wrapper or a legacy name; the only
79
+ // way back is the binding itself.
80
+ reason: "la capacidad está en off y esta operación queda bloqueada",
81
+ };
82
+ }
83
+ return { operation: op.name, available: true, reason: null };
84
+ }
85
+ function floorOnly(descriptor, operations) {
86
+ if (descriptor.floor.builtin) {
87
+ return {
88
+ capability: descriptor.name,
89
+ state: "ready",
90
+ floor: true,
91
+ selection: [],
92
+ degradations: [],
93
+ operations,
94
+ reason: null,
95
+ action: null,
96
+ };
97
+ }
98
+ // Feature-only with nothing installed. It blocks ITS operations — the flows
99
+ // that never asked for it keep working, which is the whole isolation rule.
100
+ return {
101
+ capability: descriptor.name,
102
+ state: "unavailable",
103
+ floor: false,
104
+ selection: [],
105
+ degradations: [],
106
+ operations: operations.map((o) => ({
107
+ operation: o.operation,
108
+ available: false,
109
+ reason: `'${descriptor.name}' no tiene floor incorporado y no hay ninguna instancia conformante`,
110
+ })),
111
+ reason: `'${descriptor.name}' es una capacidad sin floor y no hay implementación instalada`,
112
+ action: `instalá una skill conformante con '${descriptor.name}' o dejá de invocar esa feature`,
113
+ };
114
+ }
115
+ /**
116
+ * Fall back — but only where falling back is safe.
117
+ *
118
+ * With a built-in floor the run continues and the receipt carries the cause and
119
+ * the loss. Without one there is nothing safe to fall to, so the resolution says
120
+ * `misconfigured` instead of quietly producing a lesser result under the same
121
+ * name.
122
+ */
123
+ function degradeToFloor(input, operations, seed) {
124
+ const { descriptor } = input;
125
+ const degradations = [{ cause: seed.cause, loss: seed.loss }];
126
+ const declared = descriptor.degradations.some((d) => d.cause === seed.cause);
127
+ if (!descriptor.floor.builtin || !declared) {
128
+ return {
129
+ capability: descriptor.name,
130
+ state: "misconfigured",
131
+ floor: false,
132
+ selection: [],
133
+ degradations,
134
+ operations: operations.map((o) => ({ ...o, available: false, reason: seed.loss })),
135
+ reason: seed.loss,
136
+ action: seed.action ?? `revisá la configuración de '${descriptor.name}'`,
137
+ };
138
+ }
139
+ return {
140
+ capability: descriptor.name,
141
+ state: "degraded",
142
+ floor: true,
143
+ // Empty on purpose: the whole point of the degradation is that nothing
144
+ // verifiable contributed, so nothing gets credit.
145
+ selection: [],
146
+ degradations,
147
+ operations,
148
+ reason: seed.loss,
149
+ action: seed.action ?? "corré la operación con el floor o corregí la selección",
150
+ };
151
+ }
152
+ function verifyContributors(input, contributors) {
153
+ const selection = [];
154
+ const ordered = [...contributors].sort((a, b) => a.order - b.order);
155
+ for (const contributor of ordered) {
156
+ const installed = findInstalled(input.inventory, contributor.name);
157
+ const problem = identify(input, contributor, installed);
158
+ if (problem !== null)
159
+ return { selection: [], degradation: problem };
160
+ const instance = installed;
161
+ const location = instance.locations.find((l) => l.skillDir === contributor.locator) ?? instance.locations[0];
162
+ selection.push({
163
+ name: instance.name,
164
+ scope: location?.scope ?? "",
165
+ locator: location?.skillDir ?? "",
166
+ version: instance.version,
167
+ digest: instance.digest,
168
+ order: contributor.order,
169
+ });
170
+ }
171
+ return { selection, degradation: null };
172
+ }
173
+ /** Everything that can stop a declared contributor from being a real one. */
174
+ function identify(input, contributor, installed) {
175
+ if (installed === null) {
176
+ return {
177
+ cause: "opaque_selection",
178
+ loss: `el host declaró '${contributor.name}' y no hay ninguna instancia instalada con ese nombre`,
179
+ action: "instalá la skill declarada, o quitala de la selección del host",
180
+ };
181
+ }
182
+ if (installed.state === "misconfigured" || installed.digest === null) {
183
+ return {
184
+ cause: "opaque_selection",
185
+ loss: installed.failure?.message ?? `'${contributor.name}' no identifica una instancia exacta`,
186
+ action: installed.failure?.action ?? "dejá una sola instalación de ese nombre",
187
+ };
188
+ }
189
+ // Equivalent replicas are the same BYTES, not the same install. A name-only
190
+ // selection among several roots still cannot say which copy answered, and
191
+ // picking the first would be exactly the silent precedence there must not be.
192
+ const locators = installed.locations.map((l) => l.skillDir);
193
+ if (locators.length > 1 && !locators.includes(contributor.locator ?? "")) {
194
+ return {
195
+ cause: "opaque_selection",
196
+ loss: `'${contributor.name}' está instalada en ${locators.length} raíces y la selección no dice cuál contribuyó`,
197
+ action: `declará el locator de la instancia (${locators.join(", ")}), o dejá una sola instalación`,
198
+ };
199
+ }
200
+ if (contributor.digest != null && contributor.digest !== installed.digest) {
201
+ return {
202
+ cause: "digest_changed",
203
+ loss: `'${contributor.name}' cambió de bytes entre la selección del host y el inventario`,
204
+ action: "volvé a resolver la capacidad: la instancia dejó de ser la que se fijó",
205
+ };
206
+ }
207
+ return compatible(input, contributor, installed);
208
+ }
209
+ /**
210
+ * Installed is not compatible. The claim has to come from the improvement's own
211
+ * descriptor and has to match the capability being resolved — the operation
212
+ * included, because improving `render` says nothing about `create`.
213
+ */
214
+ function compatible(input, contributor, installed) {
215
+ const improves = installed.descriptor?.compatibility.improves ?? null;
216
+ const reject = (why) => ({
217
+ cause: "incompatible_improvement",
218
+ loss: `'${contributor.name}' ${why}`,
219
+ action: `corregí 'compatibility.improves' de '${contributor.name}', o sacala de la selección`,
220
+ });
221
+ if (improves === null) {
222
+ return reject(`no declara mejorar a '${input.descriptor.name}'`);
223
+ }
224
+ if (improves.capability !== input.descriptor.name) {
225
+ return reject(`declara mejorar a '${improves.capability}', no a '${input.descriptor.name}'`);
226
+ }
227
+ if (improves.contract_version !== input.descriptor.contract_version) {
228
+ return reject(`habla la versión de contrato ${improves.contract_version} y esta capacidad es la ${input.descriptor.contract_version}`);
229
+ }
230
+ const operation = input.operation ?? null;
231
+ if (operation !== null && !improves.operations.includes(operation)) {
232
+ return reject(`no declara mejorar la operación '${operation}'`);
233
+ }
234
+ return null;
235
+ }
236
+ export function pinSelection(resolution, descriptor) {
237
+ return {
238
+ capability: resolution.capability,
239
+ contract_version: descriptor.contract_version,
240
+ floor: resolution.floor,
241
+ instances: resolution.selection.map((s) => ({
242
+ name: s.name,
243
+ digest: s.digest,
244
+ order: s.order,
245
+ })),
246
+ };
247
+ }
248
+ export function checkPin(pin, inventory) {
249
+ for (const instance of pin.instances) {
250
+ const installed = findInstalled(inventory, instance.name);
251
+ if (installed?.digest === instance.digest)
252
+ continue;
253
+ return {
254
+ ok: false,
255
+ degradation: {
256
+ cause: "digest_changed",
257
+ loss: `'${instance.name}' ya no son los bytes que se fijaron al empezar la invocación`,
258
+ },
259
+ action: "volvé a empezar la invocación: la selección fijada dejó de existir tal cual",
260
+ };
261
+ }
262
+ return { ok: true };
263
+ }
264
+ //# sourceMappingURL=resolution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolution.js","sourceRoot":"","sources":["../../../src/application/capability/resolution.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,195 @@
1
+ /**
2
+ * The physical entrypoint: a top-level Agent Skill that IS the capability.
3
+ *
4
+ * Everything a host can load is a directory with a `SKILL.md`, so a capability
5
+ * that is only a paragraph of doctrine is a capability nobody can invoke. This
6
+ * module writes that directory — the instruction file plus the descriptor it
7
+ * points at — derived from the descriptor itself, so the wrapper and the
8
+ * contract cannot describe two different things.
9
+ *
10
+ * Ownership is fail-closed, and that is the whole safety story. A skill root is
11
+ * a SHARED namespace: the person may already have their own `design/` skill
12
+ * there, written by someone else, and it is not ours to overwrite or delete. So
13
+ * install and uninstall both refuse anything that does not carry our marker,
14
+ * preserve its bytes, and hand back an action instead of a surprise.
15
+ */
16
+ import { createHash } from "node:crypto";
17
+ import { mkdir, readFile, readdir, rm, writeFile } from "node:fs/promises";
18
+ import { join } from "node:path";
19
+ import { CAPABILITY_DESCRIPTOR_METADATA_KEY, } from "../../domain/capability/descriptor.js";
20
+ /**
21
+ * The ownership fingerprint, same idea as `COMMAND_SKILL_MARKER`: the wrapper
22
+ * proves it is ours by carrying this line, never by matching a name pattern. A
23
+ * skill root is shared, and a prefix is not proof of authorship.
24
+ */
25
+ export const CAPABILITY_SKILL_MARKER = "Capability skill wrapper (installed by `aw self install-skill`)";
26
+ export const CAPABILITY_DESCRIPTOR_FILE = "workline-capability.json";
27
+ /** The exact bytes published as the descriptor — the ones the digest seals. */
28
+ export function renderDescriptorJson(descriptor) {
29
+ return `${JSON.stringify(descriptor, null, 2)}\n`;
30
+ }
31
+ export function descriptorLocatorValue(descriptor) {
32
+ const digest = createHash("sha256")
33
+ .update(renderDescriptorJson(descriptor), "utf8")
34
+ .digest("hex");
35
+ return `${CAPABILITY_DESCRIPTOR_FILE}#sha256=${digest}`;
36
+ }
37
+ /**
38
+ * The instruction file, derived from the descriptor and nothing else.
39
+ *
40
+ * It says one thing: call the shared dispatcher. Restating the operations, the
41
+ * effects or the `off` policy here would be the second contractual description
42
+ * the whole layer exists to prevent — the model reads the descriptor next to it.
43
+ *
44
+ * `stamp` is the one exception, and it is not a second description of the
45
+ * capability: this file ends by saying a `needs_input` is answered right here, in
46
+ * the host's conversation, which makes it a place human boundaries are presented.
47
+ * A wrapper that says "ask here" without saying HOW to ask on this host leaves the
48
+ * question to be guessed. Absent (install target unknown, as in a unit test) the
49
+ * file is written exactly as before.
50
+ */
51
+ export function renderCapabilitySkill(descriptor, stamp) {
52
+ const operations = descriptor.operations.map((o) => `\`${o.name}\``).join(", ");
53
+ return [
54
+ "---",
55
+ `name: ${descriptor.name}`,
56
+ "description: >-",
57
+ ` ${descriptor.purpose}. Operaciones: ${descriptor.operations.map((o) => o.name).join(", ")}.`,
58
+ "metadata:",
59
+ ` ${CAPABILITY_DESCRIPTOR_METADATA_KEY}: "${descriptorLocatorValue(descriptor)}"`,
60
+ "---",
61
+ "",
62
+ `> ${CAPABILITY_SKILL_MARKER}. El contrato completo vive en \`./${CAPABILITY_DESCRIPTOR_FILE}\`; este archivo no lo repite.`,
63
+ "",
64
+ `# ${descriptor.name}`,
65
+ "",
66
+ `${descriptor.purpose}.`,
67
+ "",
68
+ "## Cómo se ejecuta",
69
+ "",
70
+ `Toda invocación pasa por el dispatcher compartido, con la operación (${operations}) viajando en el envelope:`,
71
+ "",
72
+ "```",
73
+ `aw capability prepare --capability ${descriptor.name} --operation <op> [--input k=v ...]`,
74
+ "aw capability continue --request <request.json> [--input k=v ...]",
75
+ "aw capability validate --request <request.json> # stdin: la respuesta autorada",
76
+ "aw capability apply --plan <plan.json> --approval <digest>",
77
+ "```",
78
+ "",
79
+ "Cada intento devuelve `outcome`, `output` y `receipt`. Un `needs_input` se contesta con",
80
+ "`continue`, que construye el intento siguiente del mismo `invocation_id` — nunca reusa el anterior.",
81
+ "",
82
+ "## Lo que esta ruta NO hace",
83
+ "",
84
+ "- No crea, avanza, cierra ni publica una sesión o documento SPEC, PLAN o QUICK.",
85
+ "- No inicializa un workspace: si la operación necesita uno y no lo hay, devuelve un resultado explícito.",
86
+ "- No ejerce ningún efecto que el descriptor no declare, ni uno que exija aprobación sin pedirla.",
87
+ "",
88
+ "La conversación es la del host. Las preguntas de un `needs_input` se hacen acá mismo.",
89
+ "El contrato de invocación completo — qué puede pedir cada caller — vive en",
90
+ "`roles/design/CONTRACT.md` del bundle `w`, y no se repite acá.",
91
+ ...(stamp === undefined ? [] : ["", stamp]),
92
+ "",
93
+ ].join("\n");
94
+ }
95
+ /**
96
+ * The ownership RULE, given what a reader found. One rule, two readers: the
97
+ * installer reads with `node:fs`, readiness reads through the port, and neither
98
+ * carries its own copy of "is this ours" — a second copy is a second answer.
99
+ */
100
+ export function ownershipOf(dir, skillMd, entries) {
101
+ if (skillMd === null) {
102
+ // No SKILL.md. An unrelated dir is not ours to claim either — but it is also
103
+ // not a skill, so installing into an empty one is safe.
104
+ if (entries === null || entries.length === 0)
105
+ return { state: "absent" };
106
+ return { state: "foreign", why: `'${dir}' tiene contenido y ningún SKILL.md` };
107
+ }
108
+ if (skillMd.includes(CAPABILITY_SKILL_MARKER))
109
+ return { state: "ours" };
110
+ return { state: "foreign", why: `'${dir}' ya tiene un SKILL.md que no instalamos nosotros` };
111
+ }
112
+ export async function inspectCapabilityDir(dir) {
113
+ let skillMd = null;
114
+ try {
115
+ skillMd = await readFile(join(dir, "SKILL.md"), "utf8");
116
+ }
117
+ catch {
118
+ skillMd = null;
119
+ }
120
+ if (skillMd !== null)
121
+ return ownershipOf(dir, skillMd, null);
122
+ try {
123
+ return ownershipOf(dir, null, await readdir(dir));
124
+ }
125
+ catch {
126
+ return ownershipOf(dir, null, null);
127
+ }
128
+ }
129
+ /** The same rule, read through a `FileSystemPort` (readiness, tests). */
130
+ export async function inspectCapabilityDirVia(fs, dir) {
131
+ const skillMd = join(dir, "SKILL.md");
132
+ if (await fs.exists(skillMd)) {
133
+ try {
134
+ return ownershipOf(dir, await fs.readText(skillMd), null);
135
+ }
136
+ catch {
137
+ return ownershipOf(dir, null, null);
138
+ }
139
+ }
140
+ if (!(await fs.exists(dir)))
141
+ return ownershipOf(dir, null, null);
142
+ try {
143
+ return ownershipOf(dir, null, (await fs.list(dir)).map((e) => e.name));
144
+ }
145
+ catch {
146
+ return ownershipOf(dir, null, null);
147
+ }
148
+ }
149
+ /**
150
+ * Write (or rewrite) the wrapper. Idempotent: reinstalling over our own copy
151
+ * produces the same bytes, so a second run is a no-op in content terms.
152
+ */
153
+ export async function installCapabilitySkill(root, descriptor, stamp) {
154
+ const dir = join(root, descriptor.name);
155
+ const ownership = await inspectCapabilityDir(dir);
156
+ if (ownership.state === "foreign") {
157
+ return {
158
+ ok: false,
159
+ failure: {
160
+ code: "CAPABILITY_WRAPPER_CONFLICT",
161
+ message: ownership.why,
162
+ action: `renombrá o quitá esa skill para que '${descriptor.name}' pueda instalarse; no se sobrescribe contenido ajeno`,
163
+ },
164
+ };
165
+ }
166
+ await mkdir(dir, { recursive: true });
167
+ const skillMd = join(dir, "SKILL.md");
168
+ const descriptorPath = join(dir, CAPABILITY_DESCRIPTOR_FILE);
169
+ // Descriptor first: between the two writes the SKILL.md must never point at a
170
+ // file that is not there yet, or a host reading mid-install sees a broken
171
+ // locator instead of no skill at all.
172
+ await writeFile(descriptorPath, renderDescriptorJson(descriptor), "utf8");
173
+ await writeFile(skillMd, renderCapabilitySkill(descriptor, stamp), "utf8");
174
+ return { ok: true, dir, files: [skillMd, descriptorPath] };
175
+ }
176
+ /** Remove only what we installed. Anything else is preserved, byte for byte. */
177
+ export async function uninstallCapabilitySkill(root, name) {
178
+ const dir = join(root, name);
179
+ const ownership = await inspectCapabilityDir(dir);
180
+ if (ownership.state === "absent")
181
+ return { ok: true, removed: false, dir };
182
+ if (ownership.state === "foreign") {
183
+ return {
184
+ ok: false,
185
+ failure: {
186
+ code: "CAPABILITY_WRAPPER_FOREIGN",
187
+ message: ownership.why,
188
+ action: "no se borra una skill que no instalamos: quitala vos si querés",
189
+ },
190
+ };
191
+ }
192
+ await rm(dir, { recursive: true, force: true });
193
+ return { ok: true, removed: true, dir };
194
+ }
195
+ //# sourceMappingURL=wrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../../src/application/capability/wrapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,kCAAkC,GAEnC,MAAM,uCAAuC,CAAC;AAG/C;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAClC,iEAAiE,CAAC;AAEpE,MAAM,CAAC,MAAM,0BAA0B,GAAG,0BAA0B,CAAC;AAErE,+EAA+E;AAC/E,MAAM,UAAU,oBAAoB,CAAC,UAAgC;IACnE,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,UAAgC;IACrE,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC;SAChC,MAAM,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;SAChD,MAAM,CAAC,KAAK,CAAC,CAAC;IACjB,OAAO,GAAG,0BAA0B,WAAW,MAAM,EAAE,CAAC;AAC1D,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,qBAAqB,CAAC,UAAgC,EAAE,KAAc;IACpF,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChF,OAAO;QACL,KAAK;QACL,SAAS,UAAU,CAAC,IAAI,EAAE;QAC1B,iBAAiB;QACjB,KAAK,UAAU,CAAC,OAAO,kBAAkB,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QAC/F,WAAW;QACX,KAAK,kCAAkC,MAAM,sBAAsB,CAAC,UAAU,CAAC,GAAG;QAClF,KAAK;QACL,EAAE;QACF,KAAK,uBAAuB,sCAAsC,0BAA0B,gCAAgC;QAC5H,EAAE;QACF,KAAK,UAAU,CAAC,IAAI,EAAE;QACtB,EAAE;QACF,GAAG,UAAU,CAAC,OAAO,GAAG;QACxB,EAAE;QACF,oBAAoB;QACpB,EAAE;QACF,wEAAwE,UAAU,4BAA4B;QAC9G,EAAE;QACF,KAAK;QACL,sCAAsC,UAAU,CAAC,IAAI,qCAAqC;QAC1F,mEAAmE;QACnE,kFAAkF;QAClF,4DAA4D;QAC5D,KAAK;QACL,EAAE;QACF,yFAAyF;QACzF,qGAAqG;QACrG,EAAE;QACF,6BAA6B;QAC7B,EAAE;QACF,iFAAiF;QACjF,0GAA0G;QAC1G,kGAAkG;QAClG,EAAE;QACF,uFAAuF;QACvF,4EAA4E;QAC5E,gEAAgE;QAChE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC3C,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAQD;;;;GAIG;AACH,MAAM,UAAU,WAAW,CACzB,GAAW,EACX,OAAsB,EACtB,OAAiC;IAEjC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,6EAA6E;QAC7E,wDAAwD;QACxD,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QACzE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,GAAG,qCAAqC,EAAE,CAAC;IACjF,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACxE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,GAAG,mDAAmD,EAAE,CAAC;AAC/F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,GAAW;IACpD,IAAI,OAAO,GAAkB,IAAI,CAAC;IAClC,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC7D,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,EAAkB,EAClB,GAAW;IAEX,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACtC,IAAI,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,OAAO,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAAE,OAAO,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACjE,IAAI,CAAC;QACH,OAAO,WAAW,CAChB,GAAG,EACH,IAAI,EACJ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CACxC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAYD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAY,EACZ,UAAgC,EAChC,KAAc;IAEd,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAClD,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE;gBACP,IAAI,EAAE,6BAA6B;gBACnC,OAAO,EAAE,SAAS,CAAC,GAAG;gBACtB,MAAM,EAAE,wCAAwC,UAAU,CAAC,IAAI,uDAAuD;aACvH;SACF,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACtC,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,0BAA0B,CAAC,CAAC;IAC7D,8EAA8E;IAC9E,0EAA0E;IAC1E,sCAAsC;IACtC,MAAM,SAAS,CAAC,cAAc,EAAE,oBAAoB,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1E,MAAM,SAAS,CAAC,OAAO,EAAE,qBAAqB,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3E,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,CAAC;AAC7D,CAAC;AAMD,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,IAAY,EACZ,IAAY;IAEZ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7B,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAClD,IAAI,SAAS,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IAC3E,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE;gBACP,IAAI,EAAE,4BAA4B;gBAClC,OAAO,EAAE,SAAS,CAAC,GAAG;gBACtB,MAAM,EAAE,gEAAgE;aACzE;SACF,CAAC;IACJ,CAAC;IACD,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAC1C,CAAC"}
@@ -1,4 +1,8 @@
1
1
  import { join } from "node:path";
2
+ /** The entry that answers for a name, whichever side of the manifest it is on. */
3
+ export function contextEntryFor(manifest, name) {
4
+ return manifest.commands[name] ?? manifest.capabilities[name];
5
+ }
2
6
  export const MANIFEST_REL_PATH = join("context", "MANIFEST.json");
3
7
  /** Supported manifest schema. A newer bundle is a load error, never a guess. */
4
8
  const SUPPORTED_VERSION = 1;
@@ -38,20 +42,22 @@ export function parseManifest(raw) {
38
42
  if (version !== SUPPORTED_VERSION) {
39
43
  throw new ManifestError("CONTEXT_MANIFEST_VERSION", `versión de manifiesto no soportada: ${String(version)} (esta CLI lee ${SUPPORTED_VERSION})`);
40
44
  }
41
- const signals = readSignals(root.signals);
45
+ const signals = readSignals(root.signals, "signals");
46
+ const flowSignals = root.flow_signals === undefined ? {} : readSignals(root.flow_signals, "flow_signals");
42
47
  const commands = readCommands(root.commands, signals);
48
+ const capabilities = root.capabilities === undefined ? {} : readCommands(root.capabilities, signals);
43
49
  const journeys = readJourneys(root.journeys, commands, signals);
44
50
  const budgetPolicy = readPolicy(root.budget_policy);
45
- return { version, signals, commands, journeys, budgetPolicy };
51
+ return { version, signals, flowSignals, commands, capabilities, journeys, budgetPolicy };
46
52
  }
47
- function readSignals(raw) {
48
- const record = asRecord(raw, "signals");
53
+ function readSignals(raw, where) {
54
+ const record = asRecord(raw, where);
49
55
  const out = {};
50
56
  for (const [id, description] of Object.entries(record)) {
51
57
  if (id.startsWith("$"))
52
58
  continue;
53
59
  if (typeof description !== "string" || description.length === 0) {
54
- throw new ManifestError("CONTEXT_MANIFEST_INVALID", `signal '${id}' sin descripción`);
60
+ throw new ManifestError("CONTEXT_MANIFEST_INVALID", `${where} '${id}' sin descripción`);
55
61
  }
56
62
  out[id] = description;
57
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/application/context/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/application/context/manifest.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { createHash } from "node:crypto";
2
2
  import { join } from "node:path";
3
3
  import { readPackageVersion } from "../../runtime/version.js";
4
4
  import { splitCommandDoc } from "../self/install-skill.js";
5
+ import { contextEntryFor } from "./manifest.js";
5
6
  /**
6
7
  * The three tramos of context cost (spec 009 § Requirement).
7
8
  *
@@ -114,12 +115,14 @@ export async function measureExecution(fs, root, manifest) {
114
115
  * hard error naming the commands that do exist.
115
116
  */
116
117
  export function resolveReadSet(manifest, command, signals) {
117
- const entry = manifest.commands[command];
118
+ // A capability answers here too: the question "what does this invocation have
119
+ // to load" is the same one, and only the BUDGET keeps them apart.
120
+ const entry = contextEntryFor(manifest, command);
118
121
  if (entry === undefined) {
119
122
  return {
120
123
  paths: [],
121
124
  degraded: true,
122
- reasons: [`comando '${command}' no está declarado en el manifiesto`],
125
+ reasons: [`'${command}' no está declarado en el manifiesto`],
123
126
  };
124
127
  }
125
128
  const reasons = [];
@@ -1 +1 @@
1
- {"version":3,"file":"measure.js","sourceRoot":"","sources":["../../../src/application/context/measure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"measure.js","sourceRoot":"","sources":["../../../src/application/context/measure.ts"],"names":[],"mappings":"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"}