@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.
- package/README.md +3 -2
- package/dist/adapters/git-cli.js +12 -7
- package/dist/adapters/git-cli.js.map +1 -1
- package/dist/application/capability/compose.js +161 -0
- package/dist/application/capability/compose.js.map +1 -0
- package/dist/application/capability/descriptor-loader.js +109 -0
- package/dist/application/capability/descriptor-loader.js.map +1 -0
- package/dist/application/capability/design-handler.js +299 -0
- package/dist/application/capability/design-handler.js.map +1 -0
- package/dist/application/capability/dispatcher.js +312 -0
- package/dist/application/capability/dispatcher.js.map +1 -0
- package/dist/application/capability/durable-effect.js +220 -0
- package/dist/application/capability/durable-effect.js.map +1 -0
- package/dist/application/capability/installed-inventory.js +168 -0
- package/dist/application/capability/installed-inventory.js.map +1 -0
- package/dist/application/capability/readiness.js +204 -0
- package/dist/application/capability/readiness.js.map +1 -0
- package/dist/application/capability/resolution.js +264 -0
- package/dist/application/capability/resolution.js.map +1 -0
- package/dist/application/capability/wrapper.js +195 -0
- package/dist/application/capability/wrapper.js.map +1 -0
- package/dist/application/context/manifest.js +11 -5
- package/dist/application/context/manifest.js.map +1 -1
- package/dist/application/context/measure.js +5 -2
- package/dist/application/context/measure.js.map +1 -1
- package/dist/application/context/plan-service.js +6 -6
- package/dist/application/context/plan-service.js.map +1 -1
- package/dist/application/design/design-bundle-service.js +148 -0
- package/dist/application/design/design-bundle-service.js.map +1 -0
- package/dist/application/design/design-proposal-service.js +69 -0
- package/dist/application/design/design-proposal-service.js.map +1 -0
- package/dist/application/design/design-publish-service.js +275 -7
- package/dist/application/design/design-publish-service.js.map +1 -1
- package/dist/application/design/design-record-service.js +100 -0
- package/dist/application/design/design-record-service.js.map +1 -0
- package/dist/application/flow/advance.js +533 -0
- package/dist/application/flow/advance.js.map +1 -0
- package/dist/application/flow/flow-service.js +65 -0
- package/dist/application/flow/flow-service.js.map +1 -0
- package/dist/application/flow/run-projection.js +80 -0
- package/dist/application/flow/run-projection.js.map +1 -0
- package/dist/application/flow/run-state-service.js +107 -0
- package/dist/application/flow/run-state-service.js.map +1 -0
- package/dist/application/flow/submit.js +423 -0
- package/dist/application/flow/submit.js.map +1 -0
- package/dist/application/markdown.js +16 -2
- package/dist/application/markdown.js.map +1 -1
- package/dist/application/resume-service.js +23 -10
- package/dist/application/resume-service.js.map +1 -1
- package/dist/application/self/hooks-toml.js +137 -17
- package/dist/application/self/hooks-toml.js.map +1 -1
- package/dist/application/self/host-states.js +87 -1
- package/dist/application/self/host-states.js.map +1 -1
- package/dist/application/self/install-hooks.js +62 -6
- package/dist/application/self/install-hooks.js.map +1 -1
- package/dist/application/self/install-skill.js +37 -6
- package/dist/application/self/install-skill.js.map +1 -1
- package/dist/application/self/uninstall.js +21 -0
- package/dist/application/self/uninstall.js.map +1 -1
- package/dist/application/skills-resolver-service.js +8 -2
- package/dist/application/skills-resolver-service.js.map +1 -1
- package/dist/application/status-service.js +4 -1
- package/dist/application/status-service.js.map +1 -1
- package/dist/application/workline-index-service.js +15 -2
- package/dist/application/workline-index-service.js.map +1 -1
- package/dist/application/workspace-init-service.js +13 -1
- package/dist/application/workspace-init-service.js.map +1 -1
- package/dist/cli/commands/capability.js +182 -0
- package/dist/cli/commands/capability.js.map +1 -0
- package/dist/cli/commands/flow.js +71 -0
- package/dist/cli/commands/flow.js.map +1 -0
- package/dist/cli/commands/index.js +4 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/skills.js +55 -2
- package/dist/cli/commands/skills.js.map +1 -1
- package/dist/cli/commands/status.js +5 -0
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/help-groups.js +6 -0
- package/dist/cli/help-groups.js.map +1 -1
- package/dist/cli/parser.js +6 -0
- package/dist/cli/parser.js.map +1 -1
- package/dist/cli/tui/components/host-admin-section.js +14 -2
- package/dist/cli/tui/components/host-admin-section.js.map +1 -1
- package/dist/cli/tui/data/workflow-content.js +13 -1
- package/dist/cli/tui/data/workflow-content.js.map +1 -1
- package/dist/cli/tui/tabs/workflow-tab.js +8 -1
- package/dist/cli/tui/tabs/workflow-tab.js.map +1 -1
- package/dist/domain/capability/descriptor.js +553 -0
- package/dist/domain/capability/descriptor.js.map +1 -0
- package/dist/domain/capability/effects.js +90 -0
- package/dist/domain/capability/effects.js.map +1 -0
- package/dist/domain/capability/protocol.js +494 -0
- package/dist/domain/capability/protocol.js.map +1 -0
- package/dist/domain/contract-reader.js +84 -0
- package/dist/domain/contract-reader.js.map +1 -0
- package/dist/domain/design/adapter.js +161 -0
- package/dist/domain/design/adapter.js.map +1 -0
- package/dist/domain/design/artifact.js +148 -4
- package/dist/domain/design/artifact.js.map +1 -1
- package/dist/domain/design/capability.js +263 -4
- package/dist/domain/design/capability.js.map +1 -1
- package/dist/domain/design/direct.js +108 -0
- package/dist/domain/design/direct.js.map +1 -0
- package/dist/domain/design/external-send.js +65 -0
- package/dist/domain/design/external-send.js.map +1 -0
- package/dist/domain/design/maturity.js +71 -0
- package/dist/domain/design/maturity.js.map +1 -1
- package/dist/domain/design/offline.js +92 -0
- package/dist/domain/design/offline.js.map +1 -0
- package/dist/domain/design/profiles.js +212 -0
- package/dist/domain/design/profiles.js.map +1 -0
- package/dist/domain/design/proposal.js +234 -0
- package/dist/domain/design/proposal.js.map +1 -0
- package/dist/domain/design/render-bundle.js +0 -0
- package/dist/domain/design/render-bundle.js.map +1 -0
- package/dist/domain/design/rendition.js +472 -0
- package/dist/domain/design/rendition.js.map +1 -0
- package/dist/domain/design/sources.js +180 -0
- package/dist/domain/design/sources.js.map +1 -0
- package/dist/domain/design/validation.js +12 -68
- package/dist/domain/design/validation.js.map +1 -1
- package/dist/domain/design/visual-evidence.js +155 -0
- package/dist/domain/design/visual-evidence.js.map +1 -0
- package/dist/domain/flow/answer.js +459 -0
- package/dist/domain/flow/answer.js.map +1 -0
- package/dist/domain/flow/authority.js +2338 -0
- package/dist/domain/flow/authority.js.map +1 -0
- package/dist/domain/flow/authorization.js +62 -0
- package/dist/domain/flow/authorization.js.map +1 -0
- package/dist/domain/flow/directive.js +421 -0
- package/dist/domain/flow/directive.js.map +1 -0
- package/dist/domain/flow/rules.js +140 -0
- package/dist/domain/flow/rules.js.map +1 -0
- package/dist/domain/flow/run-state.js +317 -0
- package/dist/domain/flow/run-state.js.map +1 -0
- package/dist/domain/harnesses.js +124 -4
- package/dist/domain/harnesses.js.map +1 -1
- package/dist/domain/host-verification.js +8 -8
- package/dist/domain/skills.js +13 -14
- package/dist/domain/skills.js.map +1 -1
- package/dist/domain/structured-choice-stamp.js +106 -0
- package/dist/domain/structured-choice-stamp.js.map +1 -0
- package/package.json +1 -1
- package/skills/w/SKILL.md +5 -5
- package/skills/w/context/MANIFEST.json +42 -1
- package/skills/w/harness/HARNESS.md +30 -4
- package/skills/w/loops/CHASSIS.md +11 -20
- package/skills/w/loops/CODE-POLICIES.md +9 -15
- package/skills/w/loops/plan-exec-loop/LOOP.md +11 -13
- package/skills/w/loops/plan-new-loop/LOOP.md +6 -4
- package/skills/w/loops/plan-refine-loop/LOOP.md +5 -3
- package/skills/w/loops/quick-loop/LOOP.md +18 -26
- package/skills/w/loops/spec-refine-loop/LOOP.md +14 -18
- package/skills/w/modules/COMPACTION.md +2 -6
- package/skills/w/modules/DB-SCRIPTS-ONLY.md +2 -0
- package/skills/w/modules/DESIGN-REFERENCES.md +15 -11
- package/skills/w/modules/IDEATION-GATE.md +3 -3
- package/skills/w/modules/PLAN-EXECUTION-BATCHES.md +17 -36
- package/skills/w/modules/PLAN-INPUT.md +5 -3
- package/skills/w/modules/PLAN-REFINE-SPLIT.md +3 -1
- package/skills/w/modules/PLAN-SPLIT-GATE.md +7 -5
- package/skills/w/modules/PROMPT-CONTINUITY.md +3 -1
- package/skills/w/modules/SPEC-CHANGE-SHAPE.md +4 -4
- package/skills/w/roles/README.md +2 -0
- package/skills/w/roles/design/CONTRACT.md +80 -0
- package/skills/w/roles/design/ROLE.md +7 -0
- package/skills/w/schemas/capability-descriptor.schema.json +260 -0
- package/skills/w/schemas/design/design-render-bundle.v1.schema.json +191 -0
- package/skills/w/schemas/design/design-rendition.v1.schema.json +232 -0
- package/skills/w/schemas/design/ui-screen.v1.schema.json +29 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CAPABILITY_CONTRACT_VERSION } from "../capability/descriptor.js";
|
|
1
2
|
/**
|
|
2
3
|
* What the `design` capability IS, said once.
|
|
3
4
|
*
|
|
@@ -30,10 +31,10 @@ export const DESIGN_OPERATIONS = ["create", "update", "validate", "render", "rec
|
|
|
30
31
|
* Every format this capability produces, and the only ones it accepts.
|
|
31
32
|
*
|
|
32
33
|
* The validators read their id from here rather than repeating a literal, so
|
|
33
|
-
* the registry is load-bearing instead of documentation: a
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
34
|
+
* the registry is load-bearing instead of documentation: a new format cannot
|
|
35
|
+
* appear in code without appearing here, and `design-schema-guard` proves this
|
|
36
|
+
* table and the published JSON Schemas under `skills/w/schemas/design/` name
|
|
37
|
+
* the same things.
|
|
37
38
|
*
|
|
38
39
|
* This is the canonical authority (S013/AC-CAP-03). The built-in floor and any
|
|
39
40
|
* third-party improvement bound to the role write these and are validated by
|
|
@@ -47,5 +48,263 @@ export const CANONICAL_SCHEMAS = {
|
|
|
47
48
|
screen: "workline.ui-screen/v1",
|
|
48
49
|
review: "workline.design-review/v1",
|
|
49
50
|
revocation: "workline.design-revocation/v1",
|
|
51
|
+
rendition: "workline.design-rendition/v1",
|
|
52
|
+
renderBundle: "workline.design-render-bundle/v1",
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* `design` as a capability descriptor — the v1 conformant instance.
|
|
56
|
+
*
|
|
57
|
+
* This is the same capability the table above describes, restated in the ONE
|
|
58
|
+
* form every consumer reads: the wrapper installed into a host, the dispatcher,
|
|
59
|
+
* discovery, the generated help and any flow that composes an operation all
|
|
60
|
+
* derive from this object rather than re-describing it. Two descriptions of one
|
|
61
|
+
* contract is the failure mode the whole layer exists to prevent.
|
|
62
|
+
*
|
|
63
|
+
* The typing is load-bearing twice over. `CapabilityDescriptor` keeps the shape
|
|
64
|
+
* honest, and `name: SkillRole` proves at COMPILE TIME that the capability's
|
|
65
|
+
* public identity and the `skills.toml` binding slot are the same string. The
|
|
66
|
+
* day someone names a capability differently from its role, the parallel public
|
|
67
|
+
* identity `S014/AC-ID-01` forbids reappears — and this annotation is the only
|
|
68
|
+
* barrier against it.
|
|
69
|
+
*
|
|
70
|
+
* The `schema` fields point at formats already published under
|
|
71
|
+
* `skills/w/schemas/design/`; the descriptor references them and does not become
|
|
72
|
+
* another one. That is why it lives here and the CONTRACT lives in
|
|
73
|
+
* `domain/capability` — a design format never has to know a capability exists.
|
|
74
|
+
*/
|
|
75
|
+
export const DESIGN_DESCRIPTOR = {
|
|
76
|
+
contract_version: CAPABILITY_CONTRACT_VERSION,
|
|
77
|
+
name: DESIGN_CAPABILITY,
|
|
78
|
+
purpose: "producir, actualizar, juzgar, proyectar y sellar un UI Design Package v1 sobre un contrato único",
|
|
79
|
+
exposure: ["direct", "compose"],
|
|
80
|
+
default_operation: null,
|
|
81
|
+
operations: [
|
|
82
|
+
{
|
|
83
|
+
name: "create",
|
|
84
|
+
summary: "primera revisión de un package a partir de fuentes declaradas",
|
|
85
|
+
exposure: ["direct", "compose"],
|
|
86
|
+
// `optional`, not `required`: inside a workspace the package defaults to
|
|
87
|
+
// `docs/designs/`, and OUTSIDE one an explicit root still produces a
|
|
88
|
+
// portable package (`AC-DIR-04`). Refusing outside a workspace would turn
|
|
89
|
+
// "design something on a machine with no Workline project" into an error
|
|
90
|
+
// instead of an answer — and `resolveOutputRoot` is what keeps the other
|
|
91
|
+
// half of `AC-REQ-03` intact: no root declared, no writing, and never an
|
|
92
|
+
// invented one.
|
|
93
|
+
workspace: "optional",
|
|
94
|
+
interaction: "needs_input",
|
|
95
|
+
inputs: [
|
|
96
|
+
{ name: "title", kind: "text", required: true, sensitivity: "public", schema: null },
|
|
97
|
+
{ name: "sources", kind: "reference", required: true, sensitivity: "public", schema: null },
|
|
98
|
+
{ name: "target", kind: "text", required: true, sensitivity: "public", schema: null },
|
|
99
|
+
{
|
|
100
|
+
name: "profile",
|
|
101
|
+
kind: "selection",
|
|
102
|
+
required: false,
|
|
103
|
+
sensitivity: "public",
|
|
104
|
+
schema: null,
|
|
105
|
+
},
|
|
106
|
+
{ name: "context", kind: "text", required: false, sensitivity: "public", schema: null },
|
|
107
|
+
// The maturity the caller ASKS FOR. Declared as an input because the
|
|
108
|
+
// answer "you got `outline`, not `handoff`" only means something
|
|
109
|
+
// against something that was requested.
|
|
110
|
+
{
|
|
111
|
+
name: "maturity",
|
|
112
|
+
kind: "selection",
|
|
113
|
+
required: false,
|
|
114
|
+
sensitivity: "public",
|
|
115
|
+
schema: null,
|
|
116
|
+
},
|
|
117
|
+
],
|
|
118
|
+
output: {
|
|
119
|
+
kind: "value_and_reference",
|
|
120
|
+
schema: CANONICAL_SCHEMAS.baseline,
|
|
121
|
+
completeness: ["complete", "partial"],
|
|
122
|
+
},
|
|
123
|
+
effects: [
|
|
124
|
+
{ class: "read_only", idempotent: true, authorization: "invocation", approval: "none" },
|
|
125
|
+
{
|
|
126
|
+
class: "local_additive",
|
|
127
|
+
idempotent: false,
|
|
128
|
+
authorization: "invocation",
|
|
129
|
+
approval: "none",
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
off: "blocked",
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
name: "update",
|
|
136
|
+
summary: "revisión siguiente de un package existente, con base de compare-and-swap",
|
|
137
|
+
exposure: ["direct", "compose"],
|
|
138
|
+
workspace: "optional",
|
|
139
|
+
interaction: "needs_input",
|
|
140
|
+
inputs: [
|
|
141
|
+
{ name: "package", kind: "reference", required: true, sensitivity: "public", schema: null },
|
|
142
|
+
{ name: "base", kind: "reference", required: true, sensitivity: "public", schema: null },
|
|
143
|
+
{
|
|
144
|
+
name: "sources",
|
|
145
|
+
kind: "reference",
|
|
146
|
+
required: false,
|
|
147
|
+
sensitivity: "public",
|
|
148
|
+
schema: null,
|
|
149
|
+
},
|
|
150
|
+
{ name: "context", kind: "text", required: false, sensitivity: "public", schema: null },
|
|
151
|
+
{
|
|
152
|
+
name: "maturity",
|
|
153
|
+
kind: "selection",
|
|
154
|
+
required: false,
|
|
155
|
+
sensitivity: "public",
|
|
156
|
+
schema: null,
|
|
157
|
+
},
|
|
158
|
+
],
|
|
159
|
+
output: {
|
|
160
|
+
kind: "value_and_reference",
|
|
161
|
+
schema: CANONICAL_SCHEMAS.baseline,
|
|
162
|
+
completeness: ["complete", "partial"],
|
|
163
|
+
},
|
|
164
|
+
effects: [
|
|
165
|
+
{ class: "read_only", idempotent: true, authorization: "invocation", approval: "none" },
|
|
166
|
+
{
|
|
167
|
+
class: "local_additive",
|
|
168
|
+
idempotent: false,
|
|
169
|
+
authorization: "invocation",
|
|
170
|
+
approval: "none",
|
|
171
|
+
},
|
|
172
|
+
// Publishing a revision moves the manifest's current baseline: an
|
|
173
|
+
// existing file says something else afterwards, so a human sees it first.
|
|
174
|
+
{
|
|
175
|
+
class: "mutate_overwrite",
|
|
176
|
+
idempotent: false,
|
|
177
|
+
authorization: "preflight",
|
|
178
|
+
approval: "visible",
|
|
179
|
+
},
|
|
180
|
+
],
|
|
181
|
+
off: "blocked",
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
name: "validate",
|
|
185
|
+
summary: "juzgar un package sin escribir: schemas, naming, referencias y madurez",
|
|
186
|
+
exposure: ["direct", "compose"],
|
|
187
|
+
// The one operation a flow can reach with `design` off, so it must not
|
|
188
|
+
// depend on workspace state it might not have.
|
|
189
|
+
workspace: "optional",
|
|
190
|
+
interaction: "single_pass",
|
|
191
|
+
inputs: [
|
|
192
|
+
{ name: "package", kind: "reference", required: true, sensitivity: "public", schema: null },
|
|
193
|
+
{
|
|
194
|
+
name: "profile",
|
|
195
|
+
kind: "selection",
|
|
196
|
+
required: false,
|
|
197
|
+
sensitivity: "public",
|
|
198
|
+
schema: null,
|
|
199
|
+
},
|
|
200
|
+
],
|
|
201
|
+
output: { kind: "value", schema: null, completeness: ["complete"] },
|
|
202
|
+
effects: [
|
|
203
|
+
{ class: "read_only", idempotent: true, authorization: "invocation", approval: "none" },
|
|
204
|
+
],
|
|
205
|
+
// Survives `off` on purpose: a package that already exists stays
|
|
206
|
+
// consultable and consumable, or turning the capability off would
|
|
207
|
+
// retroactively invalidate work nobody asked to discard.
|
|
208
|
+
off: "allowed",
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
name: "render",
|
|
212
|
+
summary: "regenerar las proyecciones de una revisión y preparar el handoff a un proveedor",
|
|
213
|
+
exposure: ["direct", "compose"],
|
|
214
|
+
workspace: "optional",
|
|
215
|
+
interaction: "single_pass",
|
|
216
|
+
inputs: [
|
|
217
|
+
{ name: "package", kind: "reference", required: true, sensitivity: "public", schema: null },
|
|
218
|
+
{ name: "profile", kind: "selection", required: true, sensitivity: "public", schema: null },
|
|
219
|
+
],
|
|
220
|
+
output: {
|
|
221
|
+
kind: "reference",
|
|
222
|
+
schema: CANONICAL_SCHEMAS.renderBundle,
|
|
223
|
+
completeness: ["complete", "partial"],
|
|
224
|
+
},
|
|
225
|
+
effects: [
|
|
226
|
+
{ class: "read_only", idempotent: true, authorization: "invocation", approval: "none" },
|
|
227
|
+
{
|
|
228
|
+
class: "local_additive",
|
|
229
|
+
idempotent: true,
|
|
230
|
+
authorization: "invocation",
|
|
231
|
+
approval: "none",
|
|
232
|
+
},
|
|
233
|
+
// A provider profile can leave the machine. Declared here rather than
|
|
234
|
+
// decided at call time: the preflight is what makes the destination and
|
|
235
|
+
// the payload visible before anything is sent.
|
|
236
|
+
{
|
|
237
|
+
class: "network_external",
|
|
238
|
+
idempotent: false,
|
|
239
|
+
authorization: "preflight",
|
|
240
|
+
approval: "visible",
|
|
241
|
+
},
|
|
242
|
+
],
|
|
243
|
+
off: "blocked",
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
name: "record",
|
|
247
|
+
summary: "sellar una decisión de gobierno sobre una revisión existente",
|
|
248
|
+
exposure: ["direct", "compose"],
|
|
249
|
+
workspace: "optional",
|
|
250
|
+
interaction: "single_pass",
|
|
251
|
+
inputs: [
|
|
252
|
+
{ name: "package", kind: "reference", required: true, sensitivity: "public", schema: null },
|
|
253
|
+
{
|
|
254
|
+
name: "revision",
|
|
255
|
+
kind: "reference",
|
|
256
|
+
required: true,
|
|
257
|
+
sensitivity: "public",
|
|
258
|
+
schema: null,
|
|
259
|
+
},
|
|
260
|
+
{ name: "decision", kind: "text", required: true, sensitivity: "public", schema: null },
|
|
261
|
+
],
|
|
262
|
+
output: {
|
|
263
|
+
kind: "reference",
|
|
264
|
+
schema: CANONICAL_SCHEMAS.review,
|
|
265
|
+
completeness: ["complete"],
|
|
266
|
+
},
|
|
267
|
+
effects: [
|
|
268
|
+
{ class: "read_only", idempotent: true, authorization: "invocation", approval: "none" },
|
|
269
|
+
{
|
|
270
|
+
class: "local_additive",
|
|
271
|
+
idempotent: false,
|
|
272
|
+
authorization: "invocation",
|
|
273
|
+
approval: "none",
|
|
274
|
+
},
|
|
275
|
+
// A revocation changes what a published revision means downstream.
|
|
276
|
+
{
|
|
277
|
+
class: "mutate_overwrite",
|
|
278
|
+
idempotent: false,
|
|
279
|
+
authorization: "preflight",
|
|
280
|
+
approval: "visible",
|
|
281
|
+
},
|
|
282
|
+
],
|
|
283
|
+
off: "blocked",
|
|
284
|
+
},
|
|
285
|
+
],
|
|
286
|
+
// Core with a built-in floor: the PLAN and SPEC gates that consume a package
|
|
287
|
+
// must keep working on a machine where nothing extra is installed.
|
|
288
|
+
floor: { builtin: true, kind: "core", improvements: "host_selected" },
|
|
289
|
+
degradations: [
|
|
290
|
+
{ cause: "opaque_selection", action: "floor" },
|
|
291
|
+
{ cause: "incompatible_improvement", action: "floor" },
|
|
292
|
+
{ cause: "invalid_binding", action: "floor" },
|
|
293
|
+
{ cause: "digest_changed", action: "floor" },
|
|
294
|
+
],
|
|
295
|
+
compatibility: {
|
|
296
|
+
status: "active",
|
|
297
|
+
minimum_contract_version: CAPABILITY_CONTRACT_VERSION,
|
|
298
|
+
// This descriptor IS the capability, not an improvement to one.
|
|
299
|
+
improves: null,
|
|
300
|
+
// Not aliases. Listed so every entry surface can refuse them by NAME with a
|
|
301
|
+
// corrective action instead of failing with "unknown skill".
|
|
302
|
+
retired_names: ["ui-design", "ui-spec"],
|
|
303
|
+
retired_formats: [
|
|
304
|
+
"spec-section:## UI spec",
|
|
305
|
+
"session-design-spec:NNN-SPEC-<SLUG>.md",
|
|
306
|
+
"ui-spec-generator:output",
|
|
307
|
+
],
|
|
308
|
+
},
|
|
50
309
|
};
|
|
51
310
|
//# sourceMappingURL=capability.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability.js","sourceRoot":"","sources":["../../../src/domain/design/capability.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"capability.js","sourceRoot":"","sources":["../../../src/domain/design/capability.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What the DIRECT route adds on top of the capability contract.
|
|
3
|
+
*
|
|
4
|
+
* The generic half — envelope, attempts, outcomes, receipt correlation, the
|
|
5
|
+
* rule that a direct invocation opens no flow session — is already delivered
|
|
6
|
+
* and tested by the capability layer. Three things are left, and all three are
|
|
7
|
+
* design-domain decisions:
|
|
8
|
+
*
|
|
9
|
+
* - **Where the output lands.** Inside a workspace it defaults to
|
|
10
|
+
* `docs/designs/`; outside one it needs an explicit root and still produces
|
|
11
|
+
* something portable. A capability that simply refused outside a workspace
|
|
12
|
+
* would make "design something on a machine that has no Workline project" an
|
|
13
|
+
* error instead of an answer.
|
|
14
|
+
* - **Which domain fields the receipt carries.** The canonical receipt already
|
|
15
|
+
* says operation, validations, degradations, effects and next action; it
|
|
16
|
+
* knows nothing about packages, baselines or maturity. Those are added here
|
|
17
|
+
* and nowhere else — repeating the canonical ones would be a second receipt.
|
|
18
|
+
* - **What maturity the result may claim.** The one rule the whole ladder rests
|
|
19
|
+
* on: an omission that could change behavior means the answer is `outline`
|
|
20
|
+
* with a gap, never a `handoff` nobody can trace back.
|
|
21
|
+
*/
|
|
22
|
+
import { checkSafeRelativePath } from "../safe-path.js";
|
|
23
|
+
import { handoffGapsFrom } from "./sources.js";
|
|
24
|
+
/** The conventional home of packages inside a workspace. */
|
|
25
|
+
export const DESIGNS_DIR = "docs/designs";
|
|
26
|
+
/**
|
|
27
|
+
* Decide where a directly-invoked operation writes.
|
|
28
|
+
*
|
|
29
|
+
* Being outside a workspace is not an error — it is a different mode, and the
|
|
30
|
+
* only thing it costs is that the caller has to say where. What is refused is
|
|
31
|
+
* guessing: writing a package into whatever directory the process happened to
|
|
32
|
+
* start in is how a design ends up somewhere nobody looks again.
|
|
33
|
+
*/
|
|
34
|
+
export function resolveOutputRoot(workspace, target, artifact = "design") {
|
|
35
|
+
if (workspace === null) {
|
|
36
|
+
if (target === null || target.trim().length === 0) {
|
|
37
|
+
return {
|
|
38
|
+
ok: false,
|
|
39
|
+
failure: {
|
|
40
|
+
code: "DESIGN_OUTPUT_ROOT_REQUIRED",
|
|
41
|
+
artifact,
|
|
42
|
+
message: "fuera de un workspace hace falta una raíz explícita para el package",
|
|
43
|
+
action: "pasá 'target' con la ruta donde debe quedar el package",
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
// An explicit root outside a workspace is the caller's own path: it is not
|
|
48
|
+
// validated as workspace-relative, because it is not relative to one.
|
|
49
|
+
return { ok: true, value: { kind: "explicit", root: target.trim() } };
|
|
50
|
+
}
|
|
51
|
+
if (target === null || target.trim().length === 0) {
|
|
52
|
+
return { ok: true, value: { kind: "workspace", root: DESIGNS_DIR, declared: false } };
|
|
53
|
+
}
|
|
54
|
+
const safe = checkSafeRelativePath(target.trim());
|
|
55
|
+
if (!safe.ok) {
|
|
56
|
+
return {
|
|
57
|
+
ok: false,
|
|
58
|
+
failure: {
|
|
59
|
+
code: "DESIGN_OUTPUT_ROOT_UNSAFE",
|
|
60
|
+
artifact,
|
|
61
|
+
message: `'${target}' no es una ruta relativa válida dentro del workspace: ${safe.why}`,
|
|
62
|
+
action: `usá una ruta relativa dentro del workspace, por ejemplo '${DESIGNS_DIR}'`,
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
return { ok: true, value: { kind: "workspace", root: safe.path, declared: true } };
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Whether a package written at this root is discoverable by the index.
|
|
70
|
+
*
|
|
71
|
+
* Only the ones under `docs/designs/` are. That is not a limitation of the
|
|
72
|
+
* index — it is what makes `AC-DIR-06` meaningful: a package created directly
|
|
73
|
+
* inside a workspace can be referenced later by a spec or a plan without ever
|
|
74
|
+
* having had a relationship with those flows, precisely because it landed where
|
|
75
|
+
* discovery looks.
|
|
76
|
+
*/
|
|
77
|
+
export function isIndexable(root) {
|
|
78
|
+
if (root.kind !== "workspace")
|
|
79
|
+
return false;
|
|
80
|
+
const segments = root.root.split("/").filter((s) => s.length > 0);
|
|
81
|
+
const expected = DESIGNS_DIR.split("/");
|
|
82
|
+
return expected.every((segment, i) => segments[i] === segment);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* The maturity the result may honestly claim.
|
|
86
|
+
*
|
|
87
|
+
* Two independent reasons to fall back to `outline`, and both are ceilings
|
|
88
|
+
* rather than opinions: the document-level verdict the `012` gate already
|
|
89
|
+
* computes, and an essential source that did not contribute. Neither can be
|
|
90
|
+
* argued past — a floor and an improvement get the same answer here, which is
|
|
91
|
+
* what stops an improvement from "achieving" a `handoff` the evidence does not
|
|
92
|
+
* support.
|
|
93
|
+
*/
|
|
94
|
+
export function attainedMaturity(requested, gateVerdict, report) {
|
|
95
|
+
const gaps = handoffGapsFrom(report);
|
|
96
|
+
if (report.blocksHandoff)
|
|
97
|
+
return { attained: "outline", gaps };
|
|
98
|
+
if (requested === "handoff" && gateVerdict !== "handoff") {
|
|
99
|
+
return {
|
|
100
|
+
attained: gateVerdict,
|
|
101
|
+
gaps: [
|
|
102
|
+
`se pidió 'handoff' y la evidencia del package alcanza '${gateVerdict}': completá lo que el gate reclama`,
|
|
103
|
+
],
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
return { attained: gateVerdict, gaps: [] };
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=direct.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"direct.js","sourceRoot":"","sources":["../../../src/domain/design/direct.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { conformanceOf, degradationFailure, resolveCapability, } from "./adapter.js";
|
|
2
|
+
/**
|
|
3
|
+
* Plan a send, and say whether it may proceed.
|
|
4
|
+
*
|
|
5
|
+
* Two independent reasons to refuse, checked in this order because they answer
|
|
6
|
+
* different questions: the capability decides whether this profile can do the
|
|
7
|
+
* thing at all, and the authorization decides whether it may do it now. Reporting
|
|
8
|
+
* the missing authorization for an operation the profile never supported would
|
|
9
|
+
* send the author to get approval for something that still would not work.
|
|
10
|
+
*/
|
|
11
|
+
export function planExternalSend(input) {
|
|
12
|
+
const capability = input.capability ?? "handoff";
|
|
13
|
+
const requires = input.adapter.network === "opt_in";
|
|
14
|
+
const authorization = (input.authorization ?? "").trim();
|
|
15
|
+
const authorized = !requires || authorization.length > 0;
|
|
16
|
+
const plan = {
|
|
17
|
+
adapter: input.adapter.id,
|
|
18
|
+
version: input.adapter.version,
|
|
19
|
+
conformance: conformanceOf(input.adapter),
|
|
20
|
+
capability,
|
|
21
|
+
requires_authorization: requires,
|
|
22
|
+
authorized,
|
|
23
|
+
would_send: sendManifest(input.bundle),
|
|
24
|
+
local_handoff: "el bundle queda disponible localmente: validar, leer y entregarlo a mano no necesitan proveedor, cuenta ni red",
|
|
25
|
+
};
|
|
26
|
+
const resolution = resolveCapability(input.adapter, capability);
|
|
27
|
+
if (!resolution.ok) {
|
|
28
|
+
return {
|
|
29
|
+
ok: false,
|
|
30
|
+
plan,
|
|
31
|
+
failure: degradationFailure(resolution.degradation, `${input.bundle.package}/render-bundle.json`),
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
if (!authorized) {
|
|
35
|
+
return { ok: false, plan, failure: unauthorized(plan) };
|
|
36
|
+
}
|
|
37
|
+
return { ok: true, plan };
|
|
38
|
+
}
|
|
39
|
+
function sendManifest(bundle) {
|
|
40
|
+
return {
|
|
41
|
+
package: bundle.package,
|
|
42
|
+
baseline: bundle.baseline,
|
|
43
|
+
baseline_digest: bundle.baseline_digest,
|
|
44
|
+
data_classification: bundle.data_classification,
|
|
45
|
+
documents: bundle.closure.map((m) => m.ref),
|
|
46
|
+
assets: bundle.assets.map((a) => a.path),
|
|
47
|
+
obligations: bundle.accessibility.length,
|
|
48
|
+
losses: bundle.losses.map((l) => l.subject),
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* The refusal. It names what would have been sent, because that IS the thing being
|
|
53
|
+
* authorized — and the count of documents and assets is what makes "real data to a
|
|
54
|
+
* third party" concrete instead of abstract.
|
|
55
|
+
*/
|
|
56
|
+
function unauthorized(plan) {
|
|
57
|
+
const sent = plan.would_send;
|
|
58
|
+
return {
|
|
59
|
+
code: "DESIGN_SEND_UNAUTHORIZED",
|
|
60
|
+
artifact: `${sent.package}/render-bundle.json`,
|
|
61
|
+
message: `'${plan.adapter}' alcanza a un tercero y nadie autorizó el envío: se enviarían ${sent.documents.length} revisión(es), ${sent.assets.length} asset(s) y material '${sent.data_classification}' de ${sent.package}@r${sent.baseline}`,
|
|
62
|
+
action: "declará la autorización explícita del envío (quién la da y con qué visibilidad), o quedate con el handoff neutral local: el bundle ya está y no necesita proveedor",
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=external-send.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external-send.js","sourceRoot":"","sources":["../../../src/domain/design/external-send.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,aAAa,EACb,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAkEtB;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAwB;IACvD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,SAAS,CAAC;IACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC;IACpD,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACzD,MAAM,UAAU,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IAEzD,MAAM,IAAI,GAAqB;QAC7B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;QACzB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO;QAC9B,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;QACzC,UAAU;QACV,sBAAsB,EAAE,QAAQ;QAChC,UAAU;QACV,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;QACtC,aAAa,EACX,gHAAgH;KACnH,CAAC;IAEF,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAChE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI;YACJ,OAAO,EAAE,kBAAkB,CACzB,UAAU,CAAC,WAAW,EACtB,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAC7C;SACF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1D,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,YAAY,CAAC,MAAoB;IACxC,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;QAC/C,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAC3C,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACxC,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC,MAAM;QACxC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,IAAsB;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;IAC7B,OAAO;QACL,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,qBAAqB;QAC9C,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,kEAAkE,IAAI,CAAC,SAAS,CAAC,MAAM,kBAAkB,IAAI,CAAC,MAAM,CAAC,MAAM,yBAAyB,IAAI,CAAC,mBAAmB,QAAQ,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,QAAQ,EAAE;QAC7O,MAAM,EACJ,oKAAoK;KACvK,CAAC;AACJ,CAAC"}
|
|
@@ -100,8 +100,79 @@ function checkHandoff(artifact, sections, kind, file) {
|
|
|
100
100
|
...checkGraph(artifact, file),
|
|
101
101
|
...checkApplicableCompleteness(artifact, sections, kind, file),
|
|
102
102
|
...checkExternalCustody(artifact, file),
|
|
103
|
+
...checkVisualEvidence(artifact, file),
|
|
103
104
|
];
|
|
104
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* The elevation of AC-REN-01 and AC-REN-02: a `handoff` screen is LOOKABLE.
|
|
108
|
+
*
|
|
109
|
+
* Until this existed, `handoff` meant the prose was complete. That let a screen
|
|
110
|
+
* be declared implementable while nobody could see it — and the visual evidence,
|
|
111
|
+
* when it existed at all, was somebody's habit rather than a requirement. So a
|
|
112
|
+
* `handoff` screen now owes two things:
|
|
113
|
+
*
|
|
114
|
+
* 1. a classification for every criterion it traces, and
|
|
115
|
+
* 2. a local preview of its `default_state` — the criterion that shows the base
|
|
116
|
+
* state has to enumerate it AND enumerate a rendition of it.
|
|
117
|
+
*
|
|
118
|
+
* Both are checked HERE, against the document alone, and only the document's own
|
|
119
|
+
* claims. Whether the enumerated rendition exists, was cut from this revision and
|
|
120
|
+
* really covers that state is the package-level cross in `visual-evidence.ts`:
|
|
121
|
+
* this gate cannot open another file, and a gate that pretended to would be
|
|
122
|
+
* reporting on evidence it never read.
|
|
123
|
+
*
|
|
124
|
+
* `outline` is untouched on purpose. A screen still being shaped legitimately has
|
|
125
|
+
* no picture yet, and demanding one would push the author to render a placeholder
|
|
126
|
+
* so the document matches a template.
|
|
127
|
+
*/
|
|
128
|
+
function checkVisualEvidence(artifact, file) {
|
|
129
|
+
if (artifact.kind !== "screen")
|
|
130
|
+
return [];
|
|
131
|
+
const screen = artifact;
|
|
132
|
+
const failures = [];
|
|
133
|
+
for (const entry of screen.trace) {
|
|
134
|
+
failures.push(...checkClassified(entry, file));
|
|
135
|
+
}
|
|
136
|
+
const base = screen.trace.filter((e) => e.classification !== "not_visual" && e.states.includes(screen.default_state));
|
|
137
|
+
if (!base.some((e) => e.renditions.length > 0)) {
|
|
138
|
+
failures.push({
|
|
139
|
+
code: "DESIGN_EVIDENCE_INSUFFICIENT",
|
|
140
|
+
artifact: file,
|
|
141
|
+
message: `ningún criterio trazado muestra el estado base '${screen.default_state}' con una rendition`,
|
|
142
|
+
action: "un 'handoff' conserva una preview estática local de su default_state: creá la rendition y enumerala en el criterio que lo demuestra",
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
return failures;
|
|
146
|
+
}
|
|
147
|
+
/** One entry of the matrix: classified, and enumerating what its class demands. */
|
|
148
|
+
function checkClassified(entry, file) {
|
|
149
|
+
const incomplete = (message, action) => ({
|
|
150
|
+
code: "DESIGN_MATURITY_INCOMPLETE",
|
|
151
|
+
artifact: file,
|
|
152
|
+
message: `trace['${entry.criterion}'] ${message}`,
|
|
153
|
+
action,
|
|
154
|
+
});
|
|
155
|
+
if (entry.classification === null) {
|
|
156
|
+
return [
|
|
157
|
+
incomplete("no está clasificado", "clasificalo 'visual', 'interaction' o 'not_visual': un 'handoff' dice cómo se demuestra cada criterio"),
|
|
158
|
+
];
|
|
159
|
+
}
|
|
160
|
+
if (entry.classification === "not_visual") {
|
|
161
|
+
return entry.reason === null
|
|
162
|
+
? [
|
|
163
|
+
incomplete("está clasificado 'not_visual' y no dice por qué", "escribí en 'reason' qué hace que ese criterio no tenga nada que mirar"),
|
|
164
|
+
]
|
|
165
|
+
: [];
|
|
166
|
+
}
|
|
167
|
+
const failures = [];
|
|
168
|
+
if (entry.states.length === 0) {
|
|
169
|
+
failures.push(incomplete(`es '${entry.classification}' y no enumera estados`, "nombrá en 'states' los anchors donde se ve"));
|
|
170
|
+
}
|
|
171
|
+
if (entry.renditions.length === 0) {
|
|
172
|
+
failures.push(incomplete(`es '${entry.classification}' y no enumera renditions`, "referenciá en 'renditions' la evidencia visual que lo muestra"));
|
|
173
|
+
}
|
|
174
|
+
return failures;
|
|
175
|
+
}
|
|
105
176
|
/**
|
|
106
177
|
* AC-SEM-02: a `handoff` flow states its TRANSITIONS, not just its steps.
|
|
107
178
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maturity.js","sourceRoot":"","sources":["../../../src/domain/design/maturity.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,kBAAkB,EAClB,QAAQ,EACR,eAAe,EACf,UAAU,EACV,SAAS,GACV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,
|
|
1
|
+
{"version":3,"file":"maturity.js","sourceRoot":"","sources":["../../../src/domain/design/maturity.ts"],"names":[],"mappings":"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"}
|