praxis-agent 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +534 -0
- package/dist/application/background-agent-manager.d.ts +66 -0
- package/dist/application/background-agent-manager.d.ts.map +1 -0
- package/dist/application/background-agent-manager.js +362 -0
- package/dist/application/background-agent-manager.js.map +1 -0
- package/dist/application/background-bash-manager.d.ts +54 -0
- package/dist/application/background-bash-manager.d.ts.map +1 -0
- package/dist/application/background-bash-manager.js +354 -0
- package/dist/application/background-bash-manager.js.map +1 -0
- package/dist/application/background-task-id.d.ts +5 -0
- package/dist/application/background-task-id.d.ts.map +1 -0
- package/dist/application/background-task-id.js +25 -0
- package/dist/application/background-task-id.js.map +1 -0
- package/dist/application/claude-project-purge.d.ts +50 -0
- package/dist/application/claude-project-purge.d.ts.map +1 -0
- package/dist/application/claude-project-purge.js +459 -0
- package/dist/application/claude-project-purge.js.map +1 -0
- package/dist/application/managed-worktree.d.ts +15 -0
- package/dist/application/managed-worktree.d.ts.map +1 -0
- package/dist/application/managed-worktree.js +127 -0
- package/dist/application/managed-worktree.js.map +1 -0
- package/dist/application/model-compactor.d.ts +8 -0
- package/dist/application/model-compactor.d.ts.map +1 -0
- package/dist/application/model-compactor.js +70 -0
- package/dist/application/model-compactor.js.map +1 -0
- package/dist/application/scheduled-prompt-manager.d.ts +69 -0
- package/dist/application/scheduled-prompt-manager.d.ts.map +1 -0
- package/dist/application/scheduled-prompt-manager.js +387 -0
- package/dist/application/scheduled-prompt-manager.js.map +1 -0
- package/dist/application/session-service.d.ts +142 -0
- package/dist/application/session-service.d.ts.map +1 -0
- package/dist/application/session-service.js +1690 -0
- package/dist/application/session-service.js.map +1 -0
- package/dist/application/session-worktree.d.ts +55 -0
- package/dist/application/session-worktree.d.ts.map +1 -0
- package/dist/application/session-worktree.js +311 -0
- package/dist/application/session-worktree.js.map +1 -0
- package/dist/application/subagent-service.d.ts +98 -0
- package/dist/application/subagent-service.d.ts.map +1 -0
- package/dist/application/subagent-service.js +1305 -0
- package/dist/application/subagent-service.js.map +1 -0
- package/dist/application/tool-use-summary.d.ts +8 -0
- package/dist/application/tool-use-summary.d.ts.map +1 -0
- package/dist/application/tool-use-summary.js +53 -0
- package/dist/application/tool-use-summary.js.map +1 -0
- package/dist/application/top-level-agent-manager.d.ts +58 -0
- package/dist/application/top-level-agent-manager.d.ts.map +1 -0
- package/dist/application/top-level-agent-manager.js +907 -0
- package/dist/application/top-level-agent-manager.js.map +1 -0
- package/dist/application/workflow-manager.d.ts +61 -0
- package/dist/application/workflow-manager.d.ts.map +1 -0
- package/dist/application/workflow-manager.js +582 -0
- package/dist/application/workflow-manager.js.map +1 -0
- package/dist/application/workflow-meta.d.ts +18 -0
- package/dist/application/workflow-meta.d.ts.map +1 -0
- package/dist/application/workflow-meta.js +146 -0
- package/dist/application/workflow-meta.js.map +1 -0
- package/dist/application/workflow-runtime.d.ts +29 -0
- package/dist/application/workflow-runtime.d.ts.map +1 -0
- package/dist/application/workflow-runtime.js +176 -0
- package/dist/application/workflow-runtime.js.map +1 -0
- package/dist/application/workflow-worktree.d.ts +9 -0
- package/dist/application/workflow-worktree.d.ts.map +1 -0
- package/dist/application/workflow-worktree.js +11 -0
- package/dist/application/workflow-worktree.js.map +1 -0
- package/dist/cli/agents-dashboard.d.ts +37 -0
- package/dist/cli/agents-dashboard.d.ts.map +1 -0
- package/dist/cli/agents-dashboard.js +408 -0
- package/dist/cli/agents-dashboard.js.map +1 -0
- package/dist/cli/controls.d.ts +15 -0
- package/dist/cli/controls.d.ts.map +1 -0
- package/dist/cli/controls.js +219 -0
- package/dist/cli/controls.js.map +1 -0
- package/dist/cli/debug.d.ts +13 -0
- package/dist/cli/debug.d.ts.map +1 -0
- package/dist/cli/debug.js +37 -0
- package/dist/cli/debug.js.map +1 -0
- package/dist/cli/interactive.d.ts +63 -0
- package/dist/cli/interactive.d.ts.map +1 -0
- package/dist/cli/interactive.js +600 -0
- package/dist/cli/interactive.js.map +1 -0
- package/dist/cli/protocol.d.ts +251 -0
- package/dist/cli/protocol.d.ts.map +1 -0
- package/dist/cli/protocol.js +2146 -0
- package/dist/cli/protocol.js.map +1 -0
- package/dist/cli.d.ts +116 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +3901 -0
- package/dist/cli.js.map +1 -0
- package/dist/compatibility/claude/compaction.d.ts +19 -0
- package/dist/compatibility/claude/compaction.d.ts.map +1 -0
- package/dist/compatibility/claude/compaction.js +82 -0
- package/dist/compatibility/claude/compaction.js.map +1 -0
- package/dist/compatibility/claude/context.d.ts +24 -0
- package/dist/compatibility/claude/context.d.ts.map +1 -0
- package/dist/compatibility/claude/context.js +92 -0
- package/dist/compatibility/claude/context.js.map +1 -0
- package/dist/compatibility/claude/dynamic-context.d.ts +20 -0
- package/dist/compatibility/claude/dynamic-context.d.ts.map +1 -0
- package/dist/compatibility/claude/dynamic-context.js +168 -0
- package/dist/compatibility/claude/dynamic-context.js.map +1 -0
- package/dist/compatibility/claude/file-history.d.ts +14 -0
- package/dist/compatibility/claude/file-history.d.ts.map +1 -0
- package/dist/compatibility/claude/file-history.js +340 -0
- package/dist/compatibility/claude/file-history.js.map +1 -0
- package/dist/compatibility/claude/file-resources.d.ts +28 -0
- package/dist/compatibility/claude/file-resources.d.ts.map +1 -0
- package/dist/compatibility/claude/file-resources.js +168 -0
- package/dist/compatibility/claude/file-resources.js.map +1 -0
- package/dist/compatibility/claude/fork.d.ts +9 -0
- package/dist/compatibility/claude/fork.d.ts.map +1 -0
- package/dist/compatibility/claude/fork.js +225 -0
- package/dist/compatibility/claude/fork.js.map +1 -0
- package/dist/compatibility/claude/history.d.ts +4 -0
- package/dist/compatibility/claude/history.d.ts.map +1 -0
- package/dist/compatibility/claude/history.js +86 -0
- package/dist/compatibility/claude/history.js.map +1 -0
- package/dist/compatibility/claude/ownership.d.ts +87 -0
- package/dist/compatibility/claude/ownership.d.ts.map +1 -0
- package/dist/compatibility/claude/ownership.js +100 -0
- package/dist/compatibility/claude/ownership.js.map +1 -0
- package/dist/compatibility/claude/paths.d.ts +17 -0
- package/dist/compatibility/claude/paths.d.ts.map +1 -0
- package/dist/compatibility/claude/paths.js +54 -0
- package/dist/compatibility/claude/paths.js.map +1 -0
- package/dist/compatibility/claude/pr-links.d.ts +25 -0
- package/dist/compatibility/claude/pr-links.d.ts.map +1 -0
- package/dist/compatibility/claude/pr-links.js +80 -0
- package/dist/compatibility/claude/pr-links.js.map +1 -0
- package/dist/compatibility/claude/projection.d.ts +11 -0
- package/dist/compatibility/claude/projection.d.ts.map +1 -0
- package/dist/compatibility/claude/projection.js +325 -0
- package/dist/compatibility/claude/projection.js.map +1 -0
- package/dist/compatibility/claude/schema.d.ts +18 -0
- package/dist/compatibility/claude/schema.d.ts.map +1 -0
- package/dist/compatibility/claude/schema.js +983 -0
- package/dist/compatibility/claude/schema.js.map +1 -0
- package/dist/compatibility/claude/shared-resources.d.ts +51 -0
- package/dist/compatibility/claude/shared-resources.d.ts.map +1 -0
- package/dist/compatibility/claude/shared-resources.js +382 -0
- package/dist/compatibility/claude/shared-resources.js.map +1 -0
- package/dist/compatibility/claude/sidechain.d.ts +50 -0
- package/dist/compatibility/claude/sidechain.d.ts.map +1 -0
- package/dist/compatibility/claude/sidechain.js +90 -0
- package/dist/compatibility/claude/sidechain.js.map +1 -0
- package/dist/compatibility/claude/tool-links.d.ts +13 -0
- package/dist/compatibility/claude/tool-links.d.ts.map +1 -0
- package/dist/compatibility/claude/tool-links.js +61 -0
- package/dist/compatibility/claude/tool-links.js.map +1 -0
- package/dist/compatibility/claude/translation.d.ts +71 -0
- package/dist/compatibility/claude/translation.d.ts.map +1 -0
- package/dist/compatibility/claude/translation.js +443 -0
- package/dist/compatibility/claude/translation.js.map +1 -0
- package/dist/compatibility/claude/workflow-replay.d.ts +10 -0
- package/dist/compatibility/claude/workflow-replay.d.ts.map +1 -0
- package/dist/compatibility/claude/workflow-replay.js +66 -0
- package/dist/compatibility/claude/workflow-replay.js.map +1 -0
- package/dist/compatibility/claude/workflow.d.ts +33 -0
- package/dist/compatibility/claude/workflow.d.ts.map +1 -0
- package/dist/compatibility/claude/workflow.js +76 -0
- package/dist/compatibility/claude/workflow.js.map +1 -0
- package/dist/core/compaction.d.ts +16 -0
- package/dist/core/compaction.d.ts.map +1 -0
- package/dist/core/compaction.js +2 -0
- package/dist/core/compaction.js.map +1 -0
- package/dist/core/context-budget.d.ts +28 -0
- package/dist/core/context-budget.d.ts.map +1 -0
- package/dist/core/context-budget.js +108 -0
- package/dist/core/context-budget.js.map +1 -0
- package/dist/core/context.d.ts +16 -0
- package/dist/core/context.d.ts.map +1 -0
- package/dist/core/context.js +13 -0
- package/dist/core/context.js.map +1 -0
- package/dist/core/runtime.d.ts +394 -0
- package/dist/core/runtime.d.ts.map +1 -0
- package/dist/core/runtime.js +507 -0
- package/dist/core/runtime.js.map +1 -0
- package/dist/core/usage.d.ts +26 -0
- package/dist/core/usage.d.ts.map +1 -0
- package/dist/core/usage.js +133 -0
- package/dist/core/usage.js.map +1 -0
- package/dist/extensions/claude-extension-tools.d.ts +16 -0
- package/dist/extensions/claude-extension-tools.d.ts.map +1 -0
- package/dist/extensions/claude-extension-tools.js +78 -0
- package/dist/extensions/claude-extension-tools.js.map +1 -0
- package/dist/extensions/claude-extensions.d.ts +41 -0
- package/dist/extensions/claude-extensions.d.ts.map +1 -0
- package/dist/extensions/claude-extensions.js +270 -0
- package/dist/extensions/claude-extensions.js.map +1 -0
- package/dist/hooks/claude-hook-tools.d.ts +26 -0
- package/dist/hooks/claude-hook-tools.d.ts.map +1 -0
- package/dist/hooks/claude-hook-tools.js +129 -0
- package/dist/hooks/claude-hook-tools.js.map +1 -0
- package/dist/hooks/claude-hooks.d.ts +87 -0
- package/dist/hooks/claude-hooks.d.ts.map +1 -0
- package/dist/hooks/claude-hooks.js +411 -0
- package/dist/hooks/claude-hooks.js.map +1 -0
- package/dist/maintenance/doctor.d.ts +33 -0
- package/dist/maintenance/doctor.d.ts.map +1 -0
- package/dist/maintenance/doctor.js +391 -0
- package/dist/maintenance/doctor.js.map +1 -0
- package/dist/maintenance/self-update.d.ts +31 -0
- package/dist/maintenance/self-update.d.ts.map +1 -0
- package/dist/maintenance/self-update.js +81 -0
- package/dist/maintenance/self-update.js.map +1 -0
- package/dist/mcp/claude-mcp-management.d.ts +28 -0
- package/dist/mcp/claude-mcp-management.d.ts.map +1 -0
- package/dist/mcp/claude-mcp-management.js +169 -0
- package/dist/mcp/claude-mcp-management.js.map +1 -0
- package/dist/mcp/claude-mcp-oauth.d.ts +113 -0
- package/dist/mcp/claude-mcp-oauth.d.ts.map +1 -0
- package/dist/mcp/claude-mcp-oauth.js +1053 -0
- package/dist/mcp/claude-mcp-oauth.js.map +1 -0
- package/dist/mcp/claude-mcp-tools.d.ts +98 -0
- package/dist/mcp/claude-mcp-tools.d.ts.map +1 -0
- package/dist/mcp/claude-mcp-tools.js +1246 -0
- package/dist/mcp/claude-mcp-tools.js.map +1 -0
- package/dist/mcp/praxis-mcp-server.d.ts +35 -0
- package/dist/mcp/praxis-mcp-server.d.ts.map +1 -0
- package/dist/mcp/praxis-mcp-server.js +520 -0
- package/dist/mcp/praxis-mcp-server.js.map +1 -0
- package/dist/permissions/claude-auto-classifier.d.ts +20 -0
- package/dist/permissions/claude-auto-classifier.d.ts.map +1 -0
- package/dist/permissions/claude-auto-classifier.js +140 -0
- package/dist/permissions/claude-auto-classifier.js.map +1 -0
- package/dist/permissions/claude-permission-resolver.d.ts +30 -0
- package/dist/permissions/claude-permission-resolver.d.ts.map +1 -0
- package/dist/permissions/claude-permission-resolver.js +334 -0
- package/dist/permissions/claude-permission-resolver.js.map +1 -0
- package/dist/persistence/claude-job-store.d.ts +68 -0
- package/dist/persistence/claude-job-store.d.ts.map +1 -0
- package/dist/persistence/claude-job-store.js +311 -0
- package/dist/persistence/claude-job-store.js.map +1 -0
- package/dist/persistence/claude-scheduled-task-store.d.ts +29 -0
- package/dist/persistence/claude-scheduled-task-store.d.ts.map +1 -0
- package/dist/persistence/claude-scheduled-task-store.js +163 -0
- package/dist/persistence/claude-scheduled-task-store.js.map +1 -0
- package/dist/persistence/claude-sidechain-store.d.ts +18 -0
- package/dist/persistence/claude-sidechain-store.d.ts.map +1 -0
- package/dist/persistence/claude-sidechain-store.js +107 -0
- package/dist/persistence/claude-sidechain-store.js.map +1 -0
- package/dist/persistence/claude-task-store.d.ts +72 -0
- package/dist/persistence/claude-task-store.d.ts.map +1 -0
- package/dist/persistence/claude-task-store.js +440 -0
- package/dist/persistence/claude-task-store.js.map +1 -0
- package/dist/persistence/claude-transcript-store.d.ts +85 -0
- package/dist/persistence/claude-transcript-store.d.ts.map +1 -0
- package/dist/persistence/claude-transcript-store.js +385 -0
- package/dist/persistence/claude-transcript-store.js.map +1 -0
- package/dist/persistence/claude-workflow-store.d.ts +41 -0
- package/dist/persistence/claude-workflow-store.d.ts.map +1 -0
- package/dist/persistence/claude-workflow-store.js +263 -0
- package/dist/persistence/claude-workflow-store.js.map +1 -0
- package/dist/persistence/in-memory-sidechain-store.d.ts +12 -0
- package/dist/persistence/in-memory-sidechain-store.d.ts.map +1 -0
- package/dist/persistence/in-memory-sidechain-store.js +30 -0
- package/dist/persistence/in-memory-sidechain-store.js.map +1 -0
- package/dist/persistence/in-memory-transcript-store.d.ts +15 -0
- package/dist/persistence/in-memory-transcript-store.d.ts.map +1 -0
- package/dist/persistence/in-memory-transcript-store.js +95 -0
- package/dist/persistence/in-memory-transcript-store.js.map +1 -0
- package/dist/platform/atomic-write.d.ts +5 -0
- package/dist/platform/atomic-write.d.ts.map +1 -0
- package/dist/platform/atomic-write.js +25 -0
- package/dist/platform/atomic-write.js.map +1 -0
- package/dist/platform/bounded-process-runner.d.ts +28 -0
- package/dist/platform/bounded-process-runner.d.ts.map +1 -0
- package/dist/platform/bounded-process-runner.js +209 -0
- package/dist/platform/bounded-process-runner.js.map +1 -0
- package/dist/platform/claude-version.d.ts +5 -0
- package/dist/platform/claude-version.d.ts.map +1 -0
- package/dist/platform/claude-version.js +17 -0
- package/dist/platform/claude-version.js.map +1 -0
- package/dist/platform/command-shell.d.ts +3 -0
- package/dist/platform/command-shell.d.ts.map +1 -0
- package/dist/platform/command-shell.js +15 -0
- package/dist/platform/command-shell.js.map +1 -0
- package/dist/platform/exclusive-file-lease.d.ts +15 -0
- package/dist/platform/exclusive-file-lease.d.ts.map +1 -0
- package/dist/platform/exclusive-file-lease.js +265 -0
- package/dist/platform/exclusive-file-lease.js.map +1 -0
- package/dist/platform/sensitive-data.d.ts +8 -0
- package/dist/platform/sensitive-data.d.ts.map +1 -0
- package/dist/platform/sensitive-data.js +138 -0
- package/dist/platform/sensitive-data.js.map +1 -0
- package/dist/platform/tmux-worktree.d.ts +30 -0
- package/dist/platform/tmux-worktree.d.ts.map +1 -0
- package/dist/platform/tmux-worktree.js +138 -0
- package/dist/platform/tmux-worktree.js.map +1 -0
- package/dist/plugins/claude-plugin-eval-discovery.d.ts +20 -0
- package/dist/plugins/claude-plugin-eval-discovery.d.ts.map +1 -0
- package/dist/plugins/claude-plugin-eval-discovery.js +128 -0
- package/dist/plugins/claude-plugin-eval-discovery.js.map +1 -0
- package/dist/plugins/claude-plugin-eval-graders.d.ts +49 -0
- package/dist/plugins/claude-plugin-eval-graders.d.ts.map +1 -0
- package/dist/plugins/claude-plugin-eval-graders.js +137 -0
- package/dist/plugins/claude-plugin-eval-graders.js.map +1 -0
- package/dist/plugins/claude-plugin-eval-runner.d.ts +50 -0
- package/dist/plugins/claude-plugin-eval-runner.d.ts.map +1 -0
- package/dist/plugins/claude-plugin-eval-runner.js +189 -0
- package/dist/plugins/claude-plugin-eval-runner.js.map +1 -0
- package/dist/plugins/claude-plugin-eval-schema.d.ts +80 -0
- package/dist/plugins/claude-plugin-eval-schema.d.ts.map +1 -0
- package/dist/plugins/claude-plugin-eval-schema.js +436 -0
- package/dist/plugins/claude-plugin-eval-schema.js.map +1 -0
- package/dist/plugins/claude-plugin-eval.d.ts +66 -0
- package/dist/plugins/claude-plugin-eval.d.ts.map +1 -0
- package/dist/plugins/claude-plugin-eval.js +438 -0
- package/dist/plugins/claude-plugin-eval.js.map +1 -0
- package/dist/plugins/claude-plugin-maintenance.d.ts +39 -0
- package/dist/plugins/claude-plugin-maintenance.d.ts.map +1 -0
- package/dist/plugins/claude-plugin-maintenance.js +336 -0
- package/dist/plugins/claude-plugin-maintenance.js.map +1 -0
- package/dist/plugins/claude-plugin-marketplace.d.ts +97 -0
- package/dist/plugins/claude-plugin-marketplace.d.ts.map +1 -0
- package/dist/plugins/claude-plugin-marketplace.js +1433 -0
- package/dist/plugins/claude-plugin-marketplace.js.map +1 -0
- package/dist/plugins/claude-plugin-mcpb.d.ts +71 -0
- package/dist/plugins/claude-plugin-mcpb.d.ts.map +1 -0
- package/dist/plugins/claude-plugin-mcpb.js +885 -0
- package/dist/plugins/claude-plugin-mcpb.js.map +1 -0
- package/dist/plugins/claude-plugin-runtime.d.ts +120 -0
- package/dist/plugins/claude-plugin-runtime.d.ts.map +1 -0
- package/dist/plugins/claude-plugin-runtime.js +1263 -0
- package/dist/plugins/claude-plugin-runtime.js.map +1 -0
- package/dist/providers/anthropic-compatible.d.ts +35 -0
- package/dist/providers/anthropic-compatible.d.ts.map +1 -0
- package/dist/providers/anthropic-compatible.js +733 -0
- package/dist/providers/anthropic-compatible.js.map +1 -0
- package/dist/providers/environment.d.ts +14 -0
- package/dist/providers/environment.d.ts.map +1 -0
- package/dist/providers/environment.js +67 -0
- package/dist/providers/environment.js.map +1 -0
- package/dist/providers/fallback-provider.d.ts +17 -0
- package/dist/providers/fallback-provider.d.ts.map +1 -0
- package/dist/providers/fallback-provider.js +70 -0
- package/dist/providers/fallback-provider.js.map +1 -0
- package/dist/providers/openai-compatible.d.ts +30 -0
- package/dist/providers/openai-compatible.d.ts.map +1 -0
- package/dist/providers/openai-compatible.js +409 -0
- package/dist/providers/openai-compatible.js.map +1 -0
- package/dist/tools/claude-interactive-tools.d.ts +58 -0
- package/dist/tools/claude-interactive-tools.d.ts.map +1 -0
- package/dist/tools/claude-interactive-tools.js +390 -0
- package/dist/tools/claude-interactive-tools.js.map +1 -0
- package/dist/tools/claude-lsp-formatters.d.ts +2 -0
- package/dist/tools/claude-lsp-formatters.d.ts.map +1 -0
- package/dist/tools/claude-lsp-formatters.js +291 -0
- package/dist/tools/claude-lsp-formatters.js.map +1 -0
- package/dist/tools/claude-lsp-tool.d.ts +22 -0
- package/dist/tools/claude-lsp-tool.d.ts.map +1 -0
- package/dist/tools/claude-lsp-tool.js +744 -0
- package/dist/tools/claude-lsp-tool.js.map +1 -0
- package/dist/tools/claude-scheduled-tools.d.ts +20 -0
- package/dist/tools/claude-scheduled-tools.d.ts.map +1 -0
- package/dist/tools/claude-scheduled-tools.js +344 -0
- package/dist/tools/claude-scheduled-tools.js.map +1 -0
- package/dist/tools/claude-task-tools.d.ts +30 -0
- package/dist/tools/claude-task-tools.d.ts.map +1 -0
- package/dist/tools/claude-task-tools.js +503 -0
- package/dist/tools/claude-task-tools.js.map +1 -0
- package/dist/tools/claude-user-message.d.ts +16 -0
- package/dist/tools/claude-user-message.d.ts.map +1 -0
- package/dist/tools/claude-user-message.js +98 -0
- package/dist/tools/claude-user-message.js.map +1 -0
- package/dist/tools/claude-workflow-tools.d.ts +27 -0
- package/dist/tools/claude-workflow-tools.d.ts.map +1 -0
- package/dist/tools/claude-workflow-tools.js +257 -0
- package/dist/tools/claude-workflow-tools.js.map +1 -0
- package/dist/tools/claude-worktree-tools.d.ts +17 -0
- package/dist/tools/claude-worktree-tools.d.ts.map +1 -0
- package/dist/tools/claude-worktree-tools.js +135 -0
- package/dist/tools/claude-worktree-tools.js.map +1 -0
- package/dist/tools/filtered-tool-registry.d.ts +16 -0
- package/dist/tools/filtered-tool-registry.d.ts.map +1 -0
- package/dist/tools/filtered-tool-registry.js +51 -0
- package/dist/tools/filtered-tool-registry.js.map +1 -0
- package/dist/tools/glob.d.ts +9 -0
- package/dist/tools/glob.d.ts.map +1 -0
- package/dist/tools/glob.js +88 -0
- package/dist/tools/glob.js.map +1 -0
- package/dist/tools/local-tools.d.ts +47 -0
- package/dist/tools/local-tools.d.ts.map +1 -0
- package/dist/tools/local-tools.js +1082 -0
- package/dist/tools/local-tools.js.map +1 -0
- package/dist/tools/notebook.d.ts +22 -0
- package/dist/tools/notebook.d.ts.map +1 -0
- package/dist/tools/notebook.js +154 -0
- package/dist/tools/notebook.js.map +1 -0
- package/dist/tools/web.d.ts +48 -0
- package/dist/tools/web.d.ts.map +1 -0
- package/dist/tools/web.js +726 -0
- package/dist/tools/web.js.map +1 -0
- package/package.json +145 -0
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { parse } from 'acorn';
|
|
2
|
+
function referencesReplaySensitiveGlobal(value) {
|
|
3
|
+
if (Array.isArray(value))
|
|
4
|
+
return value.some(referencesReplaySensitiveGlobal);
|
|
5
|
+
if (!value || typeof value !== 'object')
|
|
6
|
+
return false;
|
|
7
|
+
const node = value;
|
|
8
|
+
if (node.type === 'Identifier' &&
|
|
9
|
+
(node.name === 'workflow' || node.name === 'budget')) {
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
return Object.values(node).some(referencesReplaySensitiveGlobal);
|
|
13
|
+
}
|
|
14
|
+
function literal(node) {
|
|
15
|
+
if (node.type === 'Literal')
|
|
16
|
+
return node.value;
|
|
17
|
+
if (node.type === 'ArrayExpression') {
|
|
18
|
+
return node.elements.map((element) => {
|
|
19
|
+
if (!element)
|
|
20
|
+
throw new Error('array holes are not allowed in meta');
|
|
21
|
+
return literal(element);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
if (node.type === 'ObjectExpression') {
|
|
25
|
+
const result = {};
|
|
26
|
+
for (const property of node.properties) {
|
|
27
|
+
if (property.type !== 'Property' ||
|
|
28
|
+
property.kind !== 'init' ||
|
|
29
|
+
property.computed === true ||
|
|
30
|
+
property.method === true ||
|
|
31
|
+
property.shorthand === true) {
|
|
32
|
+
throw new Error(`non-literal node type in meta: ${property.type}`);
|
|
33
|
+
}
|
|
34
|
+
const keyNode = property.key;
|
|
35
|
+
const key = keyNode.type === 'Identifier'
|
|
36
|
+
? String(keyNode.name)
|
|
37
|
+
: String(literal(keyNode));
|
|
38
|
+
result[key] = literal(property.value);
|
|
39
|
+
}
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
42
|
+
if (node.type === 'UnaryExpression' && node.operator === '-') {
|
|
43
|
+
const value = literal(node.argument);
|
|
44
|
+
if (typeof value === 'number')
|
|
45
|
+
return -value;
|
|
46
|
+
}
|
|
47
|
+
throw new Error(`non-literal node type in meta: ${node.type}`);
|
|
48
|
+
}
|
|
49
|
+
function nonEmpty(value, field) {
|
|
50
|
+
if (typeof value !== 'string' || value.trim().length === 0) {
|
|
51
|
+
throw new Error(`meta.${field} must be a non-empty string`);
|
|
52
|
+
}
|
|
53
|
+
return value;
|
|
54
|
+
}
|
|
55
|
+
function validateMeta(value) {
|
|
56
|
+
if (!value || typeof value !== 'object' || Array.isArray(value)) {
|
|
57
|
+
throw new Error('meta must be an object literal');
|
|
58
|
+
}
|
|
59
|
+
const record = value;
|
|
60
|
+
const name = nonEmpty(record.name, 'name');
|
|
61
|
+
const description = nonEmpty(record.description, 'description');
|
|
62
|
+
if (!/^[a-zA-Z0-9][a-zA-Z0-9._-]*$/u.test(name)) {
|
|
63
|
+
throw new Error('meta.name contains invalid characters');
|
|
64
|
+
}
|
|
65
|
+
let phases;
|
|
66
|
+
if (record.phases !== undefined) {
|
|
67
|
+
if (!Array.isArray(record.phases))
|
|
68
|
+
throw new Error('meta.phases must be an array');
|
|
69
|
+
phases = record.phases.map((phase, index) => {
|
|
70
|
+
if (!phase || typeof phase !== 'object' || Array.isArray(phase)) {
|
|
71
|
+
throw new Error(`meta.phases[${index}] must be an object`);
|
|
72
|
+
}
|
|
73
|
+
const item = phase;
|
|
74
|
+
const title = nonEmpty(item.title, `phases[${index}].title`);
|
|
75
|
+
if (item.detail !== undefined && typeof item.detail !== 'string') {
|
|
76
|
+
throw new Error(`meta.phases[${index}].detail must be a string`);
|
|
77
|
+
}
|
|
78
|
+
if (item.model !== undefined && typeof item.model !== 'string') {
|
|
79
|
+
throw new Error(`meta.phases[${index}].model must be a string`);
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
title,
|
|
83
|
+
...(item.detail === undefined ? {} : { detail: item.detail }),
|
|
84
|
+
...(item.model === undefined ? {} : { model: item.model }),
|
|
85
|
+
};
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
if (record.whenToUse !== undefined && typeof record.whenToUse !== 'string') {
|
|
89
|
+
throw new Error('meta.whenToUse must be a string');
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
name,
|
|
93
|
+
description,
|
|
94
|
+
...(phases ? { phases } : {}),
|
|
95
|
+
...(record.whenToUse === undefined ? {} : { whenToUse: record.whenToUse }),
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
export function parseWorkflowScript(script) {
|
|
99
|
+
let program;
|
|
100
|
+
try {
|
|
101
|
+
program = parse(script, {
|
|
102
|
+
ecmaVersion: 'latest',
|
|
103
|
+
sourceType: 'module',
|
|
104
|
+
allowAwaitOutsideFunction: true,
|
|
105
|
+
allowReturnOutsideFunction: true,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
throw new Error(`Invalid workflow script: ${error.message}`);
|
|
110
|
+
}
|
|
111
|
+
const statements = program.body;
|
|
112
|
+
const first = statements[0];
|
|
113
|
+
if (!first || first.type !== 'ExportNamedDeclaration') {
|
|
114
|
+
throw new Error('Invalid workflow script: `export const meta = { name, description, phases }` must be the FIRST statement in the script');
|
|
115
|
+
}
|
|
116
|
+
const declaration = first.declaration;
|
|
117
|
+
const declarators = declaration?.declarations;
|
|
118
|
+
const item = declarators?.[0];
|
|
119
|
+
if (declaration?.type !== 'VariableDeclaration' ||
|
|
120
|
+
declaration.kind !== 'const' ||
|
|
121
|
+
declarators?.length !== 1 ||
|
|
122
|
+
item?.id == null ||
|
|
123
|
+
item.id.type !== 'Identifier' ||
|
|
124
|
+
item.id.name !== 'meta' ||
|
|
125
|
+
!item.init) {
|
|
126
|
+
throw new Error('Invalid workflow script: `export const meta = { name, description, phases }` must be the FIRST statement in the script');
|
|
127
|
+
}
|
|
128
|
+
let meta;
|
|
129
|
+
try {
|
|
130
|
+
meta = validateMeta(literal(item.init));
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
const message = error.message;
|
|
134
|
+
throw new Error(message.startsWith('meta.')
|
|
135
|
+
? `Invalid workflow script: ${message}`
|
|
136
|
+
: `Invalid workflow script: meta must be a pure literal: ${message}`);
|
|
137
|
+
}
|
|
138
|
+
return {
|
|
139
|
+
meta,
|
|
140
|
+
body: script.slice(first.end),
|
|
141
|
+
orderedReplaySafe: !statements
|
|
142
|
+
.slice(1)
|
|
143
|
+
.some(referencesReplaySensitiveGlobal),
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=workflow-meta.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-meta.js","sourceRoot":"","sources":["../../src/application/workflow-meta.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export interface WorkflowAgentOptions {
|
|
2
|
+
label?: string;
|
|
3
|
+
phase?: string;
|
|
4
|
+
schema?: Record<string, unknown>;
|
|
5
|
+
model?: string;
|
|
6
|
+
effort?: string;
|
|
7
|
+
isolation?: 'worktree';
|
|
8
|
+
agentType?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface WorkflowRuntimeHost {
|
|
11
|
+
agent(prompt: string, options: WorkflowAgentOptions): Promise<unknown>;
|
|
12
|
+
workflow(reference: string | {
|
|
13
|
+
scriptPath: string;
|
|
14
|
+
}, args: unknown): Promise<unknown>;
|
|
15
|
+
log(message: string): void;
|
|
16
|
+
phase(title: string): void;
|
|
17
|
+
spent(): number;
|
|
18
|
+
total: number | null;
|
|
19
|
+
}
|
|
20
|
+
export interface WorkflowRuntimeOptions {
|
|
21
|
+
body: string;
|
|
22
|
+
args: unknown;
|
|
23
|
+
host: WorkflowRuntimeHost;
|
|
24
|
+
signal?: AbortSignal;
|
|
25
|
+
memoryLimitBytes?: number;
|
|
26
|
+
deadlineMs?: number;
|
|
27
|
+
}
|
|
28
|
+
export declare function executeWorkflowScript(options: WorkflowRuntimeOptions): Promise<unknown>;
|
|
29
|
+
//# sourceMappingURL=workflow-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-runtime.d.ts","sourceRoot":"","sources":["../../src/application/workflow-runtime.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,UAAU,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACtE,QAAQ,CACN,SAAS,EAAE,MAAM,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,EAC1C,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,OAAO,CAAC,CAAA;IACnB,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,KAAK,IAAI,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,EAAE,mBAAmB,CAAA;IACzB,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AA6HD,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,OAAO,CAAC,CAoFlB"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { getQuickJS } from 'quickjs-emscripten';
|
|
2
|
+
const MAX_COLLECTION = 4096;
|
|
3
|
+
const DEFAULT_MEMORY_BYTES = 64 * 1024 * 1024;
|
|
4
|
+
const DEFAULT_DEADLINE_MS = 30 * 60 * 1000;
|
|
5
|
+
function errorMessage(vm, handle) {
|
|
6
|
+
const value = vm.dump(handle);
|
|
7
|
+
if (value && typeof value === 'object' && typeof value.message === 'string') {
|
|
8
|
+
const stack = typeof value.stack === 'string' ? `\n${value.stack}` : '';
|
|
9
|
+
return `${value.message}${stack}`;
|
|
10
|
+
}
|
|
11
|
+
return String(value);
|
|
12
|
+
}
|
|
13
|
+
function installAsyncHostFunction(vm, name, operation, pending) {
|
|
14
|
+
const fn = vm.newFunction(name, (...handles) => {
|
|
15
|
+
const args = handles.map((handle) => vm.dump(handle));
|
|
16
|
+
const promise = vm.newPromise();
|
|
17
|
+
pending.add(promise);
|
|
18
|
+
void Promise.resolve()
|
|
19
|
+
.then(() => operation(...args))
|
|
20
|
+
.then((value) => {
|
|
21
|
+
const encoded = vm.newString(JSON.stringify({ value }));
|
|
22
|
+
try {
|
|
23
|
+
promise.resolve(encoded);
|
|
24
|
+
}
|
|
25
|
+
finally {
|
|
26
|
+
encoded.dispose();
|
|
27
|
+
}
|
|
28
|
+
}, (error) => {
|
|
29
|
+
const failure = vm.newError(error instanceof Error ? error.message : String(error));
|
|
30
|
+
try {
|
|
31
|
+
promise.reject(failure);
|
|
32
|
+
}
|
|
33
|
+
finally {
|
|
34
|
+
failure.dispose();
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
void promise.settled.then(() => {
|
|
38
|
+
vm.runtime.executePendingJobs();
|
|
39
|
+
});
|
|
40
|
+
return promise.handle;
|
|
41
|
+
});
|
|
42
|
+
vm.setProp(vm.global, name, fn);
|
|
43
|
+
fn.dispose();
|
|
44
|
+
}
|
|
45
|
+
function installSyncHostFunction(vm, name, operation) {
|
|
46
|
+
const fn = vm.newFunction(name, (...handles) => {
|
|
47
|
+
const value = operation(...handles.map((handle) => vm.dump(handle)));
|
|
48
|
+
if (typeof value === 'number')
|
|
49
|
+
return vm.newNumber(value);
|
|
50
|
+
if (typeof value === 'string')
|
|
51
|
+
return vm.newString(value);
|
|
52
|
+
if (typeof value === 'boolean')
|
|
53
|
+
return value ? vm.true : vm.false;
|
|
54
|
+
return vm.undefined;
|
|
55
|
+
});
|
|
56
|
+
vm.setProp(vm.global, name, fn);
|
|
57
|
+
fn.dispose();
|
|
58
|
+
}
|
|
59
|
+
const PRELUDE = String.raw `
|
|
60
|
+
const __decode = async value => (JSON.parse(await value)).value
|
|
61
|
+
const agent = (prompt, options = {}) => {
|
|
62
|
+
if (typeof prompt !== 'string' || prompt.length === 0) throw new Error('agent prompt must be a non-empty string')
|
|
63
|
+
return __decode(__workflowAgent(prompt, options))
|
|
64
|
+
}
|
|
65
|
+
const workflow = (reference, workflowArgs) => {
|
|
66
|
+
const validName = typeof reference === 'string' && reference.length > 0
|
|
67
|
+
const validPath = reference && typeof reference === 'object' && typeof reference.scriptPath === 'string' && reference.scriptPath.length > 0
|
|
68
|
+
if (!validName && !validPath) throw new Error('workflow reference must be a name or {scriptPath}')
|
|
69
|
+
return __decode(__workflowNested(reference, workflowArgs))
|
|
70
|
+
}
|
|
71
|
+
const log = message => __workflowLog(String(message))
|
|
72
|
+
const phase = title => __workflowPhase(String(title))
|
|
73
|
+
const parallel = async thunks => {
|
|
74
|
+
if (!Array.isArray(thunks)) throw new Error('parallel input must be an array')
|
|
75
|
+
if (thunks.length > ${MAX_COLLECTION}) throw new Error('parallel input exceeded ${MAX_COLLECTION}')
|
|
76
|
+
return Promise.all(thunks.map(async thunk => {
|
|
77
|
+
try {
|
|
78
|
+
if (typeof thunk !== 'function') throw new Error('parallel items must be functions')
|
|
79
|
+
return await thunk()
|
|
80
|
+
} catch { return null }
|
|
81
|
+
}))
|
|
82
|
+
}
|
|
83
|
+
const pipeline = async (items, ...stages) => {
|
|
84
|
+
if (!Array.isArray(items)) throw new Error('pipeline items must be an array')
|
|
85
|
+
if (items.length > ${MAX_COLLECTION}) throw new Error('pipeline input exceeded ${MAX_COLLECTION}')
|
|
86
|
+
if (stages.some(stage => typeof stage !== 'function')) throw new Error('pipeline stages must be functions')
|
|
87
|
+
return Promise.all(items.map(async (item, index) => {
|
|
88
|
+
let value = item
|
|
89
|
+
try {
|
|
90
|
+
for (const stage of stages) value = await stage(value, item, index)
|
|
91
|
+
return value
|
|
92
|
+
} catch { return null }
|
|
93
|
+
}))
|
|
94
|
+
}
|
|
95
|
+
const budget = Object.freeze({
|
|
96
|
+
total: __workflowBudgetTotal,
|
|
97
|
+
spent: () => __workflowBudgetSpent(),
|
|
98
|
+
remaining: () => __workflowBudgetTotal === null ? Infinity : Math.max(0, __workflowBudgetTotal - __workflowBudgetSpent()),
|
|
99
|
+
})
|
|
100
|
+
Date.now = () => { throw new Error('Date.now() is not available in workflows') }
|
|
101
|
+
Math.random = () => { throw new Error('Math.random() is not available in workflows') }
|
|
102
|
+
const __NativeDate = Date
|
|
103
|
+
Date = class WorkflowDate extends __NativeDate {
|
|
104
|
+
constructor(...values) {
|
|
105
|
+
if (values.length === 0) throw new Error('new Date() without arguments is not available in workflows')
|
|
106
|
+
super(...values)
|
|
107
|
+
}
|
|
108
|
+
static now() { throw new Error('Date.now() is not available in workflows') }
|
|
109
|
+
}
|
|
110
|
+
Object.freeze(budget)
|
|
111
|
+
`;
|
|
112
|
+
export async function executeWorkflowScript(options) {
|
|
113
|
+
if (Buffer.byteLength(options.body) > 524_288) {
|
|
114
|
+
throw new Error('Workflow script exceeded 524288 bytes');
|
|
115
|
+
}
|
|
116
|
+
if (options.host.total !== null &&
|
|
117
|
+
(options.host.total < 0 || !Number.isFinite(options.host.total))) {
|
|
118
|
+
throw new Error('Workflow budget total must be finite and non-negative');
|
|
119
|
+
}
|
|
120
|
+
const QuickJS = await getQuickJS();
|
|
121
|
+
const runtime = QuickJS.newRuntime();
|
|
122
|
+
runtime.setMemoryLimit(options.memoryLimitBytes ?? DEFAULT_MEMORY_BYTES);
|
|
123
|
+
runtime.setMaxStackSize(1024 * 1024);
|
|
124
|
+
const deadline = Date.now() + (options.deadlineMs ?? DEFAULT_DEADLINE_MS);
|
|
125
|
+
runtime.setInterruptHandler(() => options.signal?.aborted === true || Date.now() > deadline);
|
|
126
|
+
const vm = runtime.newContext();
|
|
127
|
+
const pending = new Set();
|
|
128
|
+
try {
|
|
129
|
+
installAsyncHostFunction(vm, '__workflowAgent', (prompt, agentOptions) => options.host.agent(String(prompt), (agentOptions ?? {})), pending);
|
|
130
|
+
installAsyncHostFunction(vm, '__workflowNested', (reference, args) => options.host.workflow(reference, args), pending);
|
|
131
|
+
installSyncHostFunction(vm, '__workflowLog', (message) => {
|
|
132
|
+
options.host.log(String(message));
|
|
133
|
+
});
|
|
134
|
+
installSyncHostFunction(vm, '__workflowPhase', (title) => {
|
|
135
|
+
options.host.phase(String(title));
|
|
136
|
+
});
|
|
137
|
+
installSyncHostFunction(vm, '__workflowBudgetSpent', () => options.host.spent());
|
|
138
|
+
const total = options.host.total === null ? vm.null : vm.newNumber(options.host.total);
|
|
139
|
+
vm.setProp(vm.global, '__workflowBudgetTotal', total);
|
|
140
|
+
if (options.host.total !== null)
|
|
141
|
+
total.dispose();
|
|
142
|
+
const args = vm.newString(JSON.stringify({ value: options.args }));
|
|
143
|
+
vm.setProp(vm.global, '__workflowArgsJson', args);
|
|
144
|
+
args.dispose();
|
|
145
|
+
const source = `${PRELUDE}\nconst args = JSON.parse(__workflowArgsJson).value\n;(async () => {\n${options.body}\n})()`;
|
|
146
|
+
const evaluated = vm.evalCode(source, 'workflow.js');
|
|
147
|
+
if (evaluated.error) {
|
|
148
|
+
const message = errorMessage(vm, evaluated.error);
|
|
149
|
+
evaluated.error.dispose();
|
|
150
|
+
throw new Error(message);
|
|
151
|
+
}
|
|
152
|
+
const promise = evaluated.value;
|
|
153
|
+
const settling = vm.resolvePromise(promise);
|
|
154
|
+
runtime.executePendingJobs();
|
|
155
|
+
const settled = await settling;
|
|
156
|
+
promise.dispose();
|
|
157
|
+
if (settled.error) {
|
|
158
|
+
const message = errorMessage(vm, settled.error);
|
|
159
|
+
settled.error.dispose();
|
|
160
|
+
if (options.signal?.aborted)
|
|
161
|
+
throw new Error('Workflow aborted');
|
|
162
|
+
throw new Error(message);
|
|
163
|
+
}
|
|
164
|
+
const result = vm.dump(settled.value);
|
|
165
|
+
settled.value.dispose();
|
|
166
|
+
return result;
|
|
167
|
+
}
|
|
168
|
+
finally {
|
|
169
|
+
await Promise.allSettled([...pending].map((promise) => promise.settled));
|
|
170
|
+
for (const promise of pending)
|
|
171
|
+
promise.dispose();
|
|
172
|
+
vm.dispose();
|
|
173
|
+
runtime.dispose();
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=workflow-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-runtime.js","sourceRoot":"","sources":["../../src/application/workflow-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type ManagedWorktree } from './managed-worktree.js';
|
|
2
|
+
export type WorkflowWorktree = ManagedWorktree;
|
|
3
|
+
export declare function createWorkflowWorktree(options: {
|
|
4
|
+
cwd: string;
|
|
5
|
+
praxisRoot: string;
|
|
6
|
+
runId: string;
|
|
7
|
+
agentId: string;
|
|
8
|
+
}): Promise<WorkflowWorktree>;
|
|
9
|
+
//# sourceMappingURL=workflow-worktree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-worktree.d.ts","sourceRoot":"","sources":["../../src/application/workflow-worktree.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAA;AAE9B,MAAM,MAAM,gBAAgB,GAAG,eAAe,CAAA;AAE9C,wBAAsB,sBAAsB,CAAC,OAAO,EAAE;IACpD,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAO5B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { join } from 'node:path';
|
|
2
|
+
import { createManagedWorktree, } from './managed-worktree.js';
|
|
3
|
+
export async function createWorkflowWorktree(options) {
|
|
4
|
+
return createManagedWorktree({
|
|
5
|
+
cwd: options.cwd,
|
|
6
|
+
parentDirectory: join(options.praxisRoot, 'workflow-worktrees'),
|
|
7
|
+
directoryName: `${options.runId}-${options.agentId}`,
|
|
8
|
+
label: 'Workflow',
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=workflow-worktree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-worktree.js","sourceRoot":"","sources":["../../src/application/workflow-worktree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,EACL,qBAAqB,GAEtB,MAAM,uBAAuB,CAAA;AAI9B,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAK5C;IACC,OAAO,qBAAqB,CAAC;QAC3B,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,oBAAoB,CAAC;QAC/D,aAAa,EAAE,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE;QACpD,KAAK,EAAE,UAAU;KAClB,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { TopLevelAgentSummary } from '../application/top-level-agent-manager.js';
|
|
2
|
+
export interface AgentsDashboardManager {
|
|
3
|
+
launch(options: {
|
|
4
|
+
prompt: string;
|
|
5
|
+
argv: string[];
|
|
6
|
+
resumeSessionId?: string;
|
|
7
|
+
cwd?: string;
|
|
8
|
+
}): Promise<{
|
|
9
|
+
id: string;
|
|
10
|
+
sessionId: string;
|
|
11
|
+
}>;
|
|
12
|
+
list(options: {
|
|
13
|
+
cwd?: string;
|
|
14
|
+
all: boolean;
|
|
15
|
+
}): Promise<TopLevelAgentSummary[]>;
|
|
16
|
+
review?(agent: Pick<TopLevelAgentSummary, 'id' | 'cwd' | 'sessionId'>): Promise<string>;
|
|
17
|
+
stop(id: string): Promise<void>;
|
|
18
|
+
attach(id: string, input: AsyncIterable<string | Uint8Array>, output: (text: string) => void, signal?: AbortSignal): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
export interface AgentsDashboardDefaults {
|
|
21
|
+
argv: readonly string[];
|
|
22
|
+
cwd?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface AgentsDashboardAppProps {
|
|
25
|
+
manager: AgentsDashboardManager;
|
|
26
|
+
defaults: AgentsDashboardDefaults;
|
|
27
|
+
signal?: AbortSignal;
|
|
28
|
+
refreshIntervalMs?: number;
|
|
29
|
+
onCancel?: () => void;
|
|
30
|
+
}
|
|
31
|
+
export declare function AgentsDashboardApp({ manager, defaults, signal, refreshIntervalMs, onCancel, }: AgentsDashboardAppProps): import("react").JSX.Element;
|
|
32
|
+
export declare function runAgentsDashboard(options: {
|
|
33
|
+
manager: AgentsDashboardManager;
|
|
34
|
+
defaults: AgentsDashboardDefaults;
|
|
35
|
+
signal?: AbortSignal;
|
|
36
|
+
}): Promise<number>;
|
|
37
|
+
//# sourceMappingURL=agents-dashboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents-dashboard.d.ts","sourceRoot":"","sources":["../../src/cli/agents-dashboard.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAErF,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,OAAO,EAAE;QACd,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,EAAE,MAAM,EAAE,CAAA;QACd,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB,GAAG,CAAC,EAAE,MAAM,CAAA;KACb,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC9C,IAAI,CAAC,OAAO,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAA;IAC9E,MAAM,CAAC,CACL,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAAE,IAAI,GAAG,KAAK,GAAG,WAAW,CAAC,GAC5D,OAAO,CAAC,MAAM,CAAC,CAAA;IAClB,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/B,MAAM,CACJ,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,aAAa,CAAC,MAAM,GAAG,UAAU,CAAC,EACzC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAC9B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAAA;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;IACvB,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,sBAAsB,CAAA;IAC/B,QAAQ,EAAE,uBAAuB,CAAA;IACjC,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CACtB;AAkID,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,QAAQ,EACR,MAAM,EACN,iBAAyB,EACzB,QAAQ,GACT,EAAE,uBAAuB,+BAsXzB;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE;IAChD,OAAO,EAAE,sBAAsB,CAAA;IAC/B,QAAQ,EAAE,uBAAuB,CAAA;IACjC,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GAAG,OAAO,CAAC,MAAM,CAAC,CAgBlB"}
|