@aexol/spectral 0.8.0 → 0.8.5
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 +82 -55
- package/README.md +80 -82
- package/dist/agent/agents.d.ts +37 -0
- package/dist/agent/agents.d.ts.map +1 -0
- package/dist/agent/index.d.ts +29 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/cli.d.ts +17 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/commands/bind.d.ts +12 -0
- package/dist/commands/bind.d.ts.map +1 -0
- package/dist/commands/login-oauth.d.ts +15 -0
- package/dist/commands/login-oauth.d.ts.map +1 -0
- package/dist/commands/login.d.ts +37 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/logout.d.ts +8 -0
- package/dist/commands/logout.d.ts.map +1 -0
- package/dist/commands/serve.d.ts +112 -0
- package/dist/commands/serve.d.ts.map +1 -0
- package/dist/commands/unbind.d.ts +8 -0
- package/dist/commands/unbind.d.ts.map +1 -0
- package/dist/config.d.ts +49 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/designer/guidelines.d.ts +23 -0
- package/dist/designer/guidelines.d.ts.map +1 -0
- package/dist/designer/index.d.ts +26 -0
- package/dist/designer/index.d.ts.map +1 -0
- package/dist/designer/philosophies.d.ts +33 -0
- package/dist/designer/philosophies.d.ts.map +1 -0
- package/dist/designer/skills.d.ts +27 -0
- package/dist/designer/skills.d.ts.map +1 -0
- package/dist/designer/systems.d.ts +36 -0
- package/dist/designer/systems.d.ts.map +1 -0
- package/dist/extensions/aexol-mcp.d.ts +25 -0
- package/dist/extensions/aexol-mcp.d.ts.map +1 -0
- package/dist/extensions/kanban-bridge.d.ts +24 -0
- package/dist/extensions/kanban-bridge.d.ts.map +1 -0
- package/dist/extensions/kanban-bridge.js +668 -0
- package/dist/extensions/openrouter-attribution.d.ts +12 -0
- package/dist/extensions/openrouter-attribution.d.ts.map +1 -0
- package/dist/extensions/spectral-vision-fallback.d.ts +23 -0
- package/dist/extensions/spectral-vision-fallback.d.ts.map +1 -0
- package/dist/extensions/spectral-vision-fallback.js +32 -22
- package/dist/index.d.ts +46 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +44 -0
- package/dist/mcp/agent-dir.d.ts +3 -0
- package/dist/mcp/agent-dir.d.ts.map +1 -0
- package/dist/mcp/commands.d.ts +9 -0
- package/dist/mcp/commands.d.ts.map +1 -0
- package/dist/mcp/config.d.ts +78 -0
- package/dist/mcp/config.d.ts.map +1 -0
- package/dist/mcp/consent-manager.d.ts +14 -0
- package/dist/mcp/consent-manager.d.ts.map +1 -0
- package/dist/mcp/direct-tools.d.ts +11 -0
- package/dist/mcp/direct-tools.d.ts.map +1 -0
- package/dist/mcp/errors.d.ts +100 -0
- package/dist/mcp/errors.d.ts.map +1 -0
- package/dist/mcp/glimpse-ui.d.ts +10 -0
- package/dist/mcp/glimpse-ui.d.ts.map +1 -0
- package/dist/mcp/host-html-template.d.ts +17 -0
- package/dist/mcp/host-html-template.d.ts.map +1 -0
- package/dist/mcp/index.d.ts +3 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/init.d.ts +10 -0
- package/dist/mcp/init.d.ts.map +1 -0
- package/dist/mcp/init.js +1 -9
- package/dist/mcp/lifecycle.d.ts +30 -0
- package/dist/mcp/lifecycle.d.ts.map +1 -0
- package/dist/mcp/logger.d.ts +52 -0
- package/dist/mcp/logger.d.ts.map +1 -0
- package/dist/mcp/mcp-auth-flow.d.ts +69 -0
- package/dist/mcp/mcp-auth-flow.d.ts.map +1 -0
- package/dist/mcp/mcp-auth.d.ts +100 -0
- package/dist/mcp/mcp-auth.d.ts.map +1 -0
- package/dist/mcp/mcp-callback-server.d.ts +40 -0
- package/dist/mcp/mcp-callback-server.d.ts.map +1 -0
- package/dist/mcp/mcp-oauth-provider.d.ts +101 -0
- package/dist/mcp/mcp-oauth-provider.d.ts.map +1 -0
- package/dist/mcp/metadata-cache.d.ts +32 -0
- package/dist/mcp/metadata-cache.d.ts.map +1 -0
- package/dist/mcp/npx-resolver.d.ts +7 -0
- package/dist/mcp/npx-resolver.d.ts.map +1 -0
- package/dist/mcp/oauth-handler.d.ts +19 -0
- package/dist/mcp/oauth-handler.d.ts.map +1 -0
- package/dist/mcp/onboarding-state.d.ts +13 -0
- package/dist/mcp/onboarding-state.d.ts.map +1 -0
- package/dist/mcp/proxy-modes.d.ts +12 -0
- package/dist/mcp/proxy-modes.d.ts.map +1 -0
- package/dist/mcp/resource-tools.d.ts +2 -0
- package/dist/mcp/resource-tools.d.ts.map +1 -0
- package/dist/mcp/sampling-handler.d.ts +16 -0
- package/dist/mcp/sampling-handler.d.ts.map +1 -0
- package/dist/mcp/server-manager.d.ts +42 -0
- package/dist/mcp/server-manager.d.ts.map +1 -0
- package/dist/mcp/state.d.ts +41 -0
- package/dist/mcp/state.d.ts.map +1 -0
- package/dist/mcp/tool-metadata.d.ts +11 -0
- package/dist/mcp/tool-metadata.d.ts.map +1 -0
- package/dist/mcp/tool-registrar.d.ts +9 -0
- package/dist/mcp/tool-registrar.d.ts.map +1 -0
- package/dist/mcp/types.d.ts +263 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/ui-resource-handler.d.ts +10 -0
- package/dist/mcp/ui-resource-handler.d.ts.map +1 -0
- package/dist/mcp/ui-server.d.ts +37 -0
- package/dist/mcp/ui-server.d.ts.map +1 -0
- package/dist/mcp/ui-session.d.ts +27 -0
- package/dist/mcp/ui-session.d.ts.map +1 -0
- package/dist/mcp/ui-stream-types.d.ts +197 -0
- package/dist/mcp/ui-stream-types.d.ts.map +1 -0
- package/dist/mcp/utils.d.ts +17 -0
- package/dist/mcp/utils.d.ts.map +1 -0
- package/dist/mcp/vitest.config.d.ts +3 -0
- package/dist/mcp/vitest.config.d.ts.map +1 -0
- package/dist/mcp-client.d.ts +58 -0
- package/dist/mcp-client.d.ts.map +1 -0
- package/dist/mcp-client.js +2 -1
- package/dist/memory/branch.d.ts +124 -0
- package/dist/memory/branch.d.ts.map +1 -0
- package/dist/memory/commands/status.d.ts +4 -0
- package/dist/memory/commands/status.d.ts.map +1 -0
- package/dist/memory/commands/view.d.ts +4 -0
- package/dist/memory/commands/view.d.ts.map +1 -0
- package/dist/memory/compaction.d.ts +113 -0
- package/dist/memory/compaction.d.ts.map +1 -0
- package/dist/memory/config.d.ts +27 -0
- package/dist/memory/config.d.ts.map +1 -0
- package/dist/memory/debug-log.d.ts +12 -0
- package/dist/memory/debug-log.d.ts.map +1 -0
- package/dist/memory/hooks/compaction-hook.d.ts +4 -0
- package/dist/memory/hooks/compaction-hook.d.ts.map +1 -0
- package/dist/memory/hooks/compaction-trigger.d.ts +4 -0
- package/dist/memory/hooks/compaction-trigger.d.ts.map +1 -0
- package/dist/memory/hooks/observer-trigger.d.ts +4 -0
- package/dist/memory/hooks/observer-trigger.d.ts.map +1 -0
- package/dist/memory/ids.d.ts +2 -0
- package/dist/memory/ids.d.ts.map +1 -0
- package/dist/memory/index.d.ts +3 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +2 -0
- package/dist/memory/model-budget.d.ts +4 -0
- package/dist/memory/model-budget.d.ts.map +1 -0
- package/dist/memory/observer.d.ts +21 -0
- package/dist/memory/observer.d.ts.map +1 -0
- package/dist/memory/project-observations-store.d.ts +24 -0
- package/dist/memory/project-observations-store.d.ts.map +1 -0
- package/dist/memory/prompts.d.ts +11 -0
- package/dist/memory/prompts.d.ts.map +1 -0
- package/dist/memory/relevance.d.ts +4 -0
- package/dist/memory/relevance.d.ts.map +1 -0
- package/dist/memory/runtime.d.ts +40 -0
- package/dist/memory/runtime.d.ts.map +1 -0
- package/dist/memory/serialize.d.ts +26 -0
- package/dist/memory/serialize.d.ts.map +1 -0
- package/dist/memory/tokens.d.ts +8 -0
- package/dist/memory/tokens.d.ts.map +1 -0
- package/dist/memory/tools/read-project-observations.d.ts +8 -0
- package/dist/memory/tools/read-project-observations.d.ts.map +1 -0
- package/dist/memory/tools/recall-observation.d.ts +63 -0
- package/dist/memory/tools/recall-observation.d.ts.map +1 -0
- package/dist/memory/tools/write-project-observation.d.ts +9 -0
- package/dist/memory/tools/write-project-observation.d.ts.map +1 -0
- package/dist/memory/tools/write-project-observation.js +60 -0
- package/dist/memory/types.d.ts +65 -0
- package/dist/memory/types.d.ts.map +1 -0
- package/dist/preflight.d.ts +27 -0
- package/dist/preflight.d.ts.map +1 -0
- package/dist/preflight.js +3 -1
- package/dist/relay/auto-research.d.ts +64 -0
- package/dist/relay/auto-research.d.ts.map +1 -0
- package/dist/relay/auto-research.js +208 -69
- package/dist/relay/client.d.ts +126 -0
- package/dist/relay/client.d.ts.map +1 -0
- package/dist/relay/dispatcher.d.ts +207 -0
- package/dist/relay/dispatcher.d.ts.map +1 -0
- package/dist/relay/machine-store.d.ts +68 -0
- package/dist/relay/machine-store.d.ts.map +1 -0
- package/dist/relay/models-fetch.d.ts +75 -0
- package/dist/relay/models-fetch.d.ts.map +1 -0
- package/dist/relay/registration.d.ts +81 -0
- package/dist/relay/registration.d.ts.map +1 -0
- package/dist/sdk/agent-core/agent-loop.d.ts +24 -0
- package/dist/sdk/agent-core/agent-loop.d.ts.map +1 -0
- package/dist/sdk/agent-core/agent.d.ts +125 -0
- package/dist/sdk/agent-core/agent.d.ts.map +1 -0
- package/dist/sdk/agent-core/harness/agent-harness.d.ts +92 -0
- package/dist/sdk/agent-core/harness/agent-harness.d.ts.map +1 -0
- package/dist/sdk/agent-core/harness/compaction/branch-summarization.d.ts +53 -0
- package/dist/sdk/agent-core/harness/compaction/branch-summarization.d.ts.map +1 -0
- package/dist/sdk/agent-core/harness/compaction/compaction.d.ts +95 -0
- package/dist/sdk/agent-core/harness/compaction/compaction.d.ts.map +1 -0
- package/dist/sdk/agent-core/harness/compaction/utils.d.ts +25 -0
- package/dist/sdk/agent-core/harness/compaction/utils.d.ts.map +1 -0
- package/dist/sdk/agent-core/harness/env/nodejs.d.ts +51 -0
- package/dist/sdk/agent-core/harness/env/nodejs.d.ts.map +1 -0
- package/dist/sdk/agent-core/harness/messages.d.ts +51 -0
- package/dist/sdk/agent-core/harness/messages.d.ts.map +1 -0
- package/dist/sdk/agent-core/harness/prompt-templates.d.ts +48 -0
- package/dist/sdk/agent-core/harness/prompt-templates.d.ts.map +1 -0
- package/dist/sdk/agent-core/harness/session/jsonl-repo.d.ts +26 -0
- package/dist/sdk/agent-core/harness/session/jsonl-repo.d.ts.map +1 -0
- package/dist/sdk/agent-core/harness/session/jsonl-storage.d.ts +33 -0
- package/dist/sdk/agent-core/harness/session/jsonl-storage.d.ts.map +1 -0
- package/dist/sdk/agent-core/harness/session/memory-repo.d.ts +18 -0
- package/dist/sdk/agent-core/harness/session/memory-repo.d.ts.map +1 -0
- package/dist/sdk/agent-core/harness/session/memory-storage.d.ts +25 -0
- package/dist/sdk/agent-core/harness/session/memory-storage.d.ts.map +1 -0
- package/dist/sdk/agent-core/harness/session/repo-utils.d.ts +11 -0
- package/dist/sdk/agent-core/harness/session/repo-utils.d.ts.map +1 -0
- package/dist/sdk/agent-core/harness/session/session.d.ts +32 -0
- package/dist/sdk/agent-core/harness/session/session.d.ts.map +1 -0
- package/dist/sdk/agent-core/harness/session/uuid.d.ts +2 -0
- package/dist/sdk/agent-core/harness/session/uuid.d.ts.map +1 -0
- package/dist/sdk/agent-core/harness/skills.d.ts +44 -0
- package/dist/sdk/agent-core/harness/skills.d.ts.map +1 -0
- package/dist/sdk/agent-core/harness/system-prompt.d.ts +3 -0
- package/dist/sdk/agent-core/harness/system-prompt.d.ts.map +1 -0
- package/dist/sdk/agent-core/harness/types.d.ts +601 -0
- package/dist/sdk/agent-core/harness/types.d.ts.map +1 -0
- package/dist/sdk/agent-core/harness/utils/shell-output.d.ts +14 -0
- package/dist/sdk/agent-core/harness/utils/shell-output.d.ts.map +1 -0
- package/dist/sdk/agent-core/harness/utils/truncate.d.ts +70 -0
- package/dist/sdk/agent-core/harness/utils/truncate.d.ts.map +1 -0
- package/dist/sdk/agent-core/index.d.ts +20 -0
- package/dist/sdk/agent-core/index.d.ts.map +1 -0
- package/dist/sdk/agent-core/node.d.ts +3 -0
- package/dist/sdk/agent-core/node.d.ts.map +1 -0
- package/dist/sdk/agent-core/proxy.d.ts +69 -0
- package/dist/sdk/agent-core/proxy.d.ts.map +1 -0
- package/dist/sdk/agent-core/types.d.ts +393 -0
- package/dist/sdk/agent-core/types.d.ts.map +1 -0
- package/dist/sdk/ai/api-registry.d.ts +20 -0
- package/dist/sdk/ai/api-registry.d.ts.map +1 -0
- package/dist/sdk/ai/cli.d.ts +3 -0
- package/dist/sdk/ai/cli.d.ts.map +1 -0
- package/dist/sdk/ai/env-api-keys.d.ts +18 -0
- package/dist/sdk/ai/env-api-keys.d.ts.map +1 -0
- package/dist/sdk/ai/env-api-keys.js +9 -49
- package/dist/sdk/ai/image-models.d.ts +10 -0
- package/dist/sdk/ai/image-models.d.ts.map +1 -0
- package/dist/sdk/ai/image-models.generated.d.ts +440 -0
- package/dist/sdk/ai/image-models.generated.d.ts.map +1 -0
- package/dist/sdk/ai/images-api-registry.d.ts +14 -0
- package/dist/sdk/ai/images-api-registry.d.ts.map +1 -0
- package/dist/sdk/ai/images.d.ts +4 -0
- package/dist/sdk/ai/images.d.ts.map +1 -0
- package/dist/sdk/ai/index.d.ts +21 -0
- package/dist/sdk/ai/index.d.ts.map +1 -0
- package/dist/sdk/ai/models.d.ts +18 -0
- package/dist/sdk/ai/models.d.ts.map +1 -0
- package/dist/sdk/ai/models.generated.d.ts +17349 -0
- package/dist/sdk/ai/models.generated.d.ts.map +1 -0
- package/dist/sdk/ai/oauth.d.ts +2 -0
- package/dist/sdk/ai/oauth.d.ts.map +1 -0
- package/dist/sdk/ai/providers/anthropic.d.ts +54 -0
- package/dist/sdk/ai/providers/anthropic.d.ts.map +1 -0
- package/dist/sdk/ai/providers/faux.d.ts +56 -0
- package/dist/sdk/ai/providers/faux.d.ts.map +1 -0
- package/dist/sdk/ai/providers/github-copilot-headers.d.ts +8 -0
- package/dist/sdk/ai/providers/github-copilot-headers.d.ts.map +1 -0
- package/dist/sdk/ai/providers/openai-completions.d.ts +19 -0
- package/dist/sdk/ai/providers/openai-completions.d.ts.map +1 -0
- package/dist/sdk/ai/providers/openai-prompt-cache.d.ts +3 -0
- package/dist/sdk/ai/providers/openai-prompt-cache.d.ts.map +1 -0
- package/dist/sdk/ai/providers/register-builtins.d.ts +15 -0
- package/dist/sdk/ai/providers/register-builtins.d.ts.map +1 -0
- package/dist/sdk/ai/providers/simple-options.d.ts +8 -0
- package/dist/sdk/ai/providers/simple-options.d.ts.map +1 -0
- package/dist/sdk/ai/providers/transform-messages.d.ts +8 -0
- package/dist/sdk/ai/providers/transform-messages.d.ts.map +1 -0
- package/dist/sdk/ai/session-resources.d.ts +4 -0
- package/dist/sdk/ai/session-resources.d.ts.map +1 -0
- package/dist/sdk/ai/stream.d.ts +8 -0
- package/dist/sdk/ai/stream.d.ts.map +1 -0
- package/dist/sdk/ai/types.d.ts +488 -0
- package/dist/sdk/ai/types.d.ts.map +1 -0
- package/dist/sdk/ai/utils/diagnostics.d.ts +19 -0
- package/dist/sdk/ai/utils/diagnostics.d.ts.map +1 -0
- package/dist/sdk/ai/utils/event-stream.d.ts +21 -0
- package/dist/sdk/ai/utils/event-stream.d.ts.map +1 -0
- package/dist/sdk/ai/utils/hash.d.ts +3 -0
- package/dist/sdk/ai/utils/hash.d.ts.map +1 -0
- package/dist/sdk/ai/utils/headers.d.ts +2 -0
- package/dist/sdk/ai/utils/headers.d.ts.map +1 -0
- package/dist/sdk/ai/utils/json-parse.d.ts +16 -0
- package/dist/sdk/ai/utils/json-parse.d.ts.map +1 -0
- package/dist/sdk/ai/utils/node-http-proxy.d.ts +10 -0
- package/dist/sdk/ai/utils/node-http-proxy.d.ts.map +1 -0
- package/dist/sdk/ai/utils/oauth/anthropic.d.ts +25 -0
- package/dist/sdk/ai/utils/oauth/anthropic.d.ts.map +1 -0
- package/dist/sdk/ai/utils/oauth/anthropic.js +1 -1
- package/dist/sdk/ai/utils/oauth/device-code.d.ts +19 -0
- package/dist/sdk/ai/utils/oauth/device-code.d.ts.map +1 -0
- package/dist/sdk/ai/utils/oauth/github-copilot.d.ts +30 -0
- package/dist/sdk/ai/utils/oauth/github-copilot.d.ts.map +1 -0
- package/dist/sdk/ai/utils/oauth/index.d.ts +58 -0
- package/dist/sdk/ai/utils/oauth/index.d.ts.map +1 -0
- package/dist/sdk/ai/utils/oauth/oauth-page.d.ts +3 -0
- package/dist/sdk/ai/utils/oauth/oauth-page.d.ts.map +1 -0
- package/dist/sdk/ai/utils/oauth/openai-codex.d.ts +34 -0
- package/dist/sdk/ai/utils/oauth/openai-codex.d.ts.map +1 -0
- package/dist/sdk/ai/utils/oauth/openai-codex.js +1 -1
- package/dist/sdk/ai/utils/oauth/pkce.d.ts +13 -0
- package/dist/sdk/ai/utils/oauth/pkce.d.ts.map +1 -0
- package/dist/sdk/ai/utils/oauth/types.d.ts +64 -0
- package/dist/sdk/ai/utils/oauth/types.d.ts.map +1 -0
- package/dist/sdk/ai/utils/overflow.d.ts +56 -0
- package/dist/sdk/ai/utils/overflow.d.ts.map +1 -0
- package/dist/sdk/ai/utils/sanitize-unicode.d.ts +22 -0
- package/dist/sdk/ai/utils/sanitize-unicode.d.ts.map +1 -0
- package/dist/sdk/ai/utils/typebox-helpers.d.ts +17 -0
- package/dist/sdk/ai/utils/typebox-helpers.d.ts.map +1 -0
- package/dist/sdk/ai/utils/validation.d.ts +18 -0
- package/dist/sdk/ai/utils/validation.d.ts.map +1 -0
- package/dist/sdk/coding-agent/cli.d.ts +3 -0
- package/dist/sdk/coding-agent/cli.d.ts.map +1 -0
- package/dist/sdk/coding-agent/config.d.ts +71 -0
- package/dist/sdk/coding-agent/config.d.ts.map +1 -0
- package/dist/sdk/coding-agent/config.js +2 -69
- package/dist/sdk/coding-agent/core/agent-session-runtime.d.ts +117 -0
- package/dist/sdk/coding-agent/core/agent-session-runtime.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/agent-session-services.d.ts +86 -0
- package/dist/sdk/coding-agent/core/agent-session-services.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/agent-session.d.ts +626 -0
- package/dist/sdk/coding-agent/core/agent-session.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/auth-guidance.d.ts +5 -0
- package/dist/sdk/coding-agent/core/auth-guidance.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/auth-storage.d.ts +145 -0
- package/dist/sdk/coding-agent/core/auth-storage.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/bash-executor.d.ts +32 -0
- package/dist/sdk/coding-agent/core/bash-executor.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/compaction/branch-summarization.d.ts +88 -0
- package/dist/sdk/coding-agent/core/compaction/branch-summarization.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/compaction/compaction.d.ts +142 -0
- package/dist/sdk/coding-agent/core/compaction/compaction.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/compaction/index.d.ts +7 -0
- package/dist/sdk/coding-agent/core/compaction/index.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/compaction/utils.d.ts +38 -0
- package/dist/sdk/coding-agent/core/compaction/utils.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/defaults.d.ts +3 -0
- package/dist/sdk/coding-agent/core/defaults.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/diagnostics.d.ts +15 -0
- package/dist/sdk/coding-agent/core/diagnostics.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/event-bus.d.ts +9 -0
- package/dist/sdk/coding-agent/core/event-bus.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/exec.d.ts +29 -0
- package/dist/sdk/coding-agent/core/exec.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/extensions/index.d.ts +12 -0
- package/dist/sdk/coding-agent/core/extensions/index.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/extensions/loader.d.ts +24 -0
- package/dist/sdk/coding-agent/core/extensions/loader.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/extensions/loader.js +3 -35
- package/dist/sdk/coding-agent/core/extensions/runner.d.ts +161 -0
- package/dist/sdk/coding-agent/core/extensions/runner.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/extensions/runner.js +1 -2
- package/dist/sdk/coding-agent/core/extensions/types.d.ts +1181 -0
- package/dist/sdk/coding-agent/core/extensions/types.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/extensions/wrapper.d.ts +20 -0
- package/dist/sdk/coding-agent/core/extensions/wrapper.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/http-dispatcher.d.ts +21 -0
- package/dist/sdk/coding-agent/core/http-dispatcher.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/index.d.ts +12 -0
- package/dist/sdk/coding-agent/core/index.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/keybindings.d.ts +371 -0
- package/dist/sdk/coding-agent/core/keybindings.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/messages.d.ts +77 -0
- package/dist/sdk/coding-agent/core/messages.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/model-registry.d.ts +150 -0
- package/dist/sdk/coding-agent/core/model-registry.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/model-resolver-utils.d.ts +7 -0
- package/dist/sdk/coding-agent/core/model-resolver-utils.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/model-resolver-utils.js +8 -0
- package/dist/sdk/coding-agent/core/model-resolver.d.ts +110 -0
- package/dist/sdk/coding-agent/core/model-resolver.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/model-resolver.js +1 -1
- package/dist/sdk/coding-agent/core/output-guard.d.ts +6 -0
- package/dist/sdk/coding-agent/core/output-guard.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/package-manager.d.ts +204 -0
- package/dist/sdk/coding-agent/core/package-manager.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/prompt-templates.d.ts +52 -0
- package/dist/sdk/coding-agent/core/prompt-templates.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/provider-display-names.d.ts +2 -0
- package/dist/sdk/coding-agent/core/provider-display-names.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/resolve-config-value.d.ts +23 -0
- package/dist/sdk/coding-agent/core/resolve-config-value.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/resource-loader.d.ts +194 -0
- package/dist/sdk/coding-agent/core/resource-loader.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/resource-loader.js +1 -1
- package/dist/sdk/coding-agent/core/sdk.d.ts +107 -0
- package/dist/sdk/coding-agent/core/sdk.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/session-cwd.d.ts +19 -0
- package/dist/sdk/coding-agent/core/session-cwd.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/session-manager.d.ts +333 -0
- package/dist/sdk/coding-agent/core/session-manager.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/settings-manager.d.ts +209 -0
- package/dist/sdk/coding-agent/core/settings-manager.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/settings-manager.js +1 -170
- package/dist/sdk/coding-agent/core/skills.d.ts +60 -0
- package/dist/sdk/coding-agent/core/skills.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/slash-commands.d.ts +14 -0
- package/dist/sdk/coding-agent/core/slash-commands.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/source-info.d.ts +18 -0
- package/dist/sdk/coding-agent/core/source-info.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/system-prompt.d.ts +28 -0
- package/dist/sdk/coding-agent/core/system-prompt.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/system-prompt.js +3 -1
- package/dist/sdk/coding-agent/core/telemetry.d.ts +3 -0
- package/dist/sdk/coding-agent/core/telemetry.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/theme.d.ts +28 -0
- package/dist/sdk/coding-agent/core/theme.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/theme.js +202 -0
- package/dist/sdk/coding-agent/core/timings.d.ts +8 -0
- package/dist/sdk/coding-agent/core/timings.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/tools/bash.d.ts +63 -0
- package/dist/sdk/coding-agent/core/tools/bash.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/tools/bash.js +17 -18
- package/dist/sdk/coding-agent/core/tools/edit-diff.d.ts +87 -0
- package/dist/sdk/coding-agent/core/tools/edit-diff.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/tools/edit.d.ts +39 -0
- package/dist/sdk/coding-agent/core/tools/edit.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/tools/edit.js +7 -8
- package/dist/sdk/coding-agent/core/tools/file-mutation-queue.d.ts +6 -0
- package/dist/sdk/coding-agent/core/tools/file-mutation-queue.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/tools/find.d.ts +35 -0
- package/dist/sdk/coding-agent/core/tools/find.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/tools/find.js +9 -13
- package/dist/sdk/coding-agent/core/tools/grep.d.ts +37 -0
- package/dist/sdk/coding-agent/core/tools/grep.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/tools/grep.js +10 -14
- package/dist/sdk/coding-agent/core/tools/index.d.ts +40 -0
- package/dist/sdk/coding-agent/core/tools/index.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/tools/ls.d.ts +37 -0
- package/dist/sdk/coding-agent/core/tools/ls.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/tools/ls.js +9 -10
- package/dist/sdk/coding-agent/core/tools/output-accumulator.d.ts +52 -0
- package/dist/sdk/coding-agent/core/tools/output-accumulator.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/tools/path-utils.d.ts +8 -0
- package/dist/sdk/coding-agent/core/tools/path-utils.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/tools/read.d.ts +35 -0
- package/dist/sdk/coding-agent/core/tools/read.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/tools/read.js +33 -35
- package/dist/sdk/coding-agent/core/tools/render-diff.d.ts +17 -0
- package/dist/sdk/coding-agent/core/tools/render-diff.d.ts.map +1 -0
- package/dist/sdk/coding-agent/{modes/interactive/components/diff.js → core/tools/render-diff.js} +18 -31
- package/dist/sdk/coding-agent/core/tools/render-utils.d.ts +21 -0
- package/dist/sdk/coding-agent/core/tools/render-utils.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/tools/tool-definition-wrapper.d.ts +14 -0
- package/dist/sdk/coding-agent/core/tools/tool-definition-wrapper.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/tools/truncate.d.ts +70 -0
- package/dist/sdk/coding-agent/core/tools/truncate.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/tools/write.d.ts +26 -0
- package/dist/sdk/coding-agent/core/tools/write.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/tools/write.js +10 -11
- package/dist/sdk/coding-agent/index.d.ts +29 -0
- package/dist/sdk/coding-agent/index.d.ts.map +1 -0
- package/dist/sdk/coding-agent/index.js +7 -5
- package/dist/sdk/coding-agent/main.d.ts +2 -0
- package/dist/sdk/coding-agent/main.d.ts.map +1 -0
- package/dist/sdk/coding-agent/migrations.d.ts +33 -0
- package/dist/sdk/coding-agent/migrations.d.ts.map +1 -0
- package/dist/sdk/coding-agent/modes/index.d.ts +8 -0
- package/dist/sdk/coding-agent/modes/index.d.ts.map +1 -0
- package/dist/sdk/coding-agent/modes/index.js +0 -1
- package/dist/sdk/coding-agent/modes/print-mode.d.ts +28 -0
- package/dist/sdk/coding-agent/modes/print-mode.d.ts.map +1 -0
- package/dist/sdk/coding-agent/modes/rpc/jsonl.d.ts +17 -0
- package/dist/sdk/coding-agent/modes/rpc/jsonl.d.ts.map +1 -0
- package/dist/sdk/coding-agent/modes/rpc/rpc-client.d.ts +224 -0
- package/dist/sdk/coding-agent/modes/rpc/rpc-client.d.ts.map +1 -0
- package/dist/sdk/coding-agent/modes/rpc/rpc-mode.d.ts +20 -0
- package/dist/sdk/coding-agent/modes/rpc/rpc-mode.d.ts.map +1 -0
- package/dist/sdk/coding-agent/modes/rpc/rpc-mode.js +2 -2
- package/dist/sdk/coding-agent/modes/rpc/rpc-types.d.ts +419 -0
- package/dist/sdk/coding-agent/modes/rpc/rpc-types.d.ts.map +1 -0
- package/dist/sdk/coding-agent/utils/ansi.d.ts +2 -0
- package/dist/sdk/coding-agent/utils/ansi.d.ts.map +1 -0
- package/dist/sdk/coding-agent/utils/changelog.d.ts +21 -0
- package/dist/sdk/coding-agent/utils/changelog.d.ts.map +1 -0
- package/dist/sdk/coding-agent/utils/child-process.d.ts +15 -0
- package/dist/sdk/coding-agent/utils/child-process.d.ts.map +1 -0
- package/dist/sdk/coding-agent/utils/clipboard-image.d.ts +11 -0
- package/dist/sdk/coding-agent/utils/clipboard-image.d.ts.map +1 -0
- package/dist/sdk/coding-agent/utils/clipboard-native.d.ts +8 -0
- package/dist/sdk/coding-agent/utils/clipboard-native.d.ts.map +1 -0
- package/dist/sdk/coding-agent/utils/clipboard.d.ts +2 -0
- package/dist/sdk/coding-agent/utils/clipboard.d.ts.map +1 -0
- package/dist/sdk/coding-agent/utils/exif-orientation.d.ts +5 -0
- package/dist/sdk/coding-agent/utils/exif-orientation.d.ts.map +1 -0
- package/dist/sdk/coding-agent/utils/frontmatter.d.ts +8 -0
- package/dist/sdk/coding-agent/utils/frontmatter.d.ts.map +1 -0
- package/dist/sdk/coding-agent/utils/fs-watch.d.ts +5 -0
- package/dist/sdk/coding-agent/utils/fs-watch.d.ts.map +1 -0
- package/dist/sdk/coding-agent/utils/git.d.ts +26 -0
- package/dist/sdk/coding-agent/utils/git.d.ts.map +1 -0
- package/dist/sdk/coding-agent/utils/html.d.ts +7 -0
- package/dist/sdk/coding-agent/utils/html.d.ts.map +1 -0
- package/dist/sdk/coding-agent/utils/image-convert.d.ts +9 -0
- package/dist/sdk/coding-agent/utils/image-convert.d.ts.map +1 -0
- package/dist/sdk/coding-agent/utils/image-resize.d.ts +36 -0
- package/dist/sdk/coding-agent/utils/image-resize.d.ts.map +1 -0
- package/dist/sdk/coding-agent/utils/mime.d.ts +3 -0
- package/dist/sdk/coding-agent/utils/mime.d.ts.map +1 -0
- package/dist/sdk/coding-agent/utils/paths.d.ts +31 -0
- package/dist/sdk/coding-agent/utils/paths.d.ts.map +1 -0
- package/dist/sdk/coding-agent/utils/photon.d.ts +13 -0
- package/dist/sdk/coding-agent/utils/photon.d.ts.map +1 -0
- package/dist/sdk/coding-agent/utils/photon.js +2 -10
- package/dist/sdk/coding-agent/utils/pi-user-agent.d.ts +2 -0
- package/dist/sdk/coding-agent/utils/pi-user-agent.d.ts.map +1 -0
- package/dist/sdk/coding-agent/utils/pi-user-agent.js +1 -2
- package/dist/sdk/coding-agent/utils/shell.d.ts +30 -0
- package/dist/sdk/coding-agent/utils/shell.d.ts.map +1 -0
- package/dist/sdk/coding-agent/utils/sleep.d.ts +5 -0
- package/dist/sdk/coding-agent/utils/sleep.d.ts.map +1 -0
- package/dist/sdk/coding-agent/utils/syntax-highlight.d.ts +12 -0
- package/dist/sdk/coding-agent/utils/syntax-highlight.d.ts.map +1 -0
- package/dist/sdk/coding-agent/utils/tools-manager.d.ts +3 -0
- package/dist/sdk/coding-agent/utils/tools-manager.d.ts.map +1 -0
- package/dist/sdk/coding-agent/utils/version-check.d.ts +15 -0
- package/dist/sdk/coding-agent/utils/version-check.d.ts.map +1 -0
- package/dist/sdk/coding-agent/utils/windows-self-update.d.ts +3 -0
- package/dist/sdk/coding-agent/utils/windows-self-update.d.ts.map +1 -0
- package/dist/server/agent-bridge.d.ts +308 -0
- package/dist/server/agent-bridge.d.ts.map +1 -0
- package/dist/server/agent-bridge.js +2 -1
- package/dist/server/handlers/errors.d.ts +26 -0
- package/dist/server/handlers/errors.d.ts.map +1 -0
- package/dist/server/handlers/paths-autocomplete.d.ts +45 -0
- package/dist/server/handlers/paths-autocomplete.d.ts.map +1 -0
- package/dist/server/handlers/projects.d.ts +58 -0
- package/dist/server/handlers/projects.d.ts.map +1 -0
- package/dist/server/handlers/queue.d.ts +27 -0
- package/dist/server/handlers/queue.d.ts.map +1 -0
- package/dist/server/handlers/sessions.d.ts +50 -0
- package/dist/server/handlers/sessions.d.ts.map +1 -0
- package/dist/server/paths.d.ts +51 -0
- package/dist/server/paths.d.ts.map +1 -0
- package/dist/server/session-stream.d.ts +379 -0
- package/dist/server/session-stream.d.ts.map +1 -0
- package/dist/server/shutdown.d.ts +102 -0
- package/dist/server/shutdown.d.ts.map +1 -0
- package/dist/server/storage.d.ts +287 -0
- package/dist/server/storage.d.ts.map +1 -0
- package/dist/server/title-generator.d.ts +25 -0
- package/dist/server/title-generator.d.ts.map +1 -0
- package/dist/server/wire.d.ts +448 -0
- package/dist/server/wire.d.ts.map +1 -0
- package/dist/studio-binding.d.ts +44 -0
- package/dist/studio-binding.d.ts.map +1 -0
- package/dist/studio-binding.js +1 -1
- package/package.json +11 -1
- package/dist/sdk/coding-agent/bun/cli.js +0 -7
- package/dist/sdk/coding-agent/bun/restore-sandbox-env.js +0 -31
- package/dist/sdk/coding-agent/cli/args.js +0 -340
- package/dist/sdk/coding-agent/cli/file-processor.js +0 -82
- package/dist/sdk/coding-agent/cli/initial-message.js +0 -21
- package/dist/sdk/coding-agent/core/footer-data-provider.js +0 -309
- package/dist/sdk/coding-agent/modes/interactive/components/keybinding-hints.js +0 -35
- package/dist/sdk/coding-agent/modes/interactive/components/visual-truncate.js +0 -26
- package/dist/sdk/coding-agent/modes/interactive/interactive-mode.js +0 -3
- package/dist/sdk/coding-agent/modes/interactive/theme/theme.js +0 -1022
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `spectral serve` — relay orchestration entry point.
|
|
3
|
+
*
|
|
4
|
+
* Architecture (post-Batch 2 cutover):
|
|
5
|
+
* 1. Pre-flight: `requireLogin()` — same UX as the main spawn path.
|
|
6
|
+
* 2. Pre-flight: `preflightSqlite()` — fail fast on a broken native module.
|
|
7
|
+
* 3. Open the SQLite store and construct a `SessionStreamManager`.
|
|
8
|
+
* 4. Register this machine with the backend (`ensureMachineRegistered`),
|
|
9
|
+
* which either reuses a fresh `machine.json` or POSTs to
|
|
10
|
+
* `/api/machines/register` and persists the issued JWT.
|
|
11
|
+
* 5. Open a single long-lived `RelayClient` to `/agent-connection` carrying
|
|
12
|
+
* the machine JWT. Reconnects forever with backoff.
|
|
13
|
+
* 6. Until Batch 3 ships, every inbound non-pong frame is acked back as
|
|
14
|
+
* `{kind:"ack", echo:<frame>}`. This proves the WS is bidirectional
|
|
15
|
+
* end-to-end and gives operators a smoke check before envelope routing.
|
|
16
|
+
* 7. SIGINT/SIGTERM trigger graceful shutdown: dispose the relay (close 1000),
|
|
17
|
+
* dispose the manager (tear down pi streams), close the store.
|
|
18
|
+
*
|
|
19
|
+
* What this module is NOT (yet):
|
|
20
|
+
* - It does NOT translate relay envelopes into REST handler calls or WS
|
|
21
|
+
* event broadcasts. That dispatcher is Batch 3.
|
|
22
|
+
* - It does NOT bind any local port. The local HTTP server is gone.
|
|
23
|
+
*
|
|
24
|
+
* Flag surface:
|
|
25
|
+
* - `--machine-name <name>` — display name used at registration time.
|
|
26
|
+
* - `--port <n>` / `-p <n>` / `SPECTRAL_PORT` — accepted but warned-and-ignored
|
|
27
|
+
* so users updating from the pre-relay version don't get a hard error.
|
|
28
|
+
*
|
|
29
|
+
* The exported `runServe()` returns a handle so tests can drive the relay
|
|
30
|
+
* loop in-process without spawning a subprocess. Tests inject
|
|
31
|
+
* `relayUrlOverride` + `fetchImpl` + `webSocketImpl` to point at an
|
|
32
|
+
* in-process fake backend.
|
|
33
|
+
*/
|
|
34
|
+
import { RelayClient } from "../relay/client.js";
|
|
35
|
+
import type { BridgeFactory } from "../server/session-stream.js";
|
|
36
|
+
import { SessionStreamManager } from "../server/session-stream.js";
|
|
37
|
+
import { SessionStore } from "../server/storage.js";
|
|
38
|
+
/**
|
|
39
|
+
* Translate a backend HTTP(S) base URL to the relay WS(S) URL.
|
|
40
|
+
* `http://x:y` → `ws://x:y/agent-connection`
|
|
41
|
+
* `https://x` → `wss://x/agent-connection`
|
|
42
|
+
*/
|
|
43
|
+
export declare function deriveRelayUrl(backendUrl: string): string;
|
|
44
|
+
export interface ParsedServeArgs {
|
|
45
|
+
/** Optional machine display name override. */
|
|
46
|
+
machineName?: string;
|
|
47
|
+
/**
|
|
48
|
+
* Whether the user passed a deprecated `--port`/`SPECTRAL_PORT`. Surfaced
|
|
49
|
+
* so the CLI driver can emit a single, consistent warning.
|
|
50
|
+
*/
|
|
51
|
+
deprecatedPort: boolean;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Parse the `serve` subcommand's flag surface. Manual parser, same style as
|
|
55
|
+
* `login`/`logout` (no CLI framework).
|
|
56
|
+
*
|
|
57
|
+
* Accepted:
|
|
58
|
+
* --machine-name <name>
|
|
59
|
+
* --machine-name=<name>
|
|
60
|
+
* Deprecated (warn, don't error):
|
|
61
|
+
* --port <n> / -p <n> / --port=<n>
|
|
62
|
+
*
|
|
63
|
+
* Anything else throws so users notice typos.
|
|
64
|
+
*/
|
|
65
|
+
export declare function parseServeArgs(args: string[]): ParsedServeArgs;
|
|
66
|
+
export interface RunServeOptions {
|
|
67
|
+
/** Working directory pi runs in. Defaults to homedir(). */
|
|
68
|
+
cwd?: string;
|
|
69
|
+
/** Skip SIGINT/SIGTERM handlers (tests). */
|
|
70
|
+
installSignalHandlers?: boolean;
|
|
71
|
+
/** Suppress startup banner (tests). */
|
|
72
|
+
silent?: boolean;
|
|
73
|
+
/** Override the SQLite path (tests). */
|
|
74
|
+
dbPath?: string;
|
|
75
|
+
/** Bridge factory for `SessionStreamManager` (tests). */
|
|
76
|
+
bridgeFactory?: BridgeFactory;
|
|
77
|
+
/** Display-name override (passed by `runServeCli` from `--machine-name`). */
|
|
78
|
+
machineName?: string;
|
|
79
|
+
/**
|
|
80
|
+
* Override the backend base URL. Honors `SPECTRAL_BACKEND_URL` env var
|
|
81
|
+
* when not set explicitly. Tests pass this to point at an in-process fake.
|
|
82
|
+
*/
|
|
83
|
+
backendUrlOverride?: string;
|
|
84
|
+
/**
|
|
85
|
+
* Override the derived relay URL. Honors `SPECTRAL_RELAY_URL` env var when
|
|
86
|
+
* not set explicitly. Tests use this to point at an in-process WS server.
|
|
87
|
+
*/
|
|
88
|
+
relayUrlOverride?: string;
|
|
89
|
+
/** Override fetch (tests, registration). */
|
|
90
|
+
fetchImpl?: typeof fetch;
|
|
91
|
+
/** Override the WebSocket constructor (tests, RelayClient). */
|
|
92
|
+
webSocketImpl?: ConstructorParameters<typeof RelayClient>[0]["webSocketImpl"];
|
|
93
|
+
}
|
|
94
|
+
export interface RunServeHandle {
|
|
95
|
+
/** Open store. Exposed for tests. */
|
|
96
|
+
store: SessionStore;
|
|
97
|
+
/** Manager driving pi streams. Exposed for tests. */
|
|
98
|
+
manager: SessionStreamManager;
|
|
99
|
+
/** Live relay client. Exposed for tests. */
|
|
100
|
+
relay: RelayClient;
|
|
101
|
+
/** Resolved machine id (from registration). */
|
|
102
|
+
machineId: string;
|
|
103
|
+
/** Close everything cleanly. Idempotent. */
|
|
104
|
+
close(): Promise<void>;
|
|
105
|
+
}
|
|
106
|
+
export declare function runServe(opts?: RunServeOptions): Promise<RunServeHandle>;
|
|
107
|
+
/**
|
|
108
|
+
* CLI entry point used by `cli.ts`. Surfaces the deprecation warning for
|
|
109
|
+
* `--port`/`SPECTRAL_PORT` once, then defers to `runServe`.
|
|
110
|
+
*/
|
|
111
|
+
export declare function runServeCli(rawArgs: string[]): Promise<RunServeHandle>;
|
|
112
|
+
//# sourceMappingURL=serve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAiBH,OAAO,EAAE,WAAW,EAAmB,MAAM,oBAAoB,CAAC;AAUlE,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAmB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAerE;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAazD;AAED,MAAM,WAAW,eAAe;IAC9B,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,eAAe,CA6B9D;AAED,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,uCAAuC;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4CAA4C;IAC5C,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,qBAAqB,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;CAC/E;AAED,MAAM,WAAW,cAAc;IAC7B,qCAAqC;IACrC,KAAK,EAAE,YAAY,CAAC;IACpB,qDAAqD;IACrD,OAAO,EAAE,oBAAoB,CAAC;IAC9B,4CAA4C;IAC5C,KAAK,EAAE,WAAW,CAAC;IACnB,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,wBAAsB,QAAQ,CAAC,IAAI,GAAE,eAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CA0RlF;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAa5E"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `spectral unbind` — remove the local Studio project binding.
|
|
3
|
+
*
|
|
4
|
+
* Reads `.aexol/aexol.jsonc`, reports what project was unbound, and deletes
|
|
5
|
+
* the file. Idempotent: missing binding is not an error.
|
|
6
|
+
*/
|
|
7
|
+
export declare function runUnbind(): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=unbind.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unbind.d.ts","sourceRoot":"","sources":["../../src/commands/unbind.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CA+B/C"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spectral configuration: persisted Aexol MCP credentials.
|
|
3
|
+
*
|
|
4
|
+
* Stored at ~/.spectral/config.json with mode 0600 (user read/write only).
|
|
5
|
+
* The directory is created with mode 0700.
|
|
6
|
+
*
|
|
7
|
+
* Keep this module zero-side-effect so it can be imported from both the
|
|
8
|
+
* CLI entry (pre-flight check) and the pi extension.
|
|
9
|
+
*
|
|
10
|
+
* `getConfigDir()` honors `SPECTRAL_CONFIG_DIR` so tests can redirect to a
|
|
11
|
+
* temporary directory without touching the real `~/.spectral`.
|
|
12
|
+
*/
|
|
13
|
+
export declare const DEFAULT_API_URL = "https://api.aexol.ai/mcp";
|
|
14
|
+
export declare const TEAM_API_KEY_PREFIX = "sk-aexol-team-";
|
|
15
|
+
export interface SpectralConfig {
|
|
16
|
+
apiUrl: string;
|
|
17
|
+
teamApiKey: string;
|
|
18
|
+
/** User JWT from OAuth login. When present, used for machine registration (owns the machine). */
|
|
19
|
+
userJwt?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Resolve the directory used to store Spectral configuration.
|
|
23
|
+
*
|
|
24
|
+
* Honors `SPECTRAL_CONFIG_DIR` first (used by tests and CI), then falls back
|
|
25
|
+
* to `<HOMEDIR>/.spectral`. Computed lazily on every call so test-time env
|
|
26
|
+
* mutation works without re-importing the module.
|
|
27
|
+
*/
|
|
28
|
+
export declare function getConfigDir(): string;
|
|
29
|
+
/** Path to the config JSON file. Computed lazily — see `getConfigDir`. */
|
|
30
|
+
export declare function getConfigFile(): string;
|
|
31
|
+
/**
|
|
32
|
+
* Backwards-compatible aliases for code that imported the old top-level
|
|
33
|
+
* constants. They eagerly resolve at import time, so they reflect the env
|
|
34
|
+
* state at startup. New code should call `getConfigDir()` / `getConfigFile()`
|
|
35
|
+
* directly so test-time env overrides take effect.
|
|
36
|
+
*/
|
|
37
|
+
export declare const CONFIG_DIR: string;
|
|
38
|
+
export declare const CONFIG_FILE: string;
|
|
39
|
+
/** Resolve the effective API URL: env wins, then stored value, then default. */
|
|
40
|
+
export declare function getApiUrl(stored?: string): string;
|
|
41
|
+
/** Validate the team API key prefix. The full token check happens server-side. */
|
|
42
|
+
export declare function validateTeamApiKey(key: unknown): key is string;
|
|
43
|
+
/** Read config; returns null if missing or malformed. Never throws. */
|
|
44
|
+
export declare function readConfig(): Promise<SpectralConfig | null>;
|
|
45
|
+
/** Persist config with restrictive permissions (dir 0700, file 0600). */
|
|
46
|
+
export declare function writeConfig(cfg: SpectralConfig): Promise<void>;
|
|
47
|
+
/** Delete config; returns true if a file was removed, false if there was nothing to remove. */
|
|
48
|
+
export declare function deleteConfig(): Promise<boolean>;
|
|
49
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,eAAO,MAAM,eAAe,6BAA6B,CAAC;AAC1D,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AAEpD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,iGAAiG;IACjG,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,0EAA0E;AAC1E,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;;;;GAKG;AACH,eAAO,MAAM,UAAU,QAAiB,CAAC;AACzC,eAAO,MAAM,WAAW,QAAkB,CAAC;AAE3C,gFAAgF;AAChF,wBAAgB,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAE9D;AAED,uEAAuE;AACvE,wBAAsB,UAAU,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CA2BjE;AAED,yEAAyE;AACzE,wBAAsB,WAAW,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAQpE;AAED,+FAA+F;AAC/F,wBAAsB,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CASrD"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Design Guidelines
|
|
3
|
+
*
|
|
4
|
+
* Anti-AI-slop rules and design philosophy distilled from the Open Design
|
|
5
|
+
* project (https://github.com/nexu-io/open-design). These guidelines are
|
|
6
|
+
* injected into the LLM's context when it begins a design task to improve
|
|
7
|
+
* output quality and avoid common AI-generated design tropes.
|
|
8
|
+
*/
|
|
9
|
+
/** Anti-slop rules — what to avoid in AI-generated design. */
|
|
10
|
+
export declare const ANTI_SLOP_RULES = "# Anti-AI-Slop Design Rules\n\nThese rules prevent the most common \"AI-generated look\" tropes. Apply them to every design artifact you produce.\n\n## Color\n- \u274C Warm beige/cream/peach/pink/orange-brown \"AI canvas\" backgrounds \u2014 unless the brand explicitly owns these colors\n- \u274C Aggressive purple-to-orange or blue-to-pink gradients on hero sections\n- \u2705 Use the design system's defined palette. Backgrounds come from the brand, not defaults.\n- \u2705 Prefer solid backgrounds. Gradients only when the design system calls for them.\n- \u2705 Dark mode systems (Linear-style) use true dark grays (#1a1a1a, #212121), not warm dark browns.\n\n## Typography\n- \u274C Inter as a default for everything \u2014 it's the \"AI font\" because it ships everywhere\n- \u274C Roboto unless the design system is Material Design\n- \u274C Fraunces, Playfair Display, or other \"AI serif\" fonts used without brand intent\n- \u274C Random font sizes \u2014 every size should come from the design system's scale\n- \u2705 Use the design system's font stack. If none specified, use system fonts (-apple-system, \"Segoe UI\")\n- \u2705 Headlines: 700-800 weight, tight line-height (1.05-1.15)\n- \u2705 Body: 400 weight, comfortable line-height (1.5-1.7)\n\n## Layout\n- \u274C Cards with a left-border color accent stripe (the #1 AI slop signature)\n- \u274C Rounded boxes everywhere \u2014 vary radius by component type\n- \u274C Three feature cards in a row with identical icon-above-title structure\n- \u274C Centered text for everything\n- \u2705 Alternate section backgrounds to create visual rhythm\n- \u2705 Vary section layouts: two-column, grid, masonry, full-width, split\n- \u2705 Use whitespace as a design element \u2014 not every gap needs a border or shadow\n\n## Content\n- \u274C Lorem ipsum or placeholder text\n- \u274C Emoji as primary iconography \u2014 use Unicode symbols or SVG icons instead\n- \u274C Filler copy: \"Our platform leverages cutting-edge AI to revolutionize your workflow\"\n- \u274C Made-up statistics: \"10x faster\", \"99.9% uptime\", \"500+ integrations\"\n- \u2705 Every word should earn its place. If a section feels empty, redesign it \u2014 don't pad it.\n- \u2705 Write concrete, specific copy. \"Syncs in 2.3 seconds\" beats \"Lightning fast\"\n- \u2705 Images: use gradient shapes or CSS art as placeholders, not gray rectangles\n\n## Components\n- \u274C Generic blue (#3B82F6 / Tailwind blue-500) buttons on every page\n- \u274C Cards with identical border-radius, padding, and shadow\n- \u274C The exact same button style for primary and secondary CTAs\n- \u2705 Primary buttons: filled with accent color. Secondary: outlined or ghost.\n- \u2705 Cards can have different treatments: some with borders, some with shadows, some flat\n- \u2705 Add hover/active states to every interactive element\n\n## Interactions\n- \u274C No hover states\n- \u274C Instant transitions\n- \u2705 Subtle hover effects: scale(1.01), shadow lift, color shift\n- \u2705 Smooth transitions: 150-300ms ease\n- \u2705 Active/pressed states for mobile touch targets\n\n## The \"Would Apple/Stripe/Linear ship this?\" Test\n\nBefore finalizing, look at your output and ask:\n1. Would this color palette work at a Fortune 500 company?\n2. Does the typography feel intentional or accidental?\n3. Does every section have a reason to exist?\n4. Would a professional designer recognize the system behind this?\n\nIf the answer to any of these is \"no\", revise.";
|
|
11
|
+
/** Five-dimension self-critique framework. */
|
|
12
|
+
export declare const CRITIQUE_FRAMEWORK = "# 5-Dimension Self-Critique\n\nAfter building a design artifact, run this critique against your output. Fix issues before showing the user.\n\n## Dimension 1 \u2014 Color Harmony\n- Do all colors come from the design system's palette?\n- Is the contrast ratio sufficient for readability (4.5:1 minimum for body text)?\n- Does the accent color appear with restraint (5-10% of surface area)?\n- Are there any accidental colors from browser defaults?\n\n## Dimension 2 \u2014 Typography Hierarchy\n- Is there a clear heading scale (3-4 distinct sizes)?\n- Do font sizes follow a consistent ratio (1.25 or 1.333)?\n- Is body text readable at 16px minimum (24px for slides)?\n- Are there any orphaned words or awkward line breaks?\n\n## Dimension 3 \u2014 Spacing Consistency\n- Do sections have consistent vertical padding (not random values)?\n- Is the gap rhythm consistent (all gaps are multiples of 4px or 8px)?\n- Are related elements closer together than unrelated ones?\n- Is the content width constrained (not full-width body text on desktop)?\n\n## Dimension 4 \u2014 Component Polish\n- Do all buttons have hover and active states?\n- Are form elements consistently styled?\n- Do cards have consistent internal padding?\n- Are shadows used intentionally (0-3 elevations max)?\n\n## Dimension 5 \u2014 Brand Coherence\n- Does this look like it belongs to one brand, not a patchwork?\n- Would the design system's owner recognize their brand here?\n- Is the tone consistent across all copy?\n- Does the first impression match the product category?";
|
|
13
|
+
/** Core designer identity prompt — the "expert designer" persona. */
|
|
14
|
+
export declare const DESIGNER_IDENTITY = "# Designer Identity\n\nYou are an expert designer working with the user as a manager. You produce design artifacts using HTML, CSS, and JavaScript. Your output is production-quality \u2014 not AI slop.\n\n## Your Medium\nHTML is your tool, but your medium varies: web designer, slide designer, prototyper, data-viz specialist, mobile-app designer. Adapt your thinking to the medium.\n\n## Your Process\n1. **Understand** \u2014 Clarify the output, fidelity, audience, constraints, and design system before writing any code.\n2. **Explore** \u2014 Read the active design system and any user-provided references. Map tokens to CSS custom properties.\n3. **Plan** \u2014 Lay out the section structure before writing components. Vocalize the system you'll use.\n4. **Build** \u2014 Write the HTML file(s). Show something early \u2014 a rough first pass beats radio silence.\n5. **Critique** \u2014 Run the 5-dimension self-critique. Fix issues.\n6. **Deliver** \u2014 Present the final artifact with a brief summary of design decisions.\n\n## Quality Standards\n- Production-grade CSS: use CSS Grid, custom properties, container queries, clamp(), text-wrap: pretty\n- Responsive: mobile-first with at least one breakpoint (768px)\n- Accessible: sufficient color contrast, focus styles, semantic HTML\n- Performant: no unnecessary dependencies, CSS-only animations when possible\n- Polished: consistent spacing, intentional typography, hover/active states\n\n## When to Push Back\n- If the user asks for something that would create AI slop, suggest alternatives\n- If a design choice contradicts the active design system, flag it\n- If the user wants decorations that don't serve the content (gratuitous gradients, emoji), advise against it";
|
|
15
|
+
/** Full guidelines as a combined injection-ready string. */
|
|
16
|
+
export declare function getDesignGuidelines(): string;
|
|
17
|
+
/**
|
|
18
|
+
* First-turn discovery protocol.
|
|
19
|
+
* Forces the agent to ask clarifying questions before building anything.
|
|
20
|
+
* Based on Open Design's discovery.ts — the turn-based question protocol.
|
|
21
|
+
*/
|
|
22
|
+
export declare const DISCOVERY_PROTOCOL = "# Design Discovery Protocol\n\nYou have been asked to create a design artifact. Before writing ANY code, you MUST complete this discovery sequence first.\n\n## Turn 1 \u2014 Clarify the Brief (ALWAYS required)\n\nDo NOT read files, run bash, or write any code. Ask the user to clarify:\n\n1. **What kind of artifact?** Web prototype, landing page, slide deck, mobile app, dashboard, carousel, poster, or something else?\n2. **What design system?** If the user hasn't specified one, recommend 2-3 systems from `designer_list_systems` that fit their product category. Ask which they prefer.\n3. **What content?** What's the product name? Audience? Key message?\n4. **Any constraints?** Dark/light mode preference? Existing brand colors? Animations yes/no?\n\nFormat your response as a clean question \u2014 not a wall of questions, but a friendly prompt that invites the user to clarify these dimensions.\n\nExample:\n> I'd love to design this for you. To get the best result, could you tell me:\n> - What kind of page are we building? (landing, dashboard, mobile app, slide deck?)\n> - Is there a brand or visual direction you have in mind? If not, I can suggest a few design systems that fit.\n> - What's the product called, and who's the audience?\n> - Any specific constraints (dark mode, existing colors, no animations)?\n\n## Turn 2 \u2014 Load the Design System\n\nOnce the user clarifies:\n1. Call `designer_get_system` with the chosen system name\n2. Call `designer_get_skill` with the skill that matches the artifact type\n3. Announce: \"I'll use the [system name] design system and the [skill name] workflow. Let me map the tokens and plan the sections.\"\n\n## Turn 3 \u2014 Build\n\nNow follow the skill workflow exactly. Write the artifact file(s).";
|
|
23
|
+
//# sourceMappingURL=guidelines.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guidelines.d.ts","sourceRoot":"","sources":["../../src/designer/guidelines.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,8DAA8D;AAC9D,eAAO,MAAM,eAAe,w6GA6DmB,CAAC;AAEhD,8CAA8C;AAC9C,eAAO,MAAM,kBAAkB,mhDAgCyB,CAAC;AAEzD,qEAAqE;AACrE,eAAO,MAAM,iBAAiB,4sDAyBgF,CAAC;AAE/G,4DAA4D;AAC5D,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAMD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,quDA+BoC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Designer Extension — Built-in Design Tools for the pi Coding Agent
|
|
3
|
+
*
|
|
4
|
+
* Brings the Open Design workflow (https://github.com/nexu-io/open-design)
|
|
5
|
+
* into the pi agent as native tools. The extension provides:
|
|
6
|
+
*
|
|
7
|
+
* • Design system knowledge — curated palettes, typography, spacing from
|
|
8
|
+
* Apple, Stripe, Linear, Vercel, Notion, Airbnb, and more.
|
|
9
|
+
* • Design skill workflows — structured guides for web prototypes, SaaS
|
|
10
|
+
* landings, slide decks, mobile apps, dashboards, and social carousels.
|
|
11
|
+
* • Design guidelines — anti-AI-slop rules and a 5-dimension critique
|
|
12
|
+
* framework to keep output polished.
|
|
13
|
+
* • System prompt injection — when the user asks for design work, the
|
|
14
|
+
* extension injects designer identity and anti-slop rules into context.
|
|
15
|
+
*
|
|
16
|
+
* Architecture:
|
|
17
|
+
* The extension registers knowledge-retrieval tools. The LLM reads design
|
|
18
|
+
* systems and skill workflows, then uses its existing tools (write, bash,
|
|
19
|
+
* read) to produce design artifact files. This matches how Open Design
|
|
20
|
+
* works: the daemon composes a system prompt, the agent does the build.
|
|
21
|
+
*
|
|
22
|
+
* No packages to install — everything is embedded in this extension.
|
|
23
|
+
*/
|
|
24
|
+
import type { ExtensionAPI } from "../sdk/coding-agent/index.js";
|
|
25
|
+
export default function designerExtension(pi: ExtensionAPI): void;
|
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/designer/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAmGjE,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAkKhE"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Design Philosophy Registry — 20 design philosophies across 5 schools
|
|
3
|
+
*
|
|
4
|
+
* Adapted from Huashu-Design (https://github.com/alchaincyf/huashu-design).
|
|
5
|
+
* These philosophies provide a vocabulary for design direction when the user
|
|
6
|
+
* hasn't specified a concrete design system. They complement the 144 curated
|
|
7
|
+
* design systems and serve as the backbone for designer_recommend.
|
|
8
|
+
*
|
|
9
|
+
* Each philosophy includes:
|
|
10
|
+
* - Core ethos (the "why")
|
|
11
|
+
* - Signature traits (the "what" — concrete CSS-token-level characteristics)
|
|
12
|
+
* - Best medium (HTML, AI-generated, or Hybrid)
|
|
13
|
+
* - Scene affinity (which content types it shines for)
|
|
14
|
+
* - Anti-patterns (what would violate this philosophy)
|
|
15
|
+
*/
|
|
16
|
+
export interface DesignPhilosophy {
|
|
17
|
+
name: string;
|
|
18
|
+
school: string;
|
|
19
|
+
schoolIcon: string;
|
|
20
|
+
designer: string;
|
|
21
|
+
ethos: string;
|
|
22
|
+
description: string;
|
|
23
|
+
traits: string[];
|
|
24
|
+
keywords: string[];
|
|
25
|
+
bestMedium: "html" | "ai-generated" | "hybrid";
|
|
26
|
+
sceneAffinity: string[];
|
|
27
|
+
antiPatterns: string[];
|
|
28
|
+
}
|
|
29
|
+
export declare const DESIGN_PHILOSOPHIES: DesignPhilosophy[];
|
|
30
|
+
export declare function findPhilosophy(name: string): DesignPhilosophy | undefined;
|
|
31
|
+
export declare function formatPhilosophyForLLM(p: DesignPhilosophy): string;
|
|
32
|
+
export declare function listPhilosophiesForLLM(): string;
|
|
33
|
+
//# sourceMappingURL=philosophies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"philosophies.d.ts","sourceRoot":"","sources":["../../src/designer/philosophies.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,cAAc,GAAG,QAAQ,CAAC;IAC/C,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,eAAO,MAAM,mBAAmB,EAAE,gBAAgB,EAolBjD,CAAC;AAMF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAMzE;AAMD,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAoClE;AAED,wBAAgB,sBAAsB,IAAI,MAAM,CA6C/C"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Embedded Design Skill Workflows
|
|
3
|
+
*
|
|
4
|
+
* Each skill is a structured workflow that guides the LLM through producing
|
|
5
|
+
* a specific kind of design artifact. Skills are based on the Open Design
|
|
6
|
+
* project (https://github.com/nexu-io/open-design).
|
|
7
|
+
*
|
|
8
|
+
* The LLM reads the skill workflow, then uses its existing tools (write, read,
|
|
9
|
+
* bash) to produce output files in the working directory.
|
|
10
|
+
*/
|
|
11
|
+
export interface DesignSkill {
|
|
12
|
+
name: string;
|
|
13
|
+
scenario: string;
|
|
14
|
+
description: string;
|
|
15
|
+
/** What kind of artifact this produces */
|
|
16
|
+
outputKind: "html" | "html-multi" | "slides";
|
|
17
|
+
/** The full workflow guide for the LLM */
|
|
18
|
+
workflow: string;
|
|
19
|
+
}
|
|
20
|
+
export declare const DESIGN_SKILLS: DesignSkill[];
|
|
21
|
+
/** Lookup a skill by name (case-insensitive). */
|
|
22
|
+
export declare function findSkill(name: string): DesignSkill | undefined;
|
|
23
|
+
/** Format a skill workflow as markdown for the LLM. */
|
|
24
|
+
export declare function formatSkillForLLM(skill: DesignSkill): string;
|
|
25
|
+
/** List all skills as compact markdown. */
|
|
26
|
+
export declare function listSkillsForLLM(): string;
|
|
27
|
+
//# sourceMappingURL=skills.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/designer/skills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,UAAU,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ,CAAC;IAC7C,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,aAAa,EAAE,WAAW,EAunDtC,CAAC;AAEF,iDAAiD;AACjD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAM/D;AAED,uDAAuD;AACvD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAE5D;AAED,2CAA2C;AAC3C,wBAAgB,gBAAgB,IAAI,MAAM,CAYzC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Design System Registry — 150+ Curated Systems from Open Design
|
|
3
|
+
*
|
|
4
|
+
* Design systems are stored as DESIGN.md + tokens.css files under
|
|
5
|
+
* data/systems/<name>/. At import time, we scan the directory and
|
|
6
|
+
* parse each system's metadata (name, category, description) from
|
|
7
|
+
* the DESIGN.md frontmatter. Full content is lazily loaded on first
|
|
8
|
+
* access and cached.
|
|
9
|
+
*
|
|
10
|
+
* The tool interface remains the same as the original systems.ts:
|
|
11
|
+
* findSystem(name) → DesignSystem | undefined
|
|
12
|
+
* formatSystemForLLM(system) → string
|
|
13
|
+
* listSystemsForLLM() → string
|
|
14
|
+
*/
|
|
15
|
+
export interface DesignSystem {
|
|
16
|
+
name: string;
|
|
17
|
+
category: string;
|
|
18
|
+
description: string;
|
|
19
|
+
/** DESIGN.md contents (full markdown) */
|
|
20
|
+
designMd: string;
|
|
21
|
+
/** tokens.css contents (CSS custom properties) */
|
|
22
|
+
tokensCss: string;
|
|
23
|
+
/** components.html contents (component examples), if available */
|
|
24
|
+
componentsHtml: string;
|
|
25
|
+
}
|
|
26
|
+
export declare function findSystem(name: string): DesignSystem | undefined;
|
|
27
|
+
/**
|
|
28
|
+
* Format a single design system for the LLM.
|
|
29
|
+
* Concatenates the DESIGN.md and tokens.css for a complete picture.
|
|
30
|
+
*/
|
|
31
|
+
export declare function formatSystemForLLM(system: DesignSystem): string;
|
|
32
|
+
/**
|
|
33
|
+
* List all available design systems as a compact markdown table for the LLM.
|
|
34
|
+
*/
|
|
35
|
+
export declare function listSystemsForLLM(): string;
|
|
36
|
+
//# sourceMappingURL=systems.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"systems.d.ts","sourceRoot":"","sources":["../../src/designer/systems.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAYH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,cAAc,EAAE,MAAM,CAAC;CACxB;AA+ID,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAajE;AAMD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CA0B/D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CA0C1C"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Aexol MCP pi extension.
|
|
3
|
+
*
|
|
4
|
+
* Loaded by the spectral wrapper via `--extension <abs-path>`. On startup it:
|
|
5
|
+
* 1. Reads ~/.spectral/config.json (writen by `spectral login`).
|
|
6
|
+
* 2. Calls tools/list against the MCP backend once.
|
|
7
|
+
* 3. Reads the local Studio binding (`.aexol/aexol.jsonc`) so remote tools
|
|
8
|
+
* auto-inherit `teamId` / `projectId` without needing `remote_set_context`.
|
|
9
|
+
* 4. Registers every returned remote tool through pi.registerTool() so the
|
|
10
|
+
* model can call them like built-in tools.
|
|
11
|
+
* 5. Registers local binding-management tools (`local_bind_project`,
|
|
12
|
+
* `local_unbind_project`, `local_get_binding`) so users can bind a
|
|
13
|
+
* directory to an Aexol Studio project from within the agent.
|
|
14
|
+
*
|
|
15
|
+
* Each registered tool is just a thin proxy: when pi's model invokes it, we
|
|
16
|
+
* translate the call into a JSON-RPC tools/call POST and unwrap the response
|
|
17
|
+
* into the `{ content: [{ type: "text", text }], details }` shape pi expects.
|
|
18
|
+
*
|
|
19
|
+
* Failure modes are intentionally non-fatal: if config is missing or the
|
|
20
|
+
* backend is unreachable we log a warning and return, leaving pi to start
|
|
21
|
+
* without Aexol tools rather than crashing the whole agent.
|
|
22
|
+
*/
|
|
23
|
+
import type { ExtensionAPI } from "../sdk/coding-agent/index.js";
|
|
24
|
+
export default function aexolMcpExtension(pi: ExtensionAPI): Promise<void>;
|
|
25
|
+
//# sourceMappingURL=aexol-mcp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aexol-mcp.d.ts","sourceRoot":"","sources":["../../src/extensions/aexol-mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAkB,MAAM,8BAA8B,CAAC;AAqFjF,wBAA8B,iBAAiB,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA6P/E"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kanban Bridge pi extension.
|
|
3
|
+
*
|
|
4
|
+
* Registers kanban management tools that allow the coding agent to read,
|
|
5
|
+
* create, update, and move Kanban tasks on the Aexol Studio board. This
|
|
6
|
+
* enables task-driven execution — the agent can pick up TODO tasks, work
|
|
7
|
+
* on them, and move them to DONE.
|
|
8
|
+
*
|
|
9
|
+
* Auth is read from ~/.spectral/config.json (same as aexol-mcp).
|
|
10
|
+
* The Studio project ID comes from the local binding (.aexol/aexol.jsonc),
|
|
11
|
+
* falling back to an explicit kanban_project_id flag.
|
|
12
|
+
*
|
|
13
|
+
* Registered tools:
|
|
14
|
+
* - kanban_list — List all Kanban tasks for the project
|
|
15
|
+
* - kanban_get — Get a single task by ID
|
|
16
|
+
* - kanban_create — Create a new Kanban task
|
|
17
|
+
* - kanban_update — Update a task (title, description, priority, tags)
|
|
18
|
+
* - kanban_move — Move a task between columns (BACKLOG → TODO → IN_PROGRESS → DONE)
|
|
19
|
+
* - kanban_next — Pick the next TODO task and mark it IN_PROGRESS
|
|
20
|
+
* - kanban_delete — Delete a task
|
|
21
|
+
*/
|
|
22
|
+
import type { ExtensionAPI } from "../sdk/coding-agent/index.js";
|
|
23
|
+
export default function kanbanBridgeExtension(pi: ExtensionAPI): Promise<void>;
|
|
24
|
+
//# sourceMappingURL=kanban-bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kanban-bridge.d.ts","sourceRoot":"","sources":["../../src/extensions/kanban-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAkB,MAAM,8BAA8B,CAAC;AAixBjF,wBAA8B,qBAAqB,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCnF"}
|