@anthara/pi-claude 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/NOTICE +28 -0
- package/README.md +89 -2
- package/dist/.tsbuildinfo +1 -0
- package/dist/errors/anthara-error.d.ts +3 -0
- package/dist/errors/anthara-error.js +7 -0
- package/dist/errors/anthara-error.js.map +1 -0
- package/dist/extensions/agents/agent-dispatcher.d.ts +29 -0
- package/dist/extensions/agents/agent-dispatcher.js +73 -0
- package/dist/extensions/agents/agent-dispatcher.js.map +1 -0
- package/dist/extensions/agents/agent-result-text.d.ts +7 -0
- package/dist/extensions/agents/agent-result-text.js +13 -0
- package/dist/extensions/agents/agent-result-text.js.map +1 -0
- package/dist/extensions/agents/agent-schema.d.ts +9 -0
- package/dist/extensions/agents/agent-schema.js +12 -0
- package/dist/extensions/agents/agent-schema.js.map +1 -0
- package/dist/extensions/agents/background-runs.d.ts +12 -0
- package/dist/extensions/agents/background-runs.js +20 -0
- package/dist/extensions/agents/background-runs.js.map +1 -0
- package/dist/extensions/agents/built-in/built-in-agents.d.ts +2 -0
- package/dist/extensions/agents/built-in/built-in-agents.js +56 -0
- package/dist/extensions/agents/built-in/built-in-agents.js.map +1 -0
- package/dist/extensions/agents/built-in/read-only-agent.d.ts +3 -0
- package/dist/extensions/agents/built-in/read-only-agent.js +11 -0
- package/dist/extensions/agents/built-in/read-only-agent.js.map +1 -0
- package/dist/extensions/agents/child-session/child-resource-loader.d.ts +3 -0
- package/dist/extensions/agents/child-session/child-resource-loader.js +22 -0
- package/dist/extensions/agents/child-session/child-resource-loader.js.map +1 -0
- package/dist/extensions/agents/child-session/child-session-factory.d.ts +39 -0
- package/dist/extensions/agents/child-session/child-session-factory.js +2 -0
- package/dist/extensions/agents/child-session/child-session-factory.js.map +1 -0
- package/dist/extensions/agents/child-session/child-todo-list.d.ts +3 -0
- package/dist/extensions/agents/child-session/child-todo-list.js +21 -0
- package/dist/extensions/agents/child-session/child-todo-list.js.map +1 -0
- package/dist/extensions/agents/child-session/child-tools.d.ts +14 -0
- package/dist/extensions/agents/child-session/child-tools.js +16 -0
- package/dist/extensions/agents/child-session/child-tools.js.map +1 -0
- package/dist/extensions/agents/child-session/folder-arguments.d.ts +1 -0
- package/dist/extensions/agents/child-session/folder-arguments.js +16 -0
- package/dist/extensions/agents/child-session/folder-arguments.js.map +1 -0
- package/dist/extensions/agents/child-session/in-process-agent-runner.d.ts +20 -0
- package/dist/extensions/agents/child-session/in-process-agent-runner.js +94 -0
- package/dist/extensions/agents/child-session/in-process-agent-runner.js.map +1 -0
- package/dist/extensions/agents/child-session/parent-tool-bridge.d.ts +12 -0
- package/dist/extensions/agents/child-session/parent-tool-bridge.js +28 -0
- package/dist/extensions/agents/child-session/parent-tool-bridge.js.map +1 -0
- package/dist/extensions/agents/child-session/sdk-child-session-factory.d.ts +7 -0
- package/dist/extensions/agents/child-session/sdk-child-session-factory.js +70 -0
- package/dist/extensions/agents/child-session/sdk-child-session-factory.js.map +1 -0
- package/dist/extensions/agents/child-session/sub-agent-models.d.ts +9 -0
- package/dist/extensions/agents/child-session/sub-agent-models.js +27 -0
- package/dist/extensions/agents/child-session/sub-agent-models.js.map +1 -0
- package/dist/extensions/agents/child-session/tool-selection.d.ts +2 -0
- package/dist/extensions/agents/child-session/tool-selection.js +14 -0
- package/dist/extensions/agents/child-session/tool-selection.js.map +1 -0
- package/dist/extensions/agents/child-session/turn-cap.d.ts +8 -0
- package/dist/extensions/agents/child-session/turn-cap.js +21 -0
- package/dist/extensions/agents/child-session/turn-cap.js.map +1 -0
- package/dist/extensions/agents/errors.d.ts +14 -0
- package/dist/extensions/agents/errors.js +22 -0
- package/dist/extensions/agents/errors.js.map +1 -0
- package/dist/extensions/agents/index.d.ts +4 -0
- package/dist/extensions/agents/index.js +80 -0
- package/dist/extensions/agents/index.js.map +1 -0
- package/dist/extensions/agents/memory/agent-memory.d.ts +11 -0
- package/dist/extensions/agents/memory/agent-memory.js +28 -0
- package/dist/extensions/agents/memory/agent-memory.js.map +1 -0
- package/dist/extensions/agents/memory/fabric-memory-backend.d.ts +8 -0
- package/dist/extensions/agents/memory/fabric-memory-backend.js +40 -0
- package/dist/extensions/agents/memory/fabric-memory-backend.js.map +1 -0
- package/dist/extensions/agents/memory/memory-backend.d.ts +12 -0
- package/dist/extensions/agents/memory/memory-backend.js +2 -0
- package/dist/extensions/agents/memory/memory-backend.js.map +1 -0
- package/dist/extensions/agents/memory/memory-instruction.d.ts +7 -0
- package/dist/extensions/agents/memory/memory-instruction.js +12 -0
- package/dist/extensions/agents/memory/memory-instruction.js.map +1 -0
- package/dist/extensions/agents/model-selection.d.ts +12 -0
- package/dist/extensions/agents/model-selection.js +14 -0
- package/dist/extensions/agents/model-selection.js.map +1 -0
- package/dist/extensions/agents/preloaded-skills.d.ts +7 -0
- package/dist/extensions/agents/preloaded-skills.js +32 -0
- package/dist/extensions/agents/preloaded-skills.js.map +1 -0
- package/dist/extensions/agents/roster/agent-definition.d.ts +16 -0
- package/dist/extensions/agents/roster/agent-definition.js +2 -0
- package/dist/extensions/agents/roster/agent-definition.js.map +1 -0
- package/dist/extensions/agents/roster/agent-fields.d.ts +5 -0
- package/dist/extensions/agents/roster/agent-fields.js +28 -0
- package/dist/extensions/agents/roster/agent-fields.js.map +1 -0
- package/dist/extensions/agents/roster/agent-files.d.ts +7 -0
- package/dist/extensions/agents/roster/agent-files.js +31 -0
- package/dist/extensions/agents/roster/agent-files.js.map +1 -0
- package/dist/extensions/agents/roster/agent-roster.d.ts +17 -0
- package/dist/extensions/agents/roster/agent-roster.js +50 -0
- package/dist/extensions/agents/roster/agent-roster.js.map +1 -0
- package/dist/extensions/agents/roster/own-agents.d.ts +2 -0
- package/dist/extensions/agents/roster/own-agents.js +21 -0
- package/dist/extensions/agents/roster/own-agents.js.map +1 -0
- package/dist/extensions/agents/roster/plugin-agents.d.ts +8 -0
- package/dist/extensions/agents/roster/plugin-agents.js +46 -0
- package/dist/extensions/agents/roster/plugin-agents.js.map +1 -0
- package/dist/extensions/agents/run-planner.d.ts +14 -0
- package/dist/extensions/agents/run-planner.js +35 -0
- package/dist/extensions/agents/run-planner.js.map +1 -0
- package/dist/extensions/agents/session-agents.d.ts +17 -0
- package/dist/extensions/agents/session-agents.js +94 -0
- package/dist/extensions/agents/session-agents.js.map +1 -0
- package/dist/extensions/agents/worktrees/command-line-worktree-git.d.ts +7 -0
- package/dist/extensions/agents/worktrees/command-line-worktree-git.js +29 -0
- package/dist/extensions/agents/worktrees/command-line-worktree-git.js.map +1 -0
- package/dist/extensions/agents/worktrees/worktree-git.d.ts +24 -0
- package/dist/extensions/agents/worktrees/worktree-git.js +2 -0
- package/dist/extensions/agents/worktrees/worktree-git.js.map +1 -0
- package/dist/extensions/agents/worktrees/worktree-isolation.d.ts +8 -0
- package/dist/extensions/agents/worktrees/worktree-isolation.js +54 -0
- package/dist/extensions/agents/worktrees/worktree-isolation.js.map +1 -0
- package/dist/extensions/ask-user-question/answer-text.d.ts +4 -0
- package/dist/extensions/ask-user-question/answer-text.js +19 -0
- package/dist/extensions/ask-user-question/answer-text.js.map +1 -0
- package/dist/extensions/ask-user-question/answer.d.ts +25 -0
- package/dist/extensions/ask-user-question/answer.js +4 -0
- package/dist/extensions/ask-user-question/answer.js.map +1 -0
- package/dist/extensions/ask-user-question/dialog/key-routing.d.ts +19 -0
- package/dist/extensions/ask-user-question/dialog/key-routing.js +46 -0
- package/dist/extensions/ask-user-question/dialog/key-routing.js.map +1 -0
- package/dist/extensions/ask-user-question/dialog/option-rows.d.ts +5 -0
- package/dist/extensions/ask-user-question/dialog/option-rows.js +17 -0
- package/dist/extensions/ask-user-question/dialog/option-rows.js.map +1 -0
- package/dist/extensions/ask-user-question/dialog/question-dialog.d.ts +17 -0
- package/dist/extensions/ask-user-question/dialog/question-dialog.js +94 -0
- package/dist/extensions/ask-user-question/dialog/question-dialog.js.map +1 -0
- package/dist/extensions/ask-user-question/dialog/selected-labels.d.ts +3 -0
- package/dist/extensions/ask-user-question/dialog/selected-labels.js +2 -0
- package/dist/extensions/ask-user-question/dialog/selected-labels.js.map +1 -0
- package/dist/extensions/ask-user-question/index.d.ts +2 -0
- package/dist/extensions/ask-user-question/index.js +33 -0
- package/dist/extensions/ask-user-question/index.js.map +1 -0
- package/dist/extensions/ask-user-question/prompters/choose-prompter.d.ts +9 -0
- package/dist/extensions/ask-user-question/prompters/choose-prompter.js +9 -0
- package/dist/extensions/ask-user-question/prompters/choose-prompter.js.map +1 -0
- package/dist/extensions/ask-user-question/prompters/dialog-question-prompter.d.ts +13 -0
- package/dist/extensions/ask-user-question/prompters/dialog-question-prompter.js +32 -0
- package/dist/extensions/ask-user-question/prompters/dialog-question-prompter.js.map +1 -0
- package/dist/extensions/ask-user-question/prompters/question-prompter.d.ts +5 -0
- package/dist/extensions/ask-user-question/prompters/question-prompter.js +2 -0
- package/dist/extensions/ask-user-question/prompters/question-prompter.js.map +1 -0
- package/dist/extensions/ask-user-question/prompters/terminal-question-prompter.d.ts +9 -0
- package/dist/extensions/ask-user-question/prompters/terminal-question-prompter.js +43 -0
- package/dist/extensions/ask-user-question/prompters/terminal-question-prompter.js.map +1 -0
- package/dist/extensions/ask-user-question/question-asker.d.ts +8 -0
- package/dist/extensions/ask-user-question/question-asker.js +19 -0
- package/dist/extensions/ask-user-question/question-asker.js.map +1 -0
- package/dist/extensions/ask-user-question/question-schema.d.ts +31 -0
- package/dist/extensions/ask-user-question/question-schema.js +31 -0
- package/dist/extensions/ask-user-question/question-schema.js.map +1 -0
- package/dist/extensions/commands/command-autocomplete.d.ts +3 -0
- package/dist/extensions/commands/command-autocomplete.js +18 -0
- package/dist/extensions/commands/command-autocomplete.js.map +1 -0
- package/dist/extensions/commands/command-runner.d.ts +8 -0
- package/dist/extensions/commands/command-runner.js +64 -0
- package/dist/extensions/commands/command-runner.js.map +1 -0
- package/dist/extensions/commands/index.d.ts +2 -0
- package/dist/extensions/commands/index.js +26 -0
- package/dist/extensions/commands/index.js.map +1 -0
- package/dist/extensions/commands/turn-override.d.ts +15 -0
- package/dist/extensions/commands/turn-override.js +78 -0
- package/dist/extensions/commands/turn-override.js.map +1 -0
- package/dist/extensions/commands/typed-command.d.ts +5 -0
- package/dist/extensions/commands/typed-command.js +6 -0
- package/dist/extensions/commands/typed-command.js.map +1 -0
- package/dist/extensions/conflict-check/index.d.ts +2 -0
- package/dist/extensions/conflict-check/index.js +10 -0
- package/dist/extensions/conflict-check/index.js.map +1 -0
- package/dist/extensions/conflict-check/rival-notice.d.ts +2 -0
- package/dist/extensions/conflict-check/rival-notice.js +13 -0
- package/dist/extensions/conflict-check/rival-notice.js.map +1 -0
- package/dist/extensions/conflict-check/rival-registrations.d.ts +6 -0
- package/dist/extensions/conflict-check/rival-registrations.js +27 -0
- package/dist/extensions/conflict-check/rival-registrations.js.map +1 -0
- package/dist/extensions/hooks/bridges/agent-turn-bridges.d.ts +4 -0
- package/dist/extensions/hooks/bridges/agent-turn-bridges.js +60 -0
- package/dist/extensions/hooks/bridges/agent-turn-bridges.js.map +1 -0
- package/dist/extensions/hooks/bridges/announced-bridges.d.ts +8 -0
- package/dist/extensions/hooks/bridges/announced-bridges.js +61 -0
- package/dist/extensions/hooks/bridges/announced-bridges.js.map +1 -0
- package/dist/extensions/hooks/bridges/briefing.d.ts +4 -0
- package/dist/extensions/hooks/bridges/briefing.js +11 -0
- package/dist/extensions/hooks/bridges/briefing.js.map +1 -0
- package/dist/extensions/hooks/bridges/compaction-bridges.d.ts +4 -0
- package/dist/extensions/hooks/bridges/compaction-bridges.js +36 -0
- package/dist/extensions/hooks/bridges/compaction-bridges.js.map +1 -0
- package/dist/extensions/hooks/bridges/event-bridge.d.ts +45 -0
- package/dist/extensions/hooks/bridges/event-bridge.js +16 -0
- package/dist/extensions/hooks/bridges/event-bridge.js.map +1 -0
- package/dist/extensions/hooks/bridges/event-bridges.d.ts +8 -0
- package/dist/extensions/hooks/bridges/event-bridges.js +38 -0
- package/dist/extensions/hooks/bridges/event-bridges.js.map +1 -0
- package/dist/extensions/hooks/bridges/last-assistant-message.d.ts +3 -0
- package/dist/extensions/hooks/bridges/last-assistant-message.js +12 -0
- package/dist/extensions/hooks/bridges/last-assistant-message.js.map +1 -0
- package/dist/extensions/hooks/bridges/payload-translator.d.ts +5 -0
- package/dist/extensions/hooks/bridges/payload-translator.js +97 -0
- package/dist/extensions/hooks/bridges/payload-translator.js.map +1 -0
- package/dist/extensions/hooks/bridges/prompt-bridge.d.ts +3 -0
- package/dist/extensions/hooks/bridges/prompt-bridge.js +36 -0
- package/dist/extensions/hooks/bridges/prompt-bridge.js.map +1 -0
- package/dist/extensions/hooks/bridges/session-bridges.d.ts +5 -0
- package/dist/extensions/hooks/bridges/session-bridges.js +38 -0
- package/dist/extensions/hooks/bridges/session-bridges.js.map +1 -0
- package/dist/extensions/hooks/bridges/session-state-bridges.d.ts +4 -0
- package/dist/extensions/hooks/bridges/session-state-bridges.js +32 -0
- package/dist/extensions/hooks/bridges/session-state-bridges.js.map +1 -0
- package/dist/extensions/hooks/bridges/stop-bridge.d.ts +3 -0
- package/dist/extensions/hooks/bridges/stop-bridge.js +31 -0
- package/dist/extensions/hooks/bridges/stop-bridge.js.map +1 -0
- package/dist/extensions/hooks/bridges/subagent-bridges.d.ts +4 -0
- package/dist/extensions/hooks/bridges/subagent-bridges.js +32 -0
- package/dist/extensions/hooks/bridges/subagent-bridges.js.map +1 -0
- package/dist/extensions/hooks/bridges/tool-bridges.d.ts +7 -0
- package/dist/extensions/hooks/bridges/tool-bridges.js +85 -0
- package/dist/extensions/hooks/bridges/tool-bridges.js.map +1 -0
- package/dist/extensions/hooks/bridges/tool-call-subject.d.ts +10 -0
- package/dist/extensions/hooks/bridges/tool-call-subject.js +18 -0
- package/dist/extensions/hooks/bridges/tool-call-subject.js.map +1 -0
- package/dist/extensions/hooks/bridges/triggers.d.ts +11 -0
- package/dist/extensions/hooks/bridges/triggers.js +30 -0
- package/dist/extensions/hooks/bridges/triggers.js.map +1 -0
- package/dist/extensions/hooks/decisions/combine.d.ts +18 -0
- package/dist/extensions/hooks/decisions/combine.js +43 -0
- package/dist/extensions/hooks/decisions/combine.js.map +1 -0
- package/dist/extensions/hooks/decisions/hook-outcome.d.ts +26 -0
- package/dist/extensions/hooks/decisions/hook-outcome.js +11 -0
- package/dist/extensions/hooks/decisions/hook-outcome.js.map +1 -0
- package/dist/extensions/hooks/decisions/parse-output.d.ts +5 -0
- package/dist/extensions/hooks/decisions/parse-output.js +112 -0
- package/dist/extensions/hooks/decisions/parse-output.js.map +1 -0
- package/dist/extensions/hooks/delivery/idle-watch.d.ts +5 -0
- package/dist/extensions/hooks/delivery/idle-watch.js +17 -0
- package/dist/extensions/hooks/delivery/idle-watch.js.map +1 -0
- package/dist/extensions/hooks/delivery/pending-context.d.ts +7 -0
- package/dist/extensions/hooks/delivery/pending-context.js +16 -0
- package/dist/extensions/hooks/delivery/pending-context.js.map +1 -0
- package/dist/extensions/hooks/delivery/stop-continuations.d.ts +9 -0
- package/dist/extensions/hooks/delivery/stop-continuations.js +31 -0
- package/dist/extensions/hooks/delivery/stop-continuations.js.map +1 -0
- package/dist/extensions/hooks/delivery/tool-call-notes.d.ts +8 -0
- package/dist/extensions/hooks/delivery/tool-call-notes.js +30 -0
- package/dist/extensions/hooks/delivery/tool-call-notes.js.map +1 -0
- package/dist/extensions/hooks/dispatch/common-fields.d.ts +3 -0
- package/dist/extensions/hooks/dispatch/common-fields.js +10 -0
- package/dist/extensions/hooks/dispatch/common-fields.js.map +1 -0
- package/dist/extensions/hooks/dispatch/hook-dispatcher.d.ts +9 -0
- package/dist/extensions/hooks/dispatch/hook-dispatcher.js +62 -0
- package/dist/extensions/hooks/dispatch/hook-dispatcher.js.map +1 -0
- package/dist/extensions/hooks/hook-session.d.ts +15 -0
- package/dist/extensions/hooks/hook-session.js +127 -0
- package/dist/extensions/hooks/hook-session.js.map +1 -0
- package/dist/extensions/hooks/index.d.ts +2 -0
- package/dist/extensions/hooks/index.js +60 -0
- package/dist/extensions/hooks/index.js.map +1 -0
- package/dist/extensions/hooks/registry/bash-if-filter.d.ts +1 -0
- package/dist/extensions/hooks/registry/bash-if-filter.js +40 -0
- package/dist/extensions/hooks/registry/bash-if-filter.js.map +1 -0
- package/dist/extensions/hooks/registry/hook-handler.d.ts +63 -0
- package/dist/extensions/hooks/registry/hook-handler.js +4 -0
- package/dist/extensions/hooks/registry/hook-handler.js.map +1 -0
- package/dist/extensions/hooks/registry/hook-registry.d.ts +6 -0
- package/dist/extensions/hooks/registry/hook-registry.js +39 -0
- package/dist/extensions/hooks/registry/hook-registry.js.map +1 -0
- package/dist/extensions/hooks/registry/hook-sources.d.ts +15 -0
- package/dist/extensions/hooks/registry/hook-sources.js +48 -0
- package/dist/extensions/hooks/registry/hook-sources.js.map +1 -0
- package/dist/extensions/hooks/registry/hooks-summary.d.ts +2 -0
- package/dist/extensions/hooks/registry/hooks-summary.js +15 -0
- package/dist/extensions/hooks/registry/hooks-summary.js.map +1 -0
- package/dist/extensions/hooks/registry/if-rule.d.ts +5 -0
- package/dist/extensions/hooks/registry/if-rule.js +41 -0
- package/dist/extensions/hooks/registry/if-rule.js.map +1 -0
- package/dist/extensions/hooks/registry/match-subject.d.ts +19 -0
- package/dist/extensions/hooks/registry/match-subject.js +2 -0
- package/dist/extensions/hooks/registry/match-subject.js.map +1 -0
- package/dist/extensions/hooks/registry/matcher.d.ts +4 -0
- package/dist/extensions/hooks/registry/matcher.js +35 -0
- package/dist/extensions/hooks/registry/matcher.js.map +1 -0
- package/dist/extensions/hooks/registry/parse-hooks.d.ts +3 -0
- package/dist/extensions/hooks/registry/parse-hooks.js +124 -0
- package/dist/extensions/hooks/registry/parse-hooks.js.map +1 -0
- package/dist/extensions/hooks/registry/path-rule.d.ts +2 -0
- package/dist/extensions/hooks/registry/path-rule.js +19 -0
- package/dist/extensions/hooks/registry/path-rule.js.map +1 -0
- package/dist/extensions/hooks/registry/unsupported-notices.d.ts +2 -0
- package/dist/extensions/hooks/registry/unsupported-notices.js +9 -0
- package/dist/extensions/hooks/registry/unsupported-notices.js.map +1 -0
- package/dist/extensions/hooks/registry/wildcard.d.ts +1 -0
- package/dist/extensions/hooks/registry/wildcard.js +3 -0
- package/dist/extensions/hooks/registry/wildcard.js.map +1 -0
- package/dist/extensions/hooks/runners/agent-runner.d.ts +3 -0
- package/dist/extensions/hooks/runners/agent-runner.js +26 -0
- package/dist/extensions/hooks/runners/agent-runner.js.map +1 -0
- package/dist/extensions/hooks/runners/background-hooks.d.ts +10 -0
- package/dist/extensions/hooks/runners/background-hooks.js +56 -0
- package/dist/extensions/hooks/runners/background-hooks.js.map +1 -0
- package/dist/extensions/hooks/runners/command-runner.d.ts +5 -0
- package/dist/extensions/hooks/runners/command-runner.js +126 -0
- package/dist/extensions/hooks/runners/command-runner.js.map +1 -0
- package/dist/extensions/hooks/runners/errors.d.ts +10 -0
- package/dist/extensions/hooks/runners/errors.js +18 -0
- package/dist/extensions/hooks/runners/errors.js.map +1 -0
- package/dist/extensions/hooks/runners/hook-process-environment.d.ts +8 -0
- package/dist/extensions/hooks/runners/hook-process-environment.js +20 -0
- package/dist/extensions/hooks/runners/hook-process-environment.js.map +1 -0
- package/dist/extensions/hooks/runners/hook-runner.d.ts +47 -0
- package/dist/extensions/hooks/runners/hook-runner.js +2 -0
- package/dist/extensions/hooks/runners/hook-runner.js.map +1 -0
- package/dist/extensions/hooks/runners/http-runner.d.ts +3 -0
- package/dist/extensions/hooks/runners/http-runner.js +42 -0
- package/dist/extensions/hooks/runners/http-runner.js.map +1 -0
- package/dist/extensions/hooks/runners/pi-hook-agents.d.ts +5 -0
- package/dist/extensions/hooks/runners/pi-hook-agents.js +18 -0
- package/dist/extensions/hooks/runners/pi-hook-agents.js.map +1 -0
- package/dist/extensions/hooks/runners/pi-hook-models.d.ts +5 -0
- package/dist/extensions/hooks/runners/pi-hook-models.js +16 -0
- package/dist/extensions/hooks/runners/pi-hook-models.js.map +1 -0
- package/dist/extensions/hooks/runners/prompt-runner.d.ts +3 -0
- package/dist/extensions/hooks/runners/prompt-runner.js +27 -0
- package/dist/extensions/hooks/runners/prompt-runner.js.map +1 -0
- package/dist/extensions/hooks/runners/prompt-template.d.ts +2 -0
- package/dist/extensions/hooks/runners/prompt-template.js +7 -0
- package/dist/extensions/hooks/runners/prompt-template.js.map +1 -0
- package/dist/extensions/hooks/runners/runners-by-type.d.ts +9 -0
- package/dist/extensions/hooks/runners/runners-by-type.js +20 -0
- package/dist/extensions/hooks/runners/runners-by-type.js.map +1 -0
- package/dist/extensions/hooks/unsupported-events.d.ts +5 -0
- package/dist/extensions/hooks/unsupported-events.js +18 -0
- package/dist/extensions/hooks/unsupported-events.js.map +1 -0
- package/dist/extensions/instructions/attachments.d.ts +21 -0
- package/dist/extensions/instructions/attachments.js +55 -0
- package/dist/extensions/instructions/attachments.js.map +1 -0
- package/dist/extensions/instructions/excludes.d.ts +2 -0
- package/dist/extensions/instructions/excludes.js +13 -0
- package/dist/extensions/instructions/excludes.js.map +1 -0
- package/dist/extensions/instructions/files.d.ts +4 -0
- package/dist/extensions/instructions/files.js +29 -0
- package/dist/extensions/instructions/files.js.map +1 -0
- package/dist/extensions/instructions/imports.d.ts +28 -0
- package/dist/extensions/instructions/imports.js +92 -0
- package/dist/extensions/instructions/imports.js.map +1 -0
- package/dist/extensions/instructions/index.d.ts +2 -0
- package/dist/extensions/instructions/index.js +43 -0
- package/dist/extensions/instructions/index.js.map +1 -0
- package/dist/extensions/instructions/instruction-files.d.ts +17 -0
- package/dist/extensions/instructions/instruction-files.js +51 -0
- package/dist/extensions/instructions/instruction-files.js.map +1 -0
- package/dist/extensions/instructions/instruction-set.d.ts +26 -0
- package/dist/extensions/instructions/instruction-set.js +97 -0
- package/dist/extensions/instructions/instruction-set.js.map +1 -0
- package/dist/extensions/instructions/instruction-text.d.ts +9 -0
- package/dist/extensions/instructions/instruction-text.js +20 -0
- package/dist/extensions/instructions/instruction-text.js.map +1 -0
- package/dist/extensions/instructions/path-glob.d.ts +2 -0
- package/dist/extensions/instructions/path-glob.js +44 -0
- package/dist/extensions/instructions/path-glob.js.map +1 -0
- package/dist/extensions/instructions/rules.d.ts +25 -0
- package/dist/extensions/instructions/rules.js +43 -0
- package/dist/extensions/instructions/rules.js.map +1 -0
- package/dist/extensions/instructions/session-instructions.d.ts +13 -0
- package/dist/extensions/instructions/session-instructions.js +49 -0
- package/dist/extensions/instructions/session-instructions.js.map +1 -0
- package/dist/extensions/instructions/strip-comments.d.ts +6 -0
- package/dist/extensions/instructions/strip-comments.js +58 -0
- package/dist/extensions/instructions/strip-comments.js.map +1 -0
- package/dist/extensions/instructions/touched-file.d.ts +6 -0
- package/dist/extensions/instructions/touched-file.js +31 -0
- package/dist/extensions/instructions/touched-file.js.map +1 -0
- package/dist/extensions/mcp/claude-config/call-timeout.d.ts +2 -0
- package/dist/extensions/mcp/claude-config/call-timeout.js +14 -0
- package/dist/extensions/mcp/claude-config/call-timeout.js.map +1 -0
- package/dist/extensions/mcp/claude-config/claude-mcp-server.d.ts +13 -0
- package/dist/extensions/mcp/claude-config/claude-mcp-server.js +2 -0
- package/dist/extensions/mcp/claude-config/claude-mcp-server.js.map +1 -0
- package/dist/extensions/mcp/claude-config/expand-variables.d.ts +2 -0
- package/dist/extensions/mcp/claude-config/expand-variables.js +8 -0
- package/dist/extensions/mcp/claude-config/expand-variables.js.map +1 -0
- package/dist/extensions/mcp/claude-config/exposure.d.ts +2 -0
- package/dist/extensions/mcp/claude-config/exposure.js +4 -0
- package/dist/extensions/mcp/claude-config/exposure.js.map +1 -0
- package/dist/extensions/mcp/claude-config/mcp-sources.d.ts +4 -0
- package/dist/extensions/mcp/claude-config/mcp-sources.js +27 -0
- package/dist/extensions/mcp/claude-config/mcp-sources.js.map +1 -0
- package/dist/extensions/mcp/claude-config/pi-literal.d.ts +1 -0
- package/dist/extensions/mcp/claude-config/pi-literal.js +5 -0
- package/dist/extensions/mcp/claude-config/pi-literal.js.map +1 -0
- package/dist/extensions/mcp/claude-config/registered-name.d.ts +2 -0
- package/dist/extensions/mcp/claude-config/registered-name.js +6 -0
- package/dist/extensions/mcp/claude-config/registered-name.js.map +1 -0
- package/dist/extensions/mcp/claude-config/to-pi-server.d.ts +26 -0
- package/dist/extensions/mcp/claude-config/to-pi-server.js +104 -0
- package/dist/extensions/mcp/claude-config/to-pi-server.js.map +1 -0
- package/dist/extensions/mcp/claude-config/unset-variables.d.ts +2 -0
- package/dist/extensions/mcp/claude-config/unset-variables.js +21 -0
- package/dist/extensions/mcp/claude-config/unset-variables.js.map +1 -0
- package/dist/extensions/mcp/claude-config/variable-references.d.ts +3 -0
- package/dist/extensions/mcp/claude-config/variable-references.js +5 -0
- package/dist/extensions/mcp/claude-config/variable-references.js.map +1 -0
- package/dist/extensions/mcp/index.d.ts +2 -0
- package/dist/extensions/mcp/index.js +9 -0
- package/dist/extensions/mcp/index.js.map +1 -0
- package/dist/extensions/mcp/mcp-server-registrations.d.ts +9 -0
- package/dist/extensions/mcp/mcp-server-registrations.js +79 -0
- package/dist/extensions/mcp/mcp-server-registrations.js.map +1 -0
- package/dist/extensions/mcp/server-notices.d.ts +11 -0
- package/dist/extensions/mcp/server-notices.js +14 -0
- package/dist/extensions/mcp/server-notices.js.map +1 -0
- package/dist/extensions/output-styles/apply-style.d.ts +6 -0
- package/dist/extensions/output-styles/apply-style.js +15 -0
- package/dist/extensions/output-styles/apply-style.js.map +1 -0
- package/dist/extensions/output-styles/built-in-styles.d.ts +2 -0
- package/dist/extensions/output-styles/built-in-styles.js +33 -0
- package/dist/extensions/output-styles/built-in-styles.js.map +1 -0
- package/dist/extensions/output-styles/configured-style.d.ts +1 -0
- package/dist/extensions/output-styles/configured-style.js +6 -0
- package/dist/extensions/output-styles/configured-style.js.map +1 -0
- package/dist/extensions/output-styles/index.d.ts +2 -0
- package/dist/extensions/output-styles/index.js +68 -0
- package/dist/extensions/output-styles/index.js.map +1 -0
- package/dist/extensions/output-styles/output-style.d.ts +8 -0
- package/dist/extensions/output-styles/output-style.js +17 -0
- package/dist/extensions/output-styles/output-style.js.map +1 -0
- package/dist/extensions/output-styles/style-choice-store.d.ts +6 -0
- package/dist/extensions/output-styles/style-choice-store.js +17 -0
- package/dist/extensions/output-styles/style-choice-store.js.map +1 -0
- package/dist/extensions/output-styles/style-session.d.ts +11 -0
- package/dist/extensions/output-styles/style-session.js +53 -0
- package/dist/extensions/output-styles/style-session.js.map +1 -0
- package/dist/extensions/output-styles/style-sources.d.ts +12 -0
- package/dist/extensions/output-styles/style-sources.js +58 -0
- package/dist/extensions/output-styles/style-sources.js.map +1 -0
- package/dist/extensions/plugin-agent/apply-main-agent.d.ts +15 -0
- package/dist/extensions/plugin-agent/apply-main-agent.js +40 -0
- package/dist/extensions/plugin-agent/apply-main-agent.js.map +1 -0
- package/dist/extensions/plugin-agent/index.d.ts +2 -0
- package/dist/extensions/plugin-agent/index.js +30 -0
- package/dist/extensions/plugin-agent/index.js.map +1 -0
- package/dist/extensions/plugin-agent/main-agent-sessions.d.ts +9 -0
- package/dist/extensions/plugin-agent/main-agent-sessions.js +89 -0
- package/dist/extensions/plugin-agent/main-agent-sessions.js.map +1 -0
- package/dist/extensions/plugin-agent/main-agent-tools.d.ts +2 -0
- package/dist/extensions/plugin-agent/main-agent-tools.js +10 -0
- package/dist/extensions/plugin-agent/main-agent-tools.js.map +1 -0
- package/dist/extensions/plugin-agent/plugin-settings.d.ts +9 -0
- package/dist/extensions/plugin-agent/plugin-settings.js +20 -0
- package/dist/extensions/plugin-agent/plugin-settings.js.map +1 -0
- package/dist/extensions/plugin-bin/index.d.ts +2 -0
- package/dist/extensions/plugin-bin/index.js +25 -0
- package/dist/extensions/plugin-bin/index.js.map +1 -0
- package/dist/extensions/plugin-bin/plugin-bins.d.ts +3 -0
- package/dist/extensions/plugin-bin/plugin-bins.js +22 -0
- package/dist/extensions/plugin-bin/plugin-bins.js.map +1 -0
- package/dist/extensions/plugin-command/configure-dialog.d.ts +11 -0
- package/dist/extensions/plugin-command/configure-dialog.js +36 -0
- package/dist/extensions/plugin-command/configure-dialog.js.map +1 -0
- package/dist/extensions/plugin-command/index.d.ts +2 -0
- package/dist/extensions/plugin-command/index.js +6 -0
- package/dist/extensions/plugin-command/index.js.map +1 -0
- package/dist/extensions/plugin-command/masked-input.d.ts +6 -0
- package/dist/extensions/plugin-command/masked-input.js +47 -0
- package/dist/extensions/plugin-command/masked-input.js.map +1 -0
- package/dist/extensions/plugin-command/plugin-command.d.ts +3 -0
- package/dist/extensions/plugin-command/plugin-command.js +41 -0
- package/dist/extensions/plugin-command/plugin-command.js.map +1 -0
- package/dist/extensions/settings-env/index.d.ts +2 -0
- package/dist/extensions/settings-env/index.js +35 -0
- package/dist/extensions/settings-env/index.js.map +1 -0
- package/dist/extensions/skills/errors.d.ts +13 -0
- package/dist/extensions/skills/errors.js +23 -0
- package/dist/extensions/skills/errors.js.map +1 -0
- package/dist/extensions/skills/fork-errors.d.ts +7 -0
- package/dist/extensions/skills/fork-errors.js +12 -0
- package/dist/extensions/skills/fork-errors.js.map +1 -0
- package/dist/extensions/skills/fork-skill.d.ts +6 -0
- package/dist/extensions/skills/fork-skill.js +46 -0
- package/dist/extensions/skills/fork-skill.js.map +1 -0
- package/dist/extensions/skills/index.d.ts +2 -0
- package/dist/extensions/skills/index.js +55 -0
- package/dist/extensions/skills/index.js.map +1 -0
- package/dist/extensions/skills/namespaced-input.d.ts +4 -0
- package/dist/extensions/skills/namespaced-input.js +18 -0
- package/dist/extensions/skills/namespaced-input.js.map +1 -0
- package/dist/extensions/skills/pi-skill-paths.d.ts +3 -0
- package/dist/extensions/skills/pi-skill-paths.js +7 -0
- package/dist/extensions/skills/pi-skill-paths.js.map +1 -0
- package/dist/extensions/skills/skill-autocomplete.d.ts +3 -0
- package/dist/extensions/skills/skill-autocomplete.js +33 -0
- package/dist/extensions/skills/skill-autocomplete.js.map +1 -0
- package/dist/extensions/skills/skill-block.d.ts +2 -0
- package/dist/extensions/skills/skill-block.js +2 -0
- package/dist/extensions/skills/skill-block.js.map +1 -0
- package/dist/extensions/skills/skill-hooks.d.ts +2 -0
- package/dist/extensions/skills/skill-hooks.js +8 -0
- package/dist/extensions/skills/skill-hooks.js.map +1 -0
- package/dist/extensions/skills/skill-invoker.d.ts +16 -0
- package/dist/extensions/skills/skill-invoker.js +24 -0
- package/dist/extensions/skills/skill-invoker.js.map +1 -0
- package/dist/extensions/skills/skill-mirrors/skill-mirror-store.d.ts +13 -0
- package/dist/extensions/skills/skill-mirrors/skill-mirror-store.js +113 -0
- package/dist/extensions/skills/skill-mirrors/skill-mirror-store.js.map +1 -0
- package/dist/extensions/skills/skill-mirrors/skill-mirrors.d.ts +3 -0
- package/dist/extensions/skills/skill-mirrors/skill-mirrors.js +21 -0
- package/dist/extensions/skills/skill-mirrors/skill-mirrors.js.map +1 -0
- package/dist/extensions/skills/skill-tool.d.ts +10 -0
- package/dist/extensions/skills/skill-tool.js +44 -0
- package/dist/extensions/skills/skill-tool.js.map +1 -0
- package/dist/extensions/skills/unreadable-skill-reports.d.ts +6 -0
- package/dist/extensions/skills/unreadable-skill-reports.js +12 -0
- package/dist/extensions/skills/unreadable-skill-reports.js.map +1 -0
- package/dist/extensions/todo-write/index.d.ts +2 -0
- package/dist/extensions/todo-write/index.js +48 -0
- package/dist/extensions/todo-write/index.js.map +1 -0
- package/dist/extensions/todo-write/todo-list-text.d.ts +3 -0
- package/dist/extensions/todo-write/todo-list-text.js +14 -0
- package/dist/extensions/todo-write/todo-list-text.js.map +1 -0
- package/dist/extensions/todo-write/todo-panel.d.ts +3 -0
- package/dist/extensions/todo-write/todo-panel.js +58 -0
- package/dist/extensions/todo-write/todo-panel.js.map +1 -0
- package/dist/extensions/todo-write/todo-store.d.ts +10 -0
- package/dist/extensions/todo-write/todo-store.js +29 -0
- package/dist/extensions/todo-write/todo-store.js.map +1 -0
- package/dist/extensions/tool-search/errors.d.ts +4 -0
- package/dist/extensions/tool-search/errors.js +7 -0
- package/dist/extensions/tool-search/errors.js.map +1 -0
- package/dist/extensions/tool-search/index.d.ts +2 -0
- package/dist/extensions/tool-search/index.js +49 -0
- package/dist/extensions/tool-search/index.js.map +1 -0
- package/dist/extensions/tool-search/tool-listing.d.ts +2 -0
- package/dist/extensions/tool-search/tool-listing.js +18 -0
- package/dist/extensions/tool-search/tool-listing.js.map +1 -0
- package/dist/extensions/tool-search/tool-matcher.d.ts +10 -0
- package/dist/extensions/tool-search/tool-matcher.js +45 -0
- package/dist/extensions/tool-search/tool-matcher.js.map +1 -0
- package/dist/extensions/tool-search/tool-query.d.ts +11 -0
- package/dist/extensions/tool-search/tool-query.js +28 -0
- package/dist/extensions/tool-search/tool-query.js.map +1 -0
- package/dist/extensions/web/errors.d.ts +18 -0
- package/dist/extensions/web/errors.js +29 -0
- package/dist/extensions/web/errors.js.map +1 -0
- package/dist/extensions/web/fetching/address-policy.d.ts +1 -0
- package/dist/extensions/web/fetching/address-policy.js +40 -0
- package/dist/extensions/web/fetching/address-policy.js.map +1 -0
- package/dist/extensions/web/fetching/domain-filter.d.ts +2 -0
- package/dist/extensions/web/fetching/domain-filter.js +18 -0
- package/dist/extensions/web/fetching/domain-filter.js.map +1 -0
- package/dist/extensions/web/fetching/duckduckgo-search.d.ts +10 -0
- package/dist/extensions/web/fetching/duckduckgo-search.js +36 -0
- package/dist/extensions/web/fetching/duckduckgo-search.js.map +1 -0
- package/dist/extensions/web/fetching/host-resolver.d.ts +6 -0
- package/dist/extensions/web/fetching/host-resolver.js +8 -0
- package/dist/extensions/web/fetching/host-resolver.js.map +1 -0
- package/dist/extensions/web/fetching/html-text.d.ts +2 -0
- package/dist/extensions/web/fetching/html-text.js +143 -0
- package/dist/extensions/web/fetching/html-text.js.map +1 -0
- package/dist/extensions/web/fetching/http-status.d.ts +2 -0
- package/dist/extensions/web/fetching/http-status.js +6 -0
- package/dist/extensions/web/fetching/http-status.js.map +1 -0
- package/dist/extensions/web/fetching/http-transport.d.ts +14 -0
- package/dist/extensions/web/fetching/http-transport.js +71 -0
- package/dist/extensions/web/fetching/http-transport.js.map +1 -0
- package/dist/extensions/web/fetching/page-text.d.ts +3 -0
- package/dist/extensions/web/fetching/page-text.js +12 -0
- package/dist/extensions/web/fetching/page-text.js.map +1 -0
- package/dist/extensions/web/fetching/safe-fetcher.d.ts +15 -0
- package/dist/extensions/web/fetching/safe-fetcher.js +64 -0
- package/dist/extensions/web/fetching/safe-fetcher.js.map +1 -0
- package/dist/extensions/web/index.d.ts +2 -0
- package/dist/extensions/web/index.js +8 -0
- package/dist/extensions/web/index.js.map +1 -0
- package/dist/extensions/web/web-schemas.d.ts +10 -0
- package/dist/extensions/web/web-schemas.js +11 -0
- package/dist/extensions/web/web-schemas.js.map +1 -0
- package/dist/extensions/web/web-tools.d.ts +3 -0
- package/dist/extensions/web/web-tools.js +53 -0
- package/dist/extensions/web/web-tools.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/kernel/agent-roster/agent-roster-slot.d.ts +21 -0
- package/dist/kernel/agent-roster/agent-roster-slot.js +14 -0
- package/dist/kernel/agent-roster/agent-roster-slot.js.map +1 -0
- package/dist/kernel/agent-runner/agent-outcome.d.ts +15 -0
- package/dist/kernel/agent-runner/agent-outcome.js +2 -0
- package/dist/kernel/agent-runner/agent-outcome.js.map +1 -0
- package/dist/kernel/agent-runner/agent-runner-slot.d.ts +11 -0
- package/dist/kernel/agent-runner/agent-runner-slot.js +14 -0
- package/dist/kernel/agent-runner/agent-runner-slot.js.map +1 -0
- package/dist/kernel/agent-runner/sub-agent-runner.d.ts +19 -0
- package/dist/kernel/agent-runner/sub-agent-runner.js +2 -0
- package/dist/kernel/agent-runner/sub-agent-runner.js.map +1 -0
- package/dist/kernel/agent-runner/sub-agent-tool-calls.d.ts +1 -0
- package/dist/kernel/agent-runner/sub-agent-tool-calls.js +4 -0
- package/dist/kernel/agent-runner/sub-agent-tool-calls.js.map +1 -0
- package/dist/kernel/background-mailbox/background-mailbox.d.ts +13 -0
- package/dist/kernel/background-mailbox/background-mailbox.js +38 -0
- package/dist/kernel/background-mailbox/background-mailbox.js.map +1 -0
- package/dist/kernel/claude-home/config-dir.d.ts +2 -0
- package/dist/kernel/claude-home/config-dir.js +10 -0
- package/dist/kernel/claude-home/config-dir.js.map +1 -0
- package/dist/kernel/claude-home/installed-plugins.d.ts +10 -0
- package/dist/kernel/claude-home/installed-plugins.js +64 -0
- package/dist/kernel/claude-home/installed-plugins.js.map +1 -0
- package/dist/kernel/claude-home/plugin-layout.d.ts +6 -0
- package/dist/kernel/claude-home/plugin-layout.js +20 -0
- package/dist/kernel/claude-home/plugin-layout.js.map +1 -0
- package/dist/kernel/claude-home/plugin-versions.d.ts +1 -0
- package/dist/kernel/claude-home/plugin-versions.js +38 -0
- package/dist/kernel/claude-home/plugin-versions.js.map +1 -0
- package/dist/kernel/claude-home/project-folders.d.ts +1 -0
- package/dist/kernel/claude-home/project-folders.js +17 -0
- package/dist/kernel/claude-home/project-folders.js.map +1 -0
- package/dist/kernel/claude-home/project-settings.d.ts +1 -0
- package/dist/kernel/claude-home/project-settings.js +8 -0
- package/dist/kernel/claude-home/project-settings.js.map +1 -0
- package/dist/kernel/claude-home/reserved-env-keys.d.ts +6 -0
- package/dist/kernel/claude-home/reserved-env-keys.js +28 -0
- package/dist/kernel/claude-home/reserved-env-keys.js.map +1 -0
- package/dist/kernel/claude-home/skill-mirror-layout.d.ts +7 -0
- package/dist/kernel/claude-home/skill-mirror-layout.js +21 -0
- package/dist/kernel/claude-home/skill-mirror-layout.js.map +1 -0
- package/dist/kernel/claude-home/user-settings.d.ts +1 -0
- package/dist/kernel/claude-home/user-settings.js +4 -0
- package/dist/kernel/claude-home/user-settings.js.map +1 -0
- package/dist/kernel/frontmatter/frontmatter-fields.d.ts +7 -0
- package/dist/kernel/frontmatter/frontmatter-fields.js +34 -0
- package/dist/kernel/frontmatter/frontmatter-fields.js.map +1 -0
- package/dist/kernel/frontmatter/frontmatter-repair.d.ts +14 -0
- package/dist/kernel/frontmatter/frontmatter-repair.js +48 -0
- package/dist/kernel/frontmatter/frontmatter-repair.js.map +1 -0
- package/dist/kernel/frontmatter/lenient-frontmatter.d.ts +13 -0
- package/dist/kernel/frontmatter/lenient-frontmatter.js +49 -0
- package/dist/kernel/frontmatter/lenient-frontmatter.js.map +1 -0
- package/dist/kernel/frontmatter/read-frontmatter.d.ts +20 -0
- package/dist/kernel/frontmatter/read-frontmatter.js +29 -0
- package/dist/kernel/frontmatter/read-frontmatter.js.map +1 -0
- package/dist/kernel/instruction-events/instruction-events.d.ts +16 -0
- package/dist/kernel/instruction-events/instruction-events.js +11 -0
- package/dist/kernel/instruction-events/instruction-events.js.map +1 -0
- package/dist/kernel/mcp-names/mcp-names.d.ts +12 -0
- package/dist/kernel/mcp-names/mcp-names.js +24 -0
- package/dist/kernel/mcp-names/mcp-names.js.map +1 -0
- package/dist/kernel/model-choice/model-choice.d.ts +21 -0
- package/dist/kernel/model-choice/model-choice.js +38 -0
- package/dist/kernel/model-choice/model-choice.js.map +1 -0
- package/dist/kernel/plugin-catalog/catalog-slot.d.ts +4 -0
- package/dist/kernel/plugin-catalog/catalog-slot.js +16 -0
- package/dist/kernel/plugin-catalog/catalog-slot.js.map +1 -0
- package/dist/kernel/plugin-catalog/enablement.d.ts +3 -0
- package/dist/kernel/plugin-catalog/enablement.js +14 -0
- package/dist/kernel/plugin-catalog/enablement.js.map +1 -0
- package/dist/kernel/plugin-catalog/manifest-view.d.ts +7 -0
- package/dist/kernel/plugin-catalog/manifest-view.js +27 -0
- package/dist/kernel/plugin-catalog/manifest-view.js.map +1 -0
- package/dist/kernel/plugin-catalog/own-installs.d.ts +8 -0
- package/dist/kernel/plugin-catalog/own-installs.js +13 -0
- package/dist/kernel/plugin-catalog/own-installs.js.map +1 -0
- package/dist/kernel/plugin-catalog/plugin-catalog.d.ts +17 -0
- package/dist/kernel/plugin-catalog/plugin-catalog.js +15 -0
- package/dist/kernel/plugin-catalog/plugin-catalog.js.map +1 -0
- package/dist/kernel/plugin-catalog/plugin-installs.d.ts +20 -0
- package/dist/kernel/plugin-catalog/plugin-installs.js +40 -0
- package/dist/kernel/plugin-catalog/plugin-installs.js.map +1 -0
- package/dist/kernel/plugin-config/config-paths.d.ts +10 -0
- package/dist/kernel/plugin-config/config-paths.js +10 -0
- package/dist/kernel/plugin-config/config-paths.js.map +1 -0
- package/dist/kernel/plugin-config/config-store.d.ts +13 -0
- package/dist/kernel/plugin-config/config-store.js +46 -0
- package/dist/kernel/plugin-config/config-store.js.map +1 -0
- package/dist/kernel/plugin-config/configure-options.d.ts +12 -0
- package/dist/kernel/plugin-config/configure-options.js +41 -0
- package/dist/kernel/plugin-config/configure-options.js.map +1 -0
- package/dist/kernel/plugin-config/errors.d.ts +4 -0
- package/dist/kernel/plugin-config/errors.js +7 -0
- package/dist/kernel/plugin-config/errors.js.map +1 -0
- package/dist/kernel/plugin-config/option-schema.d.ts +8 -0
- package/dist/kernel/plugin-config/option-schema.js +56 -0
- package/dist/kernel/plugin-config/option-schema.js.map +1 -0
- package/dist/kernel/plugin-config/session-resolver.d.ts +2 -0
- package/dist/kernel/plugin-config/session-resolver.js +8 -0
- package/dist/kernel/plugin-config/session-resolver.js.map +1 -0
- package/dist/kernel/plugin-config/shell-reference-check.d.ts +1 -0
- package/dist/kernel/plugin-config/shell-reference-check.js +3 -0
- package/dist/kernel/plugin-config/shell-reference-check.js.map +1 -0
- package/dist/kernel/plugin-config/user-config-option.d.ts +15 -0
- package/dist/kernel/plugin-config/user-config-option.js +35 -0
- package/dist/kernel/plugin-config/user-config-option.js.map +1 -0
- package/dist/kernel/plugin-config/user-config-resolver.d.ts +15 -0
- package/dist/kernel/plugin-config/user-config-resolver.js +46 -0
- package/dist/kernel/plugin-config/user-config-resolver.js.map +1 -0
- package/dist/kernel/plugin-install/adopt-install.d.ts +11 -0
- package/dist/kernel/plugin-install/adopt-install.js +26 -0
- package/dist/kernel/plugin-install/adopt-install.js.map +1 -0
- package/dist/kernel/plugin-install/command-line-git.d.ts +12 -0
- package/dist/kernel/plugin-install/command-line-git.js +114 -0
- package/dist/kernel/plugin-install/command-line-git.js.map +1 -0
- package/dist/kernel/plugin-install/dependencies/dependency-graph.d.ts +8 -0
- package/dist/kernel/plugin-install/dependencies/dependency-graph.js +49 -0
- package/dist/kernel/plugin-install/dependencies/dependency-graph.js.map +1 -0
- package/dist/kernel/plugin-install/dependencies/dependency-parsing.d.ts +6 -0
- package/dist/kernel/plugin-install/dependencies/dependency-parsing.js +44 -0
- package/dist/kernel/plugin-install/dependencies/dependency-parsing.js.map +1 -0
- package/dist/kernel/plugin-install/dependencies/errors.d.ts +23 -0
- package/dist/kernel/plugin-install/dependencies/errors.js +44 -0
- package/dist/kernel/plugin-install/dependencies/errors.js.map +1 -0
- package/dist/kernel/plugin-install/dependencies/plugin-id.d.ts +13 -0
- package/dist/kernel/plugin-install/dependencies/plugin-id.js +10 -0
- package/dist/kernel/plugin-install/dependencies/plugin-id.js.map +1 -0
- package/dist/kernel/plugin-install/errors.d.ts +62 -0
- package/dist/kernel/plugin-install/errors.js +116 -0
- package/dist/kernel/plugin-install/errors.js.map +1 -0
- package/dist/kernel/plugin-install/git-client.d.ts +10 -0
- package/dist/kernel/plugin-install/git-client.js +2 -0
- package/dist/kernel/plugin-install/git-client.js.map +1 -0
- package/dist/kernel/plugin-install/install-layout.d.ts +8 -0
- package/dist/kernel/plugin-install/install-layout.js +13 -0
- package/dist/kernel/plugin-install/install-layout.js.map +1 -0
- package/dist/kernel/plugin-install/install-record.d.ts +23 -0
- package/dist/kernel/plugin-install/install-record.js +13 -0
- package/dist/kernel/plugin-install/install-record.js.map +1 -0
- package/dist/kernel/plugin-install/marketplaces/checkout.d.ts +10 -0
- package/dist/kernel/plugin-install/marketplaces/checkout.js +29 -0
- package/dist/kernel/plugin-install/marketplaces/checkout.js.map +1 -0
- package/dist/kernel/plugin-install/marketplaces/entry-source.d.ts +16 -0
- package/dist/kernel/plugin-install/marketplaces/entry-source.js +87 -0
- package/dist/kernel/plugin-install/marketplaces/entry-source.js.map +1 -0
- package/dist/kernel/plugin-install/marketplaces/entry-staging.d.ts +5 -0
- package/dist/kernel/plugin-install/marketplaces/entry-staging.js +95 -0
- package/dist/kernel/plugin-install/marketplaces/entry-staging.js.map +1 -0
- package/dist/kernel/plugin-install/marketplaces/errors.d.ts +40 -0
- package/dist/kernel/plugin-install/marketplaces/errors.js +79 -0
- package/dist/kernel/plugin-install/marketplaces/errors.js.map +1 -0
- package/dist/kernel/plugin-install/marketplaces/install-plan.d.ts +19 -0
- package/dist/kernel/plugin-install/marketplaces/install-plan.js +65 -0
- package/dist/kernel/plugin-install/marketplaces/install-plan.js.map +1 -0
- package/dist/kernel/plugin-install/marketplaces/marketplace-file.d.ts +15 -0
- package/dist/kernel/plugin-install/marketplaces/marketplace-file.js +82 -0
- package/dist/kernel/plugin-install/marketplaces/marketplace-file.js.map +1 -0
- package/dist/kernel/plugin-install/marketplaces/marketplace-index.d.ts +16 -0
- package/dist/kernel/plugin-install/marketplaces/marketplace-index.js +57 -0
- package/dist/kernel/plugin-install/marketplaces/marketplace-index.js.map +1 -0
- package/dist/kernel/plugin-install/marketplaces/marketplace-installer.d.ts +10 -0
- package/dist/kernel/plugin-install/marketplaces/marketplace-installer.js +46 -0
- package/dist/kernel/plugin-install/marketplaces/marketplace-installer.js.map +1 -0
- package/dist/kernel/plugin-install/marketplaces/marketplace-registry.d.ts +20 -0
- package/dist/kernel/plugin-install/marketplaces/marketplace-registry.js +78 -0
- package/dist/kernel/plugin-install/marketplaces/marketplace-registry.js.map +1 -0
- package/dist/kernel/plugin-install/marketplaces/strict-merge.d.ts +4 -0
- package/dist/kernel/plugin-install/marketplaces/strict-merge.js +48 -0
- package/dist/kernel/plugin-install/marketplaces/strict-merge.js.map +1 -0
- package/dist/kernel/plugin-install/own-install-index.d.ts +25 -0
- package/dist/kernel/plugin-install/own-install-index.js +53 -0
- package/dist/kernel/plugin-install/own-install-index.js.map +1 -0
- package/dist/kernel/plugin-install/plugin-installer.d.ts +15 -0
- package/dist/kernel/plugin-install/plugin-installer.js +138 -0
- package/dist/kernel/plugin-install/plugin-installer.js.map +1 -0
- package/dist/kernel/plugin-install/plugin-manifest.d.ts +7 -0
- package/dist/kernel/plugin-install/plugin-manifest.js +109 -0
- package/dist/kernel/plugin-install/plugin-manifest.js.map +1 -0
- package/dist/kernel/plugin-install/plugin-ref.d.ts +6 -0
- package/dist/kernel/plugin-install/plugin-ref.js +9 -0
- package/dist/kernel/plugin-install/plugin-ref.js.map +1 -0
- package/dist/kernel/plugin-install/plugin-source.d.ts +12 -0
- package/dist/kernel/plugin-install/plugin-source.js +77 -0
- package/dist/kernel/plugin-install/plugin-source.js.map +1 -0
- package/dist/kernel/plugin-install/sha.d.ts +7 -0
- package/dist/kernel/plugin-install/sha.js +13 -0
- package/dist/kernel/plugin-install/sha.js.map +1 -0
- package/dist/kernel/plugin-install/staging.d.ts +28 -0
- package/dist/kernel/plugin-install/staging.js +121 -0
- package/dist/kernel/plugin-install/staging.js.map +1 -0
- package/dist/kernel/plugin-management/configure-plugin.d.ts +8 -0
- package/dist/kernel/plugin-management/configure-plugin.js +45 -0
- package/dist/kernel/plugin-management/configure-plugin.js.map +1 -0
- package/dist/kernel/plugin-management/errors.d.ts +6 -0
- package/dist/kernel/plugin-management/errors.js +12 -0
- package/dist/kernel/plugin-management/errors.js.map +1 -0
- package/dist/kernel/plugin-management/install-problems.d.ts +6 -0
- package/dist/kernel/plugin-management/install-problems.js +15 -0
- package/dist/kernel/plugin-management/install-problems.js.map +1 -0
- package/dist/kernel/plugin-management/plugin-messages.d.ts +17 -0
- package/dist/kernel/plugin-management/plugin-messages.js +49 -0
- package/dist/kernel/plugin-management/plugin-messages.js.map +1 -0
- package/dist/kernel/plugin-management/plugin-subcommands.d.ts +9 -0
- package/dist/kernel/plugin-management/plugin-subcommands.js +159 -0
- package/dist/kernel/plugin-management/plugin-subcommands.js.map +1 -0
- package/dist/kernel/private-files/confined-removal.d.ts +1 -0
- package/dist/kernel/private-files/confined-removal.js +27 -0
- package/dist/kernel/private-files/confined-removal.js.map +1 -0
- package/dist/kernel/private-files/errors.d.ts +7 -0
- package/dist/kernel/private-files/errors.js +12 -0
- package/dist/kernel/private-files/errors.js.map +1 -0
- package/dist/kernel/private-files/file-system-errors.d.ts +2 -0
- package/dist/kernel/private-files/file-system-errors.js +7 -0
- package/dist/kernel/private-files/file-system-errors.js.map +1 -0
- package/dist/kernel/private-files/leftovers.d.ts +2 -0
- package/dist/kernel/private-files/leftovers.js +40 -0
- package/dist/kernel/private-files/leftovers.js.map +1 -0
- package/dist/kernel/private-files/private-files.d.ts +19 -0
- package/dist/kernel/private-files/private-files.js +51 -0
- package/dist/kernel/private-files/private-files.js.map +1 -0
- package/dist/kernel/project-trust/claude-project-content.d.ts +1 -0
- package/dist/kernel/project-trust/claude-project-content.js +14 -0
- package/dist/kernel/project-trust/claude-project-content.js.map +1 -0
- package/dist/kernel/project-trust/project-trust.d.ts +8 -0
- package/dist/kernel/project-trust/project-trust.js +57 -0
- package/dist/kernel/project-trust/project-trust.js.map +1 -0
- package/dist/kernel/project-trust/trust-decisions.d.ts +12 -0
- package/dist/kernel/project-trust/trust-decisions.js +16 -0
- package/dist/kernel/project-trust/trust-decisions.js.map +1 -0
- package/dist/kernel/project-trust/trust-prompt.d.ts +3 -0
- package/dist/kernel/project-trust/trust-prompt.js +9 -0
- package/dist/kernel/project-trust/trust-prompt.js.map +1 -0
- package/dist/kernel/project-trust/trust-state.d.ts +2 -0
- package/dist/kernel/project-trust/trust-state.js +2 -0
- package/dist/kernel/project-trust/trust-state.js.map +1 -0
- package/dist/kernel/prompt-catalog/command-sources.d.ts +5 -0
- package/dist/kernel/prompt-catalog/command-sources.js +97 -0
- package/dist/kernel/prompt-catalog/command-sources.js.map +1 -0
- package/dist/kernel/prompt-catalog/edit-distance.d.ts +1 -0
- package/dist/kernel/prompt-catalog/edit-distance.js +15 -0
- package/dist/kernel/prompt-catalog/edit-distance.js.map +1 -0
- package/dist/kernel/prompt-catalog/invocable.d.ts +60 -0
- package/dist/kernel/prompt-catalog/invocable.js +2 -0
- package/dist/kernel/prompt-catalog/invocable.js.map +1 -0
- package/dist/kernel/prompt-catalog/prompt-catalog.d.ts +3 -0
- package/dist/kernel/prompt-catalog/prompt-catalog.js +102 -0
- package/dist/kernel/prompt-catalog/prompt-catalog.js.map +1 -0
- package/dist/kernel/prompt-catalog/prompt-fields.d.ts +20 -0
- package/dist/kernel/prompt-catalog/prompt-fields.js +22 -0
- package/dist/kernel/prompt-catalog/prompt-fields.js.map +1 -0
- package/dist/kernel/prompt-catalog/prompt-reference.d.ts +11 -0
- package/dist/kernel/prompt-catalog/prompt-reference.js +9 -0
- package/dist/kernel/prompt-catalog/prompt-reference.js.map +1 -0
- package/dist/kernel/prompt-catalog/read-command.d.ts +21 -0
- package/dist/kernel/prompt-catalog/read-command.js +40 -0
- package/dist/kernel/prompt-catalog/read-command.js.map +1 -0
- package/dist/kernel/prompt-catalog/read-skill.d.ts +14 -0
- package/dist/kernel/prompt-catalog/read-skill.js +38 -0
- package/dist/kernel/prompt-catalog/read-skill.js.map +1 -0
- package/dist/kernel/prompt-catalog/session-prompt-catalog.d.ts +9 -0
- package/dist/kernel/prompt-catalog/session-prompt-catalog.js +28 -0
- package/dist/kernel/prompt-catalog/session-prompt-catalog.js.map +1 -0
- package/dist/kernel/prompt-catalog/skill-files.d.ts +4 -0
- package/dist/kernel/prompt-catalog/skill-files.js +33 -0
- package/dist/kernel/prompt-catalog/skill-files.js.map +1 -0
- package/dist/kernel/prompt-catalog/slash-menu.d.ts +6 -0
- package/dist/kernel/prompt-catalog/slash-menu.js +13 -0
- package/dist/kernel/prompt-catalog/slash-menu.js.map +1 -0
- package/dist/kernel/prompt-expansion/arguments.d.ts +6 -0
- package/dist/kernel/prompt-expansion/arguments.js +40 -0
- package/dist/kernel/prompt-expansion/arguments.js.map +1 -0
- package/dist/kernel/prompt-expansion/benign-exit-one.d.ts +1 -0
- package/dist/kernel/prompt-expansion/benign-exit-one.js +20 -0
- package/dist/kernel/prompt-expansion/benign-exit-one.js.map +1 -0
- package/dist/kernel/prompt-expansion/dynamic-spans.d.ts +10 -0
- package/dist/kernel/prompt-expansion/dynamic-spans.js +96 -0
- package/dist/kernel/prompt-expansion/dynamic-spans.js.map +1 -0
- package/dist/kernel/prompt-expansion/errors.d.ts +7 -0
- package/dist/kernel/prompt-expansion/errors.js +12 -0
- package/dist/kernel/prompt-expansion/errors.js.map +1 -0
- package/dist/kernel/prompt-expansion/expand-invocable.d.ts +5 -0
- package/dist/kernel/prompt-expansion/expand-invocable.js +26 -0
- package/dist/kernel/prompt-expansion/expand-invocable.js.map +1 -0
- package/dist/kernel/prompt-expansion/expand-prompt.d.ts +25 -0
- package/dist/kernel/prompt-expansion/expand-prompt.js +37 -0
- package/dist/kernel/prompt-expansion/expand-prompt.js.map +1 -0
- package/dist/kernel/prompt-expansion/expand-spans.d.ts +7 -0
- package/dist/kernel/prompt-expansion/expand-spans.js +11 -0
- package/dist/kernel/prompt-expansion/expand-spans.js.map +1 -0
- package/dist/kernel/prompt-expansion/file-references.d.ts +2 -0
- package/dist/kernel/prompt-expansion/file-references.js +19 -0
- package/dist/kernel/prompt-expansion/file-references.js.map +1 -0
- package/dist/kernel/prompt-expansion/invocation-arguments.d.ts +5 -0
- package/dist/kernel/prompt-expansion/invocation-arguments.js +7 -0
- package/dist/kernel/prompt-expansion/invocation-arguments.js.map +1 -0
- package/dist/kernel/prompt-expansion/pi-exec-shell-runner.d.ts +9 -0
- package/dist/kernel/prompt-expansion/pi-exec-shell-runner.js +22 -0
- package/dist/kernel/prompt-expansion/pi-exec-shell-runner.js.map +1 -0
- package/dist/kernel/prompt-expansion/prompt-substitution.d.ts +9 -0
- package/dist/kernel/prompt-expansion/prompt-substitution.js +27 -0
- package/dist/kernel/prompt-expansion/prompt-substitution.js.map +1 -0
- package/dist/kernel/prompt-expansion/shell-runner.d.ts +9 -0
- package/dist/kernel/prompt-expansion/shell-runner.js +2 -0
- package/dist/kernel/prompt-expansion/shell-runner.js.map +1 -0
- package/dist/kernel/prompt-expansion/shell-segments.d.ts +1 -0
- package/dist/kernel/prompt-expansion/shell-segments.js +64 -0
- package/dist/kernel/prompt-expansion/shell-segments.js.map +1 -0
- package/dist/kernel/prompt-expansion/shell-spans.d.ts +11 -0
- package/dist/kernel/prompt-expansion/shell-spans.js +23 -0
- package/dist/kernel/prompt-expansion/shell-spans.js.map +1 -0
- package/dist/kernel/prompt-expansion/span-policy.d.ts +6 -0
- package/dist/kernel/prompt-expansion/span-policy.js +13 -0
- package/dist/kernel/prompt-expansion/span-policy.js.map +1 -0
- package/dist/kernel/prompt-expansion/variables.d.ts +2 -0
- package/dist/kernel/prompt-expansion/variables.js +5 -0
- package/dist/kernel/prompt-expansion/variables.js.map +1 -0
- package/dist/kernel/prompt-expansion-events/prompt-expansion-events.d.ts +13 -0
- package/dist/kernel/prompt-expansion-events/prompt-expansion-events.js +10 -0
- package/dist/kernel/prompt-expansion-events/prompt-expansion-events.js.map +1 -0
- package/dist/kernel/scoped-hooks/scoped-hooks.d.ts +15 -0
- package/dist/kernel/scoped-hooks/scoped-hooks.js +31 -0
- package/dist/kernel/scoped-hooks/scoped-hooks.js.map +1 -0
- package/dist/kernel/session-slots/process-slot.d.ts +1 -0
- package/dist/kernel/session-slots/process-slot.js +10 -0
- package/dist/kernel/session-slots/process-slot.js.map +1 -0
- package/dist/kernel/settings-env/apply-env.d.ts +12 -0
- package/dist/kernel/settings-env/apply-env.js +15 -0
- package/dist/kernel/settings-env/apply-env.js.map +1 -0
- package/dist/kernel/settings-env/env-blocks.d.ts +5 -0
- package/dist/kernel/settings-env/env-blocks.js +9 -0
- package/dist/kernel/settings-env/env-blocks.js.map +1 -0
- package/dist/kernel/settings-env/owned-environment.d.ts +6 -0
- package/dist/kernel/settings-env/owned-environment.js +28 -0
- package/dist/kernel/settings-env/owned-environment.js.map +1 -0
- package/dist/kernel/settings-env/refusal-notice.d.ts +2 -0
- package/dist/kernel/settings-env/refusal-notice.js +3 -0
- package/dist/kernel/settings-env/refusal-notice.js.map +1 -0
- package/dist/kernel/subagent-hooks/subagent-hooks-slot.d.ts +15 -0
- package/dist/kernel/subagent-hooks/subagent-hooks-slot.js +14 -0
- package/dist/kernel/subagent-hooks/subagent-hooks-slot.js.map +1 -0
- package/dist/kernel/subcommands/errors.d.ts +10 -0
- package/dist/kernel/subcommands/errors.js +14 -0
- package/dist/kernel/subcommands/errors.js.map +1 -0
- package/dist/kernel/subcommands/subcommand-table.d.ts +15 -0
- package/dist/kernel/subcommands/subcommand-table.js +23 -0
- package/dist/kernel/subcommands/subcommand-table.js.map +1 -0
- package/dist/kernel/terminal-rows/bracketed-paste.d.ts +2 -0
- package/dist/kernel/terminal-rows/bracketed-paste.js +4 -0
- package/dist/kernel/terminal-rows/bracketed-paste.js.map +1 -0
- package/dist/kernel/terminal-rows/single-line.d.ts +1 -0
- package/dist/kernel/terminal-rows/single-line.js +2 -0
- package/dist/kernel/terminal-rows/single-line.js.map +1 -0
- package/dist/kernel/todo-list/errors.d.ts +4 -0
- package/dist/kernel/todo-list/errors.js +9 -0
- package/dist/kernel/todo-list/errors.js.map +1 -0
- package/dist/kernel/todo-list/todo-list-rules.d.ts +2 -0
- package/dist/kernel/todo-list/todo-list-rules.js +8 -0
- package/dist/kernel/todo-list/todo-list-rules.js.map +1 -0
- package/dist/kernel/todo-list/todo-result-text.d.ts +1 -0
- package/dist/kernel/todo-list/todo-result-text.js +2 -0
- package/dist/kernel/todo-list/todo-result-text.js.map +1 -0
- package/dist/kernel/todo-list/todo-schema.d.ts +17 -0
- package/dist/kernel/todo-list/todo-schema.js +20 -0
- package/dist/kernel/todo-list/todo-schema.js.map +1 -0
- package/dist/kernel/todo-list/todo-write-description.d.ts +1 -0
- package/dist/kernel/todo-list/todo-write-description.js +8 -0
- package/dist/kernel/todo-list/todo-write-description.js.map +1 -0
- package/dist/kernel/tool-execution/execute-tool.d.ts +4 -0
- package/dist/kernel/tool-execution/execute-tool.js +4 -0
- package/dist/kernel/tool-execution/execute-tool.js.map +1 -0
- package/dist/kernel/tool-results/tool-result.d.ts +3 -0
- package/dist/kernel/tool-results/tool-result.js +6 -0
- package/dist/kernel/tool-results/tool-result.js.map +1 -0
- package/dist/kernel/turn-override-events/turn-override-events.d.ts +5 -0
- package/dist/kernel/turn-override-events/turn-override-events.js +5 -0
- package/dist/kernel/turn-override-events/turn-override-events.js.map +1 -0
- package/dist/kernel/vocabulary/claude-tool-names.d.ts +4 -0
- package/dist/kernel/vocabulary/claude-tool-names.js +44 -0
- package/dist/kernel/vocabulary/claude-tool-names.js.map +1 -0
- package/dist/kernel/worktree-events/worktree-events.d.ts +13 -0
- package/dist/kernel/worktree-events/worktree-events.js +9 -0
- package/dist/kernel/worktree-events/worktree-events.js.map +1 -0
- package/package.json +42 -4
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { PLUGIN_MANIFEST_PATH } from '../claude-home/plugin-layout.js';
|
|
4
|
+
import { isJsonObject, parseJson, readJsonObjectLeniently } from '../private-files/private-files.js';
|
|
5
|
+
import { InvalidPluginManifestError, InvalidPluginNameError, NotAClaudePluginError } from './errors.js';
|
|
6
|
+
const PLUGIN_NAME_PATTERN = /^[a-z0-9][a-z0-9_-]*$/i;
|
|
7
|
+
const STANDARD_LAYOUT_PATHS = [
|
|
8
|
+
'skills',
|
|
9
|
+
'commands',
|
|
10
|
+
'agents',
|
|
11
|
+
join('hooks', 'hooks.json'),
|
|
12
|
+
'.mcp.json',
|
|
13
|
+
'.lsp.json',
|
|
14
|
+
'output-styles',
|
|
15
|
+
'workflows',
|
|
16
|
+
'themes',
|
|
17
|
+
join('monitors', 'monitors.json'),
|
|
18
|
+
'bin',
|
|
19
|
+
'settings.json',
|
|
20
|
+
'SKILL.md',
|
|
21
|
+
];
|
|
22
|
+
const CLAUDE_MANIFEST_FIELDS = new Set([
|
|
23
|
+
'$schema',
|
|
24
|
+
'name',
|
|
25
|
+
'displayName',
|
|
26
|
+
'version',
|
|
27
|
+
'description',
|
|
28
|
+
'author',
|
|
29
|
+
'homepage',
|
|
30
|
+
'repository',
|
|
31
|
+
'license',
|
|
32
|
+
'keywords',
|
|
33
|
+
'metadata',
|
|
34
|
+
'icon',
|
|
35
|
+
'documentationUrl',
|
|
36
|
+
'supportUrl',
|
|
37
|
+
'privacyPolicyUrl',
|
|
38
|
+
'termsOfServiceUrl',
|
|
39
|
+
'defaultEnabled',
|
|
40
|
+
'dependencies',
|
|
41
|
+
'settings',
|
|
42
|
+
'userConfig',
|
|
43
|
+
'types',
|
|
44
|
+
'channels',
|
|
45
|
+
'skills',
|
|
46
|
+
'commands',
|
|
47
|
+
'agents',
|
|
48
|
+
'hooks',
|
|
49
|
+
'mcpServers',
|
|
50
|
+
'lspServers',
|
|
51
|
+
'outputStyles',
|
|
52
|
+
'workflows',
|
|
53
|
+
'experimental',
|
|
54
|
+
'themes',
|
|
55
|
+
'monitors',
|
|
56
|
+
]);
|
|
57
|
+
export const isPluginName = (text) => PLUGIN_NAME_PATTERN.test(text);
|
|
58
|
+
export function readPluginManifest(pluginDir, fallbackName) {
|
|
59
|
+
const manifestPath = join(pluginDir, PLUGIN_MANIFEST_PATH);
|
|
60
|
+
return existsSync(manifestPath) ? manifestIn(readFileSync(manifestPath, 'utf8')) : pluginWithoutManifest(pluginDir, fallbackName);
|
|
61
|
+
}
|
|
62
|
+
export function ignoredManifestFields(pluginDir) {
|
|
63
|
+
const manifest = readJsonObjectLeniently(join(pluginDir, PLUGIN_MANIFEST_PATH));
|
|
64
|
+
return Object.keys(manifest).filter((field) => !CLAUDE_MANIFEST_FIELDS.has(field));
|
|
65
|
+
}
|
|
66
|
+
function pluginWithoutManifest(pluginDir, fallbackName) {
|
|
67
|
+
if (!STANDARD_LAYOUT_PATHS.some((path) => existsSync(join(pluginDir, path)))) {
|
|
68
|
+
throw new NotAClaudePluginError(PLUGIN_MANIFEST_PATH);
|
|
69
|
+
}
|
|
70
|
+
if (!isPluginName(fallbackName)) {
|
|
71
|
+
throw new InvalidPluginNameError(fallbackName);
|
|
72
|
+
}
|
|
73
|
+
return { name: fallbackName };
|
|
74
|
+
}
|
|
75
|
+
function manifestIn(text) {
|
|
76
|
+
const manifest = parseManifestObject(text);
|
|
77
|
+
const name = validName(manifest.name);
|
|
78
|
+
const { version } = manifest;
|
|
79
|
+
if (version === undefined) {
|
|
80
|
+
return { name };
|
|
81
|
+
}
|
|
82
|
+
if (typeof version !== 'string') {
|
|
83
|
+
throw invalid('the version must be text');
|
|
84
|
+
}
|
|
85
|
+
return { name, version };
|
|
86
|
+
}
|
|
87
|
+
function parseManifestObject(text) {
|
|
88
|
+
const parsed = parseJson(text);
|
|
89
|
+
if (parsed.kind === 'unparseable') {
|
|
90
|
+
throw invalid('the file is not valid JSON');
|
|
91
|
+
}
|
|
92
|
+
if (!isJsonObject(parsed.value)) {
|
|
93
|
+
throw invalid('the file must be a JSON object');
|
|
94
|
+
}
|
|
95
|
+
return parsed.value;
|
|
96
|
+
}
|
|
97
|
+
function validName(name) {
|
|
98
|
+
if (typeof name !== 'string' || name === '') {
|
|
99
|
+
throw invalid('the name is missing');
|
|
100
|
+
}
|
|
101
|
+
if (!isPluginName(name)) {
|
|
102
|
+
throw invalid(`"${name}" is not a valid plugin name; use letters, digits, - and _`);
|
|
103
|
+
}
|
|
104
|
+
return name;
|
|
105
|
+
}
|
|
106
|
+
function invalid(reason) {
|
|
107
|
+
return new InvalidPluginManifestError(PLUGIN_MANIFEST_PATH, reason);
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=plugin-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-manifest.js","sourceRoot":"","sources":["../../../src/kernel/plugin-install/plugin-manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const REF_SEPARATOR = '@';
|
|
2
|
+
export function splitRef(text) {
|
|
3
|
+
const separator = text.indexOf(REF_SEPARATOR);
|
|
4
|
+
if (separator === -1) {
|
|
5
|
+
return { subject: text };
|
|
6
|
+
}
|
|
7
|
+
return { subject: text.slice(0, separator), ref: text.slice(separator + REF_SEPARATOR.length) };
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=plugin-ref.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-ref.js","sourceRoot":"","sources":["../../../src/kernel/plugin-install/plugin-ref.ts"],"names":[],"mappings":"AAAA,MAAM,aAAa,GAAG,GAAG,CAAC;AAO1B,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9C,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;QACrB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;AAClG,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface GitPluginSource {
|
|
2
|
+
readonly kind: 'git';
|
|
3
|
+
readonly url: string;
|
|
4
|
+
readonly ref?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface LocalPluginSource {
|
|
7
|
+
readonly kind: 'local';
|
|
8
|
+
readonly path: string;
|
|
9
|
+
}
|
|
10
|
+
export type PluginSource = GitPluginSource | LocalPluginSource;
|
|
11
|
+
export declare function parsePluginSource(raw: string): PluginSource;
|
|
12
|
+
export declare function defaultPluginName(source: PluginSource): string;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { statSync } from 'node:fs';
|
|
2
|
+
import { basename, resolve } from 'node:path';
|
|
3
|
+
import { CredentialsInSourceUrlError, UnknownPluginSourceError } from './errors.js';
|
|
4
|
+
import { splitRef } from './plugin-ref.js';
|
|
5
|
+
const GITHUB_PREFIX = 'github:';
|
|
6
|
+
const GITHUB_REPOSITORY = /^[A-Za-z0-9_-][A-Za-z0-9_.-]*\/[A-Za-z0-9_-][A-Za-z0-9_.-]*$/;
|
|
7
|
+
const GIT_SUFFIX = '.git';
|
|
8
|
+
const SCHEME_SEPARATOR = '://';
|
|
9
|
+
const SSH_SCHEME = 'ssh';
|
|
10
|
+
const USER_INFO_SEPARATOR = '@';
|
|
11
|
+
const GIT_URL_PREFIX = /^(?:https|ssh):\/\/(?:[A-Za-z0-9._-]+@)?[A-Za-z0-9][A-Za-z0-9.-]*(?::\d+)?(?=\/)/;
|
|
12
|
+
const SCP_LIKE_PREFIX = /^[A-Za-z0-9][A-Za-z0-9._-]*@[A-Za-z0-9][A-Za-z0-9.-]*:/;
|
|
13
|
+
const WHITE_SPACE = /\s/;
|
|
14
|
+
const PATH_SEPARATORS = /[/:]/;
|
|
15
|
+
export function parsePluginSource(raw) {
|
|
16
|
+
const text = raw.trim();
|
|
17
|
+
assertNoCredentials(text);
|
|
18
|
+
if (text.startsWith(GITHUB_PREFIX)) {
|
|
19
|
+
return parseGithubShorthand(raw, text.slice(GITHUB_PREFIX.length));
|
|
20
|
+
}
|
|
21
|
+
const [gitUrl] = gitUrlSources(raw, text);
|
|
22
|
+
if (gitUrl !== undefined) {
|
|
23
|
+
return gitUrl;
|
|
24
|
+
}
|
|
25
|
+
if (isExistingDirectory(text)) {
|
|
26
|
+
return { kind: 'local', path: resolve(text) };
|
|
27
|
+
}
|
|
28
|
+
throw new UnknownPluginSourceError(raw);
|
|
29
|
+
}
|
|
30
|
+
export function defaultPluginName(source) {
|
|
31
|
+
return source.kind === 'local' ? basename(source.path) : withoutGitSuffix(lastSegmentOf(source.url));
|
|
32
|
+
}
|
|
33
|
+
function parseGithubShorthand(raw, shorthand) {
|
|
34
|
+
const { subject, ref } = splitRef(shorthand);
|
|
35
|
+
const repository = withoutGitSuffix(subject);
|
|
36
|
+
if (!GITHUB_REPOSITORY.test(repository) || ref === '') {
|
|
37
|
+
throw new UnknownPluginSourceError(raw);
|
|
38
|
+
}
|
|
39
|
+
return gitSource(`https://github.com/${repository}${GIT_SUFFIX}`, ref);
|
|
40
|
+
}
|
|
41
|
+
function gitUrlSources(raw, text) {
|
|
42
|
+
const prefix = (GIT_URL_PREFIX.exec(text) ?? SCP_LIKE_PREFIX.exec(text))?.[0];
|
|
43
|
+
return prefix === undefined ? [] : [gitUrlSource(raw, prefix, text.slice(prefix.length))];
|
|
44
|
+
}
|
|
45
|
+
function gitUrlSource(raw, prefix, pathWithRef) {
|
|
46
|
+
const { subject: path, ref } = splitRef(pathWithRef);
|
|
47
|
+
if (!isRepositoryPath(path) || ref === '') {
|
|
48
|
+
throw new UnknownPluginSourceError(raw);
|
|
49
|
+
}
|
|
50
|
+
return gitSource(`${prefix}${path}`, ref);
|
|
51
|
+
}
|
|
52
|
+
const isRepositoryPath = (path) => !WHITE_SPACE.test(path) && path.split('/').some((segment) => segment !== '');
|
|
53
|
+
const gitSource = (url, ref) => ref === undefined ? { kind: 'git', url } : { kind: 'git', url, ref };
|
|
54
|
+
function assertNoCredentials(text) {
|
|
55
|
+
const userInfo = userInfoOf(authorityOf(text));
|
|
56
|
+
if (userInfo.includes(':') || (userInfo !== '' && schemeOf(text) !== SSH_SCHEME)) {
|
|
57
|
+
throw new CredentialsInSourceUrlError();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function authorityOf(text) {
|
|
61
|
+
const schemeEnd = text.indexOf(SCHEME_SEPARATOR);
|
|
62
|
+
const [authority = ''] = schemeEnd === -1 ? [] : text.slice(schemeEnd + SCHEME_SEPARATOR.length).split('/');
|
|
63
|
+
return authority;
|
|
64
|
+
}
|
|
65
|
+
function userInfoOf(authority) {
|
|
66
|
+
const separator = authority.lastIndexOf(USER_INFO_SEPARATOR);
|
|
67
|
+
return separator === -1 ? '' : authority.slice(0, separator);
|
|
68
|
+
}
|
|
69
|
+
const schemeOf = (text) => text.slice(0, Math.max(text.indexOf(SCHEME_SEPARATOR), 0)).toLowerCase();
|
|
70
|
+
const lastSegmentOf = (url) => url.split(PATH_SEPARATORS).filter((segment) => segment !== '').at(-1) ?? '';
|
|
71
|
+
function withoutGitSuffix(repository) {
|
|
72
|
+
return repository.endsWith(GIT_SUFFIX) ? repository.slice(0, -GIT_SUFFIX.length) : repository;
|
|
73
|
+
}
|
|
74
|
+
function isExistingDirectory(path) {
|
|
75
|
+
return path !== '' && statSync(path, { throwIfNoEntry: false })?.isDirectory() === true;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=plugin-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-source.js","sourceRoot":"","sources":["../../../src/kernel/plugin-install/plugin-source.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { InvalidCommitShaError } from './errors.js';
|
|
2
|
+
const FULL_SHA_PATTERN = /^[0-9a-f]{40}$/i;
|
|
3
|
+
export function looksLikeFullSha(text) {
|
|
4
|
+
return FULL_SHA_PATTERN.test(text);
|
|
5
|
+
}
|
|
6
|
+
export function toSha(text) {
|
|
7
|
+
const candidate = text.trim();
|
|
8
|
+
if (!looksLikeFullSha(candidate)) {
|
|
9
|
+
throw new InvalidCommitShaError(text);
|
|
10
|
+
}
|
|
11
|
+
return candidate.toLowerCase();
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=sha.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sha.js","sourceRoot":"","sources":["../../../src/kernel/plugin-install/sha.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAMpD,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAE3C,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,IAAY;IAChC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,SAAS,CAAC,WAAW,EAAS,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { GitClient } from './git-client.js';
|
|
2
|
+
import type { InstalledSource } from './install-record.js';
|
|
3
|
+
import { type PluginManifest } from './plugin-manifest.js';
|
|
4
|
+
import { type PluginSource } from './plugin-source.js';
|
|
5
|
+
import type { Sha } from './sha.js';
|
|
6
|
+
export type RenameDirectory = (from: string, to: string) => void;
|
|
7
|
+
export interface StagedPlugin {
|
|
8
|
+
readonly dir: string;
|
|
9
|
+
readonly manifest: PluginManifest;
|
|
10
|
+
readonly sha: Sha;
|
|
11
|
+
readonly source: InstalledSource;
|
|
12
|
+
readonly marketplace?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface StagedVersion {
|
|
15
|
+
readonly dir: string;
|
|
16
|
+
readonly name: string;
|
|
17
|
+
readonly sha: Sha;
|
|
18
|
+
}
|
|
19
|
+
export declare function stageSource(git: GitClient, source: PluginSource, stagingRoot: string): Promise<StagedPlugin>;
|
|
20
|
+
export declare function stageCopy(from: string, stagingRoot: string): string;
|
|
21
|
+
export declare function promote(staged: StagedVersion, root: string, renameDirectory?: RenameDirectory): string;
|
|
22
|
+
export declare function placeDirectory(stagedDir: string, target: string, root: string, renameDirectory?: RenameDirectory): string;
|
|
23
|
+
export declare function stageDirectory<Content>(stagingRoot: string, populate: (dir: string) => Promise<Content>): Promise<{
|
|
24
|
+
readonly dir: string;
|
|
25
|
+
readonly content: Content;
|
|
26
|
+
}>;
|
|
27
|
+
export declare function discardStaged(stagedDir: string, stagingRoot: string): void;
|
|
28
|
+
export declare function copyFiles(from: string, to: string, relativePaths: readonly string[]): void;
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { cpSync, existsSync, lstatSync, mkdirSync, mkdtempSync, renameSync } from 'node:fs';
|
|
3
|
+
import { dirname, join } from 'node:path';
|
|
4
|
+
import { removeWithin } from '../private-files/confined-removal.js';
|
|
5
|
+
import { sweepOldLeftovers, timestampedPrefix } from '../private-files/leftovers.js';
|
|
6
|
+
import { ensurePrivateDirectory } from '../private-files/private-files.js';
|
|
7
|
+
import { NotAGitWorkTreeError } from './errors.js';
|
|
8
|
+
import { stagingDir, versionDir } from './install-layout.js';
|
|
9
|
+
import { readPluginManifest } from './plugin-manifest.js';
|
|
10
|
+
import { defaultPluginName } from './plugin-source.js';
|
|
11
|
+
const STAGED_PREFIX = 'stage-';
|
|
12
|
+
const RETIRED_PREFIX = 'retired-';
|
|
13
|
+
const LEFTOVER_PREFIXES = [STAGED_PREFIX, RETIRED_PREFIX];
|
|
14
|
+
export function stageSource(git, source, stagingRoot) {
|
|
15
|
+
switch (source.kind) {
|
|
16
|
+
case 'git':
|
|
17
|
+
return stageGitSource(git, source, stagingRoot);
|
|
18
|
+
case 'local':
|
|
19
|
+
return stageLocalSource(git, source, stagingRoot);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function stageGitSource(git, source, stagingRoot) {
|
|
23
|
+
return stageInto(stagingRoot, defaultPluginName(source), async (dir) => {
|
|
24
|
+
const ref = source.ref ?? (await git.latestTag(source.url));
|
|
25
|
+
const sha = await git.resolveRef(source.url, ref);
|
|
26
|
+
await git.cloneAt(source.url, sha, dir);
|
|
27
|
+
return { sha, source: { kind: 'git', url: source.url, ref } };
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
function stageLocalSource(git, source, stagingRoot) {
|
|
31
|
+
return stageInto(stagingRoot, defaultPluginName(source), async (dir) => {
|
|
32
|
+
if (!(await git.isWorkTree(source.path))) {
|
|
33
|
+
throw new NotAGitWorkTreeError(source.path);
|
|
34
|
+
}
|
|
35
|
+
const sha = await git.headSha(source.path);
|
|
36
|
+
copyFiles(source.path, dir, await git.trackedFiles(source.path));
|
|
37
|
+
return { sha, source: { kind: 'local', path: source.path } };
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
export function stageCopy(from, stagingRoot) {
|
|
41
|
+
const dir = createStagingDir(stagingRoot);
|
|
42
|
+
try {
|
|
43
|
+
cpSync(from, dir, { recursive: true, verbatimSymlinks: true });
|
|
44
|
+
return dir;
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
removeWithin(stagingRoot, dir);
|
|
48
|
+
throw error;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export function promote(staged, root, renameDirectory = renameSync) {
|
|
52
|
+
return placeDirectory(staged.dir, versionDir(root, staged.name, staged.sha), root, renameDirectory);
|
|
53
|
+
}
|
|
54
|
+
export function placeDirectory(stagedDir, target, root, renameDirectory = renameSync) {
|
|
55
|
+
ensurePrivateDirectory(dirname(target));
|
|
56
|
+
const retired = retireExisting(target, stagingDir(root), renameDirectory);
|
|
57
|
+
try {
|
|
58
|
+
renameDirectory(stagedDir, target);
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
retired.forEach((previous) => {
|
|
62
|
+
renameDirectory(previous, target);
|
|
63
|
+
});
|
|
64
|
+
throw error;
|
|
65
|
+
}
|
|
66
|
+
retired.forEach((previous) => {
|
|
67
|
+
removeWithin(stagingDir(root), previous);
|
|
68
|
+
});
|
|
69
|
+
return target;
|
|
70
|
+
}
|
|
71
|
+
export async function stageDirectory(stagingRoot, populate) {
|
|
72
|
+
const dir = createStagingDir(stagingRoot);
|
|
73
|
+
try {
|
|
74
|
+
return { dir, content: await populate(dir) };
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
removeWithin(stagingRoot, dir);
|
|
78
|
+
throw error;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
export function discardStaged(stagedDir, stagingRoot) {
|
|
82
|
+
removeWithin(stagingRoot, stagedDir);
|
|
83
|
+
}
|
|
84
|
+
function retireExisting(installPath, stagingRoot, renameDirectory) {
|
|
85
|
+
if (!existsSync(installPath)) {
|
|
86
|
+
return [];
|
|
87
|
+
}
|
|
88
|
+
const retired = join(stagingRoot, `${timestampedPrefix(RETIRED_PREFIX)}${randomUUID()}`);
|
|
89
|
+
renameDirectory(installPath, retired);
|
|
90
|
+
return [retired];
|
|
91
|
+
}
|
|
92
|
+
async function stageInto(stagingRoot, fallbackName, populate) {
|
|
93
|
+
const { dir, content } = await stageDirectory(stagingRoot, populate);
|
|
94
|
+
try {
|
|
95
|
+
return { dir, manifest: readPluginManifest(dir, fallbackName), ...content };
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
removeWithin(stagingRoot, dir);
|
|
99
|
+
throw error;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
function createStagingDir(stagingRoot) {
|
|
103
|
+
ensurePrivateDirectory(stagingRoot);
|
|
104
|
+
sweepOldLeftovers(stagingRoot, LEFTOVER_PREFIXES);
|
|
105
|
+
return mkdtempSync(join(stagingRoot, timestampedPrefix(STAGED_PREFIX)));
|
|
106
|
+
}
|
|
107
|
+
// git lists a deleted-but-tracked file and a submodule as paths too; neither is a file to copy
|
|
108
|
+
export function copyFiles(from, to, relativePaths) {
|
|
109
|
+
for (const relativePath of relativePaths.filter((path) => isCopyableEntry(join(from, path)))) {
|
|
110
|
+
copyEntry(join(from, relativePath), join(to, relativePath));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
function isCopyableEntry(path) {
|
|
114
|
+
const stats = lstatSync(path, { throwIfNoEntry: false });
|
|
115
|
+
return stats !== undefined && (stats.isFile() || stats.isSymbolicLink());
|
|
116
|
+
}
|
|
117
|
+
function copyEntry(source, target) {
|
|
118
|
+
mkdirSync(dirname(target), { recursive: true });
|
|
119
|
+
cpSync(source, target, { verbatimSymlinks: true });
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=staging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"staging.js","sourceRoot":"","sources":["../../../src/kernel/plugin-install/staging.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type OptionPrompter } from '../plugin-config/configure-options.js';
|
|
2
|
+
export interface ConfigurationSetting {
|
|
3
|
+
readonly agentDir: string;
|
|
4
|
+
readonly claudeDir: string;
|
|
5
|
+
readonly prompter?: OptionPrompter;
|
|
6
|
+
}
|
|
7
|
+
export declare function promptForUnsetOptions(name: string, setting: ConfigurationSetting): Promise<string>;
|
|
8
|
+
export declare function configureAllOptions(name: string, setting: ConfigurationSetting): Promise<string>;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { listInstalledPlugins } from '../plugin-catalog/plugin-installs.js';
|
|
2
|
+
import { configPathsFor } from '../plugin-config/config-paths.js';
|
|
3
|
+
import { PluginConfigStore } from '../plugin-config/config-store.js';
|
|
4
|
+
import { configureOptions } from '../plugin-config/configure-options.js';
|
|
5
|
+
import { userConfigOptionsOf } from '../plugin-config/user-config-option.js';
|
|
6
|
+
import { PluginNotInstalledError } from '../plugin-install/errors.js';
|
|
7
|
+
import { NoConfigurationDialogError } from './errors.js';
|
|
8
|
+
import { savedOptionsText, unsetOptionsText } from './plugin-messages.js';
|
|
9
|
+
export async function promptForUnsetOptions(name, setting) {
|
|
10
|
+
const { plugin, store } = configurationOf(name, setting);
|
|
11
|
+
const unset = plugin.options.filter(({ key }) => !Object.hasOwn(store.valuesFor(plugin), key));
|
|
12
|
+
if (unset.length === 0) {
|
|
13
|
+
return '';
|
|
14
|
+
}
|
|
15
|
+
if (setting.prompter === undefined) {
|
|
16
|
+
return unsetOptionsText(name, unset.map(({ key }) => key));
|
|
17
|
+
}
|
|
18
|
+
return askAndReport(name, plugin, setting.prompter, store, 'unset');
|
|
19
|
+
}
|
|
20
|
+
export async function configureAllOptions(name, setting) {
|
|
21
|
+
if (setting.prompter === undefined) {
|
|
22
|
+
throw new NoConfigurationDialogError(name);
|
|
23
|
+
}
|
|
24
|
+
const { plugin, store } = configurationOf(name, setting);
|
|
25
|
+
return askAndReport(name, plugin, setting.prompter, store, 'all');
|
|
26
|
+
}
|
|
27
|
+
async function askAndReport(name, plugin, prompter, store, scope) {
|
|
28
|
+
const outcome = await configureOptions(plugin, prompter, store, scope);
|
|
29
|
+
const stillUnset = plugin.options.filter(({ key }) => !Object.hasOwn(store.valuesFor(plugin), key));
|
|
30
|
+
const saved = outcome.saved.length === 0 ? '' : savedOptionsText(outcome.saved);
|
|
31
|
+
return saved + (outcome.declined && stillUnset.length > 0 ? unsetOptionsText(name, stillUnset.map(({ key }) => key)) : '');
|
|
32
|
+
}
|
|
33
|
+
function configurationOf(name, { agentDir, claudeDir }) {
|
|
34
|
+
const installed = ownInstall(name, { agentDir, claudeDir });
|
|
35
|
+
const options = userConfigOptionsOf(installed.manifest.declaredValue('userConfig'));
|
|
36
|
+
return { plugin: { name, options }, store: new PluginConfigStore(configPathsFor({ agentDir, claudeDir })) };
|
|
37
|
+
}
|
|
38
|
+
function ownInstall(name, paths) {
|
|
39
|
+
const found = listInstalledPlugins(paths).find(({ plugin }) => plugin.origin === 'own' && plugin.name === name);
|
|
40
|
+
if (found === undefined) {
|
|
41
|
+
throw new PluginNotInstalledError(name);
|
|
42
|
+
}
|
|
43
|
+
return found.plugin;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=configure-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configure-plugin.js","sourceRoot":"","sources":["../../../src/kernel/plugin-management/configure-plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { NextStepError } from '../subcommands/errors.js';
|
|
2
|
+
export class NoConfigurationDialogError extends NextStepError {
|
|
3
|
+
#name;
|
|
4
|
+
constructor(name) {
|
|
5
|
+
super(`Configuring "${name}" needs a pi session, because it asks for each value in a dialog.`);
|
|
6
|
+
this.#name = name;
|
|
7
|
+
}
|
|
8
|
+
nextStep() {
|
|
9
|
+
return `Open pi and run \`/plugin configure ${this.#name}\`.`;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/kernel/plugin-management/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,MAAM,OAAO,0BAA2B,SAAQ,aAAa;IAClD,KAAK,CAAS;IAEvB,YAAY,IAAY;QACtB,KAAK,CAAC,gBAAgB,IAAI,mEAAmE,CAAC,CAAC;QAC/F,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,QAAQ;QACN,OAAO,uCAAuC,IAAI,CAAC,KAAK,KAAK,CAAC;IAChE,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { listInstalledPlugins } from '../plugin-catalog/plugin-installs.js';
|
|
2
|
+
import { indexPath, installRoot } from '../plugin-install/install-layout.js';
|
|
3
|
+
import { readOwnIndexLeniently } from '../plugin-install/own-install-index.js';
|
|
4
|
+
import { shadowedInstallNotice, unreadableIndexNotice } from './plugin-messages.js';
|
|
5
|
+
export function unloadedInstallNotices(paths) {
|
|
6
|
+
return [...shadowNotices(listInstalledPlugins(paths)), ...unreadableIndexNotices(indexPath(installRoot(paths.agentDir)))];
|
|
7
|
+
}
|
|
8
|
+
function shadowNotices(listed) {
|
|
9
|
+
const installedHere = listed.filter(({ plugin }) => plugin.origin === 'own').map(({ plugin }) => plugin);
|
|
10
|
+
return listed
|
|
11
|
+
.filter(({ shadowed }) => shadowed)
|
|
12
|
+
.flatMap(({ plugin }) => installedHere.filter(({ name }) => name === plugin.name).map((winner) => shadowedInstallNotice(plugin, winner)));
|
|
13
|
+
}
|
|
14
|
+
const unreadableIndexNotices = (indexFile) => readOwnIndexLeniently(indexFile).kind === 'malformed' ? [unreadableIndexNotice(indexFile)] : [];
|
|
15
|
+
//# sourceMappingURL=install-problems.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-problems.js","sourceRoot":"","sources":["../../../src/kernel/plugin-management/install-problems.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAqB,MAAM,sCAAsC,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAOpF,MAAM,UAAU,sBAAsB,CAAC,KAAkB;IACvD,OAAO,CAAC,GAAG,aAAa,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,sBAAsB,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5H,CAAC;AAED,SAAS,aAAa,CAAC,MAA+B;IACpD,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IACzG,OAAO,MAAM;SACV,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC;SAClC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9I,CAAC;AAED,MAAM,sBAAsB,GAAG,CAAC,SAAiB,EAAY,EAAE,CAC7D,qBAAqB,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { CatalogPlugin, ListedPlugin } from '../plugin-catalog/plugin-installs.js';
|
|
2
|
+
import type { InstallRecord } from '../plugin-install/install-record.js';
|
|
3
|
+
import type { AddedMarketplace } from '../plugin-install/marketplaces/marketplace-registry.js';
|
|
4
|
+
export declare const installedText: (records: readonly InstallRecord[], ignoredFields: readonly string[]) => string;
|
|
5
|
+
export declare const updatedText: (record: InstallRecord, ignoredFields: readonly string[]) => string;
|
|
6
|
+
export declare const removedText: (name: string) => string;
|
|
7
|
+
export declare const enabledText: (name: string) => string;
|
|
8
|
+
export declare const disabledText: (name: string) => string;
|
|
9
|
+
export declare const marketplaceAddedText: (marketplace: AddedMarketplace) => string;
|
|
10
|
+
export declare const marketplacesUpdatedText: (marketplaces: readonly AddedMarketplace[]) => string;
|
|
11
|
+
export declare const marketplaceRemovedText: (name: string) => string;
|
|
12
|
+
export declare const marketplaceListText: (marketplaces: readonly AddedMarketplace[]) => string;
|
|
13
|
+
export declare const savedOptionsText: (keys: readonly string[]) => string;
|
|
14
|
+
export declare const unsetOptionsText: (name: string, keys: readonly string[]) => string;
|
|
15
|
+
export declare function listText(installedHere: readonly InstallRecord[], fromClaudeCode: readonly ListedPlugin[]): string;
|
|
16
|
+
export declare const shadowedInstallNotice: (shadowed: CatalogPlugin, winner: CatalogPlugin) => string;
|
|
17
|
+
export declare const unreadableIndexNotice: (indexFile: string) => string;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { PLUGIN_MANIFEST_PATH } from '../claude-home/plugin-layout.js';
|
|
2
|
+
const COLUMN_GAP = ' ';
|
|
3
|
+
const LOCAL_MARKER = 'local';
|
|
4
|
+
const CLAUDE_CODE_LABEL = 'Claude Code install (read-only)';
|
|
5
|
+
const DISABLED_MARK = 'disabled';
|
|
6
|
+
const SHADOWED_MARK = 'shadowed';
|
|
7
|
+
const CHANGES_APPLY_LATER = 'Changes apply after /reload or in the next session.';
|
|
8
|
+
const NOTHING_INSTALLED = 'No plugins installed.';
|
|
9
|
+
const NO_MARKETPLACES = 'No marketplaces added.';
|
|
10
|
+
export const installedText = (records, ignoredFields) => changeText(records.map((record) => `Installed ${installLine(record)}`).join('\n'), ignoredFields);
|
|
11
|
+
export const updatedText = (record, ignoredFields) => changeText(`Updated ${installLine(record)}`, ignoredFields);
|
|
12
|
+
export const removedText = (name) => changeText(`Removed ${name}`, []);
|
|
13
|
+
export const enabledText = (name) => changeText(`Enabled ${name}`, []);
|
|
14
|
+
export const disabledText = (name) => changeText(`Disabled ${name}`, []);
|
|
15
|
+
export const marketplaceAddedText = (marketplace) => linesOf([`Added marketplace ${marketplaceLine(marketplace)}`]);
|
|
16
|
+
export const marketplacesUpdatedText = (marketplaces) => linesOf(marketplaces.map((marketplace) => `Updated marketplace ${marketplaceLine(marketplace)}`));
|
|
17
|
+
export const marketplaceRemovedText = (name) => linesOf([`Removed marketplace ${name}`]);
|
|
18
|
+
export const marketplaceListText = (marketplaces) => linesOf(marketplaces.length === 0 ? [NO_MARKETPLACES] : marketplaces.map(marketplaceLine));
|
|
19
|
+
export const savedOptionsText = (keys) => linesOf([`Saved userConfig options: ${keys.join(', ')}.`]);
|
|
20
|
+
export const unsetOptionsText = (name, keys) => linesOf([`userConfig options not yet set: ${keys.join(', ')}`, `Run /plugin configure ${name} in a pi session to set them.`]);
|
|
21
|
+
export function listText(installedHere, fromClaudeCode) {
|
|
22
|
+
const rows = [...installedHere.map(installLine), ...fromClaudeCode.map(claudeCodeLine)];
|
|
23
|
+
return linesOf(rows.length === 0 ? [NOTHING_INSTALLED] : rows);
|
|
24
|
+
}
|
|
25
|
+
export const shadowedInstallNotice = (shadowed, winner) => `The Claude Code install of "${shadowed.name}" (${shadowed.root}) does not load: ` +
|
|
26
|
+
`the one installed at ${winner.root} has the same name and loads instead.`;
|
|
27
|
+
export const unreadableIndexNotice = (indexFile) => `${indexFile} is not a plugin install index pi-claude can read, so no plugin installed with /plugin loads. Fix or remove the file.`;
|
|
28
|
+
function changeText(headline, ignoredFields) {
|
|
29
|
+
return linesOf([headline, ...ignoredFieldsNotice(ignoredFields), CHANGES_APPLY_LATER]);
|
|
30
|
+
}
|
|
31
|
+
const ignoredFieldsNotice = (fields) => fields.length === 0 ? [] : [`Ignored fields that ${PLUGIN_MANIFEST_PATH} does not define: ${fields.join(', ')}.`];
|
|
32
|
+
function installLine({ name, source, sha, enabled }) {
|
|
33
|
+
const columns = source.kind === 'git' ? [name, source.ref, sha, source.url] : [name, LOCAL_MARKER, sha, source.path];
|
|
34
|
+
return [...columns, ...marksFor({ enabled, shadowed: false })].join(COLUMN_GAP);
|
|
35
|
+
}
|
|
36
|
+
function marketplaceLine({ name, file, sha, source }) {
|
|
37
|
+
const count = file.plugins.length;
|
|
38
|
+
const origin = source.kind === 'git' ? [source.url, ...(source.ref === undefined ? [] : [source.ref])].join('@') : source.path;
|
|
39
|
+
return [name, `${String(count)} ${count === 1 ? 'plugin' : 'plugins'}`, sha, origin].join(COLUMN_GAP);
|
|
40
|
+
}
|
|
41
|
+
function claudeCodeLine({ plugin, enabled, shadowed }) {
|
|
42
|
+
return [plugin.name, plugin.version, CLAUDE_CODE_LABEL, plugin.root, ...marksFor({ enabled, shadowed })].join(COLUMN_GAP);
|
|
43
|
+
}
|
|
44
|
+
const marksFor = ({ enabled, shadowed }) => [
|
|
45
|
+
...(enabled ? [] : [DISABLED_MARK]),
|
|
46
|
+
...(shadowed ? [SHADOWED_MARK] : []),
|
|
47
|
+
];
|
|
48
|
+
const linesOf = (rows) => rows.map((row) => `${row}\n`).join('');
|
|
49
|
+
//# sourceMappingURL=plugin-messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-messages.js","sourceRoot":"","sources":["../../../src/kernel/plugin-management/plugin-messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAUvE,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,YAAY,GAAG,OAAO,CAAC;AAC7B,MAAM,iBAAiB,GAAG,iCAAiC,CAAC;AAC5D,MAAM,aAAa,GAAG,UAAU,CAAC;AACjC,MAAM,aAAa,GAAG,UAAU,CAAC;AACjC,MAAM,mBAAmB,GAAG,qDAAqD,CAAC;AAClF,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;AAClD,MAAM,eAAe,GAAG,wBAAwB,CAAC;AAEjD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAiC,EAAE,aAAgC,EAAU,EAAE,CAC3G,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC;AAEpG,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAqB,EAAE,aAAgC,EAAU,EAAE,CAC7F,UAAU,CAAC,WAAW,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;AAE9D,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,UAAU,CAAC,WAAW,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;AAEvF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,UAAU,CAAC,WAAW,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;AAEvF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,UAAU,CAAC,YAAY,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;AAEzF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,WAA6B,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,qBAAqB,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;AAE9I,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,YAAyC,EAAU,EAAE,CAC3F,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,uBAAuB,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;AAEpG,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC,CAAC;AAEzG,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,YAAyC,EAAU,EAAE,CACvF,OAAO,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;AAE7F,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAuB,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,6BAA6B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAEhI,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,IAAuB,EAAU,EAAE,CAChF,OAAO,CAAC,CAAC,mCAAmC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,yBAAyB,IAAI,+BAA+B,CAAC,CAAC,CAAC;AAEhI,MAAM,UAAU,QAAQ,CAAC,aAAuC,EAAE,cAAuC;IACvG,MAAM,IAAI,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;IACxF,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,QAAuB,EAAE,MAAqB,EAAU,EAAE,CAC9F,+BAA+B,QAAQ,CAAC,IAAI,MAAM,QAAQ,CAAC,IAAI,mBAAmB;IAClF,wBAAwB,MAAM,CAAC,IAAI,uCAAuC,CAAC;AAE7E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,SAAiB,EAAU,EAAE,CACjE,GAAG,SAAS,uHAAuH,CAAC;AAEtI,SAAS,UAAU,CAAC,QAAgB,EAAE,aAAgC;IACpE,OAAO,OAAO,CAAC,CAAC,QAAQ,EAAE,GAAG,mBAAmB,CAAC,aAAa,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC;AACzF,CAAC;AAED,MAAM,mBAAmB,GAAG,CAAC,MAAyB,EAAY,EAAE,CAClE,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,uBAAuB,oBAAoB,qBAAqB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEpH,SAAS,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAiB;IAChE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACrH,OAAO,CAAC,GAAG,OAAO,EAAE,GAAG,QAAQ,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAoB;IACpE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAClC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;IAC/H,OAAO,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACxG,CAAC;AAED,SAAS,cAAc,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAgB;IACjE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC5H,CAAC;AAED,MAAM,QAAQ,GAAG,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAgB,EAAY,EAAE,CAAC;IAClE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IACnC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;CACrC,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,IAAuB,EAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC"}
|