@eminent337/aery 0.67.68 → 0.74.2
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/CHANGELOG.md +418 -5
- package/README.md +67 -37
- package/dist/bun/cli.d.ts +3 -0
- package/dist/bun/cli.d.ts.map +1 -0
- package/dist/bun/cli.js +9 -0
- package/dist/bun/cli.js.map +1 -0
- package/dist/bun/register-bedrock.d.ts +2 -0
- package/dist/bun/register-bedrock.d.ts.map +1 -0
- package/dist/bun/register-bedrock.js +4 -0
- package/dist/bun/register-bedrock.js.map +1 -0
- package/dist/bun/restore-sandbox-env.d.ts +13 -0
- package/dist/bun/restore-sandbox-env.d.ts.map +1 -0
- package/dist/bun/restore-sandbox-env.js +32 -0
- package/dist/bun/restore-sandbox-env.js.map +1 -0
- package/dist/cli/args.d.ts +53 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +341 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/capabilities.d.ts +61 -0
- package/dist/cli/capabilities.d.ts.map +1 -0
- package/dist/cli/capabilities.js +155 -0
- package/dist/cli/capabilities.js.map +1 -0
- package/dist/cli/config-selector.d.ts +14 -0
- package/dist/cli/config-selector.d.ts.map +1 -0
- package/dist/cli/config-selector.js +31 -0
- package/dist/cli/config-selector.js.map +1 -0
- package/dist/cli/doctor.d.ts +32 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +133 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/file-processor.d.ts +15 -0
- package/dist/cli/file-processor.d.ts.map +1 -0
- package/dist/cli/file-processor.js +83 -0
- package/dist/cli/file-processor.js.map +1 -0
- package/dist/cli/initial-message.d.ts +18 -0
- package/dist/cli/initial-message.d.ts.map +1 -0
- package/dist/cli/initial-message.js +22 -0
- package/dist/cli/initial-message.js.map +1 -0
- package/dist/cli/list-models.d.ts +9 -0
- package/dist/cli/list-models.d.ts.map +1 -0
- package/dist/cli/list-models.js +98 -0
- package/dist/cli/list-models.js.map +1 -0
- package/dist/cli/session-picker.d.ts +9 -0
- package/dist/cli/session-picker.d.ts.map +1 -0
- package/dist/cli/session-picker.js +35 -0
- package/dist/cli/session-picker.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +20 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +92 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +399 -0
- package/dist/config.js.map +1 -0
- package/dist/core/agent-session-runtime.d.ts +117 -0
- package/dist/core/agent-session-runtime.d.ts.map +1 -0
- package/dist/core/agent-session-runtime.js +300 -0
- package/dist/core/agent-session-runtime.js.map +1 -0
- package/dist/core/agent-session-services.d.ts +86 -0
- package/dist/core/agent-session-services.d.ts.map +1 -0
- package/dist/core/agent-session-services.js +117 -0
- package/dist/core/agent-session-services.js.map +1 -0
- package/dist/core/agent-session.d.ts +595 -0
- package/dist/core/agent-session.d.ts.map +1 -0
- package/dist/core/agent-session.js +2521 -0
- package/dist/core/agent-session.js.map +1 -0
- package/dist/core/auth-guidance.d.ts +6 -0
- package/dist/core/auth-guidance.d.ts.map +1 -0
- package/dist/core/auth-guidance.js +32 -0
- package/dist/core/auth-guidance.js.map +1 -0
- package/dist/core/auth-storage.d.ts +141 -0
- package/dist/core/auth-storage.d.ts.map +1 -0
- package/dist/core/auth-storage.js +441 -0
- package/dist/core/auth-storage.js.map +1 -0
- package/dist/core/bash-executor.d.ts +32 -0
- package/dist/core/bash-executor.d.ts.map +1 -0
- package/dist/core/bash-executor.js +111 -0
- package/dist/core/bash-executor.js.map +1 -0
- package/dist/core/compaction/branch-summarization.d.ts +88 -0
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -0
- package/dist/core/compaction/branch-summarization.js +243 -0
- package/dist/core/compaction/branch-summarization.js.map +1 -0
- package/dist/core/compaction/compaction.d.ts +121 -0
- package/dist/core/compaction/compaction.d.ts.map +1 -0
- package/dist/core/compaction/compaction.js +615 -0
- package/dist/core/compaction/compaction.js.map +1 -0
- package/dist/core/compaction/index.d.ts +7 -0
- package/dist/core/compaction/index.d.ts.map +1 -0
- package/dist/core/compaction/index.js +7 -0
- package/dist/core/compaction/index.js.map +1 -0
- package/dist/core/compaction/utils.d.ts +38 -0
- package/dist/core/compaction/utils.d.ts.map +1 -0
- package/dist/core/compaction/utils.js +153 -0
- package/dist/core/compaction/utils.js.map +1 -0
- package/dist/core/custom-openai-compatible.d.ts +14 -0
- package/dist/core/custom-openai-compatible.d.ts.map +1 -0
- package/dist/core/custom-openai-compatible.js +128 -0
- package/dist/core/custom-openai-compatible.js.map +1 -0
- package/dist/core/defaults.d.ts +3 -0
- package/dist/core/defaults.d.ts.map +1 -0
- package/dist/core/defaults.js +2 -0
- package/dist/core/defaults.js.map +1 -0
- package/dist/core/diagnostics.d.ts +15 -0
- package/dist/core/diagnostics.d.ts.map +1 -0
- package/dist/core/diagnostics.js +2 -0
- package/dist/core/diagnostics.js.map +1 -0
- package/dist/core/event-bus.d.ts +9 -0
- package/dist/core/event-bus.d.ts.map +1 -0
- package/dist/core/event-bus.js +25 -0
- package/dist/core/event-bus.js.map +1 -0
- package/dist/core/exec.d.ts +29 -0
- package/dist/core/exec.d.ts.map +1 -0
- package/dist/core/exec.js +75 -0
- package/dist/core/exec.js.map +1 -0
- package/dist/core/export-html/ansi-to-html.d.ts +22 -0
- package/dist/core/export-html/ansi-to-html.d.ts.map +1 -0
- package/dist/core/export-html/ansi-to-html.js +249 -0
- package/dist/core/export-html/ansi-to-html.js.map +1 -0
- package/dist/core/export-html/index.d.ts +37 -0
- package/dist/core/export-html/index.d.ts.map +1 -0
- package/dist/core/export-html/index.js +224 -0
- package/dist/core/export-html/index.js.map +1 -0
- package/dist/core/export-html/template.css +1066 -0
- package/dist/core/export-html/template.html +55 -0
- package/dist/core/export-html/template.js +1834 -0
- package/dist/core/export-html/tool-renderer.d.ts +34 -0
- package/dist/core/export-html/tool-renderer.d.ts.map +1 -0
- package/dist/core/export-html/tool-renderer.js +108 -0
- package/dist/core/export-html/tool-renderer.js.map +1 -0
- package/dist/core/export-html/vendor/highlight.min.js +1213 -0
- package/dist/core/export-html/vendor/marked.min.js +6 -0
- package/dist/core/extensions/index.d.ts +12 -0
- package/dist/core/extensions/index.d.ts.map +1 -0
- package/dist/core/extensions/index.js +9 -0
- package/dist/core/extensions/index.js.map +1 -0
- package/dist/core/extensions/loader.d.ts +24 -0
- package/dist/core/extensions/loader.d.ts.map +1 -0
- package/dist/core/extensions/loader.js +488 -0
- package/dist/core/extensions/loader.js.map +1 -0
- package/dist/core/extensions/runner.d.ts +159 -0
- package/dist/core/extensions/runner.d.ts.map +1 -0
- package/dist/core/extensions/runner.js +824 -0
- package/dist/core/extensions/runner.js.map +1 -0
- package/dist/core/extensions/types.d.ts +1173 -0
- package/dist/core/extensions/types.d.ts.map +1 -0
- package/dist/core/extensions/types.js +45 -0
- package/dist/core/extensions/types.js.map +1 -0
- package/dist/core/extensions/wrapper.d.ts +20 -0
- package/dist/core/extensions/wrapper.d.ts.map +1 -0
- package/dist/core/extensions/wrapper.js +22 -0
- package/dist/core/extensions/wrapper.js.map +1 -0
- package/dist/core/footer-data-provider.d.ts +52 -0
- package/dist/core/footer-data-provider.d.ts.map +1 -0
- package/dist/core/footer-data-provider.js +310 -0
- package/dist/core/footer-data-provider.js.map +1 -0
- package/dist/core/index.d.ts +12 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +12 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/keybindings.d.ts +353 -0
- package/dist/core/keybindings.d.ts.map +1 -0
- package/dist/core/keybindings.js +295 -0
- package/dist/core/keybindings.js.map +1 -0
- package/dist/core/messages.d.ts +77 -0
- package/dist/core/messages.d.ts.map +1 -0
- package/dist/core/messages.js +123 -0
- package/dist/core/messages.js.map +1 -0
- package/dist/core/model-registry.d.ts +150 -0
- package/dist/core/model-registry.d.ts.map +1 -0
- package/dist/core/model-registry.js +728 -0
- package/dist/core/model-registry.js.map +1 -0
- package/dist/core/model-resolver.d.ts +110 -0
- package/dist/core/model-resolver.d.ts.map +1 -0
- package/dist/core/model-resolver.js +495 -0
- package/dist/core/model-resolver.js.map +1 -0
- package/dist/core/output-guard.d.ts +6 -0
- package/dist/core/output-guard.d.ts.map +1 -0
- package/dist/core/output-guard.js +59 -0
- package/dist/core/output-guard.js.map +1 -0
- package/dist/core/package-manager.d.ts +198 -0
- package/dist/core/package-manager.d.ts.map +1 -0
- package/dist/core/package-manager.js +1975 -0
- package/dist/core/package-manager.js.map +1 -0
- package/dist/core/prompt-templates.d.ts +52 -0
- package/dist/core/prompt-templates.d.ts.map +1 -0
- package/dist/core/prompt-templates.js +250 -0
- package/dist/core/prompt-templates.js.map +1 -0
- package/dist/core/provider-display-names.d.ts +2 -0
- package/dist/core/provider-display-names.d.ts.map +1 -0
- package/dist/core/provider-display-names.js +33 -0
- package/dist/core/provider-display-names.js.map +1 -0
- package/dist/core/provider-setup-check.d.ts +14 -0
- package/dist/core/provider-setup-check.d.ts.map +1 -0
- package/dist/core/provider-setup-check.js +22 -0
- package/dist/core/provider-setup-check.js.map +1 -0
- package/dist/core/resolve-config-value.d.ts +23 -0
- package/dist/core/resolve-config-value.d.ts.map +1 -0
- package/dist/core/resolve-config-value.js +126 -0
- package/dist/core/resolve-config-value.js.map +1 -0
- package/dist/core/resource-loader.d.ts +194 -0
- package/dist/core/resource-loader.d.ts.map +1 -0
- package/dist/core/resource-loader.js +727 -0
- package/dist/core/resource-loader.js.map +1 -0
- package/dist/core/sdk.d.ts +107 -0
- package/dist/core/sdk.d.ts.map +1 -0
- package/dist/core/sdk.js +282 -0
- package/dist/core/sdk.js.map +1 -0
- package/dist/core/session-cwd.d.ts +19 -0
- package/dist/core/session-cwd.d.ts.map +1 -0
- package/dist/core/session-cwd.js +38 -0
- package/dist/core/session-cwd.js.map +1 -0
- package/dist/core/session-manager.d.ts +333 -0
- package/dist/core/session-manager.d.ts.map +1 -0
- package/dist/core/session-manager.js +1109 -0
- package/dist/core/session-manager.js.map +1 -0
- package/dist/core/settings-manager.d.ts +261 -0
- package/dist/core/settings-manager.d.ts.map +1 -0
- package/dist/core/settings-manager.js +782 -0
- package/dist/core/settings-manager.js.map +1 -0
- package/dist/core/skills.d.ts +60 -0
- package/dist/core/skills.d.ts.map +1 -0
- package/dist/core/skills.js +404 -0
- package/dist/core/skills.js.map +1 -0
- package/dist/core/slash-commands.d.ts +14 -0
- package/dist/core/slash-commands.d.ts.map +1 -0
- package/dist/core/slash-commands.js +25 -0
- package/dist/core/slash-commands.js.map +1 -0
- package/dist/core/source-info.d.ts +18 -0
- package/dist/core/source-info.d.ts.map +1 -0
- package/dist/core/source-info.js +19 -0
- package/dist/core/source-info.js.map +1 -0
- package/dist/core/system-prompt.d.ts +28 -0
- package/dist/core/system-prompt.d.ts.map +1 -0
- package/dist/core/system-prompt.js +120 -0
- package/dist/core/system-prompt.js.map +1 -0
- package/dist/core/telemetry.d.ts +3 -0
- package/dist/core/telemetry.d.ts.map +1 -0
- package/dist/core/telemetry.js +9 -0
- package/dist/core/telemetry.js.map +1 -0
- package/dist/core/timings.d.ts +8 -0
- package/dist/core/timings.d.ts.map +1 -0
- package/dist/core/timings.js +31 -0
- package/dist/core/timings.js.map +1 -0
- package/dist/core/tools/bash.d.ts +68 -0
- package/dist/core/tools/bash.d.ts.map +1 -0
- package/dist/core/tools/bash.js +335 -0
- package/dist/core/tools/bash.js.map +1 -0
- package/dist/core/tools/edit-diff.d.ts +85 -0
- package/dist/core/tools/edit-diff.d.ts.map +1 -0
- package/dist/core/tools/edit-diff.js +338 -0
- package/dist/core/tools/edit-diff.js.map +1 -0
- package/dist/core/tools/edit.d.ts +49 -0
- package/dist/core/tools/edit.d.ts.map +1 -0
- package/dist/core/tools/edit.js +324 -0
- package/dist/core/tools/edit.js.map +1 -0
- package/dist/core/tools/file-mutation-queue.d.ts +6 -0
- package/dist/core/tools/file-mutation-queue.d.ts.map +1 -0
- package/dist/core/tools/file-mutation-queue.js +37 -0
- package/dist/core/tools/file-mutation-queue.js.map +1 -0
- package/dist/core/tools/find.d.ts +35 -0
- package/dist/core/tools/find.d.ts.map +1 -0
- package/dist/core/tools/find.js +298 -0
- package/dist/core/tools/find.js.map +1 -0
- package/dist/core/tools/grep.d.ts +37 -0
- package/dist/core/tools/grep.d.ts.map +1 -0
- package/dist/core/tools/grep.js +304 -0
- package/dist/core/tools/grep.js.map +1 -0
- package/dist/core/tools/index.d.ts +40 -0
- package/dist/core/tools/index.d.ts.map +1 -0
- package/dist/core/tools/index.js +112 -0
- package/dist/core/tools/index.js.map +1 -0
- package/dist/core/tools/ls.d.ts +37 -0
- package/dist/core/tools/ls.d.ts.map +1 -0
- package/dist/core/tools/ls.js +169 -0
- package/dist/core/tools/ls.js.map +1 -0
- package/dist/core/tools/output-accumulator.d.ts +50 -0
- package/dist/core/tools/output-accumulator.d.ts.map +1 -0
- package/dist/core/tools/output-accumulator.js +178 -0
- package/dist/core/tools/output-accumulator.js.map +1 -0
- package/dist/core/tools/path-utils.d.ts +8 -0
- package/dist/core/tools/path-utils.d.ts.map +1 -0
- package/dist/core/tools/path-utils.js +81 -0
- package/dist/core/tools/path-utils.js.map +1 -0
- package/dist/core/tools/read.d.ts +35 -0
- package/dist/core/tools/read.d.ts.map +1 -0
- package/dist/core/tools/read.js +289 -0
- package/dist/core/tools/read.js.map +1 -0
- package/dist/core/tools/render-utils.d.ts +21 -0
- package/dist/core/tools/render-utils.d.ts.map +1 -0
- package/dist/core/tools/render-utils.js +49 -0
- package/dist/core/tools/render-utils.js.map +1 -0
- package/dist/core/tools/tool-definition-wrapper.d.ts +14 -0
- package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -0
- package/dist/core/tools/tool-definition-wrapper.js +34 -0
- package/dist/core/tools/tool-definition-wrapper.js.map +1 -0
- package/dist/core/tools/truncate.d.ts +70 -0
- package/dist/core/tools/truncate.d.ts.map +1 -0
- package/dist/core/tools/truncate.js +205 -0
- package/dist/core/tools/truncate.js.map +1 -0
- package/dist/core/tools/write.d.ts +26 -0
- package/dist/core/tools/write.d.ts.map +1 -0
- package/dist/core/tools/write.js +213 -0
- package/dist/core/tools/write.js.map +1 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +41 -0
- package/dist/index.js.map +1 -0
- package/dist/main.d.ts +12 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +583 -0
- package/dist/main.js.map +1 -0
- package/dist/migrations.d.ts +61 -0
- package/dist/migrations.d.ts.map +1 -0
- package/dist/migrations.js +456 -0
- package/dist/migrations.js.map +1 -0
- package/dist/modes/index.d.ts +9 -0
- package/dist/modes/index.d.ts.map +1 -0
- package/dist/modes/index.js +8 -0
- package/dist/modes/index.js.map +1 -0
- package/dist/modes/interactive/assets/clankolas.png +0 -0
- package/dist/modes/interactive/components/armin.d.ts +34 -0
- package/dist/modes/interactive/components/armin.d.ts.map +1 -0
- package/dist/modes/interactive/components/armin.js +333 -0
- package/dist/modes/interactive/components/armin.js.map +1 -0
- package/dist/modes/interactive/components/assistant-message.d.ts +20 -0
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/assistant-message.js +121 -0
- package/dist/modes/interactive/components/assistant-message.js.map +1 -0
- package/dist/modes/interactive/components/bash-execution.d.ts +34 -0
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -0
- package/dist/modes/interactive/components/bash-execution.js +175 -0
- package/dist/modes/interactive/components/bash-execution.js.map +1 -0
- package/dist/modes/interactive/components/bordered-loader.d.ts +16 -0
- package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -0
- package/dist/modes/interactive/components/bordered-loader.js +54 -0
- package/dist/modes/interactive/components/bordered-loader.js.map +1 -0
- package/dist/modes/interactive/components/branch-summary-message.d.ts +16 -0
- package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/branch-summary-message.js +44 -0
- package/dist/modes/interactive/components/branch-summary-message.js.map +1 -0
- package/dist/modes/interactive/components/compaction-summary-message.d.ts +16 -0
- package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/compaction-summary-message.js +45 -0
- package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -0
- package/dist/modes/interactive/components/config-selector.d.ts +71 -0
- package/dist/modes/interactive/components/config-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/config-selector.js +503 -0
- package/dist/modes/interactive/components/config-selector.js.map +1 -0
- package/dist/modes/interactive/components/countdown-timer.d.ts +14 -0
- package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -0
- package/dist/modes/interactive/components/countdown-timer.js +33 -0
- package/dist/modes/interactive/components/countdown-timer.js.map +1 -0
- package/dist/modes/interactive/components/custom-editor.d.ts +21 -0
- package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -0
- package/dist/modes/interactive/components/custom-editor.js +70 -0
- package/dist/modes/interactive/components/custom-editor.js.map +1 -0
- package/dist/modes/interactive/components/custom-message.d.ts +20 -0
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/custom-message.js +79 -0
- package/dist/modes/interactive/components/custom-message.js.map +1 -0
- package/dist/modes/interactive/components/daxnuts.d.ts +23 -0
- package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -0
- package/dist/modes/interactive/components/daxnuts.js +140 -0
- package/dist/modes/interactive/components/daxnuts.js.map +1 -0
- package/dist/modes/interactive/components/diff.d.ts +12 -0
- package/dist/modes/interactive/components/diff.d.ts.map +1 -0
- package/dist/modes/interactive/components/diff.js +133 -0
- package/dist/modes/interactive/components/diff.js.map +1 -0
- package/dist/modes/interactive/components/dynamic-border.d.ts +15 -0
- package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -0
- package/dist/modes/interactive/components/dynamic-border.js +21 -0
- package/dist/modes/interactive/components/dynamic-border.js.map +1 -0
- package/dist/modes/interactive/components/earendil-announcement.d.ts +5 -0
- package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -0
- package/dist/modes/interactive/components/earendil-announcement.js +40 -0
- package/dist/modes/interactive/components/earendil-announcement.js.map +1 -0
- package/dist/modes/interactive/components/extension-editor.d.ts +20 -0
- package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -0
- package/dist/modes/interactive/components/extension-editor.js +111 -0
- package/dist/modes/interactive/components/extension-editor.js.map +1 -0
- package/dist/modes/interactive/components/extension-input.d.ts +23 -0
- package/dist/modes/interactive/components/extension-input.d.ts.map +1 -0
- package/dist/modes/interactive/components/extension-input.js +61 -0
- package/dist/modes/interactive/components/extension-input.js.map +1 -0
- package/dist/modes/interactive/components/extension-selector.d.ts +26 -0
- package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/extension-selector.js +83 -0
- package/dist/modes/interactive/components/extension-selector.js.map +1 -0
- package/dist/modes/interactive/components/footer.d.ts +27 -0
- package/dist/modes/interactive/components/footer.d.ts.map +1 -0
- package/dist/modes/interactive/components/footer.js +201 -0
- package/dist/modes/interactive/components/footer.js.map +1 -0
- package/dist/modes/interactive/components/index.d.ts +32 -0
- package/dist/modes/interactive/components/index.d.ts.map +1 -0
- package/dist/modes/interactive/components/index.js +33 -0
- package/dist/modes/interactive/components/index.js.map +1 -0
- package/dist/modes/interactive/components/keybinding-hints.d.ts +13 -0
- package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -0
- package/dist/modes/interactive/components/keybinding-hints.js +36 -0
- package/dist/modes/interactive/components/keybinding-hints.js.map +1 -0
- package/dist/modes/interactive/components/login-dialog.d.ts +46 -0
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -0
- package/dist/modes/interactive/components/login-dialog.js +160 -0
- package/dist/modes/interactive/components/login-dialog.js.map +1 -0
- package/dist/modes/interactive/components/model-selector.d.ts +47 -0
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/model-selector.js +278 -0
- package/dist/modes/interactive/components/model-selector.js.map +1 -0
- package/dist/modes/interactive/components/oauth-selector.d.ts +31 -0
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/oauth-selector.js +165 -0
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -0
- package/dist/modes/interactive/components/scoped-models-selector.d.ts +42 -0
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/scoped-models-selector.js +290 -0
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -0
- package/dist/modes/interactive/components/session-selector-search.d.ts +23 -0
- package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -0
- package/dist/modes/interactive/components/session-selector-search.js +155 -0
- package/dist/modes/interactive/components/session-selector-search.js.map +1 -0
- package/dist/modes/interactive/components/session-selector.d.ts +96 -0
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/session-selector.js +861 -0
- package/dist/modes/interactive/components/session-selector.js.map +1 -0
- package/dist/modes/interactive/components/settings-selector.d.ts +67 -0
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/settings-selector.js +375 -0
- package/dist/modes/interactive/components/settings-selector.js.map +1 -0
- package/dist/modes/interactive/components/show-images-selector.d.ts +10 -0
- package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/show-images-selector.js +39 -0
- package/dist/modes/interactive/components/show-images-selector.js.map +1 -0
- package/dist/modes/interactive/components/skill-invocation-message.d.ts +17 -0
- package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/skill-invocation-message.js +47 -0
- package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -0
- package/dist/modes/interactive/components/theme-selector.d.ts +11 -0
- package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/theme-selector.js +50 -0
- package/dist/modes/interactive/components/theme-selector.js.map +1 -0
- package/dist/modes/interactive/components/thinking-selector.d.ts +11 -0
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/thinking-selector.js +51 -0
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -0
- package/dist/modes/interactive/components/tool-execution.d.ts +63 -0
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -0
- package/dist/modes/interactive/components/tool-execution.js +295 -0
- package/dist/modes/interactive/components/tool-execution.js.map +1 -0
- package/dist/modes/interactive/components/tree-selector.d.ts +89 -0
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/tree-selector.js +1093 -0
- package/dist/modes/interactive/components/tree-selector.js.map +1 -0
- package/dist/modes/interactive/components/user-message-selector.d.ts +30 -0
- package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/user-message-selector.js +114 -0
- package/dist/modes/interactive/components/user-message-selector.js.map +1 -0
- package/dist/modes/interactive/components/user-message.d.ts +10 -0
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/user-message.js +29 -0
- package/dist/modes/interactive/components/user-message.js.map +1 -0
- package/dist/modes/interactive/components/visual-truncate.d.ts +24 -0
- package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -0
- package/dist/modes/interactive/components/visual-truncate.js +33 -0
- package/dist/modes/interactive/components/visual-truncate.js.map +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts +369 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-mode.js +4612 -0
- package/dist/modes/interactive/interactive-mode.js.map +1 -0
- package/dist/modes/interactive/theme/aery.json +84 -0
- package/dist/modes/interactive/theme/catppuccin-mocha.json +81 -0
- package/dist/modes/interactive/theme/dark.json +85 -0
- package/dist/modes/interactive/theme/dracula.json +81 -0
- package/dist/modes/interactive/theme/light.json +84 -0
- package/dist/modes/interactive/theme/nord.json +81 -0
- package/dist/modes/interactive/theme/theme-schema.json +335 -0
- package/dist/modes/interactive/theme/theme.d.ts +81 -0
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -0
- package/dist/modes/interactive/theme/theme.js +973 -0
- package/dist/modes/interactive/theme/theme.js.map +1 -0
- package/dist/modes/interactive/theme/tokyo-night.json +81 -0
- package/dist/modes/print-mode.d.ts +28 -0
- package/dist/modes/print-mode.d.ts.map +1 -0
- package/dist/modes/print-mode.js +131 -0
- package/dist/modes/print-mode.js.map +1 -0
- package/dist/modes/rpc/jsonl.d.ts +17 -0
- package/dist/modes/rpc/jsonl.d.ts.map +1 -0
- package/dist/modes/rpc/jsonl.js +49 -0
- package/dist/modes/rpc/jsonl.js.map +1 -0
- package/dist/modes/rpc/rpc-client.d.ts +224 -0
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-client.js +410 -0
- package/dist/modes/rpc/rpc-client.js.map +1 -0
- package/dist/modes/rpc/rpc-mode.d.ts +20 -0
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-mode.js +601 -0
- package/dist/modes/rpc/rpc-mode.js.map +1 -0
- package/dist/modes/rpc/rpc-types.d.ts +419 -0
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-types.js +8 -0
- package/dist/modes/rpc/rpc-types.js.map +1 -0
- package/dist/package-manager-cli.d.ts +4 -0
- package/dist/package-manager-cli.d.ts.map +1 -0
- package/dist/package-manager-cli.js +460 -0
- package/dist/package-manager-cli.js.map +1 -0
- package/dist/utils/aery-user-agent.d.ts +2 -0
- package/dist/utils/aery-user-agent.d.ts.map +1 -0
- package/dist/utils/aery-user-agent.js +5 -0
- package/dist/utils/aery-user-agent.js.map +1 -0
- package/dist/utils/ansi.d.ts +2 -0
- package/dist/utils/ansi.d.ts.map +1 -0
- package/dist/utils/ansi.js +52 -0
- package/dist/utils/ansi.js.map +1 -0
- package/dist/utils/changelog.d.ts +21 -0
- package/dist/utils/changelog.d.ts.map +1 -0
- package/dist/utils/changelog.js +87 -0
- package/dist/utils/changelog.js.map +1 -0
- package/dist/utils/child-process.d.ts +12 -0
- package/dist/utils/child-process.d.ts.map +1 -0
- package/dist/utils/child-process.js +86 -0
- package/dist/utils/child-process.js.map +1 -0
- package/dist/utils/clipboard-image.d.ts +11 -0
- package/dist/utils/clipboard-image.d.ts.map +1 -0
- package/dist/utils/clipboard-image.js +245 -0
- package/dist/utils/clipboard-image.js.map +1 -0
- package/dist/utils/clipboard-native.d.ts +8 -0
- package/dist/utils/clipboard-native.d.ts.map +1 -0
- package/dist/utils/clipboard-native.js +14 -0
- package/dist/utils/clipboard-native.js.map +1 -0
- package/dist/utils/clipboard.d.ts +2 -0
- package/dist/utils/clipboard.d.ts.map +1 -0
- package/dist/utils/clipboard.js +117 -0
- package/dist/utils/clipboard.js.map +1 -0
- package/dist/utils/exif-orientation.d.ts +5 -0
- package/dist/utils/exif-orientation.d.ts.map +1 -0
- package/dist/utils/exif-orientation.js +158 -0
- package/dist/utils/exif-orientation.js.map +1 -0
- package/dist/utils/frontmatter.d.ts +8 -0
- package/dist/utils/frontmatter.d.ts.map +1 -0
- package/dist/utils/frontmatter.js +26 -0
- package/dist/utils/frontmatter.js.map +1 -0
- package/dist/utils/fs-watch.d.ts +5 -0
- package/dist/utils/fs-watch.d.ts.map +1 -0
- package/dist/utils/fs-watch.js +25 -0
- package/dist/utils/fs-watch.js.map +1 -0
- package/dist/utils/git.d.ts +26 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +163 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/html.d.ts +7 -0
- package/dist/utils/html.d.ts.map +1 -0
- package/dist/utils/html.js +40 -0
- package/dist/utils/html.js.map +1 -0
- package/dist/utils/image-convert.d.ts +9 -0
- package/dist/utils/image-convert.d.ts.map +1 -0
- package/dist/utils/image-convert.js +39 -0
- package/dist/utils/image-convert.js.map +1 -0
- package/dist/utils/image-resize.d.ts +36 -0
- package/dist/utils/image-resize.d.ts.map +1 -0
- package/dist/utils/image-resize.js +137 -0
- package/dist/utils/image-resize.js.map +1 -0
- package/dist/utils/mime.d.ts +3 -0
- package/dist/utils/mime.d.ts.map +1 -0
- package/dist/utils/mime.js +69 -0
- package/dist/utils/mime.js.map +1 -0
- package/dist/utils/paths.d.ts +16 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +50 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/photon.d.ts +21 -0
- package/dist/utils/photon.d.ts.map +1 -0
- package/dist/utils/photon.js +121 -0
- package/dist/utils/photon.js.map +1 -0
- package/dist/utils/pi-user-agent.d.ts +2 -0
- package/dist/utils/pi-user-agent.d.ts.map +1 -0
- package/dist/utils/pi-user-agent.js +5 -0
- package/dist/utils/pi-user-agent.js.map +1 -0
- package/dist/utils/shell.d.ts +30 -0
- package/dist/utils/shell.d.ts.map +1 -0
- package/dist/utils/shell.js +190 -0
- package/dist/utils/shell.js.map +1 -0
- package/dist/utils/sleep.d.ts +5 -0
- package/dist/utils/sleep.d.ts.map +1 -0
- package/dist/utils/sleep.js +17 -0
- package/dist/utils/sleep.js.map +1 -0
- package/dist/utils/syntax-highlight.d.ts +12 -0
- package/dist/utils/syntax-highlight.d.ts.map +1 -0
- package/dist/utils/syntax-highlight.js +118 -0
- package/dist/utils/syntax-highlight.js.map +1 -0
- package/dist/utils/tools-manager.d.ts +3 -0
- package/dist/utils/tools-manager.d.ts.map +1 -0
- package/dist/utils/tools-manager.js +325 -0
- package/dist/utils/tools-manager.js.map +1 -0
- package/dist/utils/uuid.d.ts +2 -0
- package/dist/utils/uuid.d.ts.map +1 -0
- package/dist/utils/uuid.js +40 -0
- package/dist/utils/uuid.js.map +1 -0
- package/dist/utils/version-check.d.ts +14 -0
- package/dist/utils/version-check.d.ts.map +1 -0
- package/dist/utils/version-check.js +77 -0
- package/dist/utils/version-check.js.map +1 -0
- package/docs/compaction.md +17 -17
- package/docs/custom-provider.md +42 -33
- package/docs/development.md +4 -4
- package/docs/docs.json +148 -0
- package/docs/extensions.md +308 -80
- package/docs/images/doom-extension.png +0 -0
- package/docs/images/exy.png +0 -0
- package/docs/images/interactive-mode.png +0 -0
- package/docs/images/tree-view.png +0 -0
- package/docs/index.md +70 -0
- package/docs/json.md +4 -4
- package/docs/keybindings.md +2 -2
- package/docs/models.md +84 -5
- package/docs/packages.md +15 -10
- package/docs/prompt-templates.md +2 -2
- package/docs/providers.md +68 -20
- package/docs/quickstart.md +142 -0
- package/docs/rpc.md +6 -6
- package/docs/sdk.md +58 -78
- package/docs/{session.md → session-format.md} +8 -8
- package/docs/sessions.md +137 -0
- package/docs/settings.md +49 -17
- package/docs/shell-aliases.md +1 -1
- package/docs/skills.md +4 -4
- package/docs/terminal-setup.md +2 -2
- package/docs/termux.md +6 -6
- package/docs/themes.md +6 -6
- package/docs/tmux.md +0 -0
- package/docs/tui.md +22 -22
- package/docs/usage.md +277 -0
- package/docs/windows.md +1 -1
- package/examples/README.md +0 -0
- package/examples/extensions/README.md +6 -6
- package/examples/extensions/antigravity-image-gen.ts +18 -18
- package/examples/extensions/auto-commit-on-exit.ts +1 -1
- package/examples/extensions/bash-spawn-hook.ts +3 -3
- package/examples/extensions/bookmark.ts +1 -1
- package/examples/extensions/border-status-editor.ts +145 -0
- package/examples/extensions/built-in-tool-renderer.ts +3 -3
- package/examples/extensions/claude-rules.ts +2 -2
- package/examples/extensions/commands.ts +2 -2
- package/examples/extensions/confirm-destructive.ts +1 -1
- package/examples/extensions/custom-compaction.ts +3 -3
- package/examples/extensions/custom-footer.ts +3 -3
- package/examples/extensions/custom-header.ts +2 -2
- package/examples/extensions/custom-provider-anthropic/index.ts +2 -2
- package/examples/extensions/custom-provider-anthropic/package-lock.json +4 -4
- package/examples/extensions/custom-provider-anthropic/package.json +2 -2
- package/examples/extensions/custom-provider-gitlab-duo/index.ts +2 -2
- package/examples/extensions/custom-provider-gitlab-duo/package.json +2 -2
- package/examples/extensions/custom-provider-gitlab-duo/test.ts +1 -1
- package/examples/extensions/custom-provider-qwen-cli/index.ts +3 -3
- package/examples/extensions/custom-provider-qwen-cli/package.json +2 -2
- package/examples/extensions/dirty-repo-guard.ts +1 -1
- package/examples/extensions/doom-overlay/README.md +0 -0
- package/examples/extensions/doom-overlay/doom/build/doom.js +0 -0
- package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +0 -0
- package/examples/extensions/doom-overlay/doom-component.ts +2 -2
- package/examples/extensions/doom-overlay/doom-engine.ts +0 -0
- package/examples/extensions/doom-overlay/doom-keys.ts +1 -1
- package/examples/extensions/doom-overlay/index.ts +1 -1
- package/examples/extensions/doom-overlay/wad-finder.ts +0 -0
- package/examples/extensions/dynamic-resources/SKILL.md +0 -0
- package/examples/extensions/dynamic-resources/dynamic.json +1 -1
- package/examples/extensions/dynamic-resources/dynamic.md +0 -0
- package/examples/extensions/dynamic-resources/index.ts +1 -1
- package/examples/extensions/dynamic-tools.ts +3 -3
- package/examples/extensions/event-bus.ts +1 -1
- package/examples/extensions/file-trigger.ts +1 -1
- package/examples/extensions/git-checkpoint.ts +1 -1
- package/examples/extensions/github-issue-autocomplete.ts +185 -0
- package/examples/extensions/handoff.ts +52 -14
- package/examples/extensions/hello.ts +2 -2
- package/examples/extensions/hidden-thinking-label.ts +1 -1
- package/examples/extensions/inline-bash.ts +1 -1
- package/examples/extensions/input-transform.ts +1 -1
- package/examples/extensions/interactive-shell.ts +1 -1
- package/examples/extensions/mac-system-theme.ts +1 -1
- package/examples/extensions/message-renderer.ts +2 -2
- package/examples/extensions/minimal-mode.ts +3 -3
- package/examples/extensions/modal-editor.ts +2 -2
- package/examples/extensions/model-status.ts +1 -1
- package/examples/extensions/notify.ts +1 -1
- package/examples/extensions/overlay-qa-tests.ts +3 -3
- package/examples/extensions/overlay-test.ts +2 -2
- package/examples/extensions/permission-gate.ts +1 -1
- package/examples/extensions/pirate.ts +2 -2
- package/examples/extensions/plan-mode/README.md +0 -0
- package/examples/extensions/plan-mode/index.ts +4 -4
- package/examples/extensions/plan-mode/utils.ts +0 -0
- package/examples/extensions/preset.ts +15 -9
- package/examples/extensions/prompt-customizer.ts +97 -0
- package/examples/extensions/protected-paths.ts +1 -1
- package/examples/extensions/provider-payload.ts +2 -2
- package/examples/extensions/qna.ts +3 -3
- package/examples/extensions/question.ts +3 -3
- package/examples/extensions/questionnaire.ts +3 -3
- package/examples/extensions/rainbow-editor.ts +1 -1
- package/examples/extensions/reload-runtime.ts +2 -2
- package/examples/extensions/rpc-demo.ts +1 -1
- package/examples/extensions/sandbox/index.ts +8 -8
- package/examples/extensions/sandbox/package-lock.json +7 -7
- package/examples/extensions/sandbox/package.json +2 -2
- package/examples/extensions/send-user-message.ts +1 -1
- package/examples/extensions/session-name.ts +1 -1
- package/examples/extensions/shutdown-command.ts +2 -2
- package/examples/extensions/snake.ts +2 -2
- package/examples/extensions/space-invaders.ts +2 -2
- package/examples/extensions/ssh.ts +2 -2
- package/examples/extensions/status-line.ts +1 -1
- package/examples/extensions/stitch.ts +168 -0
- package/examples/extensions/structured-output.ts +65 -0
- package/examples/extensions/subagent/README.md +11 -11
- package/examples/extensions/subagent/agents/aery-agent.md +22 -0
- package/examples/extensions/subagent/agents/aery-ai.md +25 -0
- package/examples/extensions/subagent/agents/aery-core.md +19 -0
- package/examples/extensions/subagent/agents/aery-mom.md +25 -0
- package/examples/extensions/subagent/agents/aery-pods.md +24 -0
- package/examples/extensions/subagent/agents/aery-review.md +22 -0
- package/examples/extensions/subagent/agents/aery-tui.md +24 -0
- package/examples/extensions/subagent/agents/planner.md +0 -0
- package/examples/extensions/subagent/agents/reviewer.md +0 -0
- package/examples/extensions/subagent/agents/scout.md +0 -0
- package/examples/extensions/subagent/agents/worker.md +0 -0
- package/examples/extensions/subagent/agents.ts +2 -2
- package/examples/extensions/subagent/index.ts +9 -9
- package/examples/extensions/subagent/prompts/implement-and-review.md +0 -0
- package/examples/extensions/subagent/prompts/implement.md +0 -0
- package/examples/extensions/subagent/prompts/scout-and-plan.md +0 -0
- package/examples/extensions/summarize.ts +4 -4
- package/examples/extensions/system-prompt-header.ts +1 -1
- package/examples/extensions/tic-tac-toe.ts +4 -4
- package/examples/extensions/timed-confirm.ts +1 -1
- package/examples/extensions/titlebar-spinner.ts +1 -1
- package/examples/extensions/todo.ts +4 -4
- package/examples/extensions/tool-override.ts +3 -3
- package/examples/extensions/tools.ts +4 -4
- package/examples/extensions/trigger-compact.ts +1 -1
- package/examples/extensions/truncated-tool.ts +4 -4
- package/examples/extensions/widget-placement.ts +1 -1
- package/examples/extensions/with-deps/index.ts +2 -2
- package/examples/extensions/with-deps/package-lock.json +4 -4
- package/examples/extensions/with-deps/package.json +2 -2
- package/examples/extensions/working-indicator.ts +1 -1
- package/examples/extensions/working-message-test.ts +25 -0
- package/examples/rpc-extension-ui.ts +1 -1
- package/examples/sdk/01-minimal.ts +16 -12
- package/examples/sdk/02-custom-model.ts +14 -10
- package/examples/sdk/03-custom-prompt.ts +26 -18
- package/examples/sdk/04-skills.ts +4 -4
- package/examples/sdk/05-tools.ts +9 -5
- package/examples/sdk/06-extensions.ts +15 -11
- package/examples/sdk/07-context-files.ts +3 -3
- package/examples/sdk/08-prompt-templates.ts +4 -4
- package/examples/sdk/09-api-keys-and-oauth.ts +11 -7
- package/examples/sdk/10-settings.ts +5 -5
- package/examples/sdk/11-sessions.ts +5 -1
- package/examples/sdk/12-full-control.ts +13 -9
- package/examples/sdk/13-session-runtime.ts +1 -1
- package/examples/sdk/README.md +8 -11
- package/package.json +94 -101
- package/docs/tree.md +0 -233
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stitch Extension
|
|
3
|
+
*
|
|
4
|
+
* Integrates Google Stitch UI design platform into Aery.
|
|
5
|
+
* Exposes Stitch MCP tools as native Aery tools so the agent can
|
|
6
|
+
* fetch design HTML, screenshots, and build full sites from Stitch projects.
|
|
7
|
+
*
|
|
8
|
+
* Setup:
|
|
9
|
+
* 1. Get a Stitch API key from https://stitch.google.com/settings
|
|
10
|
+
* 2. Set STITCH_API_KEY=<your-key> in your environment
|
|
11
|
+
* 3. Install: aery install stitch (or copy to ~/.aery/agent/extensions/)
|
|
12
|
+
*
|
|
13
|
+
* Tools registered:
|
|
14
|
+
* stitch_build_site - Build a site from a Stitch project by mapping screens to routes
|
|
15
|
+
* stitch_get_screen_code - Get the HTML/CSS code for a specific screen
|
|
16
|
+
* stitch_get_screen_image - Get a screenshot of a screen as base64
|
|
17
|
+
* stitch_list_projects - List all Stitch projects
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
import { execFile } from "node:child_process";
|
|
21
|
+
import { promisify } from "node:util";
|
|
22
|
+
import type { ExtensionAPI } from "@eminent337/aery";
|
|
23
|
+
import { Type } from "typebox";
|
|
24
|
+
|
|
25
|
+
const execFileAsync = promisify(execFile);
|
|
26
|
+
|
|
27
|
+
async function callStitchTool(toolName: string, data: unknown): Promise<string> {
|
|
28
|
+
const apiKey = process.env.STITCH_API_KEY;
|
|
29
|
+
const useSystemGcloud = process.env.STITCH_USE_SYSTEM_GCLOUD;
|
|
30
|
+
|
|
31
|
+
if (!apiKey && !useSystemGcloud) {
|
|
32
|
+
throw new Error("Not authenticated. Run /stitch login to set up Stitch authentication.");
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const { stdout, stderr } = await execFileAsync(
|
|
36
|
+
"npx",
|
|
37
|
+
["@_davideast/stitch-mcp", "tool", toolName, "-d", JSON.stringify(data)],
|
|
38
|
+
{
|
|
39
|
+
env: { ...process.env },
|
|
40
|
+
timeout: 30000,
|
|
41
|
+
},
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
if (stderr && !stdout) throw new Error(stderr);
|
|
45
|
+
return stdout.trim();
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export default function stitchExtension(pi: ExtensionAPI) {
|
|
49
|
+
// Prompt for login on first use if not authenticated
|
|
50
|
+
pi.on("session_start", (_event, ctx) => {
|
|
51
|
+
const isAuthed = process.env.STITCH_API_KEY || process.env.STITCH_USE_SYSTEM_GCLOUD;
|
|
52
|
+
if (!isAuthed) {
|
|
53
|
+
ctx.ui.notify(
|
|
54
|
+
"Stitch extension loaded but not authenticated.\nRun /stitch login to connect to Google Stitch.",
|
|
55
|
+
"info",
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
pi.registerTool({
|
|
60
|
+
name: "stitch_build_site",
|
|
61
|
+
label: "Stitch: Build Site",
|
|
62
|
+
description:
|
|
63
|
+
"Build a site from a Google Stitch project by mapping screens to routes. Returns the design HTML for each page so the agent can implement it.",
|
|
64
|
+
promptSnippet: "Use stitch_build_site to get design HTML from a Stitch project before implementing UI.",
|
|
65
|
+
parameters: Type.Object({
|
|
66
|
+
projectId: Type.String({ description: "The Stitch project ID" }),
|
|
67
|
+
routes: Type.Array(
|
|
68
|
+
Type.Object({
|
|
69
|
+
screenId: Type.String({ description: "The screen ID" }),
|
|
70
|
+
route: Type.String({ description: 'The route path, e.g. "/" or "/about"' }),
|
|
71
|
+
}),
|
|
72
|
+
{ description: "Mapping of screen IDs to route paths" },
|
|
73
|
+
),
|
|
74
|
+
}),
|
|
75
|
+
async execute(_toolCallId, params) {
|
|
76
|
+
const result = await callStitchTool("build_site", params);
|
|
77
|
+
return { content: [{ type: "text", text: result }], details: {} };
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
pi.registerTool({
|
|
82
|
+
name: "stitch_get_screen_code",
|
|
83
|
+
label: "Stitch: Get Screen Code",
|
|
84
|
+
description: "Get the HTML/CSS code for a specific screen from a Google Stitch project.",
|
|
85
|
+
promptSnippet: "Use stitch_get_screen_code to fetch the design HTML for a single screen.",
|
|
86
|
+
parameters: Type.Object({
|
|
87
|
+
projectId: Type.String({ description: "The Stitch project ID" }),
|
|
88
|
+
screenId: Type.String({ description: "The screen ID" }),
|
|
89
|
+
}),
|
|
90
|
+
async execute(_toolCallId, params) {
|
|
91
|
+
const result = await callStitchTool("get_screen_code", params);
|
|
92
|
+
return { content: [{ type: "text", text: result }], details: {} };
|
|
93
|
+
},
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
pi.registerTool({
|
|
97
|
+
name: "stitch_get_screen_image",
|
|
98
|
+
label: "Stitch: Get Screen Image",
|
|
99
|
+
description: "Get a screenshot of a Stitch screen as a base64 image.",
|
|
100
|
+
promptSnippet: "Use stitch_get_screen_image to see what a Stitch screen looks like visually.",
|
|
101
|
+
parameters: Type.Object({
|
|
102
|
+
projectId: Type.String({ description: "The Stitch project ID" }),
|
|
103
|
+
screenId: Type.String({ description: "The screen ID" }),
|
|
104
|
+
}),
|
|
105
|
+
async execute(_toolCallId, params) {
|
|
106
|
+
const result = await callStitchTool("get_screen_image", params);
|
|
107
|
+
// Result is base64 image data
|
|
108
|
+
return {
|
|
109
|
+
content: [{ type: "image", data: result, mimeType: "image/png" }],
|
|
110
|
+
details: {},
|
|
111
|
+
};
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
pi.registerTool({
|
|
116
|
+
name: "stitch_list_projects",
|
|
117
|
+
label: "Stitch: List Projects",
|
|
118
|
+
description: "List all Google Stitch projects available to your account.",
|
|
119
|
+
promptSnippet: "Use stitch_list_projects to discover available Stitch projects and their IDs.",
|
|
120
|
+
parameters: Type.Object({}),
|
|
121
|
+
async execute(_toolCallId, _params) {
|
|
122
|
+
const result = await callStitchTool("list_projects", {});
|
|
123
|
+
return { content: [{ type: "text", text: result }], details: {} };
|
|
124
|
+
},
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
pi.registerCommand("stitch", {
|
|
128
|
+
description: "Stitch integration — /stitch login | /stitch projects",
|
|
129
|
+
handler: async (args, ctx) => {
|
|
130
|
+
const cmd = args.trim();
|
|
131
|
+
|
|
132
|
+
if (cmd === "login") {
|
|
133
|
+
ctx.ui.notify("Opening Stitch authentication wizard...", "info");
|
|
134
|
+
try {
|
|
135
|
+
// Run stitch-mcp init in a visible subprocess
|
|
136
|
+
await execFileAsync("npx", ["@_davideast/stitch-mcp", "init"], {
|
|
137
|
+
env: { ...process.env },
|
|
138
|
+
timeout: 120000,
|
|
139
|
+
stdio: "inherit",
|
|
140
|
+
} as Parameters<typeof execFileAsync>[2]);
|
|
141
|
+
ctx.ui.notify("Stitch authentication complete.", "info");
|
|
142
|
+
} catch (err) {
|
|
143
|
+
ctx.ui.notify(
|
|
144
|
+
`Auth failed: ${err instanceof Error ? err.message : err}\n\nAlternatively, set STITCH_API_KEY=<your-key> from https://stitch.google.com/settings`,
|
|
145
|
+
"error",
|
|
146
|
+
);
|
|
147
|
+
}
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
if (cmd === "projects") {
|
|
152
|
+
ctx.ui.notify("Fetching Stitch projects...", "info");
|
|
153
|
+
try {
|
|
154
|
+
const result = await callStitchTool("list_projects", {});
|
|
155
|
+
ctx.ui.notify(result, "info");
|
|
156
|
+
} catch (err) {
|
|
157
|
+
ctx.ui.notify(`Error: ${err instanceof Error ? err.message : err}`, "error");
|
|
158
|
+
}
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
ctx.ui.notify(
|
|
163
|
+
"Usage:\n /stitch login — authenticate with Google Stitch\n /stitch projects — list your Stitch projects",
|
|
164
|
+
"info",
|
|
165
|
+
);
|
|
166
|
+
},
|
|
167
|
+
});
|
|
168
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured Output Tool
|
|
3
|
+
*
|
|
4
|
+
* Demonstrates `terminate: true` so the agent can end on a tool call
|
|
5
|
+
* without paying for an extra follow-up LLM turn.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { defineTool, type ExtensionAPI } from "@eminent337/aery";
|
|
9
|
+
import { Text } from "@eminent337/aery-tui";
|
|
10
|
+
import { Type } from "typebox";
|
|
11
|
+
|
|
12
|
+
interface StructuredOutputDetails {
|
|
13
|
+
headline: string;
|
|
14
|
+
summary: string;
|
|
15
|
+
actionItems: string[];
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const structuredOutputTool = defineTool({
|
|
19
|
+
name: "structured_output",
|
|
20
|
+
label: "Structured Output",
|
|
21
|
+
description:
|
|
22
|
+
"Return a final structured answer. Use this as your last action when the user asks for structured output or a machine-readable summary.",
|
|
23
|
+
promptSnippet: "Emit a final structured answer as a terminating tool result",
|
|
24
|
+
promptGuidelines: [
|
|
25
|
+
"Use structured_output as your final action when the user asks for structured output, JSON-like output, or a machine-readable summary.",
|
|
26
|
+
"After calling structured_output, do not emit another assistant response in the same turn.",
|
|
27
|
+
],
|
|
28
|
+
parameters: Type.Object({
|
|
29
|
+
headline: Type.String({ description: "Short title for the result" }),
|
|
30
|
+
summary: Type.String({ description: "One-paragraph summary" }),
|
|
31
|
+
actionItems: Type.Array(Type.String(), { description: "Concrete next steps or key bullets" }),
|
|
32
|
+
}),
|
|
33
|
+
|
|
34
|
+
async execute(_toolCallId, params) {
|
|
35
|
+
return {
|
|
36
|
+
content: [{ type: "text", text: `Saved structured output: ${params.headline}` }],
|
|
37
|
+
details: {
|
|
38
|
+
headline: params.headline,
|
|
39
|
+
summary: params.summary,
|
|
40
|
+
actionItems: params.actionItems,
|
|
41
|
+
} satisfies StructuredOutputDetails,
|
|
42
|
+
terminate: true,
|
|
43
|
+
};
|
|
44
|
+
},
|
|
45
|
+
|
|
46
|
+
renderResult(result, _options, theme) {
|
|
47
|
+
const details = result.details as StructuredOutputDetails | undefined;
|
|
48
|
+
if (!details) {
|
|
49
|
+
const text = result.content[0];
|
|
50
|
+
return new Text(text?.type === "text" ? text.text : "", 0, 0);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const lines = [
|
|
54
|
+
theme.fg("toolTitle", theme.bold(details.headline)),
|
|
55
|
+
theme.fg("text", details.summary),
|
|
56
|
+
"",
|
|
57
|
+
...details.actionItems.map((item, index) => theme.fg("muted", `${index + 1}. ${item}`)),
|
|
58
|
+
];
|
|
59
|
+
return new Text(lines.join("\n"), 0, 0);
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
export default function (pi: ExtensionAPI) {
|
|
64
|
+
pi.registerTool(structuredOutputTool);
|
|
65
|
+
}
|
|
@@ -35,20 +35,20 @@ From the repository root, symlink the files:
|
|
|
35
35
|
|
|
36
36
|
```bash
|
|
37
37
|
# Symlink the extension (must be in a subdirectory with index.ts)
|
|
38
|
-
mkdir -p ~/.
|
|
39
|
-
ln -sf "$(pwd)/packages/coding-agent/examples/extensions/subagent/index.ts" ~/.
|
|
40
|
-
ln -sf "$(pwd)/packages/coding-agent/examples/extensions/subagent/agents.ts" ~/.
|
|
38
|
+
mkdir -p ~/.aery/agent/extensions/subagent
|
|
39
|
+
ln -sf "$(pwd)/packages/coding-agent/examples/extensions/subagent/index.ts" ~/.aery/agent/extensions/subagent/index.ts
|
|
40
|
+
ln -sf "$(pwd)/packages/coding-agent/examples/extensions/subagent/agents.ts" ~/.aery/agent/extensions/subagent/agents.ts
|
|
41
41
|
|
|
42
42
|
# Symlink agents
|
|
43
|
-
mkdir -p ~/.
|
|
43
|
+
mkdir -p ~/.aery/agent/agents
|
|
44
44
|
for f in packages/coding-agent/examples/extensions/subagent/agents/*.md; do
|
|
45
|
-
ln -sf "$(pwd)/$f" ~/.
|
|
45
|
+
ln -sf "$(pwd)/$f" ~/.aery/agent/agents/$(basename "$f")
|
|
46
46
|
done
|
|
47
47
|
|
|
48
48
|
# Symlink workflow prompts
|
|
49
|
-
mkdir -p ~/.
|
|
49
|
+
mkdir -p ~/.aery/agent/prompts
|
|
50
50
|
for f in packages/coding-agent/examples/extensions/subagent/prompts/*.md; do
|
|
51
|
-
ln -sf "$(pwd)/$f" ~/.
|
|
51
|
+
ln -sf "$(pwd)/$f" ~/.aery/agent/prompts/$(basename "$f")
|
|
52
52
|
done
|
|
53
53
|
```
|
|
54
54
|
|
|
@@ -56,9 +56,9 @@ done
|
|
|
56
56
|
|
|
57
57
|
This tool executes a separate `pi` subprocess with a delegated system prompt and tool/model configuration.
|
|
58
58
|
|
|
59
|
-
**Project-local agents** (`.
|
|
59
|
+
**Project-local agents** (`.aery/agents/*.md`) are repo-controlled prompts that can instruct the model to read files, run bash commands, etc.
|
|
60
60
|
|
|
61
|
-
**Default behavior:** Only loads **user-level agents** from `~/.
|
|
61
|
+
**Default behavior:** Only loads **user-level agents** from `~/.aery/agent/agents`.
|
|
62
62
|
|
|
63
63
|
To enable project-local agents, pass `agentScope: "both"` (or `"project"`). Only do this for repositories you trust.
|
|
64
64
|
|
|
@@ -136,8 +136,8 @@ System prompt for the agent goes here.
|
|
|
136
136
|
```
|
|
137
137
|
|
|
138
138
|
**Locations:**
|
|
139
|
-
- `~/.
|
|
140
|
-
- `.
|
|
139
|
+
- `~/.aery/agent/agents/*.md` - User-level (always loaded)
|
|
140
|
+
- `.aery/agents/*.md` - Project-level (only with `agentScope: "project"` or `"both"`)
|
|
141
141
|
|
|
142
142
|
Project agents override user agents with the same name when `agentScope: "both"`.
|
|
143
143
|
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: aery-agent
|
|
3
|
+
description: Specialist for packages/agent — core agent loop, tool execution, message handling, context management, abort signals.
|
|
4
|
+
tools: read, grep, find, ls, bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
You are a specialist for `packages/agent` — the core agent loop.
|
|
8
|
+
|
|
9
|
+
Your scope: packages/agent/src/, packages/agent/test/.
|
|
10
|
+
|
|
11
|
+
This package sits between packages/ai (LLM streaming) and packages/coding-agent (CLI). It handles:
|
|
12
|
+
- The agent loop: send message → receive events → execute tools → loop until stop
|
|
13
|
+
- Tool result handling and formatting
|
|
14
|
+
- Context window management
|
|
15
|
+
- Abort signal propagation
|
|
16
|
+
- Message history management
|
|
17
|
+
|
|
18
|
+
Rules:
|
|
19
|
+
- Run `npm run check` from repo root after changes.
|
|
20
|
+
- Run tests from packages/agent: `npx tsx ../../node_modules/vitest/dist/cli.js --run test/specific.test.ts`
|
|
21
|
+
- No `any` types. No inline imports.
|
|
22
|
+
- Never `git add -A`.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: aery-ai
|
|
3
|
+
description: Specialist for packages/ai — LLM providers, streaming, model registry, env-api-keys. Use when adding providers or fixing AI package issues.
|
|
4
|
+
tools: read, grep, find, ls, bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
You are a specialist for `packages/ai` — the LLM provider abstraction layer.
|
|
8
|
+
|
|
9
|
+
Your scope: packages/ai/src/, packages/ai/test/, packages/ai/scripts/, packages/ai/package.json.
|
|
10
|
+
Also touches: packages/coding-agent/src/core/model-resolver.ts, interactive-mode.ts, args.ts, docs/providers.md.
|
|
11
|
+
|
|
12
|
+
When adding a provider, follow the 7-step checklist:
|
|
13
|
+
1. types.ts — Api union, options interface, ApiOptionsMap, KnownProvider
|
|
14
|
+
2. providers/<name>.ts — stream(), streamSimple(), standard events (text/tool_call/thinking/usage/stop)
|
|
15
|
+
3. package.json subpath export + index.ts export type + register-builtins.ts lazy register + env-api-keys.ts
|
|
16
|
+
4. generate-models.ts — fetch/parse/map to Model interface
|
|
17
|
+
5. Tests — stream.test.ts + full matrix (tokens, abort, empty, context-overflow, image-limits, unicode-surrogate, tool-call-without-result, image-tool-result, total-tokens, cross-provider-handoff)
|
|
18
|
+
6. coding-agent: model-resolver.ts, interactive-mode.ts, args.ts, README.md, docs/providers.md
|
|
19
|
+
7. Docs: packages/ai/README.md, CHANGELOG.md
|
|
20
|
+
|
|
21
|
+
Rules:
|
|
22
|
+
- Run `npm run check` from repo root after changes.
|
|
23
|
+
- Run tests from packages/ai: `npx tsx ../../node_modules/vitest/dist/cli.js --run test/specific.test.ts`
|
|
24
|
+
- No `any` types. No inline imports. No static imports in register-builtins.ts.
|
|
25
|
+
- Never `git add -A`.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: aery-core
|
|
3
|
+
description: Cross-package work, git ops, issues, PRs, root config. Use for tasks spanning multiple packages or repo-level changes.
|
|
4
|
+
tools: read, grep, find, ls, bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
You are working on the Aery monorepo — a TypeScript AI coding agent. Packages: ai, agent, coding-agent, tui, web-ui, mom, pods.
|
|
8
|
+
|
|
9
|
+
Your scope: root config, scripts/, .github/, AGENTS.md, CONTRIBUTING.md, git ops, issues, PRs.
|
|
10
|
+
For package source changes, delegate to the specialist agents: aery-ai, aery-tui, aery-agent, aery-mom, aery-pods.
|
|
11
|
+
|
|
12
|
+
Rules:
|
|
13
|
+
- Run `npm run check` after every code change. Fix ALL errors/warnings/infos.
|
|
14
|
+
- Never run npm run dev, npm run build, npm test.
|
|
15
|
+
- No `any` types. No inline imports. No hardcoded keybindings.
|
|
16
|
+
- Never `git add -A`. Stage only specific files you changed.
|
|
17
|
+
- Never commit unless explicitly asked.
|
|
18
|
+
- No emojis in commits, issues, or code.
|
|
19
|
+
- Write issue/PR comments to a temp file, post with `gh --body-file`.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: aery-mom
|
|
3
|
+
description: Specialist for packages/mom — Slack bot, multi-agent orchestration, Docker sandbox, skills system, events/scheduling, artifacts server.
|
|
4
|
+
tools: read, grep, find, ls, bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
You are a specialist for `packages/mom` — a self-managing Slack bot powered by an LLM.
|
|
8
|
+
|
|
9
|
+
Your scope: packages/mom/src/, packages/mom/test/, packages/mom/docs/, packages/mom/scripts/.
|
|
10
|
+
|
|
11
|
+
Mom is a Slack bot that:
|
|
12
|
+
- Responds to @mentions in channels and DMs
|
|
13
|
+
- Executes bash commands, reads/writes files
|
|
14
|
+
- Self-installs tools (apk, npm, etc.) and writes its own CLI skills
|
|
15
|
+
- Runs in Docker sandbox (recommended) or host mode
|
|
16
|
+
- Has persistent workspace, working memory, and custom tools
|
|
17
|
+
- Supports events/scheduling and an artifacts server for HTML/JS visualizations
|
|
18
|
+
|
|
19
|
+
Key env vars: MOM_SLACK_APP_TOKEN, MOM_SLACK_BOT_TOKEN.
|
|
20
|
+
Docker: see packages/mom/docker.sh and packages/mom/dev.sh.
|
|
21
|
+
|
|
22
|
+
Rules:
|
|
23
|
+
- Run `npm run check` from repo root after changes.
|
|
24
|
+
- No `any` types. No inline imports.
|
|
25
|
+
- Never `git add -A`.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: aery-pods
|
|
3
|
+
description: Specialist for packages/pods — GPU pod management, vLLM deployment, model serving, OpenAI-compatible API endpoints.
|
|
4
|
+
tools: read, grep, find, ls, bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
You are a specialist for `packages/pods` — a CLI tool (`aery-pods`) for deploying and managing LLMs on GPU pods.
|
|
8
|
+
|
|
9
|
+
Your scope: packages/pods/src/, packages/pods/scripts/, packages/pods/docs/.
|
|
10
|
+
|
|
11
|
+
Pods handles:
|
|
12
|
+
- Setting up vLLM on fresh Ubuntu GPU pods (DataCrunch, etc.)
|
|
13
|
+
- Automatic tool-calling configuration for agentic models (Qwen, GPT-OSS, GLM, etc.)
|
|
14
|
+
- Multi-model management on the same pod with smart GPU allocation
|
|
15
|
+
- OpenAI-compatible API endpoints per model
|
|
16
|
+
- Interactive agent with file system tools for testing
|
|
17
|
+
|
|
18
|
+
Key env vars: HF_TOKEN (HuggingFace), AERY_API_KEY (API auth).
|
|
19
|
+
Primary provider: DataCrunch (NFS volumes for shared model storage).
|
|
20
|
+
|
|
21
|
+
Rules:
|
|
22
|
+
- Run `npm run check` from repo root after changes.
|
|
23
|
+
- No `any` types. No inline imports.
|
|
24
|
+
- Never `git add -A`.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: aery-review
|
|
3
|
+
description: Read-only code reviewer. Audits PRs and code for rule violations — any types, inline imports, hardcoded keybindings, missing tests, CHANGELOG entries. Use before merging.
|
|
4
|
+
tools: read, grep, find, ls, bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
You are a read-only code reviewer for the Aery monorepo. You do not write code.
|
|
8
|
+
|
|
9
|
+
Review checklist:
|
|
10
|
+
1. No `any` types
|
|
11
|
+
2. No inline/dynamic imports (`await import()`, `import().Type`)
|
|
12
|
+
3. No hardcoded keybindings — must use DEFAULT_EDITOR_KEYBINDINGS or DEFAULT_APP_KEYBINDINGS
|
|
13
|
+
4. `npm run check` passes (lint + typecheck + browser smoke)
|
|
14
|
+
5. Tests added/updated for new functionality
|
|
15
|
+
6. CHANGELOG.md updated under [Unreleased] for affected packages
|
|
16
|
+
7. Commit messages include `fixes #N` or `closes #N` where applicable
|
|
17
|
+
8. No `git add -A` in scripts or docs
|
|
18
|
+
9. No emojis in code, commits, or comments
|
|
19
|
+
10. For new LLM providers: verify all 7 steps in the provider checklist are complete
|
|
20
|
+
|
|
21
|
+
Report issues grouped by severity: blocking / non-blocking / nit.
|
|
22
|
+
Keep comments concise and technical.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: aery-tui
|
|
3
|
+
description: Specialist for packages/tui and packages/web-ui — terminal UI, keybindings, Ink components, Lit web components, UX.
|
|
4
|
+
tools: read, grep, find, ls, bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
You are a specialist for `packages/tui` (terminal UI) and `packages/web-ui` (browser UI).
|
|
8
|
+
|
|
9
|
+
Your scope: packages/tui/src/, packages/tui/test/, packages/web-ui/src/, packages/web-ui/example/.
|
|
10
|
+
|
|
11
|
+
Key rules for this domain:
|
|
12
|
+
- NEVER hardcode keybindings. All keybindings must be configurable.
|
|
13
|
+
Add defaults to DEFAULT_EDITOR_KEYBINDINGS or DEFAULT_APP_KEYBINDINGS.
|
|
14
|
+
- TUI is built with Ink (React for terminals). web-ui uses Lit web components.
|
|
15
|
+
- Test TUI changes with tmux:
|
|
16
|
+
```
|
|
17
|
+
tmux new-session -d -s aery-test -x 80 -y 24
|
|
18
|
+
tmux send-keys -t aery-test 'cd /path/to/aery && ./test.sh' Enter
|
|
19
|
+
sleep 3 && tmux capture-pane -t aery-test -p
|
|
20
|
+
tmux kill-session -t aery-test
|
|
21
|
+
```
|
|
22
|
+
- Run `npm run check` from repo root after changes.
|
|
23
|
+
- No `any` types. No inline imports.
|
|
24
|
+
- Never `git add -A`.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import * as fs from "node:fs";
|
|
6
6
|
import * as path from "node:path";
|
|
7
|
-
import { getAgentDir, parseFrontmatter } from "@
|
|
7
|
+
import { getAgentDir, parseFrontmatter } from "@eminent337/aery";
|
|
8
8
|
|
|
9
9
|
export type AgentScope = "user" | "project" | "both";
|
|
10
10
|
|
|
@@ -85,7 +85,7 @@ function isDirectory(p: string): boolean {
|
|
|
85
85
|
function findNearestProjectAgentsDir(cwd: string): string | null {
|
|
86
86
|
let currentDir = cwd;
|
|
87
87
|
while (true) {
|
|
88
|
-
const candidate = path.join(currentDir, ".
|
|
88
|
+
const candidate = path.join(currentDir, ".aery", "agents");
|
|
89
89
|
if (isDirectory(candidate)) return candidate;
|
|
90
90
|
|
|
91
91
|
const parentDir = path.dirname(currentDir);
|
|
@@ -16,12 +16,12 @@ import { spawn } from "node:child_process";
|
|
|
16
16
|
import * as fs from "node:fs";
|
|
17
17
|
import * as os from "node:os";
|
|
18
18
|
import * as path from "node:path";
|
|
19
|
-
import type
|
|
20
|
-
import type { Message } from "@
|
|
21
|
-
import { StringEnum } from "@
|
|
22
|
-
import
|
|
23
|
-
import { Container, Markdown, Spacer, Text } from "@
|
|
24
|
-
import { Type } from "
|
|
19
|
+
import { type ExtensionAPI, getMarkdownTheme, withFileMutationQueue } from "@eminent337/aery";
|
|
20
|
+
import type { Message } from "@eminent337/aery-ai";
|
|
21
|
+
import { StringEnum } from "@eminent337/aery-ai";
|
|
22
|
+
import type { AgentToolResult } from "@eminent337/aery-core";
|
|
23
|
+
import { Container, Markdown, Spacer, Text } from "@eminent337/aery-tui";
|
|
24
|
+
import { Type } from "typebox";
|
|
25
25
|
import { type AgentConfig, type AgentScope, discoverAgents } from "./agents.js";
|
|
26
26
|
|
|
27
27
|
const MAX_PARALLEL_TASKS = 8;
|
|
@@ -230,7 +230,7 @@ function getPiInvocation(args: string[]): { command: string; args: string[] } {
|
|
|
230
230
|
return { command: process.execPath, args };
|
|
231
231
|
}
|
|
232
232
|
|
|
233
|
-
return { command: "
|
|
233
|
+
return { command: "aery", args };
|
|
234
234
|
}
|
|
235
235
|
|
|
236
236
|
type OnUpdateCallback = (partial: AgentToolResult<SubagentDetails>) => void;
|
|
@@ -435,8 +435,8 @@ export default function (pi: ExtensionAPI) {
|
|
|
435
435
|
description: [
|
|
436
436
|
"Delegate tasks to specialized subagents with isolated context.",
|
|
437
437
|
"Modes: single (agent + task), parallel (tasks array), chain (sequential with {previous} placeholder).",
|
|
438
|
-
'Default agent scope is "user" (from ~/.
|
|
439
|
-
'To enable project-local agents in .
|
|
438
|
+
'Default agent scope is "user" (from ~/.aery/agent/agents).',
|
|
439
|
+
'To enable project-local agents in .aery/agents, set agentScope: "both" (or "project").',
|
|
440
440
|
].join(" "),
|
|
441
441
|
parameters: SubagentParams,
|
|
442
442
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import { Container, Markdown, matchesKey, Text } from "@
|
|
1
|
+
import type { ExtensionAPI, ExtensionCommandContext } from "@eminent337/aery";
|
|
2
|
+
import { DynamicBorder, getMarkdownTheme } from "@eminent337/aery";
|
|
3
|
+
import { complete, getModel } from "@eminent337/aery-ai";
|
|
4
|
+
import { Container, Markdown, matchesKey, Text } from "@eminent337/aery-tui";
|
|
5
5
|
|
|
6
6
|
type ContentBlock = {
|
|
7
7
|
type?: string;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Demonstrates ctx.getSystemPrompt() for accessing the effective system prompt.
|
|
5
5
|
*/
|
|
6
|
-
import type { ExtensionAPI } from "@
|
|
6
|
+
import type { ExtensionAPI } from "@eminent337/aery";
|
|
7
7
|
|
|
8
8
|
export default function (pi: ExtensionAPI) {
|
|
9
9
|
pi.on("agent_start", (_event, ctx) => {
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
* separate variables. Only the agent cursor is ever exposed to the agent.
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
|
-
import {
|
|
21
|
-
import
|
|
22
|
-
import { type Component, matchesKey, Text, truncateToWidth, visibleWidth } from "@
|
|
23
|
-
import { Type } from "
|
|
20
|
+
import type { ExtensionAPI, ExtensionContext, Theme, ToolExecutionMode } from "@eminent337/aery";
|
|
21
|
+
import { StringEnum } from "@eminent337/aery-ai";
|
|
22
|
+
import { type Component, matchesKey, Text, truncateToWidth, visibleWidth } from "@eminent337/aery-tui";
|
|
23
|
+
import { Type } from "typebox";
|
|
24
24
|
|
|
25
25
|
// Thrown from the tool on illegal actions. The agent runtime surfaces thrown
|
|
26
26
|
// errors as tool errors (isError=true) without resetting any of our state.
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* - /timed-signal - Shows confirm using AbortSignal (manual approach)
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import type { ExtensionAPI } from "@
|
|
10
|
+
import type { ExtensionAPI } from "@eminent337/aery";
|
|
11
11
|
|
|
12
12
|
export default function (pi: ExtensionAPI) {
|
|
13
13
|
// Simple approach: use timeout option (recommended)
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import path from "node:path";
|
|
12
|
-
import type { ExtensionAPI, ExtensionContext } from "@
|
|
12
|
+
import type { ExtensionAPI, ExtensionContext } from "@eminent337/aery";
|
|
13
13
|
|
|
14
14
|
const BRAILLE_FRAMES = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
|
|
15
15
|
|
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
* correct for that point in history.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
import {
|
|
14
|
-
import
|
|
15
|
-
import { matchesKey, Text, truncateToWidth } from "@
|
|
16
|
-
import { Type } from "
|
|
13
|
+
import type { ExtensionAPI, ExtensionContext, Theme } from "@eminent337/aery";
|
|
14
|
+
import { StringEnum } from "@eminent337/aery-ai";
|
|
15
|
+
import { matchesKey, Text, truncateToWidth } from "@eminent337/aery-tui";
|
|
16
|
+
import { Type } from "typebox";
|
|
17
17
|
|
|
18
18
|
interface Todo {
|
|
19
19
|
id: number;
|
|
@@ -20,12 +20,12 @@
|
|
|
20
20
|
* pi -e ./tool-override.ts
|
|
21
21
|
*/
|
|
22
22
|
|
|
23
|
-
import type
|
|
24
|
-
import
|
|
25
|
-
import { Type } from "@sinclair/typebox";
|
|
23
|
+
import { type ExtensionAPI, getAgentDir, withFileMutationQueue } from "@eminent337/aery";
|
|
24
|
+
import type { TextContent } from "@eminent337/aery-ai";
|
|
26
25
|
import { constants, readFileSync } from "fs";
|
|
27
26
|
import { access, appendFile, readFile } from "fs/promises";
|
|
28
27
|
import { join, resolve } from "path";
|
|
28
|
+
import { Type } from "typebox";
|
|
29
29
|
|
|
30
30
|
const LOG_FILE = join(getAgentDir(), "read-access.log");
|
|
31
31
|
|
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
* Tool selection persists across session reloads and respects branch navigation.
|
|
6
6
|
*
|
|
7
7
|
* Usage:
|
|
8
|
-
* 1. Copy this file to ~/.
|
|
8
|
+
* 1. Copy this file to ~/.aery/agent/extensions/ or your project's .aery/extensions/
|
|
9
9
|
* 2. Use /tools to open the tool selector
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
-
import type { ExtensionAPI, ExtensionContext, ToolInfo } from "@
|
|
13
|
-
import { getSettingsListTheme } from "@
|
|
14
|
-
import { Container, type SettingItem, SettingsList } from "@
|
|
12
|
+
import type { ExtensionAPI, ExtensionContext, ToolInfo } from "@eminent337/aery";
|
|
13
|
+
import { getSettingsListTheme } from "@eminent337/aery";
|
|
14
|
+
import { Container, type SettingItem, SettingsList } from "@eminent337/aery-tui";
|
|
15
15
|
|
|
16
16
|
// State persisted to session
|
|
17
17
|
interface ToolsState {
|