@crouton-kit/crouter 0.3.32 → 0.3.34
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 +10 -2
- package/dist/build-root.js +4 -6
- package/dist/builtin-memory/crouter-development/marketplaces.md +8 -8
- package/dist/builtin-memory/crouter-development/personas/base-prompt.md +2 -2
- package/dist/builtin-memory/crouter-development/personas/orchestrator-prompt.md +5 -5
- package/dist/builtin-memory/crouter-development/personas.md +3 -4
- package/dist/builtin-memory/crouter-development/plugins.md +31 -31
- package/dist/builtin-memory/design.md +4 -1
- package/dist/builtin-memory/development.md +4 -1
- package/dist/builtin-memory/internal/INDEX.md +1 -1
- package/dist/builtin-memory/internal/examples/imessage-assistant.md +3 -3
- package/dist/builtin-memory/internal/nodes-and-canvas.md +9 -9
- package/dist/builtin-memory/internal/storage-tiers.md +5 -5
- package/dist/builtin-memory/planning.md +4 -1
- package/dist/builtin-memory/product.md +80 -0
- package/dist/builtin-memory/spec.md +4 -1
- package/dist/builtin-personas/advisor/PERSONA.md +10 -0
- package/dist/builtin-personas/design/PERSONA.md +2 -2
- package/dist/builtin-personas/design/orchestrator.md +3 -3
- package/dist/builtin-personas/developer/PERSONA.md +1 -1
- package/dist/builtin-personas/developer/orchestrator.md +2 -2
- package/dist/builtin-personas/explore/PERSONA.md +3 -3
- package/dist/builtin-personas/explore/orchestrator.md +4 -2
- package/dist/builtin-personas/general/PERSONA.md +1 -1
- package/dist/builtin-personas/general/orchestrator.md +1 -1
- package/dist/builtin-personas/orchestration-kernel.md +8 -15
- package/dist/builtin-personas/plan/PERSONA.md +1 -1
- package/dist/builtin-personas/plan/orchestrator.md +2 -2
- package/dist/builtin-personas/plan/reviewers/architecture-fit/PERSONA.md +1 -1
- package/dist/builtin-personas/plan/reviewers/code-smells/PERSONA.md +1 -1
- package/dist/builtin-personas/plan/reviewers/pattern-consistency/PERSONA.md +1 -1
- package/dist/builtin-personas/plan/reviewers/requirements-coverage/PERSONA.md +1 -1
- package/dist/builtin-personas/plan/reviewers/security/PERSONA.md +1 -1
- package/dist/builtin-personas/product/PERSONA.md +18 -0
- package/dist/builtin-personas/product/orchestrator.md +14 -0
- package/dist/builtin-personas/product/teardown/PERSONA.md +13 -0
- package/dist/builtin-personas/review/PERSONA.md +1 -1
- package/dist/builtin-personas/review/orchestrator.md +1 -1
- package/dist/builtin-personas/runtime-base.md +5 -0
- package/dist/builtin-personas/spec/PERSONA.md +1 -1
- package/dist/builtin-personas/spec/orchestrator.md +2 -2
- package/dist/builtin-personas/spec/requirements/PERSONA.md +1 -1
- package/dist/builtin-personas/waiting.md +1 -1
- package/dist/builtin-pi-packages/pi-crtr-extensions/README.md +71 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/__tests__/crtr-help-gate.test.ts +41 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/__tests__/provider-rotation.test.ts +663 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/__tests__/statusline.test.ts +52 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/claude-plugin-commands.ts +418 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/crouter-help.ts +87 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/crtr-commands/filters.json +7 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/crtr-commands/index.ts +174 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/crtr-help-gate.ts +408 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/frontmatter-rules/index.ts +442 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/frontmatter-rules/test.ts +119 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/nested-context.ts +327 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/provider-rotation.ts +574 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/statusline.ts +260 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/strip-skills-docs.ts +40 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/sysprompt-window.ts +19 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/lib/package.json +3 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/lib/subscription-state.js +1 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/lib/subscription-state.ts +479 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/LICENSE +13 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/README.md +172 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/bin.mjs +11 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/compose-collection.js +88 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/compose-doc.js +43 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/compose-node.js +109 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/compose-scalar.js +86 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/composer.js +219 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/resolve-block-map.js +115 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js +198 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +49 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/resolve-end.js +37 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +207 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js +225 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/resolve-props.js +146 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/util-contains-newline.js +34 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js +26 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js +15 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/compose/util-map-includes.js +13 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/doc/Document.js +335 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/doc/anchors.js +71 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/doc/applyReviver.js +55 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/doc/createNode.js +88 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/doc/directives.js +176 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/errors.js +57 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/index.js +17 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/log.js +11 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/nodes/Alias.js +116 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/nodes/Collection.js +147 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/nodes/Node.js +38 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/nodes/Pair.js +36 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/nodes/Scalar.js +24 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/nodes/YAMLMap.js +144 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/nodes/YAMLSeq.js +113 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js +63 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/nodes/identity.js +36 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/nodes/toJS.js +37 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/parse/cst-scalar.js +214 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/parse/cst-stringify.js +61 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/parse/cst-visit.js +97 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/parse/cst.js +98 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/parse/lexer.js +721 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/parse/line-counter.js +39 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/parse/parser.js +975 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/public-api.js +102 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/Schema.js +37 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/common/map.js +17 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/common/null.js +15 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/common/seq.js +17 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/common/string.js +14 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/core/bool.js +19 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/core/float.js +43 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/core/int.js +38 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/core/schema.js +23 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/json/schema.js +62 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/tags.js +96 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js +58 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js +26 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js +46 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js +71 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js +67 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js +74 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js +78 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js +39 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js +93 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js +101 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/stringify/foldFlowLines.js +146 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/stringify/stringify.js +129 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/stringify/stringifyCollection.js +153 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/stringify/stringifyComment.js +20 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/stringify/stringifyDocument.js +85 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +25 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/stringify/stringifyPair.js +150 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/stringify/stringifyString.js +336 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/util.js +11 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/dist/visit.js +233 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/index.js +5 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/browser/package.json +3 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/cli.d.ts +8 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/cli.mjs +201 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/compose-collection.d.ts +11 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/compose-collection.js +90 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/compose-doc.d.ts +7 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/compose-doc.js +45 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/compose-node.d.ts +29 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/compose-node.js +112 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/compose-scalar.d.ts +5 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/compose-scalar.js +88 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/composer.d.ts +63 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/composer.js +224 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/resolve-block-map.d.ts +6 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/resolve-block-map.js +117 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/resolve-block-scalar.d.ts +11 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/resolve-block-scalar.js +200 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/resolve-block-seq.d.ts +6 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/resolve-block-seq.js +51 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/resolve-end.d.ts +6 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/resolve-end.js +39 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/resolve-flow-collection.d.ts +7 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/resolve-flow-collection.js +209 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/resolve-flow-scalar.d.ts +10 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/resolve-flow-scalar.js +227 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/resolve-props.d.ts +23 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/resolve-props.js +148 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/util-contains-newline.d.ts +2 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/util-contains-newline.js +36 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/util-empty-scalar-position.d.ts +2 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/util-empty-scalar-position.js +28 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/util-flow-indent-check.d.ts +3 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/util-flow-indent-check.js +17 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/util-map-includes.d.ts +4 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/compose/util-map-includes.js +15 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/doc/Document.d.ts +141 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/doc/Document.js +337 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/doc/anchors.d.ts +24 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/doc/anchors.js +76 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/doc/applyReviver.d.ts +9 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/doc/applyReviver.js +57 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/doc/createNode.d.ts +17 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/doc/createNode.js +90 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/doc/directives.d.ts +49 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/doc/directives.js +178 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/errors.d.ts +21 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/errors.js +62 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/index.d.ts +25 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/index.js +50 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/log.d.ts +3 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/log.js +19 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/Alias.d.ts +29 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/Alias.js +118 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/Collection.d.ts +73 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/Collection.js +151 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/Node.d.ts +53 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/Node.js +40 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/Pair.d.ts +22 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/Pair.js +39 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/Scalar.d.ts +47 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/Scalar.js +27 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/YAMLMap.d.ts +53 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/YAMLMap.js +147 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/YAMLSeq.d.ts +60 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/YAMLSeq.js +115 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/addPairToJSMap.d.ts +4 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/addPairToJSMap.js +65 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/identity.d.ts +23 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/identity.js +53 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/toJS.d.ts +29 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/nodes/toJS.js +39 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/options.d.ts +350 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/parse/cst-scalar.d.ts +64 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/parse/cst-scalar.js +218 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/parse/cst-stringify.d.ts +8 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/parse/cst-stringify.js +63 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/parse/cst-visit.d.ts +39 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/parse/cst-visit.js +99 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/parse/cst.d.ts +109 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/parse/cst.js +112 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/parse/lexer.d.ts +87 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/parse/lexer.js +723 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/parse/line-counter.d.ts +22 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/parse/line-counter.js +41 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/parse/parser.d.ts +84 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/parse/parser.js +980 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/public-api.d.ts +44 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/public-api.js +107 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/Schema.d.ts +17 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/Schema.js +39 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/common/map.d.ts +2 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/common/map.js +19 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/common/null.d.ts +4 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/common/null.js +17 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/common/seq.d.ts +2 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/common/seq.js +19 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/common/string.d.ts +2 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/common/string.js +16 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/core/bool.d.ts +4 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/core/bool.js +21 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/core/float.d.ts +4 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/core/float.js +47 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/core/int.d.ts +4 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/core/int.js +42 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/core/schema.d.ts +1 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/core/schema.js +25 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/json/schema.d.ts +2 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/json/schema.js +64 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/json-schema.d.ts +69 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/tags.d.ts +48 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/tags.js +99 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/types.d.ts +92 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/binary.d.ts +2 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/binary.js +70 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/bool.d.ts +7 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/bool.js +29 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/float.d.ts +4 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/float.js +50 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/int.d.ts +5 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/int.js +76 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/merge.d.ts +9 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/merge.js +71 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts +22 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/omap.js +77 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/pairs.d.ts +10 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/pairs.js +82 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/schema.d.ts +1 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/schema.js +41 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/set.d.ts +28 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/set.js +96 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/timestamp.d.ts +6 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js +105 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/foldFlowLines.d.ts +34 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/foldFlowLines.js +151 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/stringify.d.ts +21 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/stringify.js +132 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/stringifyCollection.d.ts +17 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/stringifyCollection.js +155 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/stringifyComment.d.ts +10 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/stringifyComment.js +24 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/stringifyDocument.d.ts +4 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/stringifyDocument.js +87 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/stringifyNumber.d.ts +2 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/stringifyNumber.js +27 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/stringifyPair.d.ts +3 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/stringifyPair.js +152 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/stringifyString.d.ts +9 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/stringify/stringifyString.js +338 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/test-events.d.ts +4 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/test-events.js +134 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/util.d.ts +16 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/util.js +28 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/visit.d.ts +102 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/dist/visit.js +236 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/package.json +97 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/node_modules/yaml/util.js +2 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/package-lock.json +3385 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/package.json +25 -0
- package/dist/builtin-pi-packages/pi-mode-switch/README.md +64 -0
- package/dist/builtin-pi-packages/pi-mode-switch/bin/mode +40 -0
- package/dist/builtin-pi-packages/pi-mode-switch/extensions/index.ts +422 -0
- package/dist/builtin-pi-packages/pi-mode-switch/package.json +13 -0
- package/dist/builtin-views/canvas/core.mjs +82 -1
- package/dist/builtin-views/canvas/tui.mjs +9 -5
- package/dist/builtin-views/canvas/web.jsx +3 -2
- package/dist/builtin-views/chat/core.mjs +725 -0
- package/dist/builtin-views/chat/text.mjs +101 -0
- package/dist/builtin-views/chat/tui.mjs +368 -0
- package/dist/builtin-views/chat/web.jsx +367 -0
- package/dist/builtin-views/prompt-review/core.mjs +863 -0
- package/dist/builtin-views/prompt-review/text.mjs +15 -0
- package/dist/builtin-views/prompt-review/tui.mjs +196 -0
- package/dist/builtin-views/prompt-review/web.jsx +484 -0
- package/dist/builtin-views/settings/core.mjs +397 -0
- package/dist/builtin-views/settings/text.mjs +40 -0
- package/dist/builtin-views/settings/tui.mjs +95 -0
- package/dist/builtin-views/settings/web.jsx +167 -0
- package/dist/cli.js +16 -3
- package/dist/clients/attach/__tests__/crtr-output-coverage.test.js +55 -0
- package/dist/clients/attach/__tests__/crtr-output-render.test.js +2340 -0
- package/dist/clients/attach/attach-cmd.d.ts +18 -0
- package/dist/clients/attach/attach-cmd.js +1797 -797
- package/dist/clients/attach/auth-pickers.js +2 -2
- package/dist/clients/attach/canvas-panels.js +3 -3
- package/dist/clients/attach/chat-view.d.ts +13 -2
- package/dist/clients/attach/chat-view.js +53 -10
- package/dist/clients/attach/clipboard-image.js +1 -1
- package/dist/clients/attach/clipboard-text.js +1 -1
- package/dist/clients/attach/config-load.d.ts +8 -4
- package/dist/clients/attach/config-load.js +3 -1
- package/dist/clients/attach/crtr-output-render.d.ts +48 -0
- package/dist/clients/attach/crtr-output-render.js +646 -0
- package/dist/clients/attach/extension-dialogs.d.ts +2 -3
- package/dist/clients/attach/extension-dialogs.js +8 -10
- package/dist/clients/attach/graph-overlay.js +6 -5
- package/dist/clients/attach/input-controller.d.ts +4 -3
- package/dist/clients/attach/input-controller.js +25 -4
- package/dist/clients/attach/pickers.js +1 -1
- package/dist/clients/attach/slash-commands.d.ts +7 -7
- package/dist/clients/attach/slash-commands.js +40 -17
- package/dist/clients/attach/titled-editor.d.ts +4 -0
- package/dist/clients/attach/titled-editor.js +31 -15
- package/dist/clients/attach/view-socket.d.ts +2 -1
- package/dist/clients/attach/view-socket.js +28 -9
- package/dist/clients/web/__tests__/source-cache.test.js +32 -0
- package/dist/clients/web/dev-server.js +1 -0
- package/dist/clients/web/events.js +9 -11
- package/dist/clients/web/server.d.ts +4 -3
- package/dist/clients/web/server.js +166 -35
- package/dist/clients/web/source-cache.d.ts +10 -0
- package/dist/clients/web/source-cache.js +57 -0
- package/dist/clients/web/web-cmd.js +32 -13
- package/dist/commands/__tests__/human.test.js +30 -28
- package/dist/commands/canvas-history/search.js +1 -1
- package/dist/commands/canvas-history.js +5 -8
- package/dist/commands/canvas-issue.d.ts +2 -0
- package/dist/commands/canvas-issue.js +148 -0
- package/dist/commands/canvas-prune.js +43 -2
- package/dist/commands/canvas-rebuild-index.d.ts +2 -0
- package/dist/commands/canvas-rebuild-index.js +57 -0
- package/dist/commands/canvas-snapshot.d.ts +2 -0
- package/dist/commands/canvas-snapshot.js +51 -0
- package/dist/commands/canvas-tmux-spread.d.ts +2 -0
- package/dist/commands/canvas-tmux-spread.js +188 -0
- package/dist/commands/canvas.d.ts +1 -0
- package/dist/commands/canvas.js +16 -1
- package/dist/commands/chord.js +143 -48
- package/dist/commands/daemon.js +3 -3
- package/dist/commands/human/prompts.d.ts +0 -1
- package/dist/commands/human/prompts.js +39 -54
- package/dist/commands/human/queue.d.ts +12 -1
- package/dist/commands/human/queue.js +468 -73
- package/dist/commands/human/shared.d.ts +3 -4
- package/dist/commands/human/shared.js +3 -3
- package/dist/commands/human.js +12 -11
- package/dist/commands/memory/find.js +3 -2
- package/dist/commands/memory/lint.js +15 -8
- package/dist/commands/memory/list.js +4 -3
- package/dist/commands/memory/origin.d.ts +1 -0
- package/dist/commands/memory/origin.js +88 -0
- package/dist/commands/memory/read.js +3 -3
- package/dist/commands/memory/shared.d.ts +9 -4
- package/dist/commands/memory/shared.js +28 -10
- package/dist/commands/memory/write.js +19 -14
- package/dist/commands/memory.js +6 -8
- package/dist/commands/node-context.d.ts +2 -0
- package/dist/commands/node-context.js +172 -0
- package/dist/commands/node-snapshot.d.ts +2 -0
- package/dist/commands/node-snapshot.js +126 -0
- package/dist/commands/node.d.ts +2 -2
- package/dist/commands/node.js +987 -603
- package/dist/commands/pkg/market-inspect.d.ts +2 -1
- package/dist/commands/pkg/market-inspect.js +14 -32
- package/dist/commands/pkg/market-manage.d.ts +3 -1
- package/dist/commands/pkg/market-manage.js +58 -154
- package/dist/commands/pkg/market.js +7 -7
- package/dist/commands/pkg/plugin-inspect.d.ts +2 -1
- package/dist/commands/pkg/plugin-inspect.js +13 -29
- package/dist/commands/pkg/plugin-manage.d.ts +5 -1
- package/dist/commands/pkg/plugin-manage.js +246 -172
- package/dist/commands/pkg/plugin.js +6 -6
- package/dist/commands/pkg.js +7 -7
- package/dist/commands/push.d.ts +2 -0
- package/dist/commands/push.js +79 -11
- package/dist/commands/revive.js +79 -4
- package/dist/commands/search/answer.d.ts +1 -0
- package/dist/commands/search/answer.js +50 -0
- package/dist/commands/search/contents.d.ts +1 -0
- package/dist/commands/search/contents.js +96 -0
- package/dist/commands/search/exa.d.ts +53 -0
- package/dist/commands/search/exa.js +155 -0
- package/dist/commands/search/puremd.d.ts +11 -0
- package/dist/commands/search/puremd.js +53 -0
- package/dist/commands/search/web.d.ts +1 -0
- package/dist/commands/search/web.js +65 -0
- package/dist/commands/search.d.ts +2 -0
- package/dist/commands/search.js +24 -0
- package/dist/commands/surface.d.ts +2 -0
- package/dist/commands/surface.js +43 -0
- package/dist/commands/sys/__tests__/sync-import.test.js +72 -0
- package/dist/commands/sys/config.js +59 -10
- package/dist/commands/sys/doctor.js +56 -4
- package/dist/commands/sys/prompt-review.d.ts +1 -0
- package/dist/commands/sys/prompt-review.js +178 -0
- package/dist/commands/sys/promptstudio.d.ts +2 -0
- package/dist/commands/sys/promptstudio.js +65 -0
- package/dist/commands/sys/settings.d.ts +2 -0
- package/dist/commands/sys/settings.js +16 -0
- package/dist/commands/sys/setup-core.d.ts +88 -0
- package/dist/commands/sys/setup-core.js +352 -0
- package/dist/commands/sys/setup.d.ts +2 -0
- package/dist/commands/sys/setup.js +516 -0
- package/dist/commands/sys/sync.js +311 -159
- package/dist/commands/sys/sysprompt.d.ts +1 -0
- package/dist/commands/sys/sysprompt.js +89 -0
- package/dist/commands/sys.js +10 -5
- package/dist/commands/view-cycle.js +5 -5
- package/dist/commands/view-list.js +3 -3
- package/dist/commands/view-new.js +6 -6
- package/dist/commands/view-pick.js +6 -6
- package/dist/commands/view-run.js +14 -14
- package/dist/commands/view.js +3 -3
- package/dist/commands/workspace.js +10 -10
- package/dist/core/__tests__/boot.test.js +140 -0
- package/dist/core/__tests__/broker-preflight.test.js +85 -0
- package/dist/core/__tests__/broker-sdk-wiring.test.js +10 -16
- package/dist/core/__tests__/canvas.test.js +37 -1
- package/dist/core/__tests__/chat-view-reconnect.test.js +70 -0
- package/dist/core/__tests__/child-death-wake.test.js +11 -2
- package/dist/core/__tests__/close.test.js +39 -1
- package/dist/core/__tests__/connection-reconnect-resume.test.js +37 -0
- package/dist/core/__tests__/context-intro.test.js +48 -14
- package/dist/core/__tests__/daemon-boot.test.js +204 -9
- package/dist/core/__tests__/fixtures/fake-engine.d.ts +30 -4
- package/dist/core/__tests__/fixtures/fake-engine.js +157 -18
- package/dist/core/__tests__/fixtures/fake-pi-host.js +10 -1
- package/dist/core/__tests__/full/broker-attach-limits.test.js +1 -1
- package/dist/core/__tests__/full/broker-attach-stream.test.js +1 -1
- package/dist/core/__tests__/full/broker-crash-teardown.test.js +10 -5
- package/dist/core/__tests__/full/broker-model-changed-broadcast.test.js +1 -1
- package/dist/core/__tests__/full/broker-navigate-tree-rewelcome.test.js +1 -1
- package/dist/core/__tests__/full/broker-pane-resolution.test.js +1 -1
- package/dist/core/__tests__/full/cascade-close.test.js +31 -18
- package/dist/core/__tests__/full/detach-focus.test.js +2 -2
- package/dist/core/__tests__/full/human-new-window-regression.test.js +1 -1
- package/dist/core/__tests__/hearth-bootstrap.test.js +136 -0
- package/dist/core/__tests__/helpers/harness.d.ts +1 -1
- package/dist/core/__tests__/helpers/harness.js +3 -3
- package/dist/core/__tests__/human-stranded-deliver.test.js +38 -1
- package/dist/core/__tests__/human-surface-target.test.js +1 -1
- package/dist/core/__tests__/kickoff.test.js +18 -19
- package/dist/core/__tests__/live-mutation-verbs.test.js +10 -10
- package/dist/core/__tests__/live-mutation.test.js +8 -8
- package/dist/core/__tests__/migration.test.js +172 -13
- package/dist/core/__tests__/on-read-dedup-resume.test.js +40 -0
- package/dist/core/__tests__/preview-registry-sync.test.js +36 -0
- package/dist/core/__tests__/prune-to-limit.test.js +91 -0
- package/dist/core/__tests__/push-final-guard.test.js +7 -1
- package/dist/core/__tests__/relaunch-root.test.js +9 -9
- package/dist/core/__tests__/revive.test.js +100 -27
- package/dist/core/__tests__/spawn-root.test.js +24 -1
- package/dist/core/__tests__/stop-guard.test.js +10 -0
- package/dist/core/__tests__/stranded-relaunch.test.js +72 -0
- package/dist/core/__tests__/tmux-surface.test.js +5 -1
- package/dist/core/__tests__/trigger-migration.test.js +48 -0
- package/dist/core/__tests__/wake-bearings.test.js +23 -21
- package/dist/core/__tests__/wake-origin.test.js +36 -33
- package/dist/core/__tests__/yield-ensures-daemon.test.js +54 -0
- package/dist/core/artifact.d.ts +2 -33
- package/dist/core/artifact.js +27 -87
- package/dist/core/bootstrap.js +2 -0
- package/dist/core/canvas/boot.d.ts +48 -0
- package/dist/core/canvas/boot.js +157 -0
- package/dist/core/canvas/browse/__tests__/model.test.js +35 -1
- package/dist/core/canvas/browse/app.js +87 -17
- package/dist/core/canvas/browse/model.d.ts +10 -1
- package/dist/core/canvas/browse/model.js +37 -1
- package/dist/core/canvas/browse/render.js +35 -33
- package/dist/core/canvas/canvas.d.ts +33 -0
- package/dist/core/canvas/canvas.js +138 -8
- package/dist/core/canvas/db.js +121 -9
- package/dist/core/canvas/index.d.ts +1 -1
- package/dist/core/canvas/index.js +1 -1
- package/dist/core/canvas/labels.d.ts +6 -8
- package/dist/core/canvas/labels.js +8 -11
- package/dist/core/canvas/nav-model.d.ts +5 -4
- package/dist/core/canvas/nav-model.js +32 -18
- package/dist/core/canvas/paths.d.ts +18 -1
- package/dist/core/canvas/paths.js +31 -2
- package/dist/core/canvas/pid.d.ts +6 -0
- package/dist/core/canvas/pid.js +13 -0
- package/dist/core/canvas/render.d.ts +25 -0
- package/dist/core/canvas/render.js +96 -13
- package/dist/core/canvas/status-glyph.d.ts +35 -0
- package/dist/core/canvas/status-glyph.js +104 -0
- package/dist/core/canvas/triggers.d.ts +108 -0
- package/dist/core/canvas/triggers.js +320 -0
- package/dist/core/canvas/types.d.ts +130 -48
- package/dist/core/command.js +13 -4
- package/dist/core/config.js +114 -16
- package/dist/core/fault-classifier.d.ts +41 -0
- package/dist/core/fault-classifier.js +110 -0
- package/dist/core/feed/inbox.d.ts +15 -0
- package/dist/core/feed/inbox.js +40 -14
- package/dist/core/frontmatter.d.ts +1 -11
- package/dist/core/frontmatter.js +1 -55
- package/dist/core/hearth/__tests__/model-auth-guest.test.js +151 -0
- package/dist/core/hearth/config.d.ts +3 -0
- package/dist/core/hearth/config.js +111 -0
- package/dist/core/hearth/guest-env.d.ts +9 -0
- package/dist/core/hearth/guest-env.js +27 -0
- package/dist/core/hearth/index.d.ts +5 -0
- package/dist/core/hearth/index.js +5 -0
- package/dist/core/hearth/model-auth-guest.d.ts +8 -0
- package/dist/core/hearth/model-auth-guest.js +435 -0
- package/dist/core/hearth/provider.d.ts +28 -0
- package/dist/core/hearth/provider.js +10 -0
- package/dist/core/hearth/providers/blaxel-bootstrap.d.ts +12 -0
- package/dist/core/hearth/providers/blaxel-bootstrap.js +147 -0
- package/dist/core/hearth/providers/blaxel-home.d.ts +15 -0
- package/dist/core/hearth/providers/blaxel-home.js +136 -0
- package/dist/core/hearth/providers/blaxel.d.ts +31 -0
- package/dist/core/hearth/providers/blaxel.js +282 -0
- package/dist/core/hearth/providers/types.d.ts +77 -0
- package/dist/core/hearth/registry.d.ts +15 -0
- package/dist/core/hearth/registry.js +180 -0
- package/dist/core/hearth/types.d.ts +156 -0
- package/dist/core/help.d.ts +16 -0
- package/dist/core/help.js +2 -0
- package/dist/core/host-exports/__tests__/export-prunes-boot-skill.test.js +79 -0
- package/dist/core/{skill-sync → host-exports}/builtins.d.ts +21 -13
- package/dist/core/host-exports/builtins.js +68 -0
- package/dist/core/{skill-sync → host-exports}/export.d.ts +9 -6
- package/dist/core/{skill-sync → host-exports}/export.js +37 -14
- package/dist/core/io.js +1 -1
- package/dist/core/log.d.ts +9 -0
- package/dist/core/log.js +113 -0
- package/dist/core/memory-resolver.d.ts +13 -13
- package/dist/core/memory-resolver.js +70 -51
- package/dist/core/personas/index.d.ts +4 -4
- package/dist/core/personas/index.js +2 -2
- package/dist/core/personas/loader.d.ts +51 -0
- package/dist/core/personas/loader.js +54 -50
- package/dist/core/personas/resolve.d.ts +43 -27
- package/dist/core/personas/resolve.js +336 -94
- package/dist/core/preview-registry.d.ts +25 -0
- package/dist/core/preview-registry.js +2047 -0
- package/dist/core/resolver.d.ts +1 -0
- package/dist/core/resolver.js +23 -16
- package/dist/core/runtime/auth-reload.d.ts +7 -0
- package/dist/core/runtime/auth-reload.js +69 -0
- package/dist/core/runtime/bearings.d.ts +46 -25
- package/dist/core/runtime/bearings.js +313 -52
- package/dist/core/runtime/branded-host.d.ts +4 -2
- package/dist/core/runtime/branded-host.js +66 -4
- package/dist/core/runtime/broker-protocol.d.ts +40 -5
- package/dist/core/runtime/broker-protocol.js +2 -2
- package/dist/core/runtime/broker.js +343 -18
- package/dist/core/runtime/close.js +39 -31
- package/dist/core/runtime/connectivity.d.ts +12 -0
- package/dist/core/runtime/connectivity.js +73 -0
- package/dist/core/runtime/fault-recovery-nudge.d.ts +2 -0
- package/dist/core/runtime/fault-recovery-nudge.js +2 -0
- package/dist/core/runtime/fault-recovery.d.ts +23 -0
- package/dist/core/runtime/fault-recovery.js +74 -0
- package/dist/core/runtime/fault.d.ts +25 -0
- package/dist/core/runtime/fault.js +176 -0
- package/dist/core/runtime/front-door.d.ts +1 -1
- package/dist/core/runtime/front-door.js +2 -2
- package/dist/core/runtime/host.d.ts +10 -0
- package/dist/core/runtime/host.js +71 -9
- package/dist/core/runtime/kickoff.js +32 -46
- package/dist/core/runtime/launch.d.ts +41 -21
- package/dist/core/runtime/launch.js +165 -52
- package/dist/core/runtime/lifecycle.js +7 -7
- package/dist/core/runtime/model-swap.d.ts +18 -0
- package/dist/core/runtime/model-swap.js +95 -0
- package/dist/core/runtime/naming.d.ts +7 -0
- package/dist/core/runtime/naming.js +61 -9
- package/dist/core/runtime/nodes.js +6 -1
- package/dist/core/runtime/persona.js +16 -17
- package/dist/core/runtime/placement.d.ts +41 -36
- package/dist/core/runtime/placement.js +159 -74
- package/dist/core/runtime/promote.d.ts +2 -0
- package/dist/core/runtime/promote.js +23 -3
- package/dist/core/runtime/recycle.js +13 -11
- package/dist/core/runtime/reset.d.ts +6 -3
- package/dist/core/runtime/reset.js +5 -5
- package/dist/core/runtime/revive-all.d.ts +5 -2
- package/dist/core/runtime/revive-all.js +5 -2
- package/dist/core/runtime/revive.d.ts +19 -8
- package/dist/core/runtime/revive.js +79 -25
- package/dist/core/runtime/roadmap.d.ts +1 -1
- package/dist/core/runtime/roadmap.js +1 -1
- package/dist/core/runtime/spawn.d.ts +3 -3
- package/dist/core/runtime/spawn.js +37 -13
- package/dist/core/runtime/stop-guard.js +11 -6
- package/dist/core/runtime/surface-bg.js +1 -1
- package/dist/core/runtime/tmux-chrome.d.ts +1 -1
- package/dist/core/runtime/tmux-chrome.js +1 -1
- package/dist/core/runtime/tmux.d.ts +30 -7
- package/dist/core/runtime/tmux.js +138 -84
- package/dist/core/runtime/view-socket-client.d.ts +46 -0
- package/dist/core/runtime/view-socket-client.js +203 -0
- package/dist/core/scope.d.ts +9 -0
- package/dist/core/scope.js +37 -15
- package/dist/core/substrate/index.d.ts +1 -1
- package/dist/core/substrate/index.js +1 -1
- package/dist/core/substrate/on-read.js +39 -25
- package/dist/core/substrate/render.d.ts +10 -13
- package/dist/core/substrate/render.js +56 -51
- package/dist/core/tui/host.js +83 -18
- package/dist/core/view/__tests__/transport-cache.test.js +62 -0
- package/dist/core/view/contract.d.ts +20 -0
- package/dist/core/view/loader.js +2 -2
- package/dist/core/view/stream-local.d.ts +3 -0
- package/dist/core/view/stream-local.js +184 -0
- package/dist/core/view/transport-cache.d.ts +8 -0
- package/dist/core/view/transport-cache.js +38 -0
- package/dist/core/view/transport-local.js +4 -0
- package/dist/core/view/transport.d.ts +7 -1
- package/dist/core/wake.d.ts +2 -2
- package/dist/core/wake.js +7 -7
- package/dist/daemon/__tests__/predicate-eval.test.js +109 -0
- package/dist/daemon/crtrd.d.ts +3 -19
- package/dist/daemon/crtrd.js +360 -280
- package/dist/daemon/manage.d.ts +18 -1
- package/dist/daemon/manage.js +54 -9
- package/dist/daemon/predicate-eval.d.ts +52 -0
- package/dist/daemon/predicate-eval.js +248 -0
- package/dist/hearth/control-plane/__tests__/node-message.test.js +60 -0
- package/dist/hearth/control-plane/__tests__/rate-limit-recurrence.test.js +49 -0
- package/dist/hearth/control-plane/__tests__/relay-security.test.js +314 -0
- package/dist/hearth/control-plane/__tests__/scheduler-scan-loop.test.d.ts +1 -0
- package/dist/hearth/control-plane/__tests__/scheduler-scan-loop.test.js +133 -0
- package/dist/hearth/control-plane/__tests__/trigger-delivery.test.d.ts +1 -0
- package/dist/hearth/control-plane/__tests__/trigger-delivery.test.js +170 -0
- package/dist/hearth/control-plane/__tests__/webhook-ingress.test.d.ts +1 -0
- package/dist/hearth/control-plane/__tests__/webhook-ingress.test.js +167 -0
- package/dist/hearth/control-plane/config.d.ts +21 -0
- package/dist/hearth/control-plane/config.js +77 -0
- package/dist/hearth/control-plane/db.d.ts +30 -0
- package/dist/hearth/control-plane/db.js +534 -0
- package/dist/hearth/control-plane/ingress/rate-limit.d.ts +24 -0
- package/dist/hearth/control-plane/ingress/rate-limit.js +100 -0
- package/dist/hearth/control-plane/ingress/route-store.d.ts +31 -0
- package/dist/hearth/control-plane/ingress/route-store.js +61 -0
- package/dist/hearth/control-plane/ingress/webhook-delivery-store.d.ts +41 -0
- package/dist/hearth/control-plane/ingress/webhook-delivery-store.js +69 -0
- package/dist/hearth/control-plane/ingress/webhook-route.d.ts +55 -0
- package/dist/hearth/control-plane/ingress/webhook-route.js +285 -0
- package/dist/hearth/control-plane/main.d.ts +1 -0
- package/dist/hearth/control-plane/main.js +88 -0
- package/dist/hearth/control-plane/node-message.d.ts +31 -0
- package/dist/hearth/control-plane/node-message.js +98 -0
- package/dist/hearth/control-plane/register.d.ts +15 -0
- package/dist/hearth/control-plane/register.js +34 -0
- package/dist/hearth/control-plane/registry.d.ts +17 -0
- package/dist/hearth/control-plane/registry.js +161 -0
- package/dist/hearth/control-plane/relay.d.ts +40 -0
- package/dist/hearth/control-plane/relay.js +642 -0
- package/dist/hearth/control-plane/scheduler/fire-store.d.ts +36 -0
- package/dist/hearth/control-plane/scheduler/fire-store.js +73 -0
- package/dist/hearth/control-plane/scheduler/recurrence.d.ts +7 -0
- package/dist/hearth/control-plane/scheduler/recurrence.js +58 -0
- package/dist/hearth/control-plane/scheduler/scan-loop.d.ts +38 -0
- package/dist/hearth/control-plane/scheduler/scan-loop.js +138 -0
- package/dist/hearth/control-plane/scheduler/schedule-store.d.ts +32 -0
- package/dist/hearth/control-plane/scheduler/schedule-store.js +66 -0
- package/dist/hearth/control-plane/secrets.d.ts +17 -0
- package/dist/hearth/control-plane/secrets.js +113 -0
- package/dist/hearth/control-plane/server.d.ts +27 -0
- package/dist/hearth/control-plane/server.js +346 -0
- package/dist/hearth/control-plane/session.d.ts +68 -0
- package/dist/hearth/control-plane/session.js +273 -0
- package/dist/hearth/control-plane/triggers/acl.d.ts +14 -0
- package/dist/hearth/control-plane/triggers/acl.js +52 -0
- package/dist/hearth/control-plane/triggers/audit-store.d.ts +38 -0
- package/dist/hearth/control-plane/triggers/audit-store.js +79 -0
- package/dist/hearth/control-plane/triggers/deliver.d.ts +43 -0
- package/dist/hearth/control-plane/triggers/deliver.js +76 -0
- package/dist/hearth/control-plane/triggers/envelope.d.ts +29 -0
- package/dist/hearth/control-plane/triggers/envelope.js +38 -0
- package/dist/hearth/control-plane/types.d.ts +66 -0
- package/dist/hearth/control-plane/types.js +1 -0
- package/dist/hearth/control-plane/wake.d.ts +80 -0
- package/dist/hearth/control-plane/wake.js +312 -0
- package/dist/hearth/wake-proxy/__tests__/anthropic-oauth.test.d.ts +1 -0
- package/dist/hearth/wake-proxy/__tests__/anthropic-oauth.test.js +289 -0
- package/dist/hearth/wake-proxy/__tests__/config-timeout.test.d.ts +1 -0
- package/dist/hearth/wake-proxy/__tests__/config-timeout.test.js +34 -0
- package/dist/hearth/wake-proxy/__tests__/guest-source.test.d.ts +1 -0
- package/dist/hearth/wake-proxy/__tests__/guest-source.test.js +203 -0
- package/dist/hearth/wake-proxy/__tests__/hardening.test.d.ts +1 -0
- package/dist/hearth/wake-proxy/__tests__/hardening.test.js +59 -0
- package/dist/hearth/wake-proxy/__tests__/hearth-status-route.test.d.ts +1 -0
- package/dist/hearth/wake-proxy/__tests__/hearth-status-route.test.js +372 -0
- package/dist/hearth/wake-proxy/__tests__/http-running-route-fast-path.test.d.ts +1 -0
- package/dist/hearth/wake-proxy/__tests__/http-running-route-fast-path.test.js +258 -0
- package/dist/hearth/wake-proxy/__tests__/model-auth-routes.test.d.ts +1 -0
- package/dist/hearth/wake-proxy/__tests__/model-auth-routes.test.js +437 -0
- package/dist/hearth/wake-proxy/__tests__/static-asset-allowlist.test.d.ts +1 -0
- package/dist/hearth/wake-proxy/__tests__/static-asset-allowlist.test.js +15 -0
- package/dist/hearth/wake-proxy/__tests__/warm-path-concurrency.test.d.ts +1 -0
- package/dist/hearth/wake-proxy/__tests__/warm-path-concurrency.test.js +141 -0
- package/dist/hearth/wake-proxy/__tests__/ws-teardown-accounting.test.d.ts +1 -0
- package/dist/hearth/wake-proxy/__tests__/ws-teardown-accounting.test.js +143 -0
- package/dist/hearth/wake-proxy/anthropic-oauth.d.ts +58 -0
- package/dist/hearth/wake-proxy/anthropic-oauth.js +189 -0
- package/dist/hearth/wake-proxy/auth.d.ts +22 -0
- package/dist/hearth/wake-proxy/auth.js +128 -0
- package/dist/hearth/wake-proxy/config.d.ts +2 -0
- package/dist/hearth/wake-proxy/config.js +151 -0
- package/dist/hearth/wake-proxy/guest-source.d.ts +14 -0
- package/dist/hearth/wake-proxy/guest-source.js +130 -0
- package/dist/hearth/wake-proxy/hearth-status.d.ts +44 -0
- package/dist/hearth/wake-proxy/hearth-status.js +267 -0
- package/dist/hearth/wake-proxy/home.d.ts +61 -0
- package/dist/hearth/wake-proxy/home.js +333 -0
- package/dist/hearth/wake-proxy/main.d.ts +1 -0
- package/dist/hearth/wake-proxy/main.js +134 -0
- package/dist/hearth/wake-proxy/model-auth.d.ts +13 -0
- package/dist/hearth/wake-proxy/model-auth.js +345 -0
- package/dist/hearth/wake-proxy/proxy.d.ts +35 -0
- package/dist/hearth/wake-proxy/proxy.js +716 -0
- package/dist/hearth/wake-proxy/public-source-gate.d.ts +9 -0
- package/dist/hearth/wake-proxy/public-source-gate.js +409 -0
- package/dist/hearth/wake-proxy/redact.d.ts +1 -0
- package/dist/hearth/wake-proxy/redact.js +17 -0
- package/dist/hearth/wake-proxy/server.d.ts +11 -0
- package/dist/hearth/wake-proxy/server.js +142 -0
- package/dist/hearth/wake-proxy/state.d.ts +18 -0
- package/dist/hearth/wake-proxy/state.js +342 -0
- package/dist/hearth/wake-proxy/types.d.ts +76 -0
- package/dist/hearth/wake-proxy/types.js +1 -0
- package/dist/index.js +3 -2
- package/dist/pi-extensions/__tests__/canvas-context-intro.test.js +6 -5
- package/dist/pi-extensions/canvas-context-intro.js +7 -7
- package/dist/pi-extensions/canvas-doc-substrate.js +47 -24
- package/dist/pi-extensions/canvas-nav.js +16 -9
- package/dist/pi-extensions/canvas-stophook.d.ts +1 -1
- package/dist/pi-extensions/canvas-stophook.js +78 -11
- package/dist/prompts/view.js +7 -8
- package/dist/types.d.ts +39 -20
- package/dist/types.js +38 -13
- package/dist/web/runtime.js +141 -42
- package/dist/web/transport-http.js +7 -5
- package/dist/web/transport-stream.d.ts +3 -0
- package/dist/web/transport-stream.js +204 -0
- package/dist/web-client/assets/fragment-mono-latin-400-normal-BYwT3kSJ.woff +0 -0
- package/dist/web-client/assets/fragment-mono-latin-400-normal-yxdJ5AmL.woff2 +0 -0
- package/dist/web-client/assets/fragment-mono-latin-ext-400-normal-BbKYyvR9.woff2 +0 -0
- package/dist/web-client/assets/fragment-mono-latin-ext-400-normal-CT4YFKeK.woff +0 -0
- package/dist/web-client/assets/fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2 +0 -0
- package/dist/web-client/assets/fraunces-latin-wght-normal-ukD16Tqj.woff2 +0 -0
- package/dist/web-client/assets/fraunces-vietnamese-wght-normal-CnvboYUG.woff2 +0 -0
- package/dist/web-client/assets/index-BRKxe-hy.js +80 -0
- package/dist/web-client/assets/index-BZUxTkv5.css +2 -0
- package/dist/web-client/assets/instrument-sans-latin-ext-wght-normal-B5bTHO_g.woff2 +0 -0
- package/dist/web-client/assets/instrument-sans-latin-wght-normal-BbzFLZTg.woff2 +0 -0
- package/dist/web-client/assets/martian-mono-cyrillic-wght-normal-B84CD5C_.woff2 +0 -0
- package/dist/web-client/assets/martian-mono-latin-ext-wght-normal-DlL6xMw5.woff2 +0 -0
- package/dist/web-client/assets/martian-mono-latin-wght-normal-5W32yIyr.woff2 +0 -0
- package/dist/web-client/index.html +3 -2
- package/package.json +37 -11
- package/scripts/postinstall.mjs +8 -0
- package/dist/clients/attach/__tests__/action-parity.test.js +0 -48
- package/dist/clients/attach/__tests__/clipboard-image.test.js +0 -76
- package/dist/clients/attach/__tests__/editor-newline.test.js +0 -82
- package/dist/clients/attach/__tests__/git-info.test.js +0 -31
- package/dist/clients/attach/__tests__/onrequest-wired.test.js +0 -20
- package/dist/clients/attach/__tests__/reconnect-giveup.test.js +0 -30
- package/dist/clients/attach/__tests__/slash-quit-copy.test.js +0 -42
- package/dist/clients/attach/__tests__/titled-editor.test.js +0 -39
- package/dist/commands/memory/__tests__/lint-schema.test.js +0 -52
- package/dist/core/__tests__/argv-parser.test.js +0 -217
- package/dist/core/__tests__/draw-style.test.js +0 -258
- package/dist/core/__tests__/error-stall-recycle.test.js +0 -141
- package/dist/core/__tests__/frame-decoder-perf.test.js +0 -224
- package/dist/core/__tests__/keystone.test.js +0 -185
- package/dist/core/__tests__/listing-completeness.test.js +0 -31
- package/dist/core/__tests__/memory-resolver.test.js +0 -108
- package/dist/core/__tests__/memory.test.js +0 -60
- package/dist/core/__tests__/pane-column.test.js +0 -153
- package/dist/core/__tests__/persona-compose.test.js +0 -53
- package/dist/core/__tests__/persona-subkind.test.js +0 -65
- package/dist/core/__tests__/persona.test.js +0 -107
- package/dist/core/__tests__/unknown-path.test.js +0 -58
- package/dist/core/canvas/wakeups.d.ts +0 -76
- package/dist/core/canvas/wakeups.js +0 -185
- package/dist/core/skill-sync/__tests__/dry-run-wrote-count.test.js +0 -57
- package/dist/core/skill-sync/builtins.js +0 -112
- package/dist/core/skill-sync/claude-plugins.d.ts +0 -23
- package/dist/core/skill-sync/claude-plugins.js +0 -71
- package/dist/core/skill-sync/engine.d.ts +0 -42
- package/dist/core/skill-sync/engine.js +0 -633
- package/dist/core/skill-sync/manifest.d.ts +0 -64
- package/dist/core/skill-sync/manifest.js +0 -181
- package/dist/core/skill-sync/profile.d.ts +0 -76
- package/dist/core/skill-sync/profile.js +0 -173
- package/dist/core/skill-sync/snapshot.d.ts +0 -57
- package/dist/core/skill-sync/snapshot.js +0 -120
- package/dist/pi-extensions/canvas-commands.d.ts +0 -37
- package/dist/pi-extensions/canvas-commands.js +0 -113
- package/dist/pi-extensions/canvas-resume.d.ts +0 -21
- package/dist/pi-extensions/canvas-resume.js +0 -83
- package/dist/pi-extensions/canvas-view.d.ts +0 -21
- package/dist/pi-extensions/canvas-view.js +0 -76
- package/dist/web-client/assets/index-BUvQb4hR.css +0 -2
- package/dist/web-client/assets/index-ClLQXYAE.js +0 -10
- /package/dist/clients/attach/__tests__/{action-parity.test.d.ts → crtr-output-coverage.test.d.ts} +0 -0
- /package/dist/clients/attach/__tests__/{clipboard-image.test.d.ts → crtr-output-render.test.d.ts} +0 -0
- /package/dist/clients/{attach/__tests__/editor-newline.test.d.ts → web/__tests__/source-cache.test.d.ts} +0 -0
- /package/dist/{clients/attach/__tests__/git-info.test.d.ts → commands/sys/__tests__/sync-import.test.d.ts} +0 -0
- /package/dist/{clients/attach/__tests__/onrequest-wired.test.d.ts → core/__tests__/boot.test.d.ts} +0 -0
- /package/dist/{clients/attach/__tests__/reconnect-giveup.test.d.ts → core/__tests__/broker-preflight.test.d.ts} +0 -0
- /package/dist/{clients/attach/__tests__/slash-quit-copy.test.d.ts → core/__tests__/chat-view-reconnect.test.d.ts} +0 -0
- /package/dist/{clients/attach/__tests__/titled-editor.test.d.ts → core/__tests__/connection-reconnect-resume.test.d.ts} +0 -0
- /package/dist/{commands/memory/__tests__/lint-schema.test.d.ts → core/__tests__/hearth-bootstrap.test.d.ts} +0 -0
- /package/dist/core/__tests__/{argv-parser.test.d.ts → preview-registry-sync.test.d.ts} +0 -0
- /package/dist/core/__tests__/{draw-style.test.d.ts → prune-to-limit.test.d.ts} +0 -0
- /package/dist/core/__tests__/{error-stall-recycle.test.d.ts → stranded-relaunch.test.d.ts} +0 -0
- /package/dist/core/__tests__/{frame-decoder-perf.test.d.ts → trigger-migration.test.d.ts} +0 -0
- /package/dist/core/__tests__/{keystone.test.d.ts → yield-ensures-daemon.test.d.ts} +0 -0
- /package/dist/core/{__tests__/listing-completeness.test.d.ts → hearth/__tests__/model-auth-guest.test.d.ts} +0 -0
- /package/dist/core/{__tests__/memory-resolver.test.d.ts → hearth/providers/types.js} +0 -0
- /package/dist/core/{__tests__/memory.test.d.ts → hearth/types.js} +0 -0
- /package/dist/core/{__tests__/pane-column.test.d.ts → host-exports/__tests__/export-prunes-boot-skill.test.d.ts} +0 -0
- /package/dist/core/{__tests__/persona-compose.test.d.ts → view/__tests__/transport-cache.test.d.ts} +0 -0
- /package/dist/{core/__tests__/persona-subkind.test.d.ts → daemon/__tests__/predicate-eval.test.d.ts} +0 -0
- /package/dist/{core/__tests__/persona.test.d.ts → hearth/control-plane/__tests__/node-message.test.d.ts} +0 -0
- /package/dist/{core/__tests__/unknown-path.test.d.ts → hearth/control-plane/__tests__/rate-limit-recurrence.test.d.ts} +0 -0
- /package/dist/{core/skill-sync/__tests__/dry-run-wrote-count.test.d.ts → hearth/control-plane/__tests__/relay-security.test.d.ts} +0 -0
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* One-way export of crtr-generated host artifacts — the sole writer of
|
|
3
|
-
* generated
|
|
4
|
-
* `~/.pi/agent/prompts`.
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
3
|
+
* generated slash-command templates to `~/.claude/commands` and
|
|
4
|
+
* `~/.pi/agent/prompts`.
|
|
5
|
+
*
|
|
6
|
+
* crouter no longer exports Agent Skills / SKILL.md bundles. The export pass
|
|
7
|
+
* still prunes old marker-bearing `crtr-skills` bundles so hosts stop surfacing
|
|
8
|
+
* pi/Claude native skills after the memory cutover. Markerless files are
|
|
9
|
+
* user-owned and never removed.
|
|
8
10
|
*
|
|
9
11
|
* Triggered per-run by cli.ts (argv-gated, exactly as the old writers were) so
|
|
10
12
|
* first-run provisioning is preserved. Best-effort: a provisioning fault must
|
|
@@ -14,8 +16,8 @@
|
|
|
14
16
|
import { writeFileSync } from 'node:fs';
|
|
15
17
|
import { homedir } from 'node:os';
|
|
16
18
|
import { dirname, join } from 'node:path';
|
|
17
|
-
import { ensureDir, pathExists, readText } from '../fs-utils.js';
|
|
18
|
-
import { builtinExportPairs } from './builtins.js';
|
|
19
|
+
import { ensureDir, pathExists, readText, removePath } from '../fs-utils.js';
|
|
20
|
+
import { builtinExportPairs, legacyExportArtifacts } from './builtins.js';
|
|
19
21
|
const SKIP_SUBCOMMANDS = new Set([
|
|
20
22
|
'help',
|
|
21
23
|
'--help',
|
|
@@ -23,12 +25,14 @@ const SKIP_SUBCOMMANDS = new Set([
|
|
|
23
25
|
'--version',
|
|
24
26
|
'-v',
|
|
25
27
|
]);
|
|
26
|
-
/** Skip provisioning for help/version invocations
|
|
27
|
-
function
|
|
28
|
+
/** Skip provisioning side effects entirely for help/version invocations. */
|
|
29
|
+
function shouldSkipAllForArgv(argv) {
|
|
28
30
|
const sub = argv[2];
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
31
|
+
return sub !== undefined && SKIP_SUBCOMMANDS.has(sub);
|
|
32
|
+
}
|
|
33
|
+
/** Skip slash-command writes for bare front-door boot; pruning still runs. */
|
|
34
|
+
function shouldSkipWritesForArgv(argv) {
|
|
35
|
+
return argv[2] === undefined;
|
|
32
36
|
}
|
|
33
37
|
/** Whether a host runtime is in use (its root dir exists). crtr writes into a
|
|
34
38
|
* host's dirs only when present and never creates `~/.claude` or `~/.pi`. */
|
|
@@ -59,14 +63,33 @@ export function writeIfOurs(path, content, markerPrefix) {
|
|
|
59
63
|
ensureDir(dirname(path));
|
|
60
64
|
writeFileSync(path, content, 'utf8');
|
|
61
65
|
}
|
|
62
|
-
/**
|
|
66
|
+
/** Remove a legacy artifact only when its marker proves crtr generated it. */
|
|
67
|
+
function removeIfOurs(path, target, markerPrefix) {
|
|
68
|
+
if (!pathExists(path))
|
|
69
|
+
return;
|
|
70
|
+
const existing = readText(path);
|
|
71
|
+
if (!existing.includes(markerPrefix))
|
|
72
|
+
return;
|
|
73
|
+
removePath(target.layout === 'bundle' ? dirname(path) : path);
|
|
74
|
+
}
|
|
75
|
+
/** Render and write every built-in export artifact to every present host, while
|
|
76
|
+
* pruning legacy generated artifacts that should no longer be surfaced.
|
|
63
77
|
* Best-effort: swallows errors (debug-logged) so a provisioning fault never
|
|
64
78
|
* breaks an unrelated `crtr` command. Kill switch: `CRTR_NO_EXPORTS=1`. */
|
|
65
79
|
export function provisionExports(root, argv = process.argv) {
|
|
66
80
|
try {
|
|
67
81
|
if (process.env.CRTR_NO_EXPORTS === '1')
|
|
68
82
|
return;
|
|
69
|
-
if (
|
|
83
|
+
if (shouldSkipAllForArgv(argv))
|
|
84
|
+
return;
|
|
85
|
+
for (const artifact of legacyExportArtifacts()) {
|
|
86
|
+
for (const target of artifact.targets) {
|
|
87
|
+
if (!hostRootExists(target.host))
|
|
88
|
+
continue;
|
|
89
|
+
removeIfOurs(targetPath(target, artifact.name), target, artifact.markerPrefix);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
if (shouldSkipWritesForArgv(argv))
|
|
70
93
|
return;
|
|
71
94
|
for (const pair of builtinExportPairs(root)) {
|
|
72
95
|
const content = pair.render();
|
package/dist/core/io.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// agent-ready markdown/XML the caller acts on directly (the result rendered FOR
|
|
3
3
|
// the model, not data it parses); structured errors; stderr is diagnostics only
|
|
4
4
|
// and never carries the result. The raw JSON object is available behind the
|
|
5
|
-
// `--json` global for tooling. See cli-design
|
|
5
|
+
// `--json` global for tooling. See the cli-design reference.
|
|
6
6
|
import { CrtrError } from './errors.js';
|
|
7
7
|
import { ExitCode } from '../types.js';
|
|
8
8
|
import { renderError } from './render.js';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type LogLevel = 'error' | 'warn' | 'info' | 'debug';
|
|
2
|
+
export declare function formatLogLine(level: LogLevel, component: string, message: string, fields?: Record<string, unknown>): string;
|
|
3
|
+
export declare function appendLogLine(path: string, line: string): void;
|
|
4
|
+
export declare function logger(component: string): {
|
|
5
|
+
error: (message: string, fields?: Record<string, unknown>) => void;
|
|
6
|
+
warn: (message: string, fields?: Record<string, unknown>) => void;
|
|
7
|
+
info: (message: string, fields?: Record<string, unknown>) => void;
|
|
8
|
+
debug: (message: string, fields?: Record<string, unknown>) => void;
|
|
9
|
+
};
|
package/dist/core/log.js
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { appendFileSync, existsSync, mkdirSync, renameSync, rmSync, statSync } from 'node:fs';
|
|
2
|
+
import { dirname, join } from 'node:path';
|
|
3
|
+
import { crtrHome } from './canvas/paths.js';
|
|
4
|
+
const LEVEL_RANK = {
|
|
5
|
+
error: 1,
|
|
6
|
+
warn: 2,
|
|
7
|
+
info: 3,
|
|
8
|
+
debug: 4,
|
|
9
|
+
};
|
|
10
|
+
const MAX_BYTES = 5 * 1024 * 1024;
|
|
11
|
+
const ROTATIONS = 2;
|
|
12
|
+
function envLevel() {
|
|
13
|
+
const raw = String(process.env['CRTR_LOG'] ?? '').trim().toLowerCase();
|
|
14
|
+
return raw === 'warn' || raw === 'info' || raw === 'debug' ? raw : 'error';
|
|
15
|
+
}
|
|
16
|
+
function shouldLog(level) {
|
|
17
|
+
return LEVEL_RANK[level] <= LEVEL_RANK[envLevel()];
|
|
18
|
+
}
|
|
19
|
+
function escapeControlChars(value) {
|
|
20
|
+
return value.replace(/[\0-\x1f\x7f]/g, (ch) => {
|
|
21
|
+
switch (ch) {
|
|
22
|
+
case '\n': return '\\n';
|
|
23
|
+
case '\r': return '\\r';
|
|
24
|
+
case '\t': return '\\t';
|
|
25
|
+
default: return `\\u${ch.charCodeAt(0).toString(16).padStart(4, '0')}`;
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
function formatValue(value) {
|
|
30
|
+
if (typeof value === 'string') {
|
|
31
|
+
const escaped = escapeControlChars(value);
|
|
32
|
+
return /^[^\s"'=]+$/.test(escaped) ? escaped : JSON.stringify(escaped);
|
|
33
|
+
}
|
|
34
|
+
if (typeof value === 'number' || typeof value === 'bigint' || typeof value === 'boolean')
|
|
35
|
+
return String(value);
|
|
36
|
+
if (value === null)
|
|
37
|
+
return 'null';
|
|
38
|
+
if (value === undefined)
|
|
39
|
+
return 'undefined';
|
|
40
|
+
return JSON.stringify(value, (_key, nested) => (typeof nested === 'string' ? escapeControlChars(nested) : nested));
|
|
41
|
+
}
|
|
42
|
+
export function formatLogLine(level, component, message, fields) {
|
|
43
|
+
const parts = [`${new Date().toISOString()} ${level.toUpperCase()} [${component}] ${escapeControlChars(message)}`];
|
|
44
|
+
if (fields !== undefined) {
|
|
45
|
+
for (const [key, value] of Object.entries(fields)) {
|
|
46
|
+
parts.push(`${key}=${formatValue(value)}`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return parts.join(' ');
|
|
50
|
+
}
|
|
51
|
+
function rotateIfNeeded(path, nextLineBytes) {
|
|
52
|
+
if (!existsSync(path))
|
|
53
|
+
return;
|
|
54
|
+
let size = 0;
|
|
55
|
+
try {
|
|
56
|
+
size = statSync(path).size;
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
if (size + nextLineBytes < MAX_BYTES)
|
|
62
|
+
return;
|
|
63
|
+
const second = `${path}.2`;
|
|
64
|
+
const first = `${path}.1`;
|
|
65
|
+
try {
|
|
66
|
+
rmSync(second, { force: true });
|
|
67
|
+
}
|
|
68
|
+
catch { /* best-effort */ }
|
|
69
|
+
try {
|
|
70
|
+
if (existsSync(first))
|
|
71
|
+
renameSync(first, second);
|
|
72
|
+
}
|
|
73
|
+
catch { /* best-effort */ }
|
|
74
|
+
try {
|
|
75
|
+
renameSync(path, first);
|
|
76
|
+
}
|
|
77
|
+
catch { /* best-effort */ }
|
|
78
|
+
}
|
|
79
|
+
export function appendLogLine(path, line) {
|
|
80
|
+
try {
|
|
81
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
82
|
+
appendFileSync(path, `${line}\n`, 'utf8');
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
/* best-effort */
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
function appendRotatingLogLine(path, line) {
|
|
89
|
+
try {
|
|
90
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
91
|
+
rotateIfNeeded(path, Buffer.byteLength(`${line}\n`, 'utf8'));
|
|
92
|
+
appendFileSync(path, `${line}\n`, 'utf8');
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
/* best-effort */
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
export function logger(component) {
|
|
99
|
+
const sink = component === 'crtrd' ? join(crtrHome(), 'crtrd.log') : null;
|
|
100
|
+
const emit = (level, message, fields) => {
|
|
101
|
+
const line = formatLogLine(level, component, message, fields);
|
|
102
|
+
if (sink !== null && (level !== 'debug' || shouldLog(level)))
|
|
103
|
+
appendRotatingLogLine(sink, line);
|
|
104
|
+
if (shouldLog(level))
|
|
105
|
+
process.stderr.write(`${line}\n`);
|
|
106
|
+
};
|
|
107
|
+
return {
|
|
108
|
+
error: (message, fields) => emit('error', message, fields),
|
|
109
|
+
warn: (message, fields) => emit('warn', message, fields),
|
|
110
|
+
info: (message, fields) => emit('info', message, fields),
|
|
111
|
+
debug: (message, fields) => emit('debug', message, fields),
|
|
112
|
+
};
|
|
113
|
+
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type { InstalledPlugin, Scope } from '../types.js';
|
|
2
2
|
/**
|
|
3
|
-
* Thin memory-document resolver for the document substrate.
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* precedence order project > user > builtin (the same precedence concept as
|
|
8
|
-
* orderPluginsByResolution, minus plugins). It returns the raw parsed
|
|
3
|
+
* Thin memory-document resolver for the document substrate. Resolution is scope
|
|
4
|
+
* + leaf/path only: qualifier parse → scope precedence → direct path lookup →
|
|
5
|
+
* leaf-name fallback. The three memory scopes resolve in precedence order
|
|
6
|
+
* project > user > builtin. It returns the raw parsed
|
|
9
7
|
* frontmatter + body; it does NOT interpret the schema, kind, gate, or rungs —
|
|
10
8
|
* that is the schema/gate layer's job (callers filter by `frontmatter.kind`).
|
|
9
|
+
* Project resolution is a nearest-first stack of every ancestor `.crouter/`,
|
|
10
|
+
* while user and builtin remain singleton scopes.
|
|
11
11
|
*/
|
|
12
12
|
export interface MemoryDoc {
|
|
13
13
|
/** Path-derived identity: the doc's path under the scope's memory/ root, no
|
|
@@ -28,23 +28,23 @@ export interface MemoryResolutionOpts {
|
|
|
28
28
|
}
|
|
29
29
|
/** Canonical, unambiguous identifier for a memory document: `<scope>/<name>`. */
|
|
30
30
|
export declare function memoryDocId(doc: MemoryDoc): string;
|
|
31
|
-
/** All memory docs
|
|
32
|
-
*
|
|
31
|
+
/** All native memory docs for a scope. Project scope is a nearest-first stack of
|
|
32
|
+
* every ancestor `.crouter/memory/`; user and builtin are singleton stores. */
|
|
33
33
|
export declare function listMemoryDocs(scope: Scope): MemoryDoc[];
|
|
34
34
|
/** All of one plugin's substrate docs, mounted under the virtual `<pluginName>/`
|
|
35
35
|
* namespace. Walks `pluginMemoryDir(plugin)` recursively for *.md, deriving each
|
|
36
36
|
* doc's name exactly as `listMemoryDocs` does (path-relative, no extension,
|
|
37
37
|
* slash-separated) then prefixing the plugin name. Builtin has no plugins. */
|
|
38
38
|
export declare function listPluginMemoryDocs(plugin: InstalledPlugin, scope: Scope): MemoryDoc[];
|
|
39
|
-
/** All memory docs across the resolved
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
* caller's first-wins
|
|
39
|
+
/** All memory docs across the resolved sources, in precedence order: each
|
|
40
|
+
* ancestor project `.crouter/` from nearest to farthest, then user, then
|
|
41
|
+
* builtin. Within each source, native docs are emitted before enabled-plugin
|
|
42
|
+
* docs, so native wins on the caller's first-wins dedup. */
|
|
43
43
|
export declare function listAllMemoryDocs(scope?: Scope): MemoryDoc[];
|
|
44
44
|
/**
|
|
45
45
|
* Resolve a path-derived name to a single memory document.
|
|
46
46
|
*
|
|
47
|
-
* Accepted identifier forms
|
|
47
|
+
* Accepted identifier forms:
|
|
48
48
|
* <name> — bare name; resolved by scope precedence project>user>builtin
|
|
49
49
|
* <scope>/<name> — pinned to one scope (user|project)
|
|
50
50
|
* `<name>` may carry topical subdirs (`taste/foo`); a bare leaf (`foo`) falls
|
|
@@ -2,10 +2,10 @@ import { join, relative, sep } from 'node:path';
|
|
|
2
2
|
import { readdirSync } from 'node:fs';
|
|
3
3
|
import { pathExists, readText, walkFiles } from './fs-utils.js';
|
|
4
4
|
import { parseFrontmatterGeneric } from './frontmatter.js';
|
|
5
|
-
import { listInstalledPlugins, parseSkillQualifier } from './resolver.js';
|
|
5
|
+
import { listInstalledPlugins, listInstalledPluginsInRoot, parseSkillQualifier } from './resolver.js';
|
|
6
6
|
import { ambiguous, notFound, usage } from './errors.js';
|
|
7
7
|
import { warn } from './output.js';
|
|
8
|
-
import { pluginMemoryDir, projectScopeRoot, scopeMemoryDir } from './scope.js';
|
|
8
|
+
import { pluginMemoryDir, projectScopeRoot, projectScopeRoots, scopeMemoryDir } from './scope.js';
|
|
9
9
|
/** Canonical, unambiguous identifier for a memory document: `<scope>/<name>`. */
|
|
10
10
|
export function memoryDocId(doc) {
|
|
11
11
|
return `${doc.scope}/${doc.name}`;
|
|
@@ -23,21 +23,43 @@ function scopesInPrecedence(scope) {
|
|
|
23
23
|
out.push('builtin');
|
|
24
24
|
return out;
|
|
25
25
|
}
|
|
26
|
+
/** Memory loads project scopes as a stack, not a single nearest root: every
|
|
27
|
+
* ancestor `.crouter/` from cwd upward contributes, nearest first. User and
|
|
28
|
+
* builtin remain singleton scopes after that stack. */
|
|
29
|
+
function memorySourcesInPrecedence(scope) {
|
|
30
|
+
const out = [];
|
|
31
|
+
for (const s of scopesInPrecedence(scope)) {
|
|
32
|
+
if (s === 'project') {
|
|
33
|
+
for (const root of projectScopeRoots()) {
|
|
34
|
+
out.push({
|
|
35
|
+
scope: 'project',
|
|
36
|
+
memoryDir: join(root, 'memory'),
|
|
37
|
+
plugins: listInstalledPluginsInRoot('project', root).filter((p) => p.enabled),
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
out.push({
|
|
43
|
+
scope: s,
|
|
44
|
+
memoryDir: scopeMemoryDir(s),
|
|
45
|
+
plugins: listInstalledPlugins(s).filter((p) => p.enabled),
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return out;
|
|
50
|
+
}
|
|
26
51
|
function loadMemoryDoc(name, scope, path) {
|
|
27
52
|
const { data, body } = parseFrontmatterGeneric(readText(path));
|
|
28
53
|
return { name, scope, path, frontmatter: data, body };
|
|
29
54
|
}
|
|
30
|
-
/** All memory docs in one
|
|
31
|
-
*
|
|
32
|
-
|
|
33
|
-
|
|
55
|
+
/** All memory docs in one memory/ dir, scanned recursively for *.md (topical
|
|
56
|
+
* subdirs supported), sorted by path-derived name. SKILL.md bundles are legacy
|
|
57
|
+
* Agent Skills and are ignored; crouter memory docs are plain .md files under
|
|
58
|
+
* memory/. */
|
|
59
|
+
function listMemoryDocsInDir(scope, dir) {
|
|
34
60
|
if (!dir || !pathExists(dir))
|
|
35
61
|
return [];
|
|
36
62
|
const docs = [];
|
|
37
|
-
// Walk: a dir containing SKILL.md is a single substrate bundle — emit ONE doc
|
|
38
|
-
// named by the dir's relative path, sourced from its SKILL.md, and STOP
|
|
39
|
-
// descending (deeper files are bundle assets, not docs). Every other dir
|
|
40
|
-
// yields its flat *.md files (topical subdirs / INDEX.md) as before.
|
|
41
63
|
const found = [];
|
|
42
64
|
const stack = [dir];
|
|
43
65
|
while (stack.length) {
|
|
@@ -49,17 +71,10 @@ export function listMemoryDocs(scope) {
|
|
|
49
71
|
catch {
|
|
50
72
|
continue;
|
|
51
73
|
}
|
|
52
|
-
const hasSkill = entries.some((e) => e.isFile() && e.name === 'SKILL.md');
|
|
53
|
-
if (hasSkill) {
|
|
54
|
-
const name = relative(dir, d).split(sep).join('/');
|
|
55
|
-
if (name)
|
|
56
|
-
found.push({ path: join(d, 'SKILL.md'), name });
|
|
57
|
-
continue; // stop descent — deeper dirs are assets
|
|
58
|
-
}
|
|
59
74
|
for (const e of entries) {
|
|
60
75
|
if (e.isDirectory())
|
|
61
76
|
stack.push(join(d, e.name));
|
|
62
|
-
else if (e.isFile() && e.name.endsWith('.md')) {
|
|
77
|
+
else if (e.isFile() && e.name.endsWith('.md') && e.name !== 'SKILL.md') {
|
|
63
78
|
const file = join(d, e.name);
|
|
64
79
|
const name = relative(dir, file).replace(/\.md$/i, '').split(sep).join('/');
|
|
65
80
|
if (name)
|
|
@@ -81,6 +96,14 @@ export function listMemoryDocs(scope) {
|
|
|
81
96
|
}
|
|
82
97
|
return docs.sort((a, b) => a.name.localeCompare(b.name));
|
|
83
98
|
}
|
|
99
|
+
/** All native memory docs for a scope. Project scope is a nearest-first stack of
|
|
100
|
+
* every ancestor `.crouter/memory/`; user and builtin are singleton stores. */
|
|
101
|
+
export function listMemoryDocs(scope) {
|
|
102
|
+
if (scope === 'project') {
|
|
103
|
+
return projectScopeRoots().flatMap((root) => listMemoryDocsInDir('project', join(root, 'memory')));
|
|
104
|
+
}
|
|
105
|
+
return listMemoryDocsInDir(scope, scopeMemoryDir(scope));
|
|
106
|
+
}
|
|
84
107
|
/** All of one plugin's substrate docs, mounted under the virtual `<pluginName>/`
|
|
85
108
|
* namespace. Walks `pluginMemoryDir(plugin)` recursively for *.md, deriving each
|
|
86
109
|
* doc's name exactly as `listMemoryDocs` does (path-relative, no extension,
|
|
@@ -90,7 +113,7 @@ export function listPluginMemoryDocs(plugin, scope) {
|
|
|
90
113
|
if (!pathExists(dir))
|
|
91
114
|
return [];
|
|
92
115
|
const docs = [];
|
|
93
|
-
for (const file of walkFiles(dir, (n) => n.endsWith('.md'))) {
|
|
116
|
+
for (const file of walkFiles(dir, (n) => n.endsWith('.md') && n !== 'SKILL.md')) {
|
|
94
117
|
const derived = relative(dir, file).replace(/\.md$/i, '').split(sep).join('/');
|
|
95
118
|
if (!derived)
|
|
96
119
|
continue;
|
|
@@ -105,16 +128,14 @@ export function listPluginMemoryDocs(plugin, scope) {
|
|
|
105
128
|
}
|
|
106
129
|
return docs.sort((a, b) => a.name.localeCompare(b.name));
|
|
107
130
|
}
|
|
108
|
-
/** All memory docs across the resolved
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
* caller's first-wins
|
|
131
|
+
/** All memory docs across the resolved sources, in precedence order: each
|
|
132
|
+
* ancestor project `.crouter/` from nearest to farthest, then user, then
|
|
133
|
+
* builtin. Within each source, native docs are emitted before enabled-plugin
|
|
134
|
+
* docs, so native wins on the caller's first-wins dedup. */
|
|
112
135
|
export function listAllMemoryDocs(scope) {
|
|
113
|
-
return
|
|
114
|
-
...
|
|
115
|
-
...
|
|
116
|
-
.filter((p) => p.enabled)
|
|
117
|
-
.flatMap((p) => listPluginMemoryDocs(p, s)),
|
|
136
|
+
return memorySourcesInPrecedence(scope).flatMap((source) => [
|
|
137
|
+
...listMemoryDocsInDir(source.scope, source.memoryDir),
|
|
138
|
+
...source.plugins.flatMap((p) => listPluginMemoryDocs(p, source.scope)),
|
|
118
139
|
]);
|
|
119
140
|
}
|
|
120
141
|
/** Direct full-path lookup of memory/<name>.md across scopes, precedence-first.
|
|
@@ -127,25 +148,22 @@ export function listAllMemoryDocs(scope) {
|
|
|
127
148
|
* resolves directly as the file path.) */
|
|
128
149
|
function findMemoryMatches(name, scope) {
|
|
129
150
|
const matches = [];
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
151
|
+
const segments = name.split('/');
|
|
152
|
+
const isLegacySkillDoc = segments.at(-1) === 'SKILL';
|
|
153
|
+
for (const source of memorySourcesInPrecedence(scope)) {
|
|
154
|
+
// Native memory dir first inside this source (native-before-plugin
|
|
155
|
+
// precedence), then its enabled plugins. The next source is the next
|
|
156
|
+
// ancestor `.crouter/`, then user, then builtin.
|
|
157
|
+
const dir = source.memoryDir;
|
|
133
158
|
if (dir) {
|
|
134
|
-
const path = join(dir, ...
|
|
135
|
-
if (pathExists(path)) {
|
|
136
|
-
matches.push(loadMemoryDoc(name,
|
|
137
|
-
continue;
|
|
138
|
-
}
|
|
139
|
-
// Bundle marker is authoritative: a `<name>/SKILL.md` resolves the bare
|
|
140
|
-
// dir name to its bundle doc, and wins over INDEX.md if both exist.
|
|
141
|
-
const skillPath = join(dir, ...name.split('/'), 'SKILL.md');
|
|
142
|
-
if (pathExists(skillPath)) {
|
|
143
|
-
matches.push(loadMemoryDoc(name, s, skillPath));
|
|
159
|
+
const path = join(dir, ...segments) + '.md';
|
|
160
|
+
if (!isLegacySkillDoc && pathExists(path)) {
|
|
161
|
+
matches.push(loadMemoryDoc(name, source.scope, path));
|
|
144
162
|
continue;
|
|
145
163
|
}
|
|
146
|
-
const indexPath = join(dir, ...
|
|
164
|
+
const indexPath = join(dir, ...segments, 'INDEX.md');
|
|
147
165
|
if (pathExists(indexPath)) {
|
|
148
|
-
matches.push(loadMemoryDoc(name,
|
|
166
|
+
matches.push(loadMemoryDoc(name, source.scope, indexPath));
|
|
149
167
|
continue;
|
|
150
168
|
}
|
|
151
169
|
}
|
|
@@ -157,14 +175,15 @@ function findMemoryMatches(name, scope) {
|
|
|
157
175
|
const slash = name.indexOf('/');
|
|
158
176
|
const pluginName = slash > 0 ? name.slice(0, slash) : name;
|
|
159
177
|
const rest = slash > 0 ? name.slice(slash + 1) : '';
|
|
160
|
-
for (const p of
|
|
161
|
-
if (
|
|
178
|
+
for (const p of source.plugins) {
|
|
179
|
+
if (p.name !== pluginName)
|
|
162
180
|
continue;
|
|
163
181
|
const pdir = pluginMemoryDir(p);
|
|
164
182
|
if (rest) {
|
|
165
|
-
const
|
|
166
|
-
|
|
167
|
-
|
|
183
|
+
const restSegments = rest.split('/');
|
|
184
|
+
const ppath = join(pdir, ...restSegments) + '.md';
|
|
185
|
+
if (restSegments.at(-1) !== 'SKILL' && pathExists(ppath)) {
|
|
186
|
+
matches.push(loadMemoryDoc(name, source.scope, ppath));
|
|
168
187
|
break;
|
|
169
188
|
}
|
|
170
189
|
}
|
|
@@ -173,7 +192,7 @@ function findMemoryMatches(name, scope) {
|
|
|
173
192
|
? join(pdir, ...rest.split('/'), 'INDEX.md')
|
|
174
193
|
: join(pdir, 'INDEX.md');
|
|
175
194
|
if (pathExists(pindex)) {
|
|
176
|
-
matches.push(loadMemoryDoc(name,
|
|
195
|
+
matches.push(loadMemoryDoc(name, source.scope, pindex));
|
|
177
196
|
break;
|
|
178
197
|
}
|
|
179
198
|
}
|
|
@@ -182,7 +201,7 @@ function findMemoryMatches(name, scope) {
|
|
|
182
201
|
}
|
|
183
202
|
/** Leaf-name fallback: match docs whose final path segment equals `leaf`.
|
|
184
203
|
* Only meaningful for a bare segment (a slashed query can never equal a single
|
|
185
|
-
* segment)
|
|
204
|
+
* segment). Returns matches precedence-ordered. */
|
|
186
205
|
function findMemoryByLeaf(leaf, scope) {
|
|
187
206
|
if (leaf.includes('/'))
|
|
188
207
|
return [];
|
|
@@ -202,7 +221,7 @@ function formatLeafAmbiguous(leaf, matches) {
|
|
|
202
221
|
/**
|
|
203
222
|
* Resolve a path-derived name to a single memory document.
|
|
204
223
|
*
|
|
205
|
-
* Accepted identifier forms
|
|
224
|
+
* Accepted identifier forms:
|
|
206
225
|
* <name> — bare name; resolved by scope precedence project>user>builtin
|
|
207
226
|
* <scope>/<name> — pinned to one scope (user|project)
|
|
208
227
|
* `<name>` may carry topical subdirs (`taste/foo`); a bare leaf (`foo`) falls
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* - resolve (high-level composer)
|
|
8
8
|
* - ResolvedPersona (return type of resolve)
|
|
9
9
|
*/
|
|
10
|
-
export { loadPersona, loadKernel, availableKinds, kindWhenToUse, subPersonasFor, loadLifecycleFragment, loadSpineFragment } from './loader.js';
|
|
11
|
-
export type { LoadedPersona, SubPersona } from './loader.js';
|
|
12
|
-
export { resolve } from './resolve.js';
|
|
13
|
-
export type { ResolvedPersona } from './resolve.js';
|
|
10
|
+
export { loadPersona, loadPersonaSource, loadKernel, loadKernelSource, availableKinds, kindWhenToUse, subPersonasFor, loadLifecycleFragment, loadLifecycleFragmentSource, loadSpineFragment, loadSpineFragmentSource, loadRuntimeBase, loadRuntimeBaseSource, loadWaitingFragment, loadWaitingFragmentSource, loadScopedText, } from './loader.js';
|
|
11
|
+
export type { LoadedPersona, LoadedPersonaSource, SubPersona } from './loader.js';
|
|
12
|
+
export { resolve, resolveLayers, resolvePromptReview } from './resolve.js';
|
|
13
|
+
export type { ResolvedPersona, PromptReviewData, PromptReviewConfig, PromptLayer, PromptSource } from './resolve.js';
|
|
@@ -7,5 +7,5 @@
|
|
|
7
7
|
* - resolve (high-level composer)
|
|
8
8
|
* - ResolvedPersona (return type of resolve)
|
|
9
9
|
*/
|
|
10
|
-
export { loadPersona, loadKernel, availableKinds, kindWhenToUse, subPersonasFor, loadLifecycleFragment, loadSpineFragment } from './loader.js';
|
|
11
|
-
export { resolve } from './resolve.js';
|
|
10
|
+
export { loadPersona, loadPersonaSource, loadKernel, loadKernelSource, availableKinds, kindWhenToUse, subPersonasFor, loadLifecycleFragment, loadLifecycleFragmentSource, loadSpineFragment, loadSpineFragmentSource, loadRuntimeBase, loadRuntimeBaseSource, loadWaitingFragment, loadWaitingFragmentSource, loadScopedText, } from './loader.js';
|
|
11
|
+
export { resolve, resolveLayers, resolvePromptReview } from './resolve.js';
|
|
@@ -14,12 +14,36 @@
|
|
|
14
14
|
* compiled build), resolved relative to this module — mirrors the pattern used
|
|
15
15
|
* for STOPHOOK_PATH in spawn.ts.
|
|
16
16
|
*/
|
|
17
|
+
import type { Scope } from '../../types.js';
|
|
18
|
+
/**
|
|
19
|
+
* Find the first existing file across the scope roots.
|
|
20
|
+
* `relativePath` is relative to each root (e.g. 'general/PERSONA.md').
|
|
21
|
+
*/
|
|
22
|
+
export interface ResolvedPersonaSource {
|
|
23
|
+
path: string;
|
|
24
|
+
scope: Scope;
|
|
25
|
+
}
|
|
26
|
+
export declare function loadScopedText(relativePath: string): {
|
|
27
|
+
text: string;
|
|
28
|
+
sourcePath: string;
|
|
29
|
+
scope: Scope;
|
|
30
|
+
} | null;
|
|
17
31
|
export interface LoadedPersona {
|
|
18
32
|
/** Raw, uncoerced frontmatter key/value record (null when no frontmatter). */
|
|
19
33
|
frontmatter: Record<string, unknown> | null;
|
|
20
34
|
/** Body text with any @include directives inlined. */
|
|
21
35
|
body: string;
|
|
22
36
|
}
|
|
37
|
+
export interface LoadedPersonaSource extends LoadedPersona {
|
|
38
|
+
/** Raw body text before @include expansion. */
|
|
39
|
+
rawBody: string;
|
|
40
|
+
/** Absolute source path. */
|
|
41
|
+
sourcePath: string;
|
|
42
|
+
/** Scope the file was resolved from. */
|
|
43
|
+
scope: Scope;
|
|
44
|
+
/** Relative source path within the scope root, e.g. `personas/developer/PERSONA.md`. */
|
|
45
|
+
source: string;
|
|
46
|
+
}
|
|
23
47
|
/**
|
|
24
48
|
* Load and parse a persona file for the given `kind` and `mode`.
|
|
25
49
|
*
|
|
@@ -27,11 +51,18 @@ export interface LoadedPersona {
|
|
|
27
51
|
* On success, `@include` directives in the body are resolved and inlined.
|
|
28
52
|
*/
|
|
29
53
|
export declare function loadPersona(kind: string, mode: 'base' | 'orchestrator'): LoadedPersona | null;
|
|
54
|
+
/** Load a persona file together with its provenance. */
|
|
55
|
+
export declare function loadPersonaSource(kind: string, mode: 'base' | 'orchestrator'): LoadedPersonaSource | null;
|
|
30
56
|
/**
|
|
31
57
|
* Load the raw text of the orchestration kernel (no frontmatter, body only).
|
|
32
58
|
* Returns an empty string if the kernel file cannot be found.
|
|
33
59
|
*/
|
|
34
60
|
export declare function loadKernel(): string;
|
|
61
|
+
export declare function loadKernelSource(): {
|
|
62
|
+
text: string;
|
|
63
|
+
sourcePath: string;
|
|
64
|
+
scope: Scope;
|
|
65
|
+
} | null;
|
|
35
66
|
/**
|
|
36
67
|
* Load the base runtime prompt — the node operating protocol prepended to
|
|
37
68
|
* EVERY persona (delegate/ask/promote). Returns '' if not found. The
|
|
@@ -39,6 +70,11 @@ export declare function loadKernel(): string;
|
|
|
39
70
|
* live in their own fragments, loaded below.
|
|
40
71
|
*/
|
|
41
72
|
export declare function loadRuntimeBase(): string;
|
|
73
|
+
export declare function loadRuntimeBaseSource(): {
|
|
74
|
+
text: string;
|
|
75
|
+
sourcePath: string;
|
|
76
|
+
scope: Scope;
|
|
77
|
+
} | null;
|
|
42
78
|
/**
|
|
43
79
|
* Load the waiting fragment — the cross-kind "waiting is a way to end a turn"
|
|
44
80
|
* operating posture (arm a wake + go dormant instead of busy-looping or
|
|
@@ -46,6 +82,11 @@ export declare function loadRuntimeBase(): string;
|
|
|
46
82
|
* the lifecycle fragment (resolve.ts). Returns '' if the fragment is missing.
|
|
47
83
|
*/
|
|
48
84
|
export declare function loadWaitingFragment(): string;
|
|
85
|
+
export declare function loadWaitingFragmentSource(): {
|
|
86
|
+
text: string;
|
|
87
|
+
sourcePath: string;
|
|
88
|
+
scope: Scope;
|
|
89
|
+
} | null;
|
|
49
90
|
/**
|
|
50
91
|
* Load the lifecycle fragment — the "how you end" contract, keyed on the node's
|
|
51
92
|
* lifecycle axis: `terminal` (drive to done + `push final`) or `resident`
|
|
@@ -54,6 +95,11 @@ export declare function loadWaitingFragment(): string;
|
|
|
54
95
|
* Returns '' if the fragment file cannot be found.
|
|
55
96
|
*/
|
|
56
97
|
export declare function loadLifecycleFragment(lifecycle: 'terminal' | 'resident'): string;
|
|
98
|
+
export declare function loadLifecycleFragmentSource(lifecycle: 'terminal' | 'resident'): {
|
|
99
|
+
text: string;
|
|
100
|
+
sourcePath: string;
|
|
101
|
+
scope: Scope;
|
|
102
|
+
} | null;
|
|
57
103
|
/**
|
|
58
104
|
* Load the spine fragment — the "who you report to" contract, keyed on whether
|
|
59
105
|
* the node has a manager (anyone it reports up to). `has-manager` teaches the
|
|
@@ -62,6 +108,11 @@ export declare function loadLifecycleFragment(lifecycle: 'terminal' | 'resident'
|
|
|
62
108
|
* Returns '' if the fragment file cannot be found.
|
|
63
109
|
*/
|
|
64
110
|
export declare function loadSpineFragment(hasManager: boolean): string;
|
|
111
|
+
export declare function loadSpineFragmentSource(hasManager: boolean): {
|
|
112
|
+
text: string;
|
|
113
|
+
sourcePath: string;
|
|
114
|
+
scope: Scope;
|
|
115
|
+
} | null;
|
|
65
116
|
/**
|
|
66
117
|
* Enumerate the kinds with at least one persona file (PERSONA.md or
|
|
67
118
|
* orchestrator.md) across all scope roots (project/user/builtin). Used to
|