@tacuchi/agent-workflow-cli 21.0.0 → 21.1.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 +1 -0
- 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 +187 -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/resume-service.js +23 -10
- package/dist/application/resume-service.js.map +1 -1
- package/dist/application/self/install-skill.js +11 -0
- 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/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/data/workflow-content.js +5 -0
- package/dist/cli/tui/data/workflow-content.js.map +1 -1
- package/dist/cli/tui/tabs/workflow-tab.js +5 -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 +2276 -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 +21 -0
- package/dist/domain/harnesses.js.map +1 -1
- package/dist/domain/skills.js +13 -14
- package/dist/domain/skills.js.map +1 -1
- package/package.json +1 -1
- package/skills/w/SKILL.md +5 -5
- package/skills/w/context/MANIFEST.json +38 -1
- package/skills/w/harness/HARNESS.md +20 -0
- 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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolution.js","sourceRoot":"","sources":["../../../src/application/capability/resolution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AASH,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAwDzD,MAAM,UAAU,iBAAiB,CAAC,KAA6B;IAC7D,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACtC,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAErD,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;QAC5B,OAAO;YACL,UAAU,EAAE,UAAU,CAAC,IAAI;YAC3B,KAAK,EAAE,UAAU;YACjB,sEAAsE;YACtE,wEAAwE;YACxE,yDAAyD;YACzD,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YACtE,SAAS,EAAE,EAAE;YACb,YAAY,EAAE,EAAE;YAChB,UAAU;YACV,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,mDAAmD,UAAU,CAAC,IAAI,GAAG;SAC9E,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,KAAK,eAAe,EAAE,CAAC;QACtC,OAAO,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE;YACvC,KAAK,EAAE,iBAAiB;YACxB,IAAI,EAAE,OAAO,CAAC,MAAM,IAAI,sDAAsD;YAC9E,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,EAAE,YAAY,IAAI,EAAE,CAAC;IAC7D,IAAI,UAAU,CAAC,KAAK,CAAC,YAAY,KAAK,MAAM,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1E,kEAAkE;QAClE,OAAO,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACzD,IAAI,QAAQ,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;QAClC,OAAO,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE;YACvC,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK;YACjC,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,IAAI;YAC/B,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM;SACpC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,UAAU,EAAE,UAAU,CAAC,IAAI;QAC3B,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,KAAK;QACZ,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,YAAY,EAAE,EAAE;QAChB,UAAU;QACV,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,IAAI;KACb,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,UAAgC,EAChC,OAAgC;IAEhC,OAAO,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,cAAc,CACrB,EAAuB,EACvB,OAAgC;IAEhC,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,IAAI,EAAE,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QACpD,OAAO;YACL,SAAS,EAAE,EAAE,CAAC,IAAI;YAClB,SAAS,EAAE,KAAK;YAChB,wEAAwE;YACxE,kCAAkC;YAClC,MAAM,EAAE,2DAA2D;SACpE,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC/D,CAAC;AAED,SAAS,SAAS,CAChB,UAAgC,EAChC,UAAmC;IAEnC,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAC7B,OAAO;YACL,UAAU,EAAE,UAAU,CAAC,IAAI;YAC3B,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,EAAE;YACb,YAAY,EAAE,EAAE;YAChB,UAAU;YACV,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;SACb,CAAC;IACJ,CAAC;IACD,4EAA4E;IAC5E,2EAA2E;IAC3E,OAAO;QACL,UAAU,EAAE,UAAU,CAAC,IAAI;QAC3B,KAAK,EAAE,aAAa;QACpB,KAAK,EAAE,KAAK;QACZ,SAAS,EAAE,EAAE;QACb,YAAY,EAAE,EAAE;QAChB,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjC,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,IAAI,UAAU,CAAC,IAAI,qEAAqE;SACjG,CAAC,CAAC;QACH,MAAM,EAAE,IAAI,UAAU,CAAC,IAAI,gEAAgE;QAC3F,MAAM,EAAE,sCAAsC,UAAU,CAAC,IAAI,iCAAiC;KAC/F,CAAC;AACJ,CAAC;AAQD;;;;;;;GAOG;AACH,SAAS,cAAc,CACrB,KAA6B,EAC7B,UAAmC,EACnC,IAAqB;IAErB,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAC7B,MAAM,YAAY,GAAkB,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7E,MAAM,QAAQ,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;IAE7E,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3C,OAAO;YACL,UAAU,EAAE,UAAU,CAAC,IAAI;YAC3B,KAAK,EAAE,eAAe;YACtB,KAAK,EAAE,KAAK;YACZ,SAAS,EAAE,EAAE;YACb,YAAY;YACZ,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAClF,MAAM,EAAE,IAAI,CAAC,IAAI;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,+BAA+B,UAAU,CAAC,IAAI,GAAG;SACzE,CAAC;IACJ,CAAC;IAED,OAAO;QACL,UAAU,EAAE,UAAU,CAAC,IAAI;QAC3B,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,IAAI;QACX,uEAAuE;QACvE,kDAAkD;QAClD,SAAS,EAAE,EAAE;QACb,YAAY;QACZ,UAAU;QACV,MAAM,EAAE,IAAI,CAAC,IAAI;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,wDAAwD;KAChF,CAAC;AACJ,CAAC;AAOD,SAAS,kBAAkB,CACzB,KAA6B,EAC7B,YAA+B;IAE/B,MAAM,SAAS,GAAuB,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAEpE,KAAK,MAAM,WAAW,IAAI,OAAO,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QACxD,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;QAErE,MAAM,QAAQ,GAAG,SAAgC,CAAC;QAClD,MAAM,QAAQ,GACZ,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,WAAW,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9F,SAAS,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC5B,OAAO,EAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE;YACjC,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,MAAM,EAAE,QAAQ,CAAC,MAAgB;YACjC,KAAK,EAAE,WAAW,CAAC,KAAK;SACzB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAC1C,CAAC;AAED,6EAA6E;AAC7E,SAAS,QAAQ,CACf,KAA6B,EAC7B,WAA4B,EAC5B,SAAqC;IAErC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO;YACL,KAAK,EAAE,kBAAkB;YACzB,IAAI,EAAE,oBAAoB,WAAW,CAAC,IAAI,uDAAuD;YACjG,MAAM,EAAE,gEAAgE;SACzE,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,CAAC,KAAK,KAAK,eAAe,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QACrE,OAAO;YACL,KAAK,EAAE,kBAAkB;YACzB,IAAI,EACF,SAAS,CAAC,OAAO,EAAE,OAAO,IAAI,IAAI,WAAW,CAAC,IAAI,sCAAsC;YAC1F,MAAM,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,IAAI,yCAAyC;SAC/E,CAAC;IACJ,CAAC;IACD,4EAA4E;IAC5E,0EAA0E;IAC1E,8EAA8E;IAC9E,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC5D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;QACzE,OAAO;YACL,KAAK,EAAE,kBAAkB;YACzB,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,uBAAuB,QAAQ,CAAC,MAAM,gDAAgD;YAChH,MAAM,EAAE,uCAAuC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,gCAAgC;SACnG,CAAC;IACJ,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;QAC1E,OAAO;YACL,KAAK,EAAE,gBAAgB;YACvB,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,+DAA+D;YACzF,MAAM,EAAE,wEAAwE;SACjF,CAAC;IACJ,CAAC;IACD,OAAO,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;AACnD,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CACjB,KAA6B,EAC7B,WAA4B,EAC5B,SAA8B;IAE9B,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,QAAQ,IAAI,IAAI,CAAC;IACtE,MAAM,MAAM,GAAG,CAAC,GAAW,EAAmB,EAAE,CAAC,CAAC;QAChD,KAAK,EAAE,0BAA0B;QACjC,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,KAAK,GAAG,EAAE;QACpC,MAAM,EAAE,wCAAwC,WAAW,CAAC,IAAI,6BAA6B;KAC9F,CAAC,CAAC;IAEH,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC,yBAAyB,KAAK,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,QAAQ,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAClD,OAAO,MAAM,CAAC,sBAAsB,QAAQ,CAAC,UAAU,YAAY,KAAK,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC;IAC/F,CAAC;IACD,IAAI,QAAQ,CAAC,gBAAgB,KAAK,KAAK,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;QACpE,OAAO,MAAM,CACX,gCAAgC,QAAQ,CAAC,gBAAgB,2BAA2B,KAAK,CAAC,UAAU,CAAC,gBAAgB,EAAE,CACxH,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC;IAC1C,IAAI,SAAS,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACnE,OAAO,MAAM,CAAC,oCAAoC,SAAS,GAAG,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAkBD,MAAM,UAAU,YAAY,CAC1B,UAAgC,EAChC,UAAgC;IAEhC,OAAO;QACL,UAAU,EAAE,UAAU,CAAC,UAAU;QACjC,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;QAC7C,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1C,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,KAAK,EAAE,CAAC,CAAC,KAAK;SACf,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAID,MAAM,UAAU,QAAQ,CAAC,GAAiB,EAAE,SAA8B;IACxE,KAAK,MAAM,QAAQ,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,SAAS,EAAE,MAAM,KAAK,QAAQ,CAAC,MAAM;YAAE,SAAS;QACpD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,WAAW,EAAE;gBACX,KAAK,EAAE,gBAAgB;gBACvB,IAAI,EAAE,IAAI,QAAQ,CAAC,IAAI,+DAA+D;aACvF;YACD,MAAM,EAAE,6EAA6E;SACtF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,187 @@
|
|
|
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
|
+
export function renderCapabilitySkill(descriptor) {
|
|
45
|
+
const operations = descriptor.operations.map((o) => `\`${o.name}\``).join(", ");
|
|
46
|
+
return [
|
|
47
|
+
"---",
|
|
48
|
+
`name: ${descriptor.name}`,
|
|
49
|
+
"description: >-",
|
|
50
|
+
` ${descriptor.purpose}. Operaciones: ${descriptor.operations.map((o) => o.name).join(", ")}.`,
|
|
51
|
+
"metadata:",
|
|
52
|
+
` ${CAPABILITY_DESCRIPTOR_METADATA_KEY}: "${descriptorLocatorValue(descriptor)}"`,
|
|
53
|
+
"---",
|
|
54
|
+
"",
|
|
55
|
+
`> ${CAPABILITY_SKILL_MARKER}. El contrato completo vive en \`./${CAPABILITY_DESCRIPTOR_FILE}\`; este archivo no lo repite.`,
|
|
56
|
+
"",
|
|
57
|
+
`# ${descriptor.name}`,
|
|
58
|
+
"",
|
|
59
|
+
`${descriptor.purpose}.`,
|
|
60
|
+
"",
|
|
61
|
+
"## Cómo se ejecuta",
|
|
62
|
+
"",
|
|
63
|
+
`Toda invocación pasa por el dispatcher compartido, con la operación (${operations}) viajando en el envelope:`,
|
|
64
|
+
"",
|
|
65
|
+
"```",
|
|
66
|
+
`aw capability prepare --capability ${descriptor.name} --operation <op> [--input k=v ...]`,
|
|
67
|
+
"aw capability continue --request <request.json> [--input k=v ...]",
|
|
68
|
+
"aw capability validate --request <request.json> # stdin: la respuesta autorada",
|
|
69
|
+
"aw capability apply --plan <plan.json> --approval <digest>",
|
|
70
|
+
"```",
|
|
71
|
+
"",
|
|
72
|
+
"Cada intento devuelve `outcome`, `output` y `receipt`. Un `needs_input` se contesta con",
|
|
73
|
+
"`continue`, que construye el intento siguiente del mismo `invocation_id` — nunca reusa el anterior.",
|
|
74
|
+
"",
|
|
75
|
+
"## Lo que esta ruta NO hace",
|
|
76
|
+
"",
|
|
77
|
+
"- No crea, avanza, cierra ni publica una sesión o documento SPEC, PLAN o QUICK.",
|
|
78
|
+
"- No inicializa un workspace: si la operación necesita uno y no lo hay, devuelve un resultado explícito.",
|
|
79
|
+
"- No ejerce ningún efecto que el descriptor no declare, ni uno que exija aprobación sin pedirla.",
|
|
80
|
+
"",
|
|
81
|
+
"La conversación es la del host. Las preguntas de un `needs_input` se hacen acá mismo.",
|
|
82
|
+
"El contrato de invocación completo — qué puede pedir cada caller — vive en",
|
|
83
|
+
"`roles/design/CONTRACT.md` del bundle `w`, y no se repite acá.",
|
|
84
|
+
"",
|
|
85
|
+
].join("\n");
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* The ownership RULE, given what a reader found. One rule, two readers: the
|
|
89
|
+
* installer reads with `node:fs`, readiness reads through the port, and neither
|
|
90
|
+
* carries its own copy of "is this ours" — a second copy is a second answer.
|
|
91
|
+
*/
|
|
92
|
+
export function ownershipOf(dir, skillMd, entries) {
|
|
93
|
+
if (skillMd === null) {
|
|
94
|
+
// No SKILL.md. An unrelated dir is not ours to claim either — but it is also
|
|
95
|
+
// not a skill, so installing into an empty one is safe.
|
|
96
|
+
if (entries === null || entries.length === 0)
|
|
97
|
+
return { state: "absent" };
|
|
98
|
+
return { state: "foreign", why: `'${dir}' tiene contenido y ningún SKILL.md` };
|
|
99
|
+
}
|
|
100
|
+
if (skillMd.includes(CAPABILITY_SKILL_MARKER))
|
|
101
|
+
return { state: "ours" };
|
|
102
|
+
return { state: "foreign", why: `'${dir}' ya tiene un SKILL.md que no instalamos nosotros` };
|
|
103
|
+
}
|
|
104
|
+
export async function inspectCapabilityDir(dir) {
|
|
105
|
+
let skillMd = null;
|
|
106
|
+
try {
|
|
107
|
+
skillMd = await readFile(join(dir, "SKILL.md"), "utf8");
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
skillMd = null;
|
|
111
|
+
}
|
|
112
|
+
if (skillMd !== null)
|
|
113
|
+
return ownershipOf(dir, skillMd, null);
|
|
114
|
+
try {
|
|
115
|
+
return ownershipOf(dir, null, await readdir(dir));
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
return ownershipOf(dir, null, null);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/** The same rule, read through a `FileSystemPort` (readiness, tests). */
|
|
122
|
+
export async function inspectCapabilityDirVia(fs, dir) {
|
|
123
|
+
const skillMd = join(dir, "SKILL.md");
|
|
124
|
+
if (await fs.exists(skillMd)) {
|
|
125
|
+
try {
|
|
126
|
+
return ownershipOf(dir, await fs.readText(skillMd), null);
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
return ownershipOf(dir, null, null);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
if (!(await fs.exists(dir)))
|
|
133
|
+
return ownershipOf(dir, null, null);
|
|
134
|
+
try {
|
|
135
|
+
return ownershipOf(dir, null, (await fs.list(dir)).map((e) => e.name));
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
return ownershipOf(dir, null, null);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Write (or rewrite) the wrapper. Idempotent: reinstalling over our own copy
|
|
143
|
+
* produces the same bytes, so a second run is a no-op in content terms.
|
|
144
|
+
*/
|
|
145
|
+
export async function installCapabilitySkill(root, descriptor) {
|
|
146
|
+
const dir = join(root, descriptor.name);
|
|
147
|
+
const ownership = await inspectCapabilityDir(dir);
|
|
148
|
+
if (ownership.state === "foreign") {
|
|
149
|
+
return {
|
|
150
|
+
ok: false,
|
|
151
|
+
failure: {
|
|
152
|
+
code: "CAPABILITY_WRAPPER_CONFLICT",
|
|
153
|
+
message: ownership.why,
|
|
154
|
+
action: `renombrá o quitá esa skill para que '${descriptor.name}' pueda instalarse; no se sobrescribe contenido ajeno`,
|
|
155
|
+
},
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
await mkdir(dir, { recursive: true });
|
|
159
|
+
const skillMd = join(dir, "SKILL.md");
|
|
160
|
+
const descriptorPath = join(dir, CAPABILITY_DESCRIPTOR_FILE);
|
|
161
|
+
// Descriptor first: between the two writes the SKILL.md must never point at a
|
|
162
|
+
// file that is not there yet, or a host reading mid-install sees a broken
|
|
163
|
+
// locator instead of no skill at all.
|
|
164
|
+
await writeFile(descriptorPath, renderDescriptorJson(descriptor), "utf8");
|
|
165
|
+
await writeFile(skillMd, renderCapabilitySkill(descriptor), "utf8");
|
|
166
|
+
return { ok: true, dir, files: [skillMd, descriptorPath] };
|
|
167
|
+
}
|
|
168
|
+
/** Remove only what we installed. Anything else is preserved, byte for byte. */
|
|
169
|
+
export async function uninstallCapabilitySkill(root, name) {
|
|
170
|
+
const dir = join(root, name);
|
|
171
|
+
const ownership = await inspectCapabilityDir(dir);
|
|
172
|
+
if (ownership.state === "absent")
|
|
173
|
+
return { ok: true, removed: false, dir };
|
|
174
|
+
if (ownership.state === "foreign") {
|
|
175
|
+
return {
|
|
176
|
+
ok: false,
|
|
177
|
+
failure: {
|
|
178
|
+
code: "CAPABILITY_WRAPPER_FOREIGN",
|
|
179
|
+
message: ownership.why,
|
|
180
|
+
action: "no se borra una skill que no instalamos: quitala vos si querés",
|
|
181
|
+
},
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
await rm(dir, { recursive: true, force: true });
|
|
185
|
+
return { ok: true, removed: true, dir };
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=wrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../../src/application/capability/wrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,
|
|
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",
|
|
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":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
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
|
-
|
|
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: [`
|
|
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":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"measure.js","sourceRoot":"","sources":["../../../src/application/context/measure.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { join } from "node:path";
|
|
2
2
|
import { TOKENS_UNAVAILABLE } from "./budget-service.js";
|
|
3
3
|
import { resolveBundleRoot } from "./bundle-root.js";
|
|
4
|
-
import { loadManifest } from "./manifest.js";
|
|
4
|
+
import { contextEntryFor, loadManifest } from "./manifest.js";
|
|
5
5
|
import { byteLength, resolveReadSet } from "./measure.js";
|
|
6
6
|
export class ContextPlanError extends Error {
|
|
7
7
|
code;
|
|
@@ -21,7 +21,7 @@ export async function runContextPlan(fs, input) {
|
|
|
21
21
|
const capabilities = new Set(input.capabilities ?? []);
|
|
22
22
|
const set = resolveReadSet(manifest, input.command, signals);
|
|
23
23
|
if (set.paths.length === 0) {
|
|
24
|
-
throw new ContextPlanError("CONTEXT_PLAN_UNKNOWN_COMMAND", `'${input.command}' no está en el manifiesto de ${resolved.root}. Comandos: ${Object.keys(manifest.commands).sort().join(", ")}`);
|
|
24
|
+
throw new ContextPlanError("CONTEXT_PLAN_UNKNOWN_COMMAND", `'${input.command}' no está en el manifiesto de ${resolved.root}. Comandos: ${Object.keys(manifest.commands).sort().join(", ")}. Capacidades: ${Object.keys(manifest.capabilities).sort().join(", ") || "(ninguna)"}`);
|
|
25
25
|
}
|
|
26
26
|
const compact = await describeReadSet(fs, resolved.root, manifest, input.command, set.paths);
|
|
27
27
|
// Two kinds of trouble, and they do NOT deserve the same answer.
|
|
@@ -53,7 +53,7 @@ export async function runContextPlan(fs, input) {
|
|
|
53
53
|
command: input.command,
|
|
54
54
|
profile,
|
|
55
55
|
signals,
|
|
56
|
-
available_signals: (manifest
|
|
56
|
+
available_signals: (contextEntryFor(manifest, input.command)?.modules ?? []).map((m) => ({
|
|
57
57
|
signal: m.signal,
|
|
58
58
|
means: manifest.signals[m.signal] ?? "",
|
|
59
59
|
module: m.path,
|
|
@@ -100,7 +100,7 @@ export function selectProfile(structuralReasons) {
|
|
|
100
100
|
function unmetCapabilities(manifest, command, signals, capabilities) {
|
|
101
101
|
const observed = new Set(signals);
|
|
102
102
|
const out = [];
|
|
103
|
-
for (const module of manifest
|
|
103
|
+
for (const module of contextEntryFor(manifest, command)?.modules ?? []) {
|
|
104
104
|
if (module.requires === undefined)
|
|
105
105
|
continue;
|
|
106
106
|
if (!observed.has(module.signal))
|
|
@@ -127,7 +127,7 @@ function samePaths(a, b) {
|
|
|
127
127
|
return a.length === b.length && a.every((path, i) => path === b[i]);
|
|
128
128
|
}
|
|
129
129
|
function everyPath(manifest, command) {
|
|
130
|
-
const entry = manifest
|
|
130
|
+
const entry = contextEntryFor(manifest, command);
|
|
131
131
|
if (entry === undefined)
|
|
132
132
|
return [];
|
|
133
133
|
const out = [...entry.core];
|
|
@@ -169,7 +169,7 @@ function degradationNotice(profile, reasons) {
|
|
|
169
169
|
}
|
|
170
170
|
function moduleOrigins(manifest, command) {
|
|
171
171
|
const out = new Map();
|
|
172
|
-
for (const module of manifest
|
|
172
|
+
for (const module of contextEntryFor(manifest, command)?.modules ?? []) {
|
|
173
173
|
out.set(module.path, module.signal);
|
|
174
174
|
}
|
|
175
175
|
return out;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-service.js","sourceRoot":"","sources":["../../../src/application/context/plan-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAwB,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"plan-service.js","sourceRoot":"","sources":["../../../src/application/context/plan-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { join } from "node:path";
|
|
2
|
+
import { bundleAdapterOf, declaredLosses } from "../../domain/design/adapter.js";
|
|
3
|
+
import { validateDesignArtifact } from "../../domain/design/artifact.js";
|
|
4
|
+
import { computeClosure } from "../../domain/design/closure.js";
|
|
5
|
+
import { planExternalSend } from "../../domain/design/external-send.js";
|
|
6
|
+
import { parseArtifactRef } from "../../domain/design/identity.js";
|
|
7
|
+
import { gateDesignDocument } from "../../domain/design/maturity.js";
|
|
8
|
+
import { buildRenderBundle, checkDataAuthorization, } from "../../domain/design/render-bundle.js";
|
|
9
|
+
import { readDesignIndex } from "./design-index-service.js";
|
|
10
|
+
export async function cutRenderBundle(fs, workspace, input) {
|
|
11
|
+
const classification = input.dataClassification ?? "synthetic";
|
|
12
|
+
// Antes de leer el package: si el material real no está autorizado, el bundle no
|
|
13
|
+
// llega a existir. Comprobarlo después de armarlo dejaría los datos en memoria de
|
|
14
|
+
// un objeto cuyo único propósito es entregarse a un tercero.
|
|
15
|
+
const unauthorized = checkDataAuthorization(classification, input.dataAuthorization, `${input.packageId}/render-bundle.json`);
|
|
16
|
+
if (unauthorized.length > 0)
|
|
17
|
+
return { ok: false, failures: unauthorized };
|
|
18
|
+
const index = await readDesignIndex(fs, workspace);
|
|
19
|
+
const entry = index.packages.find((p) => p.id === input.packageId);
|
|
20
|
+
if (entry === undefined || entry.manifest === null) {
|
|
21
|
+
return {
|
|
22
|
+
ok: false,
|
|
23
|
+
failures: [
|
|
24
|
+
{
|
|
25
|
+
code: "DESIGN_REFERENCE_MISSING",
|
|
26
|
+
artifact: index.root,
|
|
27
|
+
message: `no hay un package ${input.packageId} con manifest válido bajo ${index.root}/`,
|
|
28
|
+
action: "revisá 'aw designs --detail': un bundle se corta de un package que resuelve",
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
const manifest = entry.manifest;
|
|
34
|
+
const baseline = manifest.current_baseline;
|
|
35
|
+
if (baseline === null) {
|
|
36
|
+
return {
|
|
37
|
+
ok: false,
|
|
38
|
+
failures: [
|
|
39
|
+
{
|
|
40
|
+
code: "DESIGN_BASE_STALE",
|
|
41
|
+
artifact: entry.manifest_path,
|
|
42
|
+
message: `${manifest.id} no tiene ninguna revisión publicada`,
|
|
43
|
+
action: "publicá una revisión: un bundle entrega bytes sellados, no un borrador",
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
const content = await readPackage(fs, workspace, entry.path, manifest);
|
|
49
|
+
const closure = computeClosure(manifest, input.roots, (path) => content.documents.get(path) ?? null);
|
|
50
|
+
const built = buildRenderBundle({
|
|
51
|
+
manifest,
|
|
52
|
+
baseline: { revision: baseline.revision, digest: baseline.digest },
|
|
53
|
+
adapter: bundleAdapterOf(input.adapter),
|
|
54
|
+
roots: input.roots,
|
|
55
|
+
closure,
|
|
56
|
+
readBytes: (path) => content.bytes.get(path) ?? null,
|
|
57
|
+
accessibility: accessibilityOf(manifest, closure.members, content.texts),
|
|
58
|
+
losses: declaredLosses(input.adapter),
|
|
59
|
+
dataClassification: classification,
|
|
60
|
+
generated: input.generated,
|
|
61
|
+
});
|
|
62
|
+
if (!built.ok)
|
|
63
|
+
return built;
|
|
64
|
+
return {
|
|
65
|
+
ok: true,
|
|
66
|
+
value: built.value,
|
|
67
|
+
preflight: input.adapter.network === "never"
|
|
68
|
+
? null
|
|
69
|
+
: planExternalSend({
|
|
70
|
+
adapter: input.adapter,
|
|
71
|
+
bundle: built.value,
|
|
72
|
+
...(input.sendAuthorization === undefined
|
|
73
|
+
? {}
|
|
74
|
+
: { authorization: input.sendAuthorization }),
|
|
75
|
+
}),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* What the accessibility half of the bundle carries.
|
|
80
|
+
*
|
|
81
|
+
* Read off the SAME gate the maturity profile uses, never re-derived here: an
|
|
82
|
+
* obligation is what a document demands and an implementation owes, and having
|
|
83
|
+
* two places decide what counts as one is how they start disagreeing. A section
|
|
84
|
+
* the document waived is not an obligation — the gate already knows that.
|
|
85
|
+
*/
|
|
86
|
+
function accessibilityOf(manifest, members, texts) {
|
|
87
|
+
const out = [];
|
|
88
|
+
for (const member of members) {
|
|
89
|
+
if (member.kind !== "screen" && member.kind !== "flow")
|
|
90
|
+
continue;
|
|
91
|
+
const path = pathOf(manifest, member.ref);
|
|
92
|
+
const text = path === null ? undefined : texts.get(path);
|
|
93
|
+
if (path === null || text === undefined)
|
|
94
|
+
continue;
|
|
95
|
+
for (const obligation of gateDesignDocument(text, member.kind, path).obligations) {
|
|
96
|
+
if (obligation.key !== "accessibility")
|
|
97
|
+
continue;
|
|
98
|
+
out.push({ ref: member.ref, statement: obligation.statement });
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return out;
|
|
102
|
+
}
|
|
103
|
+
/** The catalog path of a `DES-001/SCR-001@r2` reference. */
|
|
104
|
+
function pathOf(manifest, ref) {
|
|
105
|
+
const parsed = parseArtifactRef(ref);
|
|
106
|
+
if (parsed === null)
|
|
107
|
+
return null;
|
|
108
|
+
for (const key of ["flows", "screens", "rules", "tokens", "renditions"]) {
|
|
109
|
+
const hit = manifest.catalog[key].find((e) => e.id === parsed.artifact && e.revision === parsed.revision);
|
|
110
|
+
if (hit !== undefined)
|
|
111
|
+
return hit.path;
|
|
112
|
+
}
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* One pass over the package. The closure walks synchronously and cannot await
|
|
117
|
+
* mid-traversal, so everything it may reach is read up front — and read ONCE, or
|
|
118
|
+
* a package with thirteen screens would be re-read per root.
|
|
119
|
+
*/
|
|
120
|
+
async function readPackage(fs, workspace, packagePath, manifest) {
|
|
121
|
+
const content = { bytes: new Map(), texts: new Map(), documents: new Map() };
|
|
122
|
+
const root = join(workspace, packagePath);
|
|
123
|
+
const DOC_KIND = { flows: "flow", screens: "screen" };
|
|
124
|
+
for (const key of ["flows", "screens", "rules", "tokens", "renditions"]) {
|
|
125
|
+
for (const catalogued of manifest.catalog[key]) {
|
|
126
|
+
await readOne(fs, root, catalogued.path, DOC_KIND[key], content);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
for (const asset of manifest.catalog.assets) {
|
|
130
|
+
await readOne(fs, root, asset.path, undefined, content);
|
|
131
|
+
}
|
|
132
|
+
return content;
|
|
133
|
+
}
|
|
134
|
+
/** One catalogued file: bytes always, text and a parse only for a document kind. */
|
|
135
|
+
async function readOne(fs, root, path, kind, into) {
|
|
136
|
+
const absolute = join(root, path);
|
|
137
|
+
if (!(await fs.exists(absolute)))
|
|
138
|
+
return;
|
|
139
|
+
into.bytes.set(path, await fs.readBytes(absolute));
|
|
140
|
+
if (kind === undefined)
|
|
141
|
+
return;
|
|
142
|
+
const text = await fs.readText(absolute);
|
|
143
|
+
into.texts.set(path, text);
|
|
144
|
+
const parsed = validateDesignArtifact(text, kind, path);
|
|
145
|
+
if (parsed.ok && parsed.value !== null)
|
|
146
|
+
into.documents.set(path, parsed.value);
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=design-bundle-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-bundle-service.js","sourceRoot":"","sources":["../../../src/application/design/design-bundle-service.ts"],"names":[],"mappings":"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"}
|