@crouton-kit/crouter 0.3.33 → 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 +2 -2
- package/dist/build-root.js +3 -6
- package/dist/builtin-memory/crouter-development/marketplaces.md +6 -6
- package/dist/builtin-memory/crouter-development/plugins.md +13 -13
- package/dist/builtin-memory/internal/examples/imessage-assistant.md +3 -3
- package/dist/builtin-memory/internal/nodes-and-canvas.md +4 -4
- package/dist/builtin-personas/developer/PERSONA.md +1 -1
- package/dist/builtin-personas/orchestration-kernel.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/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.js +826 -754
- package/dist/clients/attach/auth-pickers.js +2 -2
- package/dist/clients/attach/canvas-panels.js +1 -1
- package/dist/clients/attach/chat-view.d.ts +3 -2
- package/dist/clients/attach/chat-view.js +30 -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.js +1 -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.js +1 -1
- package/dist/clients/attach/graph-overlay.js +3 -3
- package/dist/clients/attach/input-controller.js +1 -1
- package/dist/clients/attach/pickers.js +1 -1
- package/dist/clients/attach/slash-commands.js +5 -6
- package/dist/clients/attach/titled-editor.d.ts +4 -0
- package/dist/clients/attach/titled-editor.js +13 -1
- package/dist/clients/attach/view-socket.js +1 -1
- package/dist/clients/web/__tests__/source-cache.test.js +5 -5
- package/dist/clients/web/server.js +29 -5
- package/dist/clients/web/source-cache.js +3 -3
- package/dist/clients/web/web-cmd.js +7 -7
- package/dist/commands/canvas-issue.js +1 -1
- package/dist/commands/canvas-prune.js +24 -2
- package/dist/commands/canvas-snapshot.js +3 -0
- package/dist/commands/canvas-tmux-spread.js +3 -3
- package/dist/commands/human.js +1 -1
- package/dist/commands/memory/lint.js +15 -8
- package/dist/commands/memory/origin.d.ts +1 -0
- package/dist/commands/memory/origin.js +88 -0
- package/dist/commands/memory/shared.d.ts +8 -0
- package/dist/commands/memory/shared.js +22 -1
- package/dist/commands/memory/write.js +17 -12
- package/dist/commands/memory.js +4 -3
- package/dist/commands/node-context.js +4 -4
- package/dist/commands/node-snapshot.js +4 -1
- package/dist/commands/node.d.ts +2 -2
- package/dist/commands/node.js +814 -606
- 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 +8 -24
- package/dist/commands/pkg/plugin-manage.d.ts +5 -1
- package/dist/commands/pkg/plugin-manage.js +245 -171
- package/dist/commands/pkg/plugin.js +6 -6
- package/dist/commands/pkg.js +5 -5
- package/dist/commands/revive.js +5 -3
- package/dist/commands/search/answer.js +1 -1
- package/dist/commands/search/contents.js +1 -1
- package/dist/commands/search/web.js +2 -2
- package/dist/commands/search.js +1 -1
- package/dist/commands/surface.d.ts +2 -0
- package/dist/commands/surface.js +43 -0
- package/dist/commands/sys/promptstudio.js +1 -1
- package/dist/commands/sys/settings.js +2 -2
- 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/sysprompt.js +3 -0
- package/dist/commands/sys.js +3 -2
- package/dist/commands/view-cycle.js +5 -5
- package/dist/commands/view-list.js +3 -3
- package/dist/commands/view-new.js +5 -5
- 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-sdk-wiring.test.js +6 -27
- package/dist/core/__tests__/daemon-boot.test.js +22 -0
- package/dist/core/__tests__/fixtures/fake-engine.js +1 -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__/hearth-bootstrap.test.js +136 -0
- package/dist/core/__tests__/helpers/harness.js +1 -1
- 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 +124 -0
- 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__/revive.test.js +64 -21
- 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/canvas/boot.d.ts +48 -0
- package/dist/core/canvas/boot.js +157 -0
- package/dist/core/canvas/canvas.d.ts +27 -1
- package/dist/core/canvas/canvas.js +86 -5
- package/dist/core/canvas/db.js +86 -1
- package/dist/core/canvas/index.d.ts +1 -1
- package/dist/core/canvas/index.js +1 -1
- package/dist/core/canvas/nav-model.js +1 -1
- package/dist/core/canvas/pid.d.ts +6 -0
- package/dist/core/canvas/pid.js +13 -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 +128 -46
- package/dist/core/command.js +13 -4
- package/dist/core/hearth/__tests__/model-auth-guest.test.js +151 -0
- package/dist/core/hearth/config.d.ts +1 -0
- package/dist/core/hearth/config.js +36 -0
- package/dist/core/hearth/guest-env.d.ts +7 -0
- package/dist/core/hearth/guest-env.js +17 -1
- 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 +13 -6
- package/dist/core/hearth/providers/blaxel-bootstrap.d.ts +2 -0
- package/dist/core/hearth/providers/blaxel-bootstrap.js +127 -19
- package/dist/core/hearth/providers/blaxel-home.d.ts +8 -4
- package/dist/core/hearth/providers/blaxel-home.js +85 -75
- package/dist/core/hearth/providers/blaxel.d.ts +5 -0
- package/dist/core/hearth/providers/blaxel.js +86 -12
- package/dist/core/hearth/providers/types.d.ts +6 -1
- package/dist/core/hearth/registry.js +2 -1
- package/dist/core/hearth/types.d.ts +35 -0
- package/dist/core/help.d.ts +16 -0
- package/dist/core/help.js +2 -0
- package/dist/core/memory-resolver.d.ts +8 -8
- package/dist/core/memory-resolver.js +58 -26
- 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/bearings.d.ts +11 -10
- package/dist/core/runtime/bearings.js +8 -8
- package/dist/core/runtime/broker-protocol.d.ts +2 -2
- package/dist/core/runtime/broker-protocol.js +2 -2
- package/dist/core/runtime/close.js +2 -2
- package/dist/core/runtime/kickoff.js +1 -1
- package/dist/core/runtime/launch.d.ts +9 -3
- package/dist/core/runtime/launch.js +17 -9
- package/dist/core/runtime/lifecycle.js +7 -7
- package/dist/core/runtime/model-swap.js +1 -1
- package/dist/core/runtime/placement.d.ts +5 -5
- package/dist/core/runtime/placement.js +10 -10
- package/dist/core/runtime/recycle.js +7 -7
- package/dist/core/runtime/reset.d.ts +1 -1
- package/dist/core/runtime/reset.js +3 -3
- 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 +15 -8
- package/dist/core/runtime/revive.js +52 -16
- package/dist/core/runtime/spawn.d.ts +1 -1
- package/dist/core/runtime/spawn.js +7 -7
- package/dist/core/runtime/stop-guard.js +5 -5
- package/dist/core/runtime/surface-bg.js +1 -1
- package/dist/core/runtime/tmux.d.ts +1 -1
- package/dist/core/runtime/tmux.js +4 -4
- package/dist/core/scope.d.ts +9 -0
- package/dist/core/scope.js +37 -15
- package/dist/core/substrate/on-read.js +23 -21
- package/dist/core/substrate/render.js +3 -3
- package/dist/core/view/loader.js +2 -2
- 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.js +222 -103
- 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.js +133 -0
- package/dist/hearth/control-plane/__tests__/trigger-delivery.test.js +170 -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.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/wake.d.ts +80 -0
- package/dist/hearth/control-plane/wake.js +312 -0
- package/dist/hearth/wake-proxy/__tests__/guest-source.test.js +2 -2
- package/dist/hearth/wake-proxy/home.d.ts +2 -8
- package/dist/hearth/wake-proxy/home.js +48 -12
- package/dist/pi-extensions/canvas-doc-substrate.js +28 -2
- package/dist/pi-extensions/canvas-nav.js +1 -1
- package/dist/prompts/view.js +7 -8
- package/dist/types.js +4 -4
- package/dist/web-client/assets/{index-D36PNBj4.js → index-BRKxe-hy.js} +2 -2
- package/dist/web-client/index.html +1 -1
- package/package.json +12 -8
- package/scripts/postinstall.mjs +8 -0
- package/dist/clients/attach/__tests__/action-parity.test.js +0 -48
- package/dist/clients/attach/__tests__/autocomplete-and-bash-mode.test.js +0 -96
- package/dist/clients/attach/__tests__/bash-bang-routing.test.js +0 -58
- package/dist/clients/attach/__tests__/bundle-pi-tui-dedup.test.js +0 -56
- 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 -60
- 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__/artifact-paths.test.js +0 -44
- package/dist/core/__tests__/draw-style.test.js +0 -258
- package/dist/core/__tests__/editor-label.test.js +0 -26
- package/dist/core/__tests__/fault-marker.test.js +0 -112
- package/dist/core/__tests__/fault-retry-rewind.test.d.ts +0 -1
- package/dist/core/__tests__/fault-retry-rewind.test.js +0 -123
- package/dist/core/__tests__/frame-decoder-perf.test.d.ts +0 -1
- package/dist/core/__tests__/frame-decoder-perf.test.js +0 -224
- package/dist/core/__tests__/keystone.test.d.ts +0 -1
- package/dist/core/__tests__/keystone.test.js +0 -185
- package/dist/core/__tests__/listing-completeness.test.d.ts +0 -1
- package/dist/core/__tests__/listing-completeness.test.js +0 -31
- package/dist/core/__tests__/memory-resolver.test.d.ts +0 -1
- package/dist/core/__tests__/memory-resolver.test.js +0 -119
- package/dist/core/__tests__/memory.test.d.ts +0 -1
- package/dist/core/__tests__/memory.test.js +0 -60
- package/dist/core/__tests__/model-ladders.test.d.ts +0 -1
- package/dist/core/__tests__/model-ladders.test.js +0 -160
- package/dist/core/__tests__/node-env.test.d.ts +0 -1
- package/dist/core/__tests__/node-env.test.js +0 -26
- package/dist/core/__tests__/pane-column.test.d.ts +0 -1
- package/dist/core/__tests__/pane-column.test.js +0 -153
- package/dist/core/__tests__/persona-compose.test.d.ts +0 -1
- package/dist/core/__tests__/persona-compose.test.js +0 -53
- package/dist/core/__tests__/persona-subkind.test.d.ts +0 -1
- package/dist/core/__tests__/persona-subkind.test.js +0 -65
- package/dist/core/__tests__/persona.test.d.ts +0 -1
- package/dist/core/__tests__/persona.test.js +0 -107
- package/dist/core/__tests__/unknown-path.test.d.ts +0 -1
- 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/hearth/wake-proxy/__tests__/source-bridge-gate.test.d.ts +0 -1
- package/dist/hearth/wake-proxy/__tests__/source-bridge-gate.test.js +0 -455
- /package/dist/clients/attach/__tests__/{action-parity.test.d.ts → crtr-output-coverage.test.d.ts} +0 -0
- /package/dist/clients/attach/__tests__/{autocomplete-and-bash-mode.test.d.ts → crtr-output-render.test.d.ts} +0 -0
- /package/dist/{clients/attach/__tests__/bash-bang-routing.test.d.ts → core/__tests__/boot.test.d.ts} +0 -0
- /package/dist/{clients/attach/__tests__/bundle-pi-tui-dedup.test.d.ts → core/__tests__/hearth-bootstrap.test.d.ts} +0 -0
- /package/dist/{clients/attach/__tests__/clipboard-image.test.d.ts → core/__tests__/preview-registry-sync.test.d.ts} +0 -0
- /package/dist/{clients/attach/__tests__/editor-newline.test.d.ts → core/__tests__/prune-to-limit.test.d.ts} +0 -0
- /package/dist/{clients/attach/__tests__/git-info.test.d.ts → core/__tests__/trigger-migration.test.d.ts} +0 -0
- /package/dist/{clients/attach/__tests__/onrequest-wired.test.d.ts → core/hearth/__tests__/model-auth-guest.test.d.ts} +0 -0
- /package/dist/{clients/attach/__tests__/reconnect-giveup.test.d.ts → daemon/__tests__/predicate-eval.test.d.ts} +0 -0
- /package/dist/{clients/attach/__tests__/slash-quit-copy.test.d.ts → hearth/control-plane/__tests__/node-message.test.d.ts} +0 -0
- /package/dist/{clients/attach/__tests__/titled-editor.test.d.ts → hearth/control-plane/__tests__/rate-limit-recurrence.test.d.ts} +0 -0
- /package/dist/{commands/memory/__tests__/lint-schema.test.d.ts → hearth/control-plane/__tests__/relay-security.test.d.ts} +0 -0
- /package/dist/{core/__tests__/argv-parser.test.d.ts → hearth/control-plane/__tests__/scheduler-scan-loop.test.d.ts} +0 -0
- /package/dist/{core/__tests__/artifact-paths.test.d.ts → hearth/control-plane/__tests__/trigger-delivery.test.d.ts} +0 -0
- /package/dist/{core/__tests__/draw-style.test.d.ts → hearth/control-plane/__tests__/webhook-ingress.test.d.ts} +0 -0
- /package/dist/{core/__tests__/editor-label.test.d.ts → hearth/control-plane/main.d.ts} +0 -0
- /package/dist/{core/__tests__/fault-marker.test.d.ts → hearth/control-plane/types.js} +0 -0
|
@@ -1,101 +1,259 @@
|
|
|
1
|
-
import { join } from 'node:path';
|
|
1
|
+
import { join, resolve, isAbsolute } from 'node:path';
|
|
2
2
|
import { renameSync } from 'node:fs';
|
|
3
|
-
import {
|
|
3
|
+
import { defineLeaf } from '../../core/command.js';
|
|
4
4
|
import { notFound, usage, general } from '../../core/errors.js';
|
|
5
|
-
import { findPluginByName, listAllPlugins } from '../../core/resolver.js';
|
|
6
|
-
import { pluginsDir, ensureProjectScopeRoot, userScopeRoot, resolveScopeArg, projectScopeRoot, } from '../../core/scope.js';
|
|
5
|
+
import { findMarketplaceByName, findPluginByName, listAllPlugins } from '../../core/resolver.js';
|
|
6
|
+
import { pluginsDir, ensureProjectScopeRoot, userScopeRoot, resolveScopeArg, projectScopeRoot, requireScopeRoot, } from '../../core/scope.js';
|
|
7
7
|
import { updateConfig, updateState, ensureScopeInitialized } from '../../core/config.js';
|
|
8
|
-
import { pathExists, ensureDir, removePath, nowIso } from '../../core/fs-utils.js';
|
|
9
|
-
import { clone, pull, deriveNameFromUrl, currentSha } from '../../core/git.js';
|
|
10
|
-
import { readPluginManifest } from '../../core/manifest.js';
|
|
8
|
+
import { pathExists, ensureDir, removePath, nowIso, linkOrCopy, isSymlink } from '../../core/fs-utils.js';
|
|
9
|
+
import { clone, pull, deriveNameFromUrl, currentSha, isGitRepo } from '../../core/git.js';
|
|
10
|
+
import { readMarketplaceManifest, readPluginManifest } from '../../core/manifest.js';
|
|
11
11
|
import { isGitUrl, setPluginEnabled, resolveInstallScope } from './shared.js';
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
function classifyInstallRef(raw) {
|
|
13
|
+
if (raw.startsWith('./') || raw.startsWith('../') || raw.startsWith('/')) {
|
|
14
|
+
return { kind: 'local', value: raw };
|
|
15
|
+
}
|
|
16
|
+
if (isGitUrl(raw)) {
|
|
17
|
+
return { kind: 'git', value: raw };
|
|
18
|
+
}
|
|
19
|
+
const parts = raw.split('/');
|
|
20
|
+
if (parts.length === 2 && parts[0] !== '' && parts[1] !== '') {
|
|
21
|
+
return { kind: 'marketplace', value: { marketplace: parts[0], plugin: parts[1] } };
|
|
22
|
+
}
|
|
23
|
+
throw usage(`invalid plugin install ref: ${raw}\n` +
|
|
24
|
+
'Accepted forms: marketplace/plugin, git URL (https://, ssh://, git@, file://, or *.git), or local path starting ./, ../, or /. Bare plugin names are not install refs.');
|
|
25
|
+
}
|
|
26
|
+
function isMarketplaceRelativeSource(source) {
|
|
27
|
+
return source.startsWith('./') || source.startsWith('../') || (!isAbsolute(source) && !isGitUrl(source));
|
|
28
|
+
}
|
|
29
|
+
function pullGitCheckout(root, label, opts) {
|
|
30
|
+
const shaBefore = currentSha(root);
|
|
31
|
+
if (!isGitRepo(root)) {
|
|
32
|
+
return { updated: false, sha: shaBefore ?? '' };
|
|
33
|
+
}
|
|
34
|
+
const res = pull(root);
|
|
35
|
+
if (res.status !== 0) {
|
|
36
|
+
if (opts.strict) {
|
|
37
|
+
throw general(`git pull failed for ${label}: ${res.stderr.trim()}`);
|
|
38
|
+
}
|
|
39
|
+
return { updated: false, sha: shaBefore ?? '' };
|
|
40
|
+
}
|
|
41
|
+
const shaAfter = currentSha(root);
|
|
42
|
+
return { updated: shaBefore !== shaAfter, sha: shaAfter ?? '' };
|
|
43
|
+
}
|
|
44
|
+
function refreshMarketplace(name, cache, opts) {
|
|
45
|
+
const cached = cache.get(name);
|
|
46
|
+
if (cached !== undefined)
|
|
47
|
+
return cached;
|
|
48
|
+
const marketplace = findMarketplaceByName(name);
|
|
49
|
+
if (marketplace === null) {
|
|
50
|
+
if (opts.strict)
|
|
51
|
+
throw notFound(`marketplace not found: ${name}`);
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
const pullSummary = pullGitCheckout(marketplace.root, `marketplace "${name}"`, opts);
|
|
55
|
+
const freshManifest = readMarketplaceManifest(marketplace.root);
|
|
56
|
+
if (freshManifest === null) {
|
|
57
|
+
throw notFound(`marketplace manifest not found after refresh: ${marketplace.root}/.crouter-marketplace/marketplace.json`);
|
|
58
|
+
}
|
|
59
|
+
updateState(marketplace.scope, (s) => {
|
|
60
|
+
if (s.marketplaces[name] === undefined) {
|
|
61
|
+
s.marketplaces[name] = {};
|
|
62
|
+
}
|
|
63
|
+
s.marketplaces[name].last_updated = nowIso();
|
|
64
|
+
});
|
|
65
|
+
const refreshed = { marketplace, manifest: freshManifest, pull: pullSummary };
|
|
66
|
+
cache.set(name, refreshed);
|
|
67
|
+
return refreshed;
|
|
68
|
+
}
|
|
69
|
+
function updatePluginVersion(scope, name, version) {
|
|
70
|
+
updateConfig(scope, (cfg) => {
|
|
71
|
+
const entry = cfg.plugins[name];
|
|
72
|
+
if (entry !== undefined) {
|
|
73
|
+
if (version !== undefined)
|
|
74
|
+
entry.version = version;
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
cfg.plugins[name] = { enabled: true, version };
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
updateState(scope, (s) => {
|
|
81
|
+
if (s.plugins[name] === undefined) {
|
|
82
|
+
s.plugins[name] = {};
|
|
83
|
+
}
|
|
84
|
+
s.plugins[name].last_updated = nowIso();
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
function installFromGit(source, ref, scope) {
|
|
88
|
+
const scopeRootPath = scope === 'project' ? ensureProjectScopeRoot() : userScopeRoot();
|
|
89
|
+
ensureScopeInitialized(scope, scopeRootPath);
|
|
90
|
+
const pDir = join(scopeRootPath, 'plugins');
|
|
91
|
+
ensureDir(pDir);
|
|
92
|
+
const tempName = deriveNameFromUrl(source);
|
|
93
|
+
const tempDir = join(pDir, tempName);
|
|
94
|
+
if (pathExists(tempDir)) {
|
|
95
|
+
throw general(`plugin directory already exists: ${tempDir}\nRemove the existing plugin first with \`pkg plugin remove ${tempName}\`.`);
|
|
96
|
+
}
|
|
97
|
+
clone(source, tempDir, { ref: ref !== undefined ? ref : undefined, depth: 1 });
|
|
98
|
+
const manifest = readPluginManifest(tempDir);
|
|
99
|
+
if (manifest === null) {
|
|
100
|
+
removePath(tempDir);
|
|
101
|
+
throw general(`cloned repo does not contain a valid .crouter-plugin/plugin.json: ${source}`);
|
|
102
|
+
}
|
|
103
|
+
const finalName = manifest.name;
|
|
104
|
+
let finalDir = tempDir;
|
|
105
|
+
if (finalName !== tempName) {
|
|
106
|
+
const candidateDir = join(pDir, finalName);
|
|
107
|
+
if (pathExists(candidateDir)) {
|
|
108
|
+
removePath(tempDir);
|
|
109
|
+
throw general(`plugin "${finalName}" is already installed at ${candidateDir}`);
|
|
110
|
+
}
|
|
111
|
+
renameSync(tempDir, candidateDir);
|
|
112
|
+
finalDir = candidateDir;
|
|
113
|
+
}
|
|
114
|
+
updateConfig(scope, (cfg) => {
|
|
115
|
+
cfg.plugins[finalName] = {
|
|
116
|
+
enabled: true,
|
|
117
|
+
version: manifest.version,
|
|
118
|
+
};
|
|
119
|
+
});
|
|
120
|
+
return { name: finalName, scope, path: finalDir };
|
|
121
|
+
}
|
|
122
|
+
function installFromLocal(source, scope) {
|
|
123
|
+
const sourcePath = resolve(source);
|
|
124
|
+
const manifest = readPluginManifest(sourcePath);
|
|
125
|
+
if (manifest === null) {
|
|
126
|
+
throw notFound(`plugin manifest not found at ${sourcePath}/.crouter-plugin/plugin.json`);
|
|
127
|
+
}
|
|
128
|
+
const scopeRootPath = scope === 'project' ? ensureProjectScopeRoot() : userScopeRoot();
|
|
129
|
+
ensureScopeInitialized(scope, scopeRootPath);
|
|
130
|
+
const destDir = join(scopeRootPath, 'plugins', manifest.name);
|
|
131
|
+
if (pathExists(destDir)) {
|
|
132
|
+
throw general(`plugin "${manifest.name}" is already installed at ${destDir}`);
|
|
133
|
+
}
|
|
134
|
+
linkOrCopy(sourcePath, destDir);
|
|
135
|
+
updateConfig(scope, (cfg) => {
|
|
136
|
+
cfg.plugins[manifest.name] = {
|
|
137
|
+
enabled: true,
|
|
138
|
+
version: manifest.version,
|
|
139
|
+
};
|
|
140
|
+
});
|
|
141
|
+
return { name: manifest.name, scope, path: destDir };
|
|
142
|
+
}
|
|
143
|
+
function installFromMarketplace(ref, scope) {
|
|
144
|
+
const refreshed = refreshMarketplace(ref.marketplace, new Map(), { strict: true });
|
|
145
|
+
if (refreshed === null)
|
|
146
|
+
throw notFound(`marketplace not found: ${ref.marketplace}`);
|
|
147
|
+
const entry = refreshed.manifest.plugins.find((p) => p.name === ref.plugin);
|
|
148
|
+
if (entry === undefined) {
|
|
149
|
+
throw notFound(`plugin "${ref.plugin}" not found in marketplace "${ref.marketplace}"`);
|
|
150
|
+
}
|
|
151
|
+
const destRoot = requireScopeRoot(scope);
|
|
152
|
+
ensureScopeInitialized(scope, destRoot);
|
|
153
|
+
const destPluginDir = join(destRoot, 'plugins', ref.plugin);
|
|
154
|
+
if (isMarketplaceRelativeSource(entry.source)) {
|
|
155
|
+
const sourcePath = join(refreshed.marketplace.root, entry.source);
|
|
156
|
+
if (!pathExists(sourcePath)) {
|
|
157
|
+
throw notFound(`plugin source path does not exist: ${sourcePath}`);
|
|
158
|
+
}
|
|
159
|
+
linkOrCopy(sourcePath, destPluginDir);
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
if (pathExists(destPluginDir)) {
|
|
163
|
+
removePath(destPluginDir);
|
|
164
|
+
}
|
|
165
|
+
clone(entry.source, destPluginDir, { depth: 1 });
|
|
166
|
+
}
|
|
167
|
+
const pluginManifest = readPluginManifest(destPluginDir);
|
|
168
|
+
if (pluginManifest === null) {
|
|
169
|
+
removePath(destPluginDir);
|
|
170
|
+
throw notFound(`plugin manifest not found at ${destPluginDir}/.crouter-plugin/plugin.json`);
|
|
171
|
+
}
|
|
172
|
+
const version = entry.version ?? pluginManifest.version;
|
|
173
|
+
updateConfig(scope, (cfg) => {
|
|
174
|
+
const pluginCfg = {
|
|
175
|
+
enabled: true,
|
|
176
|
+
source_marketplace: ref.marketplace,
|
|
177
|
+
};
|
|
178
|
+
if (version !== undefined)
|
|
179
|
+
pluginCfg.version = version;
|
|
180
|
+
cfg.plugins[ref.plugin] = pluginCfg;
|
|
181
|
+
});
|
|
182
|
+
return { name: ref.plugin, scope, path: destPluginDir };
|
|
183
|
+
}
|
|
184
|
+
function updateOnePlugin(plugin, marketplaceCache, opts) {
|
|
185
|
+
let contentUpdate = { updated: false, sha: currentSha(plugin.root) ?? '' };
|
|
186
|
+
let marketplaceVersion;
|
|
187
|
+
if (plugin.sourceMarketplace !== undefined) {
|
|
188
|
+
const refreshed = refreshMarketplace(plugin.sourceMarketplace, marketplaceCache, opts);
|
|
189
|
+
if (refreshed !== null) {
|
|
190
|
+
const entry = refreshed.manifest.plugins.find((p) => p.name === plugin.name);
|
|
191
|
+
marketplaceVersion = entry?.version;
|
|
192
|
+
if (isSymlink(plugin.root)) {
|
|
193
|
+
const shaAfter = currentSha(plugin.root);
|
|
194
|
+
contentUpdate = { updated: refreshed.pull.updated, sha: shaAfter ?? refreshed.pull.sha };
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
contentUpdate = pullGitCheckout(plugin.root, `plugin "${plugin.name}"`, opts);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
contentUpdate = pullGitCheckout(plugin.root, `plugin "${plugin.name}"`, opts);
|
|
203
|
+
}
|
|
204
|
+
const manifest = readPluginManifest(plugin.root);
|
|
205
|
+
updatePluginVersion(plugin.scope, plugin.name, marketplaceVersion ?? manifest?.version);
|
|
206
|
+
return {
|
|
207
|
+
name: plugin.name,
|
|
208
|
+
updated: contentUpdate.updated,
|
|
209
|
+
sha: contentUpdate.sha,
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
export const pluginInstall = defineLeaf({
|
|
16
213
|
name: 'install',
|
|
17
|
-
description: 'install from
|
|
18
|
-
whenToUse: 'installing
|
|
214
|
+
description: 'install from marketplace ref, git URL, or local path',
|
|
215
|
+
whenToUse: 'installing one plugin into a scope when you have an explicit ref: marketplace/plugin, a git URL, or a local path starting ./, ../, or /',
|
|
19
216
|
help: {
|
|
20
|
-
name: 'pkg plugin
|
|
21
|
-
summary: 'install a plugin from
|
|
217
|
+
name: 'pkg plugin install',
|
|
218
|
+
summary: 'install a plugin from marketplace/plugin, git URL, or local path',
|
|
22
219
|
params: [
|
|
23
|
-
{ kind: 'positional', name: '
|
|
24
|
-
{ kind: 'flag', name: 'scope', type: 'enum', choices: ['user', 'project'], required: false, constraint: '
|
|
25
|
-
{ kind: 'flag', name: 'ref', type: 'string', required: false, constraint: 'Git ref (branch/tag)
|
|
220
|
+
{ kind: 'positional', name: 'install-ref', type: 'string', required: true, constraint: 'Plugin install ref. Accepted forms: marketplace/plugin; git URL starting https://, ssh://, git@, file://, or ending .git; local path starting ./, ../, or /.' },
|
|
221
|
+
{ kind: 'flag', name: 'scope', type: 'enum', choices: ['user', 'project'], required: false, constraint: 'Default: project if available, else user.' },
|
|
222
|
+
{ kind: 'flag', name: 'ref', type: 'string', required: false, constraint: 'Git ref (branch/tag) for git URL installs. Ignored for marketplace and local path refs.' },
|
|
26
223
|
],
|
|
27
224
|
output: [
|
|
28
|
-
{ name: 'name', type: 'string', required: true, constraint: 'Plugin name as
|
|
225
|
+
{ name: 'name', type: 'string', required: true, constraint: 'Plugin name as installed.' },
|
|
29
226
|
{ name: 'scope', type: 'string', required: true, constraint: 'Scope the plugin was installed into.' },
|
|
30
227
|
{ name: 'path', type: 'string', required: true, constraint: 'Absolute path to the installed plugin directory.' },
|
|
31
228
|
],
|
|
32
229
|
outputKind: 'object',
|
|
33
|
-
effects: ['Clones or copies the plugin into the scope plugins directory. Registers the plugin in config.json.'],
|
|
230
|
+
effects: ['Clones, links, or copies the plugin into the scope plugins directory. Registers the plugin in config.json with enabled=true. Marketplace installs refresh the source marketplace before resolving the plugin entry.'],
|
|
34
231
|
},
|
|
35
232
|
run: async (input) => {
|
|
36
|
-
const
|
|
233
|
+
const rawRef = input['installRef'];
|
|
37
234
|
const scopeInput = input['scope'];
|
|
38
|
-
const
|
|
39
|
-
if (!isGitUrl(source)) {
|
|
40
|
-
throw usage(`"${source}" is not a git URL. Use \`pkg market manage install\` to install from a marketplace.`);
|
|
41
|
-
}
|
|
235
|
+
const gitRef = input['ref'];
|
|
42
236
|
const scope = resolveInstallScope(scopeInput);
|
|
43
|
-
|
|
44
|
-
if (
|
|
45
|
-
|
|
46
|
-
ensureScopeInitialized(scope, scopeRootPath);
|
|
237
|
+
const classified = classifyInstallRef(rawRef);
|
|
238
|
+
if (classified.kind === 'marketplace') {
|
|
239
|
+
return installFromMarketplace(classified.value, scope);
|
|
47
240
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
ensureScopeInitialized(scope, scopeRootPath);
|
|
241
|
+
if (classified.kind === 'local') {
|
|
242
|
+
return installFromLocal(classified.value, scope);
|
|
51
243
|
}
|
|
52
|
-
|
|
53
|
-
ensureDir(pDir);
|
|
54
|
-
const tempName = deriveNameFromUrl(source);
|
|
55
|
-
const tempDir = join(pDir, tempName);
|
|
56
|
-
if (pathExists(tempDir)) {
|
|
57
|
-
throw general(`plugin directory already exists: ${tempDir}\n` +
|
|
58
|
-
`Uninstall the existing plugin first with \`pkg plugin manage remove ${tempName}\``);
|
|
59
|
-
}
|
|
60
|
-
clone(source, tempDir, { ref: ref !== undefined ? ref : undefined, depth: 1 });
|
|
61
|
-
const manifest = readPluginManifest(tempDir);
|
|
62
|
-
if (manifest === null) {
|
|
63
|
-
removePath(tempDir);
|
|
64
|
-
throw general(`cloned repo does not contain a valid .crouter-plugin/plugin.json: ${source}`);
|
|
65
|
-
}
|
|
66
|
-
const finalName = manifest.name;
|
|
67
|
-
let finalDir = tempDir;
|
|
68
|
-
if (finalName !== tempName) {
|
|
69
|
-
const candidateDir = join(pDir, finalName);
|
|
70
|
-
if (pathExists(candidateDir)) {
|
|
71
|
-
removePath(tempDir);
|
|
72
|
-
throw general(`plugin "${finalName}" is already installed at ${candidateDir}`);
|
|
73
|
-
}
|
|
74
|
-
renameSync(tempDir, candidateDir);
|
|
75
|
-
finalDir = candidateDir;
|
|
76
|
-
}
|
|
77
|
-
updateConfig(scope, (cfg) => {
|
|
78
|
-
cfg.plugins[finalName] = {
|
|
79
|
-
enabled: true,
|
|
80
|
-
version: manifest.version,
|
|
81
|
-
};
|
|
82
|
-
});
|
|
83
|
-
return { name: finalName, scope, path: finalDir };
|
|
244
|
+
return installFromGit(classified.value, gitRef, scope);
|
|
84
245
|
},
|
|
85
246
|
});
|
|
86
|
-
|
|
87
|
-
// plugin.manage.remove
|
|
88
|
-
// ---------------------------------------------------------------------------
|
|
89
|
-
const pluginRemove = defineLeaf({
|
|
247
|
+
export const pluginRemove = defineLeaf({
|
|
90
248
|
name: 'remove',
|
|
91
249
|
description: 'remove plugin and directory',
|
|
92
250
|
whenToUse: 'uninstalling a plugin: deletes its directory and removes it from config',
|
|
93
251
|
help: {
|
|
94
|
-
name: 'pkg plugin
|
|
252
|
+
name: 'pkg plugin remove',
|
|
95
253
|
summary: 'remove a plugin and its directory from the given scope',
|
|
96
254
|
params: [
|
|
97
255
|
{ kind: 'positional', name: 'name', type: 'string', required: true, constraint: 'Plugin name to remove.' },
|
|
98
|
-
{ kind: 'flag', name: 'scope', type: 'enum', choices: ['user', 'project'], required: false, constraint: '
|
|
256
|
+
{ kind: 'flag', name: 'scope', type: 'enum', choices: ['user', 'project'], required: false, constraint: 'Default: searches all scopes.' },
|
|
99
257
|
],
|
|
100
258
|
output: [
|
|
101
259
|
{ name: 'removed', type: 'boolean', required: true, constraint: 'True if removed from at least one scope.' },
|
|
@@ -140,19 +298,16 @@ const pluginRemove = defineLeaf({
|
|
|
140
298
|
return { removed: true, scopes: removedFrom };
|
|
141
299
|
},
|
|
142
300
|
});
|
|
143
|
-
|
|
144
|
-
// plugin.manage.enable / disable
|
|
145
|
-
// ---------------------------------------------------------------------------
|
|
146
|
-
const pluginEnable = defineLeaf({
|
|
301
|
+
export const pluginEnable = defineLeaf({
|
|
147
302
|
name: 'enable',
|
|
148
303
|
description: 'enable a plugin',
|
|
149
304
|
whenToUse: 'reactivating a plugin that was previously disabled so its memory docs resolve again',
|
|
150
305
|
help: {
|
|
151
|
-
name: 'pkg plugin
|
|
306
|
+
name: 'pkg plugin enable',
|
|
152
307
|
summary: 'enable a plugin in the given scope',
|
|
153
308
|
params: [
|
|
154
309
|
{ kind: 'positional', name: 'name', type: 'string', required: true, constraint: 'Plugin name to enable.' },
|
|
155
|
-
{ kind: 'flag', name: 'scope', type: 'enum', choices: ['user', 'project'], required: false, constraint: '
|
|
310
|
+
{ kind: 'flag', name: 'scope', type: 'enum', choices: ['user', 'project'], required: false, constraint: 'Default: scope where the plugin is installed.' },
|
|
156
311
|
],
|
|
157
312
|
output: [
|
|
158
313
|
{ name: 'name', type: 'string', required: true, constraint: 'Plugin name.' },
|
|
@@ -164,16 +319,16 @@ const pluginEnable = defineLeaf({
|
|
|
164
319
|
},
|
|
165
320
|
run: async (input) => setPluginEnabled(input, true),
|
|
166
321
|
});
|
|
167
|
-
const pluginDisable = defineLeaf({
|
|
322
|
+
export const pluginDisable = defineLeaf({
|
|
168
323
|
name: 'disable',
|
|
169
324
|
description: 'disable without removing',
|
|
170
325
|
whenToUse: 'hiding a plugin from resolution without deleting it, so you can re-enable it later',
|
|
171
326
|
help: {
|
|
172
|
-
name: 'pkg plugin
|
|
327
|
+
name: 'pkg plugin disable',
|
|
173
328
|
summary: 'disable a plugin (keeps files, hides from resolution)',
|
|
174
329
|
params: [
|
|
175
330
|
{ kind: 'positional', name: 'name', type: 'string', required: true, constraint: 'Plugin name to disable.' },
|
|
176
|
-
{ kind: 'flag', name: 'scope', type: 'enum', choices: ['user', 'project'], required: false, constraint: '
|
|
331
|
+
{ kind: 'flag', name: 'scope', type: 'enum', choices: ['user', 'project'], required: false, constraint: 'Default: scope where the plugin is installed.' },
|
|
177
332
|
],
|
|
178
333
|
output: [
|
|
179
334
|
{ name: 'name', type: 'string', required: true, constraint: 'Plugin name.' },
|
|
@@ -185,115 +340,34 @@ const pluginDisable = defineLeaf({
|
|
|
185
340
|
},
|
|
186
341
|
run: async (input) => setPluginEnabled(input, false),
|
|
187
342
|
});
|
|
188
|
-
|
|
189
|
-
// plugin.manage.update
|
|
190
|
-
// Single plugin: blocking (bounded). All plugins: job handle (unbounded network).
|
|
191
|
-
// ---------------------------------------------------------------------------
|
|
192
|
-
const pluginUpdate = defineLeaf({
|
|
343
|
+
export const pluginUpdate = defineLeaf({
|
|
193
344
|
name: 'update',
|
|
194
|
-
description: '
|
|
195
|
-
whenToUse: 'pulling
|
|
345
|
+
description: 'update installed plugin content',
|
|
346
|
+
whenToUse: 'pulling source updates for one named plugin, or all installed plugins when no name is given; marketplace-sourced plugins refresh their source marketplace before version/content resolution',
|
|
196
347
|
help: {
|
|
197
|
-
name: 'pkg plugin
|
|
198
|
-
summary: '
|
|
348
|
+
name: 'pkg plugin update',
|
|
349
|
+
summary: 'update one or all installed plugins from their recorded source',
|
|
199
350
|
params: [
|
|
200
|
-
{ kind: 'flag', name: 'name', type: 'string', required: false, constraint: 'Plugin name to update. Omit to update all
|
|
351
|
+
{ kind: 'flag', name: 'name', type: 'string', required: false, constraint: 'Plugin name to update. Omit to update all installed plugins.' },
|
|
201
352
|
],
|
|
202
353
|
output: [
|
|
203
|
-
{ name: 'updated', type: 'object[]', required: false, constraint: 'Present for single-plugin (blocking) path: [{name, updated, sha}].' },
|
|
204
354
|
{ name: 'updated', type: 'object[]', required: true, constraint: 'One entry per plugin processed: {name, updated, sha}.' },
|
|
205
355
|
],
|
|
206
356
|
outputKind: 'object',
|
|
207
|
-
effects: ['Runs git pull in plugin directories. Updates version
|
|
357
|
+
effects: ['Runs git pull in plugin or marketplace directories when they are git checkouts. Updates plugin version and last_updated state.'],
|
|
208
358
|
},
|
|
209
359
|
run: async (input) => {
|
|
210
360
|
const name = input['name'];
|
|
361
|
+
const marketplaceCache = new Map();
|
|
211
362
|
if (name !== undefined) {
|
|
212
|
-
// Single plugin — blocking (bounded network op, one repo)
|
|
213
363
|
const found = findPluginByName(name);
|
|
214
364
|
if (found === null) {
|
|
215
365
|
throw notFound(`plugin not found: ${name}`);
|
|
216
366
|
}
|
|
217
|
-
|
|
218
|
-
const res = pull(found.root);
|
|
219
|
-
if (res.status !== 0) {
|
|
220
|
-
throw general(`git pull failed for "${name}": ${res.stderr.trim()}`);
|
|
221
|
-
}
|
|
222
|
-
const shaAfter = currentSha(found.root);
|
|
223
|
-
const updated = shaBefore !== shaAfter;
|
|
224
|
-
const manifest = readPluginManifest(found.root);
|
|
225
|
-
if (manifest !== null) {
|
|
226
|
-
updateConfig(found.scope, (cfg) => {
|
|
227
|
-
const entry = cfg.plugins[found.name];
|
|
228
|
-
if (entry !== undefined) {
|
|
229
|
-
entry.version = manifest.version;
|
|
230
|
-
}
|
|
231
|
-
else {
|
|
232
|
-
cfg.plugins[found.name] = { enabled: true, version: manifest.version };
|
|
233
|
-
}
|
|
234
|
-
});
|
|
235
|
-
updateState(found.scope, (s) => {
|
|
236
|
-
if (s.plugins[found.name] === undefined) {
|
|
237
|
-
s.plugins[found.name] = {};
|
|
238
|
-
}
|
|
239
|
-
s.plugins[found.name].last_updated = nowIso();
|
|
240
|
-
});
|
|
241
|
-
}
|
|
242
|
-
return {
|
|
243
|
-
updated: [
|
|
244
|
-
{
|
|
245
|
-
name: found.name,
|
|
246
|
-
updated,
|
|
247
|
-
sha: shaAfter !== null ? shaAfter : '',
|
|
248
|
-
},
|
|
249
|
-
],
|
|
250
|
-
};
|
|
251
|
-
}
|
|
252
|
-
// All plugins — run synchronously (each git pull is a sync spawn).
|
|
253
|
-
const all = listAllPlugins();
|
|
254
|
-
const targets = all
|
|
255
|
-
.filter((p) => p.enabled && !p.sourceMarketplace && p.scope !== 'builtin')
|
|
256
|
-
.map((p) => ({ name: p.name, scope: p.scope, root: p.root }));
|
|
257
|
-
const results = [];
|
|
258
|
-
for (const target of targets) {
|
|
259
|
-
const shaBefore = currentSha(target.root);
|
|
260
|
-
const res = pull(target.root);
|
|
261
|
-
if (res.status !== 0) {
|
|
262
|
-
results.push({ name: target.name, updated: false, sha: shaBefore !== null ? shaBefore : '' });
|
|
263
|
-
continue;
|
|
264
|
-
}
|
|
265
|
-
const shaAfter = currentSha(target.root);
|
|
266
|
-
const updated = shaBefore !== shaAfter;
|
|
267
|
-
const manifest = readPluginManifest(target.root);
|
|
268
|
-
if (manifest !== null) {
|
|
269
|
-
updateConfig(target.scope, (cfg) => {
|
|
270
|
-
const entry = cfg.plugins[target.name];
|
|
271
|
-
if (entry !== undefined) {
|
|
272
|
-
entry.version = manifest.version;
|
|
273
|
-
}
|
|
274
|
-
else {
|
|
275
|
-
cfg.plugins[target.name] = { enabled: true, version: manifest.version };
|
|
276
|
-
}
|
|
277
|
-
});
|
|
278
|
-
updateState(target.scope, (s) => {
|
|
279
|
-
if (s.plugins[target.name] === undefined) {
|
|
280
|
-
s.plugins[target.name] = {};
|
|
281
|
-
}
|
|
282
|
-
s.plugins[target.name].last_updated = nowIso();
|
|
283
|
-
});
|
|
284
|
-
}
|
|
285
|
-
results.push({ name: target.name, updated, sha: shaAfter !== null ? shaAfter : '' });
|
|
367
|
+
return { updated: [updateOnePlugin(found, marketplaceCache, { strict: true })] };
|
|
286
368
|
}
|
|
369
|
+
const targets = listAllPlugins().filter((p) => p.scope !== 'builtin');
|
|
370
|
+
const results = targets.map((plugin) => updateOnePlugin(plugin, marketplaceCache, { strict: false }));
|
|
287
371
|
return { updated: results };
|
|
288
372
|
},
|
|
289
373
|
});
|
|
290
|
-
export const pluginManageBranch = defineBranch({
|
|
291
|
-
name: 'manage',
|
|
292
|
-
description: 'install, remove, enable, disable, update',
|
|
293
|
-
whenToUse: 'changing plugin state: install, remove, enable, disable, or update installed plugins',
|
|
294
|
-
help: {
|
|
295
|
-
name: 'pkg plugin manage',
|
|
296
|
-
summary: 'install, remove, enable, disable, or update plugins',
|
|
297
|
-
},
|
|
298
|
-
children: [pluginInstall, pluginRemove, pluginEnable, pluginDisable, pluginUpdate],
|
|
299
|
-
});
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { defineBranch } from '../../core/command.js';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { pluginDisable, pluginEnable, pluginInstall, pluginRemove, pluginUpdate, } from './plugin-manage.js';
|
|
3
|
+
import { pluginList, pluginShow } from './plugin-inspect.js';
|
|
4
4
|
export const pluginBranch = defineBranch({
|
|
5
5
|
name: 'plugin',
|
|
6
6
|
description: 'install and manage plugins',
|
|
7
|
-
whenToUse: 'working with individual plugins
|
|
7
|
+
whenToUse: 'working with individual plugins: install one from a marketplace/plugin ref, git URL, or local path; remove, enable, disable, update, list, or show installed plugins. Use `pkg market` only for marketplace source registration, refresh, and browsing.',
|
|
8
8
|
help: {
|
|
9
9
|
name: 'pkg plugin',
|
|
10
|
-
summary: '
|
|
11
|
-
model: 'Plugins are git repos or local directories containing a .crouter-plugin/plugin.json manifest and a memory/ directory.',
|
|
10
|
+
summary: 'plugin lifecycle and inspection',
|
|
11
|
+
model: 'Plugins are git repos or local directories containing a .crouter-plugin/plugin.json manifest and a memory/ directory. Install refs are explicit: marketplace/plugin, git URL, or local path.',
|
|
12
12
|
},
|
|
13
|
-
children: [
|
|
13
|
+
children: [pluginInstall, pluginRemove, pluginEnable, pluginDisable, pluginUpdate, pluginList, pluginShow],
|
|
14
14
|
});
|
package/dist/commands/pkg.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
// `crtr pkg` subtree:
|
|
2
|
-
// Sub-branches: plugin {
|
|
3
|
-
// market {
|
|
1
|
+
// `crtr pkg` subtree: plugin lifecycle plus marketplace source management.
|
|
2
|
+
// Sub-branches: plugin {install,remove,enable,disable,update,list,show}
|
|
3
|
+
// market {add,remove,update,list,browse}
|
|
4
4
|
import { defineBranch } from '../core/command.js';
|
|
5
5
|
import { pluginBranch } from './pkg/plugin.js';
|
|
6
6
|
import { marketBranch } from './pkg/market.js';
|
|
@@ -9,12 +9,12 @@ export function registerPkg() {
|
|
|
9
9
|
name: 'pkg',
|
|
10
10
|
rootEntry: {
|
|
11
11
|
concept: 'plugins and marketplaces that supply memory docs',
|
|
12
|
-
desc: 'manage plugins and
|
|
12
|
+
desc: 'manage plugins and marketplace sources',
|
|
13
13
|
useWhen: 'installing or browsing memory-doc collections',
|
|
14
14
|
},
|
|
15
15
|
help: {
|
|
16
16
|
name: 'pkg',
|
|
17
|
-
summary: 'manage plugins and
|
|
17
|
+
summary: 'manage plugins and marketplace sources',
|
|
18
18
|
},
|
|
19
19
|
children: [pluginBranch, marketBranch],
|
|
20
20
|
});
|
package/dist/commands/revive.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
// `crtr canvas revive` — explicit node revival.
|
|
2
2
|
//
|
|
3
3
|
// Bypasses the daemon: directly relaunches the broker engine for a node that is
|
|
4
|
-
// done, idle, or dead. Default behavior resumes the saved pi conversation
|
|
5
|
-
// (--session <
|
|
4
|
+
// done, idle, or dead. Default behavior resumes the saved pi conversation by its
|
|
5
|
+
// absolute session-file path (--session <path>) when that .jsonl still exists,
|
|
6
|
+
// else falls through to a fresh launch; pass --fresh to force a clean pi session
|
|
7
|
+
// against the context dir.
|
|
6
8
|
//
|
|
7
9
|
// `--all` sweeps EVERY disconnected node (engine not running, resumable session)
|
|
8
10
|
// in one shot — the recovery for a reboot / mass-crash / daemon-down-a-while
|
|
@@ -23,7 +25,7 @@ import { isBusy } from '../core/runtime/busy.js';
|
|
|
23
25
|
export const reviveLeaf = defineLeaf({
|
|
24
26
|
name: 'revive',
|
|
25
27
|
description: 'reopen a window for a done/idle/dead/canceled node, or --all disconnected nodes',
|
|
26
|
-
whenToUse: 'you want to bring a dormant node back yourself — reopen a window for one that is done, idle, dead, or canceled: resume a node you closed with `node close`, reopen a finished worker for a follow-up, or restart a crashed one now instead of waiting. It resumes the saved conversation by default, or can restart the node clean. Pass `--all` instead of a node id to bring back EVERY disconnected node at once (engine not running but a saved session intact) — the recovery after a reboot, a killed login/tmux session, a mass crash, or the daemon being down a while. You rarely need this for crashes — the daemon auto-revives those; reach for it to bring a node back on demand, to revive a canceled node the daemon will never touch on its own, or to mass-reconnect survivors after a disconnect event',
|
|
28
|
+
whenToUse: 'you want to bring a dormant node back yourself — reopen a window for one that is done, idle, dead, or canceled: resume a node you closed with `node lifecycle close`, reopen a finished worker for a follow-up, or restart a crashed one now instead of waiting. It resumes the saved conversation by default, or can restart the node clean. Pass `--all` instead of a node id to bring back EVERY disconnected node at once (engine not running but a saved session intact) — the recovery after a reboot, a killed login/tmux session, a mass crash, or the daemon being down a while. You rarely need this for crashes — the daemon auto-revives those; reach for it to bring a node back on demand, to revive a canceled node the daemon will never touch on its own, or to mass-reconnect survivors after a disconnect event',
|
|
27
29
|
help: {
|
|
28
30
|
name: 'canvas revive',
|
|
29
31
|
summary: 'relaunch a node\'s broker engine (resuming its saved conversation), or --all disconnected nodes',
|
|
@@ -24,7 +24,7 @@ export const answerLeaf = defineLeaf({
|
|
|
24
24
|
return {
|
|
25
25
|
answer: res.answer ?? '',
|
|
26
26
|
citations: res.citations ?? [],
|
|
27
|
-
follow_up: 'Read any cited source in full with
|
|
27
|
+
follow_up: 'Read any cited source in full with the contents leaf after checking its schema. Want raw ranked results instead of a synthesized answer? Use the web leaf.',
|
|
28
28
|
};
|
|
29
29
|
},
|
|
30
30
|
render: (result) => {
|
|
@@ -66,7 +66,7 @@ export const contentsLeaf = defineLeaf({
|
|
|
66
66
|
return {
|
|
67
67
|
results,
|
|
68
68
|
failures,
|
|
69
|
-
follow_up: 'Stale or empty content? Re-run with --max-age-hours 0 to force a fresh crawl. Need to find more pages? Use
|
|
69
|
+
follow_up: 'Stale or empty content? Re-run with --max-age-hours 0 to force a fresh crawl. Need to find more pages? Use the web leaf after checking its schema.',
|
|
70
70
|
};
|
|
71
71
|
},
|
|
72
72
|
render: (result) => {
|
|
@@ -19,7 +19,7 @@ export const webLeaf = defineLeaf({
|
|
|
19
19
|
output: [
|
|
20
20
|
{ name: 'query', type: 'string', required: true, constraint: 'Echo of the query searched.' },
|
|
21
21
|
{ name: 'results', type: 'object[]', required: true, constraint: 'Ranked best-first, each: title, url, published date and author when present, and either highlight excerpts (default) or capped full text (--text).' },
|
|
22
|
-
{ name: 'follow_up', type: 'string', required: true, constraint: '
|
|
22
|
+
{ name: 'follow_up', type: 'string', required: true, constraint: 'Decision road sign: either read selected result URLs through the contents leaf after checking its schema, or refine the query.' },
|
|
23
23
|
],
|
|
24
24
|
outputKind: 'object',
|
|
25
25
|
effects: ['Sends one search request to the Exa API (network). No local state changes.'],
|
|
@@ -44,7 +44,7 @@ export const webLeaf = defineLeaf({
|
|
|
44
44
|
return {
|
|
45
45
|
query,
|
|
46
46
|
results,
|
|
47
|
-
follow_up: 'Fetch
|
|
47
|
+
follow_up: 'Fetch full content for selected result URLs with the contents leaf after checking its schema. No good hits? Broaden the query, drop domain filters, or try --type deep.',
|
|
48
48
|
};
|
|
49
49
|
},
|
|
50
50
|
render: (result) => {
|
package/dist/commands/search.js
CHANGED
|
@@ -12,7 +12,7 @@ export function registerSearch() {
|
|
|
12
12
|
rootEntry: {
|
|
13
13
|
concept: 'web search for agents — find pages, get grounded answers, extract page content (Exa)',
|
|
14
14
|
desc: 'search the web, answer a question with citations, or extract content from known URLs',
|
|
15
|
-
useWhen: 'you need information from the live web — current events, documentation, sources, facts beyond your training.
|
|
15
|
+
useWhen: 'you need information from the live web — current events, documentation, sources, facts beyond your training. Use web for relevant pages with excerpts, answer for one synthesized cited answer, and contents for clean text from URLs you already hold. Needs an Exa API key (EXA_API_KEY or ~/.crouter/exa.key).',
|
|
16
16
|
},
|
|
17
17
|
help: {
|
|
18
18
|
name: 'search',
|