hivehq 2.0.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/CHANGELOG.md +592 -0
- package/LICENSE +208 -0
- package/LICENSE.BSL +101 -0
- package/NOTICE +15 -0
- package/README.en.md +451 -0
- package/README.md +329 -0
- package/SECURITY.md +59 -0
- package/TRADEMARK.md +41 -0
- package/assets/hive-hero.png +0 -0
- package/assets/hive-team-view.png +0 -0
- package/assets/logo.png +0 -0
- package/assets/qq-group.jpg +0 -0
- package/dist/bin/team +7 -0
- package/dist/bin/team.cmd +3 -0
- package/dist/src/cli/hive-remote.d.ts +46 -0
- package/dist/src/cli/hive-remote.js +257 -0
- package/dist/src/cli/hive-update.d.ts +75 -0
- package/dist/src/cli/hive-update.js +215 -0
- package/dist/src/cli/hive.d.ts +78 -0
- package/dist/src/cli/hive.js +336 -0
- package/dist/src/cli/team.d.ts +38 -0
- package/dist/src/cli/team.js +762 -0
- package/dist/src/server/agent-command-resolver.d.ts +17 -0
- package/dist/src/server/agent-command-resolver.js +106 -0
- package/dist/src/server/agent-exit-classification.d.ts +6 -0
- package/dist/src/server/agent-exit-classification.js +6 -0
- package/dist/src/server/agent-launch-cache.d.ts +20 -0
- package/dist/src/server/agent-launch-cache.js +75 -0
- package/dist/src/server/agent-launch-resolver.d.ts +4 -0
- package/dist/src/server/agent-launch-resolver.js +38 -0
- package/dist/src/server/agent-manager-support.d.ts +36 -0
- package/dist/src/server/agent-manager-support.js +318 -0
- package/dist/src/server/agent-manager.d.ts +54 -0
- package/dist/src/server/agent-manager.js +104 -0
- package/dist/src/server/agent-run-bootstrap.d.ts +83 -0
- package/dist/src/server/agent-run-bootstrap.js +101 -0
- package/dist/src/server/agent-run-exit-handler.d.ts +8 -0
- package/dist/src/server/agent-run-exit-handler.js +32 -0
- package/dist/src/server/agent-run-start-context.d.ts +24 -0
- package/dist/src/server/agent-run-start-context.js +1 -0
- package/dist/src/server/agent-run-starter.d.ts +30 -0
- package/dist/src/server/agent-run-starter.js +155 -0
- package/dist/src/server/agent-run-store.d.ts +51 -0
- package/dist/src/server/agent-run-store.js +137 -0
- package/dist/src/server/agent-run-sync.d.ts +10 -0
- package/dist/src/server/agent-run-sync.js +32 -0
- package/dist/src/server/agent-runtime-active-run.d.ts +3 -0
- package/dist/src/server/agent-runtime-active-run.js +10 -0
- package/dist/src/server/agent-runtime-close.d.ts +5 -0
- package/dist/src/server/agent-runtime-close.js +36 -0
- package/dist/src/server/agent-runtime-contract.d.ts +48 -0
- package/dist/src/server/agent-runtime-contract.js +1 -0
- package/dist/src/server/agent-runtime-flow-adapter.d.ts +10 -0
- package/dist/src/server/agent-runtime-flow-adapter.js +14 -0
- package/dist/src/server/agent-runtime-list-runs.d.ts +3 -0
- package/dist/src/server/agent-runtime-list-runs.js +18 -0
- package/dist/src/server/agent-runtime-ports.d.ts +22 -0
- package/dist/src/server/agent-runtime-ports.js +1 -0
- package/dist/src/server/agent-runtime-stop-run.d.ts +4 -0
- package/dist/src/server/agent-runtime-stop-run.js +19 -0
- package/dist/src/server/agent-runtime-types.d.ts +5 -0
- package/dist/src/server/agent-runtime-types.js +1 -0
- package/dist/src/server/agent-runtime.d.ts +10 -0
- package/dist/src/server/agent-runtime.js +143 -0
- package/dist/src/server/agent-session-store.d.ts +7 -0
- package/dist/src/server/agent-session-store.js +45 -0
- package/dist/src/server/agent-startup-instructions.d.ts +20 -0
- package/dist/src/server/agent-startup-instructions.js +36 -0
- package/dist/src/server/agent-stdin-dispatcher.d.ts +52 -0
- package/dist/src/server/agent-stdin-dispatcher.js +224 -0
- package/dist/src/server/agent-tokens.d.ts +15 -0
- package/dist/src/server/agent-tokens.js +25 -0
- package/dist/src/server/app-state-store.d.ts +10 -0
- package/dist/src/server/app-state-store.js +12 -0
- package/dist/src/server/app.d.ts +20 -0
- package/dist/src/server/app.js +211 -0
- package/dist/src/server/claude-command-defaults.d.ts +1 -0
- package/dist/src/server/claude-command-defaults.js +5 -0
- package/dist/src/server/claude-session-coordinator.d.ts +10 -0
- package/dist/src/server/claude-session-coordinator.js +68 -0
- package/dist/src/server/claude-session-support.d.ts +1 -0
- package/dist/src/server/claude-session-support.js +1 -0
- package/dist/src/server/command-preset-defaults.d.ts +11 -0
- package/dist/src/server/command-preset-defaults.js +63 -0
- package/dist/src/server/command-preset-store.d.ts +49 -0
- package/dist/src/server/command-preset-store.js +83 -0
- package/dist/src/server/cron-util.d.ts +7 -0
- package/dist/src/server/cron-util.js +19 -0
- package/dist/src/server/dispatch-ledger-serializer.d.ts +15 -0
- package/dist/src/server/dispatch-ledger-serializer.js +14 -0
- package/dist/src/server/dispatch-ledger-store.d.ts +108 -0
- package/dist/src/server/dispatch-ledger-store.js +241 -0
- package/dist/src/server/env-sync-message.d.ts +9 -0
- package/dist/src/server/env-sync-message.js +29 -0
- package/dist/src/server/feature-flags.d.ts +42 -0
- package/dist/src/server/feature-flags.js +24 -0
- package/dist/src/server/fs-browse.d.ts +40 -0
- package/dist/src/server/fs-browse.js +306 -0
- package/dist/src/server/fs-pick-folder.d.ts +25 -0
- package/dist/src/server/fs-pick-folder.js +115 -0
- package/dist/src/server/fs-sandbox.d.ts +15 -0
- package/dist/src/server/fs-sandbox.js +56 -0
- package/dist/src/server/hive-team-guidance.d.ts +39 -0
- package/dist/src/server/hive-team-guidance.js +295 -0
- package/dist/src/server/http-errors.d.ts +22 -0
- package/dist/src/server/http-errors.js +44 -0
- package/dist/src/server/live-run-registry.d.ts +22 -0
- package/dist/src/server/live-run-registry.js +52 -0
- package/dist/src/server/local-request-guard.d.ts +3 -0
- package/dist/src/server/local-request-guard.js +41 -0
- package/dist/src/server/machine-name.d.ts +2 -0
- package/dist/src/server/machine-name.js +13 -0
- package/dist/src/server/marketplace-store.d.ts +38 -0
- package/dist/src/server/marketplace-store.js +85 -0
- package/dist/src/server/message-log-store.d.ts +51 -0
- package/dist/src/server/message-log-store.js +90 -0
- package/dist/src/server/open-target-commands.d.ts +54 -0
- package/dist/src/server/open-target-commands.js +204 -0
- package/dist/src/server/orchestrator-autostart.d.ts +42 -0
- package/dist/src/server/orchestrator-autostart.js +114 -0
- package/dist/src/server/orchestrator-launch.d.ts +24 -0
- package/dist/src/server/orchestrator-launch.js +71 -0
- package/dist/src/server/package-version.d.ts +17 -0
- package/dist/src/server/package-version.js +32 -0
- package/dist/src/server/path-canonicalization.d.ts +3 -0
- package/dist/src/server/path-canonicalization.js +29 -0
- package/dist/src/server/platform-path.d.ts +4 -0
- package/dist/src/server/platform-path.js +26 -0
- package/dist/src/server/post-start-input-writer.d.ts +6 -0
- package/dist/src/server/post-start-input-writer.js +242 -0
- package/dist/src/server/preset-launch-support.d.ts +6 -0
- package/dist/src/server/preset-launch-support.js +98 -0
- package/dist/src/server/pty-output-bus.d.ts +8 -0
- package/dist/src/server/pty-output-bus.js +32 -0
- package/dist/src/server/recovery-summary.d.ts +15 -0
- package/dist/src/server/recovery-summary.js +92 -0
- package/dist/src/server/remote-audit-store.d.ts +51 -0
- package/dist/src/server/remote-audit-store.js +108 -0
- package/dist/src/server/remote-config-keys.d.ts +17 -0
- package/dist/src/server/remote-config-keys.js +27 -0
- package/dist/src/server/remote-control-constants.d.ts +30 -0
- package/dist/src/server/remote-control-constants.js +29 -0
- package/dist/src/server/remote-device-session.d.ts +40 -0
- package/dist/src/server/remote-device-session.js +22 -0
- package/dist/src/server/remote-device-store.d.ts +36 -0
- package/dist/src/server/remote-device-store.js +67 -0
- package/dist/src/server/remote-frame-bridge.d.ts +102 -0
- package/dist/src/server/remote-frame-bridge.js +791 -0
- package/dist/src/server/remote-gateway-client.d.ts +14 -0
- package/dist/src/server/remote-gateway-client.js +36 -0
- package/dist/src/server/remote-loopback-auth.d.ts +6 -0
- package/dist/src/server/remote-loopback-auth.js +112 -0
- package/dist/src/server/remote-pairing-tunnel.d.ts +59 -0
- package/dist/src/server/remote-pairing-tunnel.js +146 -0
- package/dist/src/server/remote-pairing.d.ts +58 -0
- package/dist/src/server/remote-pairing.js +237 -0
- package/dist/src/server/remote-tunnel.d.ts +113 -0
- package/dist/src/server/remote-tunnel.js +514 -0
- package/dist/src/server/report-outbox-store.d.ts +36 -0
- package/dist/src/server/report-outbox-store.js +33 -0
- package/dist/src/server/restart-policy-support.d.ts +30 -0
- package/dist/src/server/restart-policy-support.js +21 -0
- package/dist/src/server/restart-policy.d.ts +18 -0
- package/dist/src/server/restart-policy.js +77 -0
- package/dist/src/server/role-template-store.d.ts +45 -0
- package/dist/src/server/role-template-store.js +76 -0
- package/dist/src/server/role-templates.d.ts +7 -0
- package/dist/src/server/role-templates.js +54 -0
- package/dist/src/server/route-helpers.d.ts +9 -0
- package/dist/src/server/route-helpers.js +61 -0
- package/dist/src/server/route-types.d.ts +121 -0
- package/dist/src/server/route-types.js +1 -0
- package/dist/src/server/routes-dispatches.d.ts +2 -0
- package/dist/src/server/routes-dispatches.js +54 -0
- package/dist/src/server/routes-fs.d.ts +2 -0
- package/dist/src/server/routes-fs.js +24 -0
- package/dist/src/server/routes-marketplace.d.ts +2 -0
- package/dist/src/server/routes-marketplace.js +54 -0
- package/dist/src/server/routes-open-workspace.d.ts +2 -0
- package/dist/src/server/routes-open-workspace.js +47 -0
- package/dist/src/server/routes-remote.d.ts +2 -0
- package/dist/src/server/routes-remote.js +166 -0
- package/dist/src/server/routes-runtime.d.ts +2 -0
- package/dist/src/server/routes-runtime.js +79 -0
- package/dist/src/server/routes-settings.d.ts +2 -0
- package/dist/src/server/routes-settings.js +213 -0
- package/dist/src/server/routes-tasks.d.ts +2 -0
- package/dist/src/server/routes-tasks.js +47 -0
- package/dist/src/server/routes-team-memory.d.ts +2 -0
- package/dist/src/server/routes-team-memory.js +154 -0
- package/dist/src/server/routes-team-recall.d.ts +2 -0
- package/dist/src/server/routes-team-recall.js +119 -0
- package/dist/src/server/routes-team.d.ts +2 -0
- package/dist/src/server/routes-team.js +351 -0
- package/dist/src/server/routes-ui.d.ts +2 -0
- package/dist/src/server/routes-ui.js +17 -0
- package/dist/src/server/routes-version.d.ts +2 -0
- package/dist/src/server/routes-version.js +6 -0
- package/dist/src/server/routes-workflow-schedules.d.ts +2 -0
- package/dist/src/server/routes-workflow-schedules.js +58 -0
- package/dist/src/server/routes-workflows.d.ts +2 -0
- package/dist/src/server/routes-workflows.js +83 -0
- package/dist/src/server/routes-workspace-memory-dreams.d.ts +2 -0
- package/dist/src/server/routes-workspace-memory-dreams.js +105 -0
- package/dist/src/server/routes-workspace-memory.d.ts +2 -0
- package/dist/src/server/routes-workspace-memory.js +215 -0
- package/dist/src/server/routes-workspaces.d.ts +2 -0
- package/dist/src/server/routes-workspaces.js +177 -0
- package/dist/src/server/routes.d.ts +6 -0
- package/dist/src/server/routes.js +55 -0
- package/dist/src/server/runtime-database.d.ts +3 -0
- package/dist/src/server/runtime-database.js +41 -0
- package/dist/src/server/runtime-message-builders.d.ts +7 -0
- package/dist/src/server/runtime-message-builders.js +60 -0
- package/dist/src/server/runtime-restart-policy.d.ts +18 -0
- package/dist/src/server/runtime-restart-policy.js +12 -0
- package/dist/src/server/runtime-store-contract.d.ts +162 -0
- package/dist/src/server/runtime-store-contract.js +1 -0
- package/dist/src/server/runtime-store-dream.d.ts +23 -0
- package/dist/src/server/runtime-store-dream.js +16 -0
- package/dist/src/server/runtime-store-helpers.d.ts +115 -0
- package/dist/src/server/runtime-store-helpers.js +411 -0
- package/dist/src/server/runtime-store-memory.d.ts +33 -0
- package/dist/src/server/runtime-store-memory.js +37 -0
- package/dist/src/server/runtime-store-remote.d.ts +5 -0
- package/dist/src/server/runtime-store-remote.js +45 -0
- package/dist/src/server/runtime-store-workflows.d.ts +6 -0
- package/dist/src/server/runtime-store-workflows.js +108 -0
- package/dist/src/server/runtime-store.d.ts +4 -0
- package/dist/src/server/runtime-store.js +165 -0
- package/dist/src/server/session-capture-claude.d.ts +34 -0
- package/dist/src/server/session-capture-claude.js +103 -0
- package/dist/src/server/session-capture-codex.d.ts +6 -0
- package/dist/src/server/session-capture-codex.js +108 -0
- package/dist/src/server/session-capture-gemini.d.ts +5 -0
- package/dist/src/server/session-capture-gemini.js +81 -0
- package/dist/src/server/session-capture-opencode.d.ts +22 -0
- package/dist/src/server/session-capture-opencode.js +75 -0
- package/dist/src/server/session-capture.d.ts +77 -0
- package/dist/src/server/session-capture.js +123 -0
- package/dist/src/server/settings-store.d.ts +22 -0
- package/dist/src/server/settings-store.js +22 -0
- package/dist/src/server/sqlite-schema-v10.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v10.js +13 -0
- package/dist/src/server/sqlite-schema-v11.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v11.js +10 -0
- package/dist/src/server/sqlite-schema-v12.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v12.js +21 -0
- package/dist/src/server/sqlite-schema-v13.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v13.js +4 -0
- package/dist/src/server/sqlite-schema-v14.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v14.js +84 -0
- package/dist/src/server/sqlite-schema-v15.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v15.js +73 -0
- package/dist/src/server/sqlite-schema-v16.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v16.js +6 -0
- package/dist/src/server/sqlite-schema-v17.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v17.js +15 -0
- package/dist/src/server/sqlite-schema-v18.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v18.js +6 -0
- package/dist/src/server/sqlite-schema-v19.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v19.js +17 -0
- package/dist/src/server/sqlite-schema-v20.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v20.js +20 -0
- package/dist/src/server/sqlite-schema-v21.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v21.js +20 -0
- package/dist/src/server/sqlite-schema-v22.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v22.js +27 -0
- package/dist/src/server/sqlite-schema-v23.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v23.js +43 -0
- package/dist/src/server/sqlite-schema-v24.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v24.js +34 -0
- package/dist/src/server/sqlite-schema-v25.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v25.js +127 -0
- package/dist/src/server/sqlite-schema-v26.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v26.js +56 -0
- package/dist/src/server/sqlite-schema-v27.d.ts +6 -0
- package/dist/src/server/sqlite-schema-v27.js +92 -0
- package/dist/src/server/sqlite-schema-v28.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v28.js +19 -0
- package/dist/src/server/sqlite-schema-v5.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v5.js +61 -0
- package/dist/src/server/sqlite-schema-v7.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v7.js +70 -0
- package/dist/src/server/sqlite-schema-v8.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v8.js +6 -0
- package/dist/src/server/sqlite-schema-v9.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v9.js +6 -0
- package/dist/src/server/sqlite-schema.d.ts +3 -0
- package/dist/src/server/sqlite-schema.js +353 -0
- package/dist/src/server/startup-command-parser.d.ts +20 -0
- package/dist/src/server/startup-command-parser.js +72 -0
- package/dist/src/server/system-message.d.ts +8 -0
- package/dist/src/server/system-message.js +8 -0
- package/dist/src/server/task-deps.d.ts +32 -0
- package/dist/src/server/task-deps.js +40 -0
- package/dist/src/server/tasks-file-watcher.d.ts +47 -0
- package/dist/src/server/tasks-file-watcher.js +200 -0
- package/dist/src/server/tasks-file.d.ts +23 -0
- package/dist/src/server/tasks-file.js +101 -0
- package/dist/src/server/tasks-websocket-server.d.ts +8 -0
- package/dist/src/server/tasks-websocket-server.js +95 -0
- package/dist/src/server/team-authz.d.ts +13 -0
- package/dist/src/server/team-authz.js +53 -0
- package/dist/src/server/team-autostaff.d.ts +16 -0
- package/dist/src/server/team-autostaff.js +16 -0
- package/dist/src/server/team-list-enrichment.d.ts +22 -0
- package/dist/src/server/team-list-enrichment.js +40 -0
- package/dist/src/server/team-list-serializer.d.ts +2 -0
- package/dist/src/server/team-list-serializer.js +11 -0
- package/dist/src/server/team-memory-digest.d.ts +52 -0
- package/dist/src/server/team-memory-digest.js +200 -0
- package/dist/src/server/team-memory-dream-applier.d.ts +5 -0
- package/dist/src/server/team-memory-dream-applier.js +234 -0
- package/dist/src/server/team-memory-dream-http-serializers.d.ts +13 -0
- package/dist/src/server/team-memory-dream-http-serializers.js +12 -0
- package/dist/src/server/team-memory-dream-ops.d.ts +40 -0
- package/dist/src/server/team-memory-dream-ops.js +153 -0
- package/dist/src/server/team-memory-dream-reverter.d.ts +22 -0
- package/dist/src/server/team-memory-dream-reverter.js +221 -0
- package/dist/src/server/team-memory-dream-run-store.d.ts +23 -0
- package/dist/src/server/team-memory-dream-run-store.js +211 -0
- package/dist/src/server/team-memory-dream-runner.d.ts +37 -0
- package/dist/src/server/team-memory-dream-runner.js +178 -0
- package/dist/src/server/team-memory-dream-scheduler.d.ts +32 -0
- package/dist/src/server/team-memory-dream-scheduler.js +115 -0
- package/dist/src/server/team-memory-dream-store.d.ts +19 -0
- package/dist/src/server/team-memory-dream-store.js +16 -0
- package/dist/src/server/team-memory-dream-types.d.ts +104 -0
- package/dist/src/server/team-memory-dream-types.js +23 -0
- package/dist/src/server/team-memory-export.d.ts +22 -0
- package/dist/src/server/team-memory-export.js +220 -0
- package/dist/src/server/team-memory-feature.d.ts +12 -0
- package/dist/src/server/team-memory-feature.js +12 -0
- package/dist/src/server/team-memory-http-serializers.d.ts +102 -0
- package/dist/src/server/team-memory-http-serializers.js +46 -0
- package/dist/src/server/team-memory-injection.d.ts +31 -0
- package/dist/src/server/team-memory-injection.js +49 -0
- package/dist/src/server/team-memory-store.d.ts +116 -0
- package/dist/src/server/team-memory-store.js +513 -0
- package/dist/src/server/team-operations.d.ts +102 -0
- package/dist/src/server/team-operations.js +387 -0
- package/dist/src/server/team-recall-store.d.ts +38 -0
- package/dist/src/server/team-recall-store.js +205 -0
- package/dist/src/server/terminal-flow-control.d.ts +19 -0
- package/dist/src/server/terminal-flow-control.js +116 -0
- package/dist/src/server/terminal-input-profile.d.ts +10 -0
- package/dist/src/server/terminal-input-profile.js +9 -0
- package/dist/src/server/terminal-protocol.d.ts +29 -0
- package/dist/src/server/terminal-protocol.js +47 -0
- package/dist/src/server/terminal-state-mirror.d.ts +21 -0
- package/dist/src/server/terminal-state-mirror.js +67 -0
- package/dist/src/server/terminal-stream-hub.d.ts +9 -0
- package/dist/src/server/terminal-stream-hub.js +192 -0
- package/dist/src/server/terminal-ws-server.d.ts +6 -0
- package/dist/src/server/terminal-ws-server.js +115 -0
- package/dist/src/server/ui-auth-helpers.d.ts +4 -0
- package/dist/src/server/ui-auth-helpers.js +28 -0
- package/dist/src/server/ui-auth.d.ts +8 -0
- package/dist/src/server/ui-auth.js +32 -0
- package/dist/src/server/version-service.d.ts +16 -0
- package/dist/src/server/version-service.js +72 -0
- package/dist/src/server/webhook-notifier.d.ts +34 -0
- package/dist/src/server/webhook-notifier.js +47 -0
- package/dist/src/server/websocket-upgrade-safety.d.ts +10 -0
- package/dist/src/server/websocket-upgrade-safety.js +35 -0
- package/dist/src/server/windows-command-line.d.ts +3 -0
- package/dist/src/server/windows-command-line.js +9 -0
- package/dist/src/server/windows-filename.d.ts +2 -0
- package/dist/src/server/windows-filename.js +33 -0
- package/dist/src/server/worker-output-tracker.d.ts +14 -0
- package/dist/src/server/worker-output-tracker.js +50 -0
- package/dist/src/server/workflow-cli-policy.d.ts +60 -0
- package/dist/src/server/workflow-cli-policy.js +110 -0
- package/dist/src/server/workflow-dispatch-awaiter.d.ts +12 -0
- package/dist/src/server/workflow-dispatch-awaiter.js +80 -0
- package/dist/src/server/workflow-feature.d.ts +15 -0
- package/dist/src/server/workflow-feature.js +15 -0
- package/dist/src/server/workflow-http-serializers.d.ts +64 -0
- package/dist/src/server/workflow-http-serializers.js +58 -0
- package/dist/src/server/workflow-output-schema.d.ts +18 -0
- package/dist/src/server/workflow-output-schema.js +41 -0
- package/dist/src/server/workflow-run-log-store.d.ts +19 -0
- package/dist/src/server/workflow-run-log-store.js +45 -0
- package/dist/src/server/workflow-run-store.d.ts +50 -0
- package/dist/src/server/workflow-run-store.js +103 -0
- package/dist/src/server/workflow-runner.d.ts +147 -0
- package/dist/src/server/workflow-runner.js +411 -0
- package/dist/src/server/workflow-schedule-create.d.ts +14 -0
- package/dist/src/server/workflow-schedule-create.js +41 -0
- package/dist/src/server/workflow-schedule-store.d.ts +43 -0
- package/dist/src/server/workflow-schedule-store.js +112 -0
- package/dist/src/server/workflow-scheduler.d.ts +36 -0
- package/dist/src/server/workflow-scheduler.js +97 -0
- package/dist/src/server/workflow-script-loader.d.ts +34 -0
- package/dist/src/server/workflow-script-loader.js +106 -0
- package/dist/src/server/workspace-path-validation.d.ts +1 -0
- package/dist/src/server/workspace-path-validation.js +42 -0
- package/dist/src/server/workspace-shell-runtime.d.ts +35 -0
- package/dist/src/server/workspace-shell-runtime.js +228 -0
- package/dist/src/server/workspace-store-contract.d.ts +32 -0
- package/dist/src/server/workspace-store-contract.js +1 -0
- package/dist/src/server/workspace-store-hydration.d.ts +5 -0
- package/dist/src/server/workspace-store-hydration.js +76 -0
- package/dist/src/server/workspace-store-mutations.d.ts +14 -0
- package/dist/src/server/workspace-store-mutations.js +48 -0
- package/dist/src/server/workspace-store-support.d.ts +33 -0
- package/dist/src/server/workspace-store-support.js +36 -0
- package/dist/src/server/workspace-store.d.ts +5 -0
- package/dist/src/server/workspace-store.js +153 -0
- package/dist/src/shared/fs-browse.d.ts +1 -0
- package/dist/src/shared/fs-browse.js +1 -0
- package/dist/src/shared/open-targets.d.ts +20 -0
- package/dist/src/shared/open-targets.js +36 -0
- package/dist/src/shared/path-input.d.ts +12 -0
- package/dist/src/shared/path-input.js +22 -0
- package/dist/src/shared/remote-bridge-routing.d.ts +19 -0
- package/dist/src/shared/remote-bridge-routing.js +141 -0
- package/dist/src/shared/remote-crypto.d.ts +138 -0
- package/dist/src/shared/remote-crypto.js +427 -0
- package/dist/src/shared/remote-pairing-code.d.ts +7 -0
- package/dist/src/shared/remote-pairing-code.js +47 -0
- package/dist/src/shared/remote-protocol.d.ts +160 -0
- package/dist/src/shared/remote-protocol.js +526 -0
- package/dist/src/shared/team-memory.d.ts +11 -0
- package/dist/src/shared/team-memory.js +10 -0
- package/dist/src/shared/team-recall.d.ts +1 -0
- package/dist/src/shared/team-recall.js +1 -0
- package/dist/src/shared/types.d.ts +66 -0
- package/dist/src/shared/types.js +1 -0
- package/dist/vendor/marketplace/en/LICENSE +21 -0
- package/dist/vendor/marketplace/en/SOURCES.md +12 -0
- package/dist/vendor/marketplace/en/academic/academic-anthropologist.md +125 -0
- package/dist/vendor/marketplace/en/academic/academic-geographer.md +127 -0
- package/dist/vendor/marketplace/en/academic/academic-historian.md +123 -0
- package/dist/vendor/marketplace/en/academic/academic-narratologist.md +118 -0
- package/dist/vendor/marketplace/en/academic/academic-psychologist.md +118 -0
- package/dist/vendor/marketplace/en/design/design-brand-guardian.md +322 -0
- package/dist/vendor/marketplace/en/design/design-image-prompt-engineer.md +236 -0
- package/dist/vendor/marketplace/en/design/design-inclusive-visuals-specialist.md +71 -0
- package/dist/vendor/marketplace/en/design/design-ui-designer.md +383 -0
- package/dist/vendor/marketplace/en/design/design-ux-architect.md +469 -0
- package/dist/vendor/marketplace/en/design/design-ux-researcher.md +329 -0
- package/dist/vendor/marketplace/en/design/design-visual-storyteller.md +149 -0
- package/dist/vendor/marketplace/en/design/design-whimsy-injector.md +438 -0
- package/dist/vendor/marketplace/en/engineering/engineering-ai-data-remediation-engineer.md +211 -0
- package/dist/vendor/marketplace/en/engineering/engineering-ai-engineer.md +146 -0
- package/dist/vendor/marketplace/en/engineering/engineering-autonomous-optimization-architect.md +107 -0
- package/dist/vendor/marketplace/en/engineering/engineering-backend-architect.md +235 -0
- package/dist/vendor/marketplace/en/engineering/engineering-cms-developer.md +536 -0
- package/dist/vendor/marketplace/en/engineering/engineering-code-reviewer.md +76 -0
- package/dist/vendor/marketplace/en/engineering/engineering-codebase-onboarding-engineer.md +173 -0
- package/dist/vendor/marketplace/en/engineering/engineering-data-engineer.md +306 -0
- package/dist/vendor/marketplace/en/engineering/engineering-database-optimizer.md +176 -0
- package/dist/vendor/marketplace/en/engineering/engineering-devops-automator.md +376 -0
- package/dist/vendor/marketplace/en/engineering/engineering-email-intelligence-engineer.md +353 -0
- package/dist/vendor/marketplace/en/engineering/engineering-embedded-firmware-engineer.md +173 -0
- package/dist/vendor/marketplace/en/engineering/engineering-feishu-integration-developer.md +598 -0
- package/dist/vendor/marketplace/en/engineering/engineering-filament-optimization-specialist.md +283 -0
- package/dist/vendor/marketplace/en/engineering/engineering-frontend-developer.md +225 -0
- package/dist/vendor/marketplace/en/engineering/engineering-git-workflow-master.md +84 -0
- package/dist/vendor/marketplace/en/engineering/engineering-incident-response-commander.md +444 -0
- package/dist/vendor/marketplace/en/engineering/engineering-minimal-change-engineer.md +207 -0
- package/dist/vendor/marketplace/en/engineering/engineering-mobile-app-builder.md +493 -0
- package/dist/vendor/marketplace/en/engineering/engineering-rapid-prototyper.md +462 -0
- package/dist/vendor/marketplace/en/engineering/engineering-security-engineer.md +304 -0
- package/dist/vendor/marketplace/en/engineering/engineering-senior-developer.md +176 -0
- package/dist/vendor/marketplace/en/engineering/engineering-software-architect.md +81 -0
- package/dist/vendor/marketplace/en/engineering/engineering-solidity-smart-contract-engineer.md +522 -0
- package/dist/vendor/marketplace/en/engineering/engineering-sre.md +90 -0
- package/dist/vendor/marketplace/en/engineering/engineering-technical-writer.md +393 -0
- package/dist/vendor/marketplace/en/engineering/engineering-threat-detection-engineer.md +534 -0
- package/dist/vendor/marketplace/en/engineering/engineering-voice-ai-integration-engineer.md +561 -0
- package/dist/vendor/marketplace/en/engineering/engineering-wechat-mini-program-developer.md +350 -0
- package/dist/vendor/marketplace/en/finance/finance-bookkeeper-controller.md +260 -0
- package/dist/vendor/marketplace/en/finance/finance-financial-analyst.md +234 -0
- package/dist/vendor/marketplace/en/finance/finance-fpa-analyst.md +263 -0
- package/dist/vendor/marketplace/en/finance/finance-investment-researcher.md +272 -0
- package/dist/vendor/marketplace/en/finance/finance-tax-strategist.md +239 -0
- package/dist/vendor/marketplace/en/game-development/blender/blender-addon-engineer.md +234 -0
- package/dist/vendor/marketplace/en/game-development/game-audio-engineer.md +264 -0
- package/dist/vendor/marketplace/en/game-development/game-designer.md +167 -0
- package/dist/vendor/marketplace/en/game-development/godot/godot-gameplay-scripter.md +334 -0
- package/dist/vendor/marketplace/en/game-development/godot/godot-multiplayer-engineer.md +297 -0
- package/dist/vendor/marketplace/en/game-development/godot/godot-shader-developer.md +266 -0
- package/dist/vendor/marketplace/en/game-development/level-designer.md +208 -0
- package/dist/vendor/marketplace/en/game-development/narrative-designer.md +243 -0
- package/dist/vendor/marketplace/en/game-development/roblox-studio/roblox-avatar-creator.md +297 -0
- package/dist/vendor/marketplace/en/game-development/roblox-studio/roblox-experience-designer.md +305 -0
- package/dist/vendor/marketplace/en/game-development/roblox-studio/roblox-systems-scripter.md +325 -0
- package/dist/vendor/marketplace/en/game-development/technical-artist.md +229 -0
- package/dist/vendor/marketplace/en/game-development/unity/unity-architect.md +271 -0
- package/dist/vendor/marketplace/en/game-development/unity/unity-editor-tool-developer.md +310 -0
- package/dist/vendor/marketplace/en/game-development/unity/unity-multiplayer-engineer.md +321 -0
- package/dist/vendor/marketplace/en/game-development/unity/unity-shader-graph-artist.md +269 -0
- package/dist/vendor/marketplace/en/game-development/unreal-engine/unreal-multiplayer-architect.md +313 -0
- package/dist/vendor/marketplace/en/game-development/unreal-engine/unreal-systems-engineer.md +310 -0
- package/dist/vendor/marketplace/en/game-development/unreal-engine/unreal-technical-artist.md +256 -0
- package/dist/vendor/marketplace/en/game-development/unreal-engine/unreal-world-builder.md +273 -0
- package/dist/vendor/marketplace/en/integrations/mcp-memory/backend-architect-with-memory.md +247 -0
- package/dist/vendor/marketplace/en/manifest.json +1869 -0
- package/dist/vendor/marketplace/en/marketing/marketing-agentic-search-optimizer.md +311 -0
- package/dist/vendor/marketplace/en/marketing/marketing-ai-citation-strategist.md +170 -0
- package/dist/vendor/marketplace/en/marketing/marketing-app-store-optimizer.md +321 -0
- package/dist/vendor/marketplace/en/marketing/marketing-baidu-seo-specialist.md +226 -0
- package/dist/vendor/marketplace/en/marketing/marketing-bilibili-content-strategist.md +199 -0
- package/dist/vendor/marketplace/en/marketing/marketing-book-co-author.md +110 -0
- package/dist/vendor/marketplace/en/marketing/marketing-carousel-growth-engine.md +199 -0
- package/dist/vendor/marketplace/en/marketing/marketing-china-ecommerce-operator.md +283 -0
- package/dist/vendor/marketplace/en/marketing/marketing-china-market-localization-strategist.md +283 -0
- package/dist/vendor/marketplace/en/marketing/marketing-content-creator.md +54 -0
- package/dist/vendor/marketplace/en/marketing/marketing-cross-border-ecommerce.md +259 -0
- package/dist/vendor/marketplace/en/marketing/marketing-douyin-strategist.md +149 -0
- package/dist/vendor/marketplace/en/marketing/marketing-growth-hacker.md +54 -0
- package/dist/vendor/marketplace/en/marketing/marketing-instagram-curator.md +113 -0
- package/dist/vendor/marketplace/en/marketing/marketing-kuaishou-strategist.md +223 -0
- package/dist/vendor/marketplace/en/marketing/marketing-linkedin-content-creator.md +214 -0
- package/dist/vendor/marketplace/en/marketing/marketing-livestream-commerce-coach.md +305 -0
- package/dist/vendor/marketplace/en/marketing/marketing-podcast-strategist.md +277 -0
- package/dist/vendor/marketplace/en/marketing/marketing-private-domain-operator.md +308 -0
- package/dist/vendor/marketplace/en/marketing/marketing-reddit-community-builder.md +123 -0
- package/dist/vendor/marketplace/en/marketing/marketing-seo-specialist.md +321 -0
- package/dist/vendor/marketplace/en/marketing/marketing-short-video-editing-coach.md +412 -0
- package/dist/vendor/marketplace/en/marketing/marketing-social-media-strategist.md +125 -0
- package/dist/vendor/marketplace/en/marketing/marketing-tiktok-strategist.md +125 -0
- package/dist/vendor/marketplace/en/marketing/marketing-twitter-engager.md +126 -0
- package/dist/vendor/marketplace/en/marketing/marketing-video-optimization-specialist.md +119 -0
- package/dist/vendor/marketplace/en/marketing/marketing-wechat-official-account.md +145 -0
- package/dist/vendor/marketplace/en/marketing/marketing-weibo-strategist.md +240 -0
- package/dist/vendor/marketplace/en/marketing/marketing-xiaohongshu-specialist.md +138 -0
- package/dist/vendor/marketplace/en/marketing/marketing-zhihu-strategist.md +162 -0
- package/dist/vendor/marketplace/en/paid-media/paid-media-auditor.md +71 -0
- package/dist/vendor/marketplace/en/paid-media/paid-media-creative-strategist.md +71 -0
- package/dist/vendor/marketplace/en/paid-media/paid-media-paid-social-strategist.md +71 -0
- package/dist/vendor/marketplace/en/paid-media/paid-media-ppc-strategist.md +71 -0
- package/dist/vendor/marketplace/en/paid-media/paid-media-programmatic-buyer.md +71 -0
- package/dist/vendor/marketplace/en/paid-media/paid-media-search-query-analyst.md +71 -0
- package/dist/vendor/marketplace/en/paid-media/paid-media-tracking-specialist.md +71 -0
- package/dist/vendor/marketplace/en/product/product-behavioral-nudge-engine.md +80 -0
- package/dist/vendor/marketplace/en/product/product-feedback-synthesizer.md +119 -0
- package/dist/vendor/marketplace/en/product/product-manager.md +469 -0
- package/dist/vendor/marketplace/en/product/product-sprint-prioritizer.md +154 -0
- package/dist/vendor/marketplace/en/product/product-trend-researcher.md +159 -0
- package/dist/vendor/marketplace/en/project-management/project-management-experiment-tracker.md +198 -0
- package/dist/vendor/marketplace/en/project-management/project-management-jira-workflow-steward.md +230 -0
- package/dist/vendor/marketplace/en/project-management/project-management-project-shepherd.md +194 -0
- package/dist/vendor/marketplace/en/project-management/project-management-studio-operations.md +200 -0
- package/dist/vendor/marketplace/en/project-management/project-management-studio-producer.md +203 -0
- package/dist/vendor/marketplace/en/project-management/project-manager-senior.md +135 -0
- package/dist/vendor/marketplace/en/sales/sales-account-strategist.md +227 -0
- package/dist/vendor/marketplace/en/sales/sales-coach.md +271 -0
- package/dist/vendor/marketplace/en/sales/sales-deal-strategist.md +180 -0
- package/dist/vendor/marketplace/en/sales/sales-discovery-coach.md +225 -0
- package/dist/vendor/marketplace/en/sales/sales-engineer.md +182 -0
- package/dist/vendor/marketplace/en/sales/sales-outbound-strategist.md +201 -0
- package/dist/vendor/marketplace/en/sales/sales-pipeline-analyst.md +267 -0
- package/dist/vendor/marketplace/en/sales/sales-proposal-strategist.md +217 -0
- package/dist/vendor/marketplace/en/spatial-computing/macos-spatial-metal-engineer.md +337 -0
- package/dist/vendor/marketplace/en/spatial-computing/terminal-integration-specialist.md +70 -0
- package/dist/vendor/marketplace/en/spatial-computing/visionos-spatial-engineer.md +54 -0
- package/dist/vendor/marketplace/en/spatial-computing/xr-cockpit-interaction-specialist.md +32 -0
- package/dist/vendor/marketplace/en/spatial-computing/xr-immersive-developer.md +32 -0
- package/dist/vendor/marketplace/en/spatial-computing/xr-interface-architect.md +32 -0
- package/dist/vendor/marketplace/en/specialized/accounts-payable-agent.md +185 -0
- package/dist/vendor/marketplace/en/specialized/agentic-identity-trust.md +387 -0
- package/dist/vendor/marketplace/en/specialized/agents-orchestrator.md +367 -0
- package/dist/vendor/marketplace/en/specialized/automation-governance-architect.md +216 -0
- package/dist/vendor/marketplace/en/specialized/blockchain-security-auditor.md +463 -0
- package/dist/vendor/marketplace/en/specialized/compliance-auditor.md +158 -0
- package/dist/vendor/marketplace/en/specialized/corporate-training-designer.md +192 -0
- package/dist/vendor/marketplace/en/specialized/customer-service.md +398 -0
- package/dist/vendor/marketplace/en/specialized/data-consolidation-agent.md +60 -0
- package/dist/vendor/marketplace/en/specialized/government-digital-presales-consultant.md +363 -0
- package/dist/vendor/marketplace/en/specialized/healthcare-customer-service.md +389 -0
- package/dist/vendor/marketplace/en/specialized/healthcare-marketing-compliance.md +395 -0
- package/dist/vendor/marketplace/en/specialized/hospitality-guest-services.md +603 -0
- package/dist/vendor/marketplace/en/specialized/hr-onboarding.md +451 -0
- package/dist/vendor/marketplace/en/specialized/identity-graph-operator.md +260 -0
- package/dist/vendor/marketplace/en/specialized/language-translator.md +264 -0
- package/dist/vendor/marketplace/en/specialized/legal-billing-time-tracking.md +569 -0
- package/dist/vendor/marketplace/en/specialized/legal-client-intake.md +492 -0
- package/dist/vendor/marketplace/en/specialized/legal-document-review.md +454 -0
- package/dist/vendor/marketplace/en/specialized/loan-officer-assistant.md +555 -0
- package/dist/vendor/marketplace/en/specialized/lsp-index-engineer.md +314 -0
- package/dist/vendor/marketplace/en/specialized/real-estate-buyer-seller.md +596 -0
- package/dist/vendor/marketplace/en/specialized/recruitment-specialist.md +509 -0
- package/dist/vendor/marketplace/en/specialized/report-distribution-agent.md +65 -0
- package/dist/vendor/marketplace/en/specialized/retail-customer-returns.md +566 -0
- package/dist/vendor/marketplace/en/specialized/sales-data-extraction-agent.md +67 -0
- package/dist/vendor/marketplace/en/specialized/sales-outreach.md +425 -0
- package/dist/vendor/marketplace/en/specialized/specialized-chief-of-staff.md +279 -0
- package/dist/vendor/marketplace/en/specialized/specialized-civil-engineer.md +356 -0
- package/dist/vendor/marketplace/en/specialized/specialized-cultural-intelligence-strategist.md +88 -0
- package/dist/vendor/marketplace/en/specialized/specialized-developer-advocate.md +317 -0
- package/dist/vendor/marketplace/en/specialized/specialized-document-generator.md +55 -0
- package/dist/vendor/marketplace/en/specialized/specialized-french-consulting-market.md +192 -0
- package/dist/vendor/marketplace/en/specialized/specialized-korean-business-navigator.md +216 -0
- package/dist/vendor/marketplace/en/specialized/specialized-mcp-builder.md +248 -0
- package/dist/vendor/marketplace/en/specialized/specialized-model-qa.md +488 -0
- package/dist/vendor/marketplace/en/specialized/specialized-salesforce-architect.md +180 -0
- package/dist/vendor/marketplace/en/specialized/specialized-workflow-architect.md +597 -0
- package/dist/vendor/marketplace/en/specialized/study-abroad-advisor.md +282 -0
- package/dist/vendor/marketplace/en/specialized/supply-chain-strategist.md +582 -0
- package/dist/vendor/marketplace/en/support/support-analytics-reporter.md +365 -0
- package/dist/vendor/marketplace/en/support/support-executive-summary-generator.md +212 -0
- package/dist/vendor/marketplace/en/support/support-finance-tracker.md +442 -0
- package/dist/vendor/marketplace/en/support/support-infrastructure-maintainer.md +618 -0
- package/dist/vendor/marketplace/en/support/support-legal-compliance-checker.md +588 -0
- package/dist/vendor/marketplace/en/support/support-support-responder.md +585 -0
- package/dist/vendor/marketplace/en/testing/testing-accessibility-auditor.md +316 -0
- package/dist/vendor/marketplace/en/testing/testing-api-tester.md +306 -0
- package/dist/vendor/marketplace/en/testing/testing-evidence-collector.md +210 -0
- package/dist/vendor/marketplace/en/testing/testing-performance-benchmarker.md +268 -0
- package/dist/vendor/marketplace/en/testing/testing-reality-checker.md +236 -0
- package/dist/vendor/marketplace/en/testing/testing-test-results-analyzer.md +305 -0
- package/dist/vendor/marketplace/en/testing/testing-tool-evaluator.md +394 -0
- package/dist/vendor/marketplace/en/testing/testing-workflow-optimizer.md +450 -0
- package/dist/vendor/marketplace/zh/LICENSE +22 -0
- package/dist/vendor/marketplace/zh/SOURCES.md +12 -0
- package/dist/vendor/marketplace/zh/academic/academic-anthropologist.md +124 -0
- package/dist/vendor/marketplace/zh/academic/academic-geographer.md +126 -0
- package/dist/vendor/marketplace/zh/academic/academic-historian.md +122 -0
- package/dist/vendor/marketplace/zh/academic/academic-narratologist.md +117 -0
- package/dist/vendor/marketplace/zh/academic/academic-psychologist.md +117 -0
- package/dist/vendor/marketplace/zh/academic/academic-study-planner.md +214 -0
- package/dist/vendor/marketplace/zh/design/design-brand-guardian.md +321 -0
- package/dist/vendor/marketplace/zh/design/design-image-prompt-engineer.md +255 -0
- package/dist/vendor/marketplace/zh/design/design-inclusive-visuals-specialist.md +177 -0
- package/dist/vendor/marketplace/zh/design/design-ui-designer.md +382 -0
- package/dist/vendor/marketplace/zh/design/design-ux-architect.md +482 -0
- package/dist/vendor/marketplace/zh/design/design-ux-researcher.md +328 -0
- package/dist/vendor/marketplace/zh/design/design-visual-storyteller.md +159 -0
- package/dist/vendor/marketplace/zh/design/design-whimsy-injector.md +453 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-ai-data-remediation-engineer.md +209 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-ai-engineer.md +161 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-autonomous-optimization-architect.md +115 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-backend-architect.md +234 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-cms-developer.md +534 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-code-reviewer.md +172 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-codebase-onboarding-engineer.md +172 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-data-engineer.md +324 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-database-optimizer.md +175 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-devops-automator.md +375 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-dingtalk-integration-developer.md +574 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-email-intelligence-engineer.md +349 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-embedded-firmware-engineer.md +168 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-embedded-linux-driver-engineer.md +255 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-feishu-integration-developer.md +597 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-filament-optimization-specialist.md +283 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-fpga-digital-design-engineer.md +227 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-frontend-developer.md +224 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-git-workflow-master.md +220 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-incident-response-commander.md +465 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-iot-solution-architect.md +220 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-mechanical-design-engineer.md +311 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-minimal-change-engineer.md +206 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-mobile-app-builder.md +434 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-pc-host-engineer.md +231 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-rapid-prototyper.md +461 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-security-engineer.md +303 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-senior-developer.md +177 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-software-architect.md +200 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-solidity-smart-contract-engineer.md +541 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-sre.md +233 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-technical-writer.md +409 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-threat-detection-engineer.md +553 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-voice-ai-integration-engineer.md +560 -0
- package/dist/vendor/marketplace/zh/engineering/engineering-wechat-mini-program-developer.md +288 -0
- package/dist/vendor/marketplace/zh/finance/finance-bookkeeper-controller.md +271 -0
- package/dist/vendor/marketplace/zh/finance/finance-financial-analyst.md +244 -0
- package/dist/vendor/marketplace/zh/finance/finance-financial-forecaster.md +213 -0
- package/dist/vendor/marketplace/zh/finance/finance-fpa-analyst.md +272 -0
- package/dist/vendor/marketplace/zh/finance/finance-fraud-detector.md +241 -0
- package/dist/vendor/marketplace/zh/finance/finance-investment-researcher.md +283 -0
- package/dist/vendor/marketplace/zh/finance/finance-invoice-manager.md +242 -0
- package/dist/vendor/marketplace/zh/finance/finance-tax-strategist.md +250 -0
- package/dist/vendor/marketplace/zh/game-development/blender/blender-addon-engineer.md +233 -0
- package/dist/vendor/marketplace/zh/game-development/game-audio-engineer.md +265 -0
- package/dist/vendor/marketplace/zh/game-development/game-designer.md +168 -0
- package/dist/vendor/marketplace/zh/game-development/godot/godot-gameplay-scripter.md +335 -0
- package/dist/vendor/marketplace/zh/game-development/godot/godot-multiplayer-engineer.md +296 -0
- package/dist/vendor/marketplace/zh/game-development/godot/godot-shader-developer.md +267 -0
- package/dist/vendor/marketplace/zh/game-development/level-designer.md +209 -0
- package/dist/vendor/marketplace/zh/game-development/narrative-designer.md +244 -0
- package/dist/vendor/marketplace/zh/game-development/roblox-studio/roblox-avatar-creator.md +298 -0
- package/dist/vendor/marketplace/zh/game-development/roblox-studio/roblox-experience-designer.md +306 -0
- package/dist/vendor/marketplace/zh/game-development/roblox-studio/roblox-systems-scripter.md +325 -0
- package/dist/vendor/marketplace/zh/game-development/technical-artist.md +230 -0
- package/dist/vendor/marketplace/zh/game-development/unity/unity-architect.md +272 -0
- package/dist/vendor/marketplace/zh/game-development/unity/unity-editor-tool-developer.md +300 -0
- package/dist/vendor/marketplace/zh/game-development/unity/unity-multiplayer-engineer.md +238 -0
- package/dist/vendor/marketplace/zh/game-development/unity/unity-shader-graph-artist.md +270 -0
- package/dist/vendor/marketplace/zh/game-development/unreal-engine/unreal-multiplayer-architect.md +314 -0
- package/dist/vendor/marketplace/zh/game-development/unreal-engine/unreal-systems-engineer.md +311 -0
- package/dist/vendor/marketplace/zh/game-development/unreal-engine/unreal-technical-artist.md +256 -0
- package/dist/vendor/marketplace/zh/game-development/unreal-engine/unreal-world-builder.md +274 -0
- package/dist/vendor/marketplace/zh/hr/hr-performance-reviewer.md +248 -0
- package/dist/vendor/marketplace/zh/hr/hr-recruiter.md +232 -0
- package/dist/vendor/marketplace/zh/legal/legal-contract-reviewer.md +240 -0
- package/dist/vendor/marketplace/zh/legal/legal-policy-writer.md +308 -0
- package/dist/vendor/marketplace/zh/manifest.json +2181 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-agentic-search-optimizer.md +312 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-ai-citation-strategist.md +169 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-app-store-optimizer.md +319 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-baidu-seo-specialist.md +220 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-bilibili-strategist.md +194 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-book-co-author.md +109 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-carousel-growth-engine.md +215 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-china-ecommerce-operator.md +277 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-china-market-localization-strategist.md +282 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-content-creator.md +145 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-cross-border-ecommerce.md +260 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-daily-news-briefing.md +303 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-douyin-strategist.md +150 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-ecommerce-operator.md +216 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-growth-hacker.md +121 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-instagram-curator.md +179 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-knowledge-commerce-strategist.md +384 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-kuaishou-strategist.md +182 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-linkedin-content-creator.md +232 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-livestream-commerce-coach.md +303 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-podcast-strategist.md +278 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-private-domain-operator.md +309 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-reddit-community-builder.md +127 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-seo-specialist.md +298 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-short-video-editing-coach.md +413 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-social-media-strategist.md +118 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-tiktok-strategist.md +124 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-twitter-engager.md +132 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-video-optimization-specialist.md +128 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-wechat-official-account.md +158 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-wechat-operator.md +156 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-weibo-strategist.md +241 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-weixin-channels-strategist.md +297 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-xiaohongshu-operator.md +139 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-xiaohongshu-specialist.md +151 -0
- package/dist/vendor/marketplace/zh/marketing/marketing-zhihu-strategist.md +175 -0
- package/dist/vendor/marketplace/zh/paid-media/paid-media-auditor.md +170 -0
- package/dist/vendor/marketplace/zh/paid-media/paid-media-creative-strategist.md +173 -0
- package/dist/vendor/marketplace/zh/paid-media/paid-media-paid-social-strategist.md +180 -0
- package/dist/vendor/marketplace/zh/paid-media/paid-media-ppc-strategist.md +180 -0
- package/dist/vendor/marketplace/zh/paid-media/paid-media-programmatic-buyer.md +177 -0
- package/dist/vendor/marketplace/zh/paid-media/paid-media-search-query-analyst.md +182 -0
- package/dist/vendor/marketplace/zh/paid-media/paid-media-tracking-specialist.md +199 -0
- package/dist/vendor/marketplace/zh/product/product-behavioral-nudge-engine.md +246 -0
- package/dist/vendor/marketplace/zh/product/product-feedback-synthesizer.md +175 -0
- package/dist/vendor/marketplace/zh/product/product-manager.md +474 -0
- package/dist/vendor/marketplace/zh/product/product-sprint-prioritizer.md +133 -0
- package/dist/vendor/marketplace/zh/product/product-trend-researcher.md +143 -0
- package/dist/vendor/marketplace/zh/project-management/project-management-experiment-tracker.md +206 -0
- package/dist/vendor/marketplace/zh/project-management/project-management-jira-workflow-steward.md +249 -0
- package/dist/vendor/marketplace/zh/project-management/project-management-project-shepherd.md +202 -0
- package/dist/vendor/marketplace/zh/project-management/project-management-studio-operations.md +208 -0
- package/dist/vendor/marketplace/zh/project-management/project-management-studio-producer.md +211 -0
- package/dist/vendor/marketplace/zh/project-management/project-manager-senior.md +135 -0
- package/dist/vendor/marketplace/zh/sales/sales-account-strategist.md +243 -0
- package/dist/vendor/marketplace/zh/sales/sales-coach.md +291 -0
- package/dist/vendor/marketplace/zh/sales/sales-deal-strategist.md +204 -0
- package/dist/vendor/marketplace/zh/sales/sales-discovery-coach.md +230 -0
- package/dist/vendor/marketplace/zh/sales/sales-engineer.md +200 -0
- package/dist/vendor/marketplace/zh/sales/sales-outbound-strategist.md +208 -0
- package/dist/vendor/marketplace/zh/sales/sales-pipeline-analyst.md +284 -0
- package/dist/vendor/marketplace/zh/sales/sales-proposal-strategist.md +233 -0
- package/dist/vendor/marketplace/zh/spatial-computing/macos-spatial-metal-engineer.md +337 -0
- package/dist/vendor/marketplace/zh/spatial-computing/terminal-integration-specialist.md +236 -0
- package/dist/vendor/marketplace/zh/spatial-computing/visionos-spatial-engineer.md +282 -0
- package/dist/vendor/marketplace/zh/spatial-computing/xr-cockpit-interaction-specialist.md +220 -0
- package/dist/vendor/marketplace/zh/spatial-computing/xr-immersive-developer.md +229 -0
- package/dist/vendor/marketplace/zh/spatial-computing/xr-interface-architect.md +253 -0
- package/dist/vendor/marketplace/zh/specialized/accounts-payable-agent.md +212 -0
- package/dist/vendor/marketplace/zh/specialized/agentic-identity-trust.md +388 -0
- package/dist/vendor/marketplace/zh/specialized/agents-orchestrator.md +366 -0
- package/dist/vendor/marketplace/zh/specialized/automation-governance-architect.md +215 -0
- package/dist/vendor/marketplace/zh/specialized/blockchain-security-auditor.md +484 -0
- package/dist/vendor/marketplace/zh/specialized/compliance-auditor.md +172 -0
- package/dist/vendor/marketplace/zh/specialized/corporate-training-designer.md +191 -0
- package/dist/vendor/marketplace/zh/specialized/data-consolidation-agent.md +327 -0
- package/dist/vendor/marketplace/zh/specialized/gaokao-college-advisor.md +333 -0
- package/dist/vendor/marketplace/zh/specialized/government-digital-presales-consultant.md +362 -0
- package/dist/vendor/marketplace/zh/specialized/healthcare-customer-service.md +388 -0
- package/dist/vendor/marketplace/zh/specialized/healthcare-marketing-compliance.md +394 -0
- package/dist/vendor/marketplace/zh/specialized/hospitality-guest-services.md +597 -0
- package/dist/vendor/marketplace/zh/specialized/hr-onboarding.md +450 -0
- package/dist/vendor/marketplace/zh/specialized/identity-graph-operator.md +270 -0
- package/dist/vendor/marketplace/zh/specialized/language-translator.md +275 -0
- package/dist/vendor/marketplace/zh/specialized/legal-billing-time-tracking.md +566 -0
- package/dist/vendor/marketplace/zh/specialized/legal-client-intake.md +487 -0
- package/dist/vendor/marketplace/zh/specialized/legal-document-review.md +452 -0
- package/dist/vendor/marketplace/zh/specialized/livestock-archive-auditor.md +135 -0
- package/dist/vendor/marketplace/zh/specialized/loan-officer-assistant.md +549 -0
- package/dist/vendor/marketplace/zh/specialized/lsp-index-engineer.md +334 -0
- package/dist/vendor/marketplace/zh/specialized/prompt-engineer.md +176 -0
- package/dist/vendor/marketplace/zh/specialized/real-estate-buyer-seller.md +594 -0
- package/dist/vendor/marketplace/zh/specialized/recruitment-specialist.md +508 -0
- package/dist/vendor/marketplace/zh/specialized/report-distribution-agent.md +354 -0
- package/dist/vendor/marketplace/zh/specialized/retail-customer-returns.md +564 -0
- package/dist/vendor/marketplace/zh/specialized/sales-data-extraction-agent.md +159 -0
- package/dist/vendor/marketplace/zh/specialized/specialized-ai-policy-writer.md +217 -0
- package/dist/vendor/marketplace/zh/specialized/specialized-chief-of-staff.md +278 -0
- package/dist/vendor/marketplace/zh/specialized/specialized-civil-engineer.md +355 -0
- package/dist/vendor/marketplace/zh/specialized/specialized-cultural-intelligence-strategist.md +168 -0
- package/dist/vendor/marketplace/zh/specialized/specialized-developer-advocate.md +334 -0
- package/dist/vendor/marketplace/zh/specialized/specialized-document-generator.md +346 -0
- package/dist/vendor/marketplace/zh/specialized/specialized-french-consulting-market.md +191 -0
- package/dist/vendor/marketplace/zh/specialized/specialized-korean-business-navigator.md +215 -0
- package/dist/vendor/marketplace/zh/specialized/specialized-mcp-builder.md +351 -0
- package/dist/vendor/marketplace/zh/specialized/specialized-meeting-assistant.md +236 -0
- package/dist/vendor/marketplace/zh/specialized/specialized-model-qa.md +507 -0
- package/dist/vendor/marketplace/zh/specialized/specialized-pricing-optimizer.md +254 -0
- package/dist/vendor/marketplace/zh/specialized/specialized-risk-assessor.md +240 -0
- package/dist/vendor/marketplace/zh/specialized/specialized-salesforce-architect.md +179 -0
- package/dist/vendor/marketplace/zh/specialized/specialized-workflow-architect.md +596 -0
- package/dist/vendor/marketplace/zh/specialized/study-abroad-advisor.md +281 -0
- package/dist/vendor/marketplace/zh/specialized/technical-translator-agent.md +167 -0
- package/dist/vendor/marketplace/zh/specialized/zk-steward.md +228 -0
- package/dist/vendor/marketplace/zh/supply-chain/supply-chain-inventory-forecaster.md +212 -0
- package/dist/vendor/marketplace/zh/supply-chain/supply-chain-route-optimizer.md +224 -0
- package/dist/vendor/marketplace/zh/supply-chain/supply-chain-strategist.md +581 -0
- package/dist/vendor/marketplace/zh/supply-chain/supply-chain-vendor-evaluator.md +232 -0
- package/dist/vendor/marketplace/zh/support/support-analytics-reporter.md +364 -0
- package/dist/vendor/marketplace/zh/support/support-executive-summary-generator.md +217 -0
- package/dist/vendor/marketplace/zh/support/support-finance-tracker.md +447 -0
- package/dist/vendor/marketplace/zh/support/support-infrastructure-maintainer.md +623 -0
- package/dist/vendor/marketplace/zh/support/support-legal-compliance-checker.md +587 -0
- package/dist/vendor/marketplace/zh/support/support-recruitment-specialist.md +508 -0
- package/dist/vendor/marketplace/zh/support/support-support-responder.md +584 -0
- package/dist/vendor/marketplace/zh/testing/testing-accessibility-auditor.md +329 -0
- package/dist/vendor/marketplace/zh/testing/testing-api-tester.md +305 -0
- package/dist/vendor/marketplace/zh/testing/testing-embedded-qa-engineer.md +258 -0
- package/dist/vendor/marketplace/zh/testing/testing-evidence-collector.md +153 -0
- package/dist/vendor/marketplace/zh/testing/testing-performance-benchmarker.md +196 -0
- package/dist/vendor/marketplace/zh/testing/testing-reality-checker.md +235 -0
- package/dist/vendor/marketplace/zh/testing/testing-test-results-analyzer.md +313 -0
- package/dist/vendor/marketplace/zh/testing/testing-tool-evaluator.md +402 -0
- package/dist/vendor/marketplace/zh/testing/testing-workflow-optimizer.md +458 -0
- package/package.json +131 -0
- package/scripts/postinstall-native-artifacts.mjs +113 -0
- package/web/dist/assets/AddWorkerDialog-BU2Fn-Mx.js +2 -0
- package/web/dist/assets/AddWorkspaceFlow-BV04MkRt.js +1 -0
- package/web/dist/assets/FirstRunWizard-DS4IYOrd.js +1 -0
- package/web/dist/assets/MarketplaceDrawer-CIQ2B6Fx.js +76 -0
- package/web/dist/assets/TaskGraphDrawer-BPMcRocd.js +1 -0
- package/web/dist/assets/WhatsNewDialog-DEgVY_LD.js +1 -0
- package/web/dist/assets/WorkerModal-DiCcTPpc.js +1 -0
- package/web/dist/assets/WorkflowsDrawer-M2CgAJWK.js +1 -0
- package/web/dist/assets/WorkspaceMemoryDrawer-ClJIqWck.js +1 -0
- package/web/dist/assets/WorkspaceTaskDrawer-gjvXuZ2K.js +1 -0
- package/web/dist/assets/addon-clipboard-wHJhZAA4.js +1 -0
- package/web/dist/assets/addon-fit-DX4qG4td.js +1 -0
- package/web/dist/assets/addon-unicode11-Bt8F3D7-.js +7 -0
- package/web/dist/assets/addon-web-links-DIbG5aQx.js +1 -0
- package/web/dist/assets/addon-webgl-DCtw1yLn.js +64 -0
- package/web/dist/assets/finder-C4Jmsb0B.png +0 -0
- package/web/dist/assets/ghostty-D-Js4rdm.png +0 -0
- package/web/dist/assets/index-bOMtwrkA.js +73 -0
- package/web/dist/assets/index-i9YgsMdD.css +1 -0
- package/web/dist/assets/path-join-7MR1s7b1.js +1 -0
- package/web/dist/assets/search-CmzeVhy0.js +1 -0
- package/web/dist/assets/xterm-B-qIQCd3.js +16 -0
- package/web/dist/assets/zed-C5BQT8X3.png +0 -0
- package/web/dist/bilibili.ico +0 -0
- package/web/dist/cli-icons/claude.png +0 -0
- package/web/dist/cli-icons/codex.png +0 -0
- package/web/dist/cli-icons/gemini.png +0 -0
- package/web/dist/cli-icons/hermes.png +0 -0
- package/web/dist/cli-icons/opencode.svg +18 -0
- package/web/dist/icons/apple-touch-icon-180.png +0 -0
- package/web/dist/icons/icon-192.png +0 -0
- package/web/dist/icons/icon-32.png +0 -0
- package/web/dist/icons/icon-512-maskable.png +0 -0
- package/web/dist/icons/icon-512.png +0 -0
- package/web/dist/index.html +39 -0
- package/web/dist/logo.png +0 -0
- package/web/dist/manifest.webmanifest +60 -0
- package/web/dist/screenshots/wide-overview.png +0 -0
- package/web/dist/sounds/LICENSE-KENNEY.txt +22 -0
- package/web/dist/sounds/hive-beacon.ogg +0 -0
- package/web/dist/sounds/hive-cascade.ogg +0 -0
- package/web/dist/sounds/hive-chime.ogg +0 -0
- package/web/dist/sounds/hive-ping.ogg +0 -0
- package/web/dist/sounds/hive-resolve.ogg +0 -0
- package/web/dist/sounds/hive-soft.ogg +0 -0
- package/web/dist/sw.js +99 -0
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
import { applySchemaVersion5 } from './sqlite-schema-v5.js';
|
|
2
|
+
import { applySchemaVersion7 } from './sqlite-schema-v7.js';
|
|
3
|
+
import { applySchemaVersion8 } from './sqlite-schema-v8.js';
|
|
4
|
+
import { applySchemaVersion9 } from './sqlite-schema-v9.js';
|
|
5
|
+
import { applySchemaVersion10 } from './sqlite-schema-v10.js';
|
|
6
|
+
import { applySchemaVersion11 } from './sqlite-schema-v11.js';
|
|
7
|
+
import { applySchemaVersion12 } from './sqlite-schema-v12.js';
|
|
8
|
+
import { applySchemaVersion13 } from './sqlite-schema-v13.js';
|
|
9
|
+
import { applySchemaVersion14 } from './sqlite-schema-v14.js';
|
|
10
|
+
import { applySchemaVersion15 } from './sqlite-schema-v15.js';
|
|
11
|
+
import { applySchemaVersion16 } from './sqlite-schema-v16.js';
|
|
12
|
+
import { applySchemaVersion17 } from './sqlite-schema-v17.js';
|
|
13
|
+
import { applySchemaVersion18 } from './sqlite-schema-v18.js';
|
|
14
|
+
import { applySchemaVersion19 } from './sqlite-schema-v19.js';
|
|
15
|
+
import { applySchemaVersion20 } from './sqlite-schema-v20.js';
|
|
16
|
+
import { applySchemaVersion21 } from './sqlite-schema-v21.js';
|
|
17
|
+
import { applySchemaVersion22 } from './sqlite-schema-v22.js';
|
|
18
|
+
import { applySchemaVersion23 } from './sqlite-schema-v23.js';
|
|
19
|
+
import { applySchemaVersion24 } from './sqlite-schema-v24.js';
|
|
20
|
+
import { applySchemaVersion25 } from './sqlite-schema-v25.js';
|
|
21
|
+
import { applySchemaVersion26 } from './sqlite-schema-v26.js';
|
|
22
|
+
import { applySchemaVersion27 } from './sqlite-schema-v27.js';
|
|
23
|
+
import { applySchemaVersion28 } from './sqlite-schema-v28.js';
|
|
24
|
+
export const CURRENT_SCHEMA_VERSION = 28;
|
|
25
|
+
// Idempotent column-add helper. SQLite doesn't have `ALTER TABLE … ADD COLUMN
|
|
26
|
+
// IF NOT EXISTS`, so PRAGMA-check first. Safe to call on every init; required
|
|
27
|
+
// for foreign-built DBs where the version-gated migration is skipped.
|
|
28
|
+
const ensureColumn = (db, table, column, definition) => {
|
|
29
|
+
const present = new Set(db.prepare(`PRAGMA table_info(${table})`).all().map((r) => r.name));
|
|
30
|
+
if (!present.has(column)) {
|
|
31
|
+
db.exec(`ALTER TABLE ${table} ADD COLUMN ${column} ${definition}`);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
export const initializeRuntimeDatabase = (db) => {
|
|
35
|
+
db.exec(`
|
|
36
|
+
CREATE TABLE IF NOT EXISTS schema_version (
|
|
37
|
+
version INTEGER PRIMARY KEY,
|
|
38
|
+
applied_at INTEGER NOT NULL
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
CREATE TABLE IF NOT EXISTS workspaces (
|
|
42
|
+
id TEXT PRIMARY KEY,
|
|
43
|
+
name TEXT NOT NULL,
|
|
44
|
+
path TEXT NOT NULL,
|
|
45
|
+
created_at INTEGER NOT NULL
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
CREATE TABLE IF NOT EXISTS workers (
|
|
49
|
+
id TEXT PRIMARY KEY,
|
|
50
|
+
workspace_id TEXT NOT NULL,
|
|
51
|
+
name TEXT NOT NULL,
|
|
52
|
+
description TEXT,
|
|
53
|
+
last_session_id TEXT,
|
|
54
|
+
role TEXT NOT NULL,
|
|
55
|
+
created_at INTEGER NOT NULL
|
|
56
|
+
);
|
|
57
|
+
|
|
58
|
+
CREATE TABLE IF NOT EXISTS messages (
|
|
59
|
+
sequence INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
60
|
+
workspace_id TEXT NOT NULL,
|
|
61
|
+
worker_id TEXT NOT NULL,
|
|
62
|
+
type TEXT NOT NULL,
|
|
63
|
+
from_agent_id TEXT,
|
|
64
|
+
to_agent_id TEXT,
|
|
65
|
+
text TEXT,
|
|
66
|
+
status TEXT,
|
|
67
|
+
artifacts TEXT,
|
|
68
|
+
created_at INTEGER NOT NULL
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
CREATE TABLE IF NOT EXISTS agent_launch_configs (
|
|
72
|
+
workspace_id TEXT NOT NULL,
|
|
73
|
+
agent_id TEXT NOT NULL,
|
|
74
|
+
command TEXT NOT NULL,
|
|
75
|
+
args_json TEXT NOT NULL,
|
|
76
|
+
command_preset_id TEXT,
|
|
77
|
+
interactive_command TEXT,
|
|
78
|
+
preset_augmentation_disabled INTEGER NOT NULL DEFAULT 0,
|
|
79
|
+
resume_args_template TEXT,
|
|
80
|
+
session_id_capture_json TEXT,
|
|
81
|
+
created_at INTEGER NOT NULL,
|
|
82
|
+
updated_at INTEGER NOT NULL,
|
|
83
|
+
PRIMARY KEY (workspace_id, agent_id)
|
|
84
|
+
);
|
|
85
|
+
|
|
86
|
+
CREATE TABLE IF NOT EXISTS agent_runs (
|
|
87
|
+
run_id TEXT PRIMARY KEY,
|
|
88
|
+
agent_id TEXT NOT NULL,
|
|
89
|
+
pid INTEGER,
|
|
90
|
+
status TEXT NOT NULL,
|
|
91
|
+
exit_code INTEGER,
|
|
92
|
+
started_at INTEGER NOT NULL,
|
|
93
|
+
ended_at INTEGER,
|
|
94
|
+
created_at INTEGER NOT NULL,
|
|
95
|
+
updated_at INTEGER NOT NULL
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
CREATE TABLE IF NOT EXISTS agent_sessions (
|
|
99
|
+
agent_id TEXT NOT NULL,
|
|
100
|
+
workspace_id TEXT NOT NULL,
|
|
101
|
+
last_session_id TEXT NOT NULL,
|
|
102
|
+
updated_at INTEGER NOT NULL,
|
|
103
|
+
PRIMARY KEY (workspace_id, agent_id)
|
|
104
|
+
);
|
|
105
|
+
|
|
106
|
+
CREATE TABLE IF NOT EXISTS dispatches (
|
|
107
|
+
sequence INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
108
|
+
id TEXT NOT NULL UNIQUE,
|
|
109
|
+
workspace_id TEXT NOT NULL,
|
|
110
|
+
from_agent_id TEXT,
|
|
111
|
+
to_agent_id TEXT NOT NULL,
|
|
112
|
+
text TEXT NOT NULL,
|
|
113
|
+
status TEXT NOT NULL,
|
|
114
|
+
created_at INTEGER NOT NULL,
|
|
115
|
+
delivered_at INTEGER,
|
|
116
|
+
submitted_at INTEGER,
|
|
117
|
+
reported_at INTEGER,
|
|
118
|
+
report_text TEXT,
|
|
119
|
+
artifacts TEXT
|
|
120
|
+
);
|
|
121
|
+
|
|
122
|
+
CREATE INDEX IF NOT EXISTS idx_dispatches_workspace_created_at
|
|
123
|
+
ON dispatches (workspace_id, sequence);
|
|
124
|
+
|
|
125
|
+
CREATE INDEX IF NOT EXISTS idx_dispatches_open_by_worker
|
|
126
|
+
ON dispatches (workspace_id, to_agent_id, status, sequence);
|
|
127
|
+
|
|
128
|
+
CREATE TABLE IF NOT EXISTS report_outbox (
|
|
129
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
130
|
+
workspace_id TEXT NOT NULL,
|
|
131
|
+
target_agent_id TEXT NOT NULL,
|
|
132
|
+
dispatch_id TEXT NOT NULL UNIQUE,
|
|
133
|
+
payload TEXT NOT NULL,
|
|
134
|
+
created_at INTEGER NOT NULL,
|
|
135
|
+
delivered_at INTEGER
|
|
136
|
+
);
|
|
137
|
+
|
|
138
|
+
CREATE INDEX IF NOT EXISTS idx_report_outbox_pending
|
|
139
|
+
ON report_outbox (workspace_id, target_agent_id, delivered_at, created_at);
|
|
140
|
+
|
|
141
|
+
CREATE TABLE IF NOT EXISTS workflow_runs (
|
|
142
|
+
id TEXT PRIMARY KEY,
|
|
143
|
+
workspace_id TEXT NOT NULL,
|
|
144
|
+
script_path TEXT NOT NULL,
|
|
145
|
+
script_hash TEXT,
|
|
146
|
+
name TEXT NOT NULL,
|
|
147
|
+
status TEXT NOT NULL,
|
|
148
|
+
phase TEXT,
|
|
149
|
+
args TEXT,
|
|
150
|
+
started_at INTEGER NOT NULL,
|
|
151
|
+
finished_at INTEGER,
|
|
152
|
+
error TEXT,
|
|
153
|
+
created_at INTEGER NOT NULL
|
|
154
|
+
);
|
|
155
|
+
|
|
156
|
+
CREATE INDEX IF NOT EXISTS idx_workflow_runs_workspace
|
|
157
|
+
ON workflow_runs (workspace_id, created_at);
|
|
158
|
+
|
|
159
|
+
CREATE TABLE IF NOT EXISTS workflow_schedules (
|
|
160
|
+
id TEXT PRIMARY KEY,
|
|
161
|
+
workspace_id TEXT NOT NULL,
|
|
162
|
+
script_path TEXT NOT NULL,
|
|
163
|
+
cron TEXT NOT NULL,
|
|
164
|
+
args TEXT,
|
|
165
|
+
enabled INTEGER NOT NULL DEFAULT 1,
|
|
166
|
+
last_run_at INTEGER,
|
|
167
|
+
next_run_at INTEGER NOT NULL,
|
|
168
|
+
created_at INTEGER NOT NULL,
|
|
169
|
+
updated_at INTEGER NOT NULL
|
|
170
|
+
);
|
|
171
|
+
|
|
172
|
+
CREATE INDEX IF NOT EXISTS idx_workflow_schedules_due
|
|
173
|
+
ON workflow_schedules (enabled, next_run_at);
|
|
174
|
+
CREATE INDEX IF NOT EXISTS idx_workflow_schedules_workspace
|
|
175
|
+
ON workflow_schedules (workspace_id, created_at);
|
|
176
|
+
`);
|
|
177
|
+
// Idempotent column additions — run on every init regardless of
|
|
178
|
+
// schema_version. The v19 migration adds these columns but is gated on
|
|
179
|
+
// !appliedVersions.has(19); a foreign-built DB whose v19 was a DIFFERENT
|
|
180
|
+
// migration leaves these absent. PRAGMA + ALTER here makes the writes safe.
|
|
181
|
+
ensureColumn(db, 'workers', 'ephemeral', 'INTEGER NOT NULL DEFAULT 0');
|
|
182
|
+
ensureColumn(db, 'workers', 'spawned_by', 'TEXT');
|
|
183
|
+
ensureColumn(db, 'dispatches', 'workflow_run_id', 'TEXT');
|
|
184
|
+
ensureColumn(db, 'dispatches', 'step_index', 'INTEGER');
|
|
185
|
+
// M9 — phase + label on dispatches so the workflow UI can render the
|
|
186
|
+
// phase tree + agent fleet view (mirrors Claude Code's /workflows view).
|
|
187
|
+
ensureColumn(db, 'dispatches', 'phase', 'TEXT');
|
|
188
|
+
ensureColumn(db, 'dispatches', 'label', 'TEXT');
|
|
189
|
+
// M10: capture the workflow script's `return` value so the UI can render
|
|
190
|
+
// a single canonical "Result" panel and the orchestrator notification can
|
|
191
|
+
// include it.
|
|
192
|
+
ensureColumn(db, 'workflow_runs', 'result', 'TEXT');
|
|
193
|
+
// TIER 2 #5: parent_run_id lets the Drawer render nested workflow() calls
|
|
194
|
+
// as a tree (child runs indented under their parent). Without it,
|
|
195
|
+
// nested runs were flat and the user couldn't tell which child
|
|
196
|
+
// belonged to which parent. Null on top-level runs.
|
|
197
|
+
ensureColumn(db, 'workflow_runs', 'parent_run_id', 'TEXT');
|
|
198
|
+
// TIER 2 #3: log() narrator pipeline. Authors call `log('Discovered 47
|
|
199
|
+
// endpoints')` from a workflow script; rows live here and stream to
|
|
200
|
+
// the Drawer's narrator lane + the last few lines are appended to
|
|
201
|
+
// the orchestrator's completion notification.
|
|
202
|
+
db.exec(`
|
|
203
|
+
CREATE TABLE IF NOT EXISTS workflow_run_logs (
|
|
204
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
205
|
+
run_id TEXT NOT NULL,
|
|
206
|
+
ts INTEGER NOT NULL,
|
|
207
|
+
message TEXT NOT NULL
|
|
208
|
+
);
|
|
209
|
+
CREATE INDEX IF NOT EXISTS idx_workflow_run_logs_run
|
|
210
|
+
ON workflow_run_logs (run_id, id);
|
|
211
|
+
`);
|
|
212
|
+
db.exec('CREATE INDEX IF NOT EXISTS idx_dispatches_workflow ON dispatches (workflow_run_id, step_index)');
|
|
213
|
+
const versions = db
|
|
214
|
+
.prepare('SELECT version FROM schema_version ORDER BY version ASC')
|
|
215
|
+
.all();
|
|
216
|
+
const appliedVersions = new Set(versions.map((row) => row.version));
|
|
217
|
+
if (!appliedVersions.has(1)) {
|
|
218
|
+
db.prepare('INSERT INTO schema_version (version, applied_at) VALUES (?, ?)').run(1, Date.now());
|
|
219
|
+
appliedVersions.add(1);
|
|
220
|
+
}
|
|
221
|
+
if (!appliedVersions.has(2)) {
|
|
222
|
+
const workerColumns = new Set(db.prepare('PRAGMA table_info(workers)').all().map((column) => column.name));
|
|
223
|
+
if (workerColumns.size > 0 && !workerColumns.has('description')) {
|
|
224
|
+
db.exec('ALTER TABLE workers ADD COLUMN description TEXT');
|
|
225
|
+
}
|
|
226
|
+
db.prepare('INSERT INTO schema_version (version, applied_at) VALUES (?, ?)').run(2, Date.now());
|
|
227
|
+
}
|
|
228
|
+
if (!appliedVersions.has(3)) {
|
|
229
|
+
db.prepare('INSERT INTO schema_version (version, applied_at) VALUES (?, ?)').run(3, Date.now());
|
|
230
|
+
appliedVersions.add(3);
|
|
231
|
+
}
|
|
232
|
+
if (!appliedVersions.has(4)) {
|
|
233
|
+
const messageColumns = new Set(db.prepare('PRAGMA table_info(messages)').all().map((column) => column.name));
|
|
234
|
+
if (messageColumns.size > 0 && !messageColumns.has('artifacts')) {
|
|
235
|
+
db.exec('ALTER TABLE messages ADD COLUMN artifacts TEXT');
|
|
236
|
+
}
|
|
237
|
+
db.prepare('INSERT INTO schema_version (version, applied_at) VALUES (?, ?)').run(4, Date.now());
|
|
238
|
+
}
|
|
239
|
+
if (!appliedVersions.has(5)) {
|
|
240
|
+
applySchemaVersion5(db);
|
|
241
|
+
db.prepare('INSERT INTO schema_version (version, applied_at) VALUES (?, ?)').run(5, Date.now());
|
|
242
|
+
}
|
|
243
|
+
if (!appliedVersions.has(6)) {
|
|
244
|
+
const launchConfigColumns = new Set(db.prepare('PRAGMA table_info(agent_launch_configs)').all().map((column) => column.name));
|
|
245
|
+
if (!launchConfigColumns.has('resume_args_template')) {
|
|
246
|
+
db.exec('ALTER TABLE agent_launch_configs ADD COLUMN resume_args_template TEXT');
|
|
247
|
+
}
|
|
248
|
+
if (!launchConfigColumns.has('session_id_capture_json')) {
|
|
249
|
+
db.exec('ALTER TABLE agent_launch_configs ADD COLUMN session_id_capture_json TEXT');
|
|
250
|
+
}
|
|
251
|
+
db.exec(`
|
|
252
|
+
CREATE TABLE IF NOT EXISTS agent_sessions (
|
|
253
|
+
agent_id TEXT NOT NULL,
|
|
254
|
+
workspace_id TEXT NOT NULL,
|
|
255
|
+
last_session_id TEXT NOT NULL,
|
|
256
|
+
updated_at INTEGER NOT NULL,
|
|
257
|
+
PRIMARY KEY (workspace_id, agent_id)
|
|
258
|
+
);
|
|
259
|
+
`);
|
|
260
|
+
db.prepare('INSERT INTO schema_version (version, applied_at) VALUES (?, ?)').run(6, Date.now());
|
|
261
|
+
}
|
|
262
|
+
if (!appliedVersions.has(7)) {
|
|
263
|
+
applySchemaVersion7(db);
|
|
264
|
+
db.prepare('INSERT INTO schema_version (version, applied_at) VALUES (?, ?)').run(7, Date.now());
|
|
265
|
+
}
|
|
266
|
+
if (!appliedVersions.has(8)) {
|
|
267
|
+
applySchemaVersion8(db);
|
|
268
|
+
db.prepare('INSERT INTO schema_version (version, applied_at) VALUES (?, ?)').run(8, Date.now());
|
|
269
|
+
}
|
|
270
|
+
if (!appliedVersions.has(9)) {
|
|
271
|
+
applySchemaVersion9(db);
|
|
272
|
+
db.prepare('INSERT INTO schema_version (version, applied_at) VALUES (?, ?)').run(9, Date.now());
|
|
273
|
+
}
|
|
274
|
+
if (!appliedVersions.has(10)) {
|
|
275
|
+
applySchemaVersion10(db);
|
|
276
|
+
db.prepare('INSERT INTO schema_version (version, applied_at) VALUES (?, ?)').run(10, Date.now());
|
|
277
|
+
}
|
|
278
|
+
if (!appliedVersions.has(11)) {
|
|
279
|
+
applySchemaVersion11(db);
|
|
280
|
+
db.prepare('INSERT INTO schema_version (version, applied_at) VALUES (?, ?)').run(11, Date.now());
|
|
281
|
+
}
|
|
282
|
+
if (!appliedVersions.has(12)) {
|
|
283
|
+
applySchemaVersion12(db);
|
|
284
|
+
db.prepare('INSERT INTO schema_version (version, applied_at) VALUES (?, ?)').run(12, Date.now());
|
|
285
|
+
}
|
|
286
|
+
if (!appliedVersions.has(13)) {
|
|
287
|
+
applySchemaVersion13(db);
|
|
288
|
+
db.prepare('INSERT INTO schema_version (version, applied_at) VALUES (?, ?)').run(13, Date.now());
|
|
289
|
+
}
|
|
290
|
+
if (!appliedVersions.has(14)) {
|
|
291
|
+
applySchemaVersion14(db);
|
|
292
|
+
db.prepare('INSERT INTO schema_version (version, applied_at) VALUES (?, ?)').run(14, Date.now());
|
|
293
|
+
}
|
|
294
|
+
if (!appliedVersions.has(15)) {
|
|
295
|
+
applySchemaVersion15(db);
|
|
296
|
+
db.prepare('INSERT INTO schema_version (version, applied_at) VALUES (?, ?)').run(15, Date.now());
|
|
297
|
+
}
|
|
298
|
+
if (!appliedVersions.has(16)) {
|
|
299
|
+
applySchemaVersion16(db);
|
|
300
|
+
db.prepare('INSERT INTO schema_version (version, applied_at) VALUES (?, ?)').run(16, Date.now());
|
|
301
|
+
}
|
|
302
|
+
if (!appliedVersions.has(17)) {
|
|
303
|
+
applySchemaVersion17(db);
|
|
304
|
+
db.prepare('INSERT INTO schema_version (version, applied_at) VALUES (?, ?)').run(17, Date.now());
|
|
305
|
+
}
|
|
306
|
+
if (!appliedVersions.has(18)) {
|
|
307
|
+
applySchemaVersion18(db);
|
|
308
|
+
db.prepare('INSERT INTO schema_version (version, applied_at) VALUES (?, ?)').run(18, Date.now());
|
|
309
|
+
}
|
|
310
|
+
if (!appliedVersions.has(19)) {
|
|
311
|
+
applySchemaVersion19(db);
|
|
312
|
+
db.prepare('INSERT INTO schema_version (version, applied_at) VALUES (?, ?)').run(19, Date.now());
|
|
313
|
+
}
|
|
314
|
+
if (!appliedVersions.has(20)) {
|
|
315
|
+
applySchemaVersion20(db);
|
|
316
|
+
db.prepare('INSERT INTO schema_version (version, applied_at) VALUES (?, ?)').run(20, Date.now());
|
|
317
|
+
}
|
|
318
|
+
if (!appliedVersions.has(21)) {
|
|
319
|
+
applySchemaVersion21(db);
|
|
320
|
+
db.prepare('INSERT INTO schema_version (version, applied_at) VALUES (?, ?)').run(21, Date.now());
|
|
321
|
+
}
|
|
322
|
+
if (!appliedVersions.has(22)) {
|
|
323
|
+
applySchemaVersion22(db);
|
|
324
|
+
db.prepare('INSERT INTO schema_version (version, applied_at) VALUES (?, ?)').run(22, Date.now());
|
|
325
|
+
}
|
|
326
|
+
if (!appliedVersions.has(23)) {
|
|
327
|
+
applySchemaVersion23(db);
|
|
328
|
+
db.prepare('INSERT INTO schema_version (version, applied_at) VALUES (?, ?)').run(23, Date.now());
|
|
329
|
+
}
|
|
330
|
+
if (!appliedVersions.has(24)) {
|
|
331
|
+
applySchemaVersion24(db);
|
|
332
|
+
db.prepare('INSERT INTO schema_version (version, applied_at) VALUES (?, ?)').run(24, Date.now());
|
|
333
|
+
}
|
|
334
|
+
applySchemaVersion25(db);
|
|
335
|
+
if (!appliedVersions.has(25)) {
|
|
336
|
+
db.prepare('INSERT INTO schema_version (version, applied_at) VALUES (?, ?)').run(25, Date.now());
|
|
337
|
+
}
|
|
338
|
+
applySchemaVersion26(db);
|
|
339
|
+
if (!appliedVersions.has(26)) {
|
|
340
|
+
db.prepare('INSERT INTO schema_version (version, applied_at) VALUES (?, ?)').run(26, Date.now());
|
|
341
|
+
}
|
|
342
|
+
if (!appliedVersions.has(27)) {
|
|
343
|
+
applySchemaVersion27(db, { rebuild: true });
|
|
344
|
+
db.prepare('INSERT INTO schema_version (version, applied_at) VALUES (?, ?)').run(27, Date.now());
|
|
345
|
+
}
|
|
346
|
+
else {
|
|
347
|
+
applySchemaVersion27(db, { rebuild: false });
|
|
348
|
+
}
|
|
349
|
+
applySchemaVersion28(db);
|
|
350
|
+
if (!appliedVersions.has(28)) {
|
|
351
|
+
db.prepare('INSERT INTO schema_version (version, applied_at) VALUES (?, ?)').run(28, Date.now());
|
|
352
|
+
}
|
|
353
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare const createStartupCommandLaunch: (startupCommand: string, env?: NodeJS.ProcessEnv, platform?: NodeJS.Platform) => {
|
|
2
|
+
args: string[];
|
|
3
|
+
command: string;
|
|
4
|
+
};
|
|
5
|
+
export declare const getStartupCommandExecutable: (startupCommand: string) => string | null;
|
|
6
|
+
/**
|
|
7
|
+
* Reduce an executable token to its canonical brand id for preset lookup
|
|
8
|
+
* and CLI-behavior dispatch. Splits on both '\\' and '/' so Windows paths
|
|
9
|
+
* normalize even when the host runs `node:path.posix` (macOS test runners,
|
|
10
|
+
* mixed-slash paths from npm-installed shims).
|
|
11
|
+
*
|
|
12
|
+
* Examples (return value in parens):
|
|
13
|
+
* 'claude' → 'claude'
|
|
14
|
+
* 'claude.CMD' → 'claude'
|
|
15
|
+
* 'C:\\Program Files\\nodejs\\claude.cmd' → 'claude'
|
|
16
|
+
* '/usr/local/bin/codex' → 'codex'
|
|
17
|
+
* 'C:/Users/me/opencode.CMD' → 'opencode'
|
|
18
|
+
* 'my-custom-runner.bat' → 'my-custom-runner'
|
|
19
|
+
*/
|
|
20
|
+
export declare const normalizeExecutableToken: (token: string | null | undefined) => string | null;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { basename } from 'node:path';
|
|
2
|
+
const getEnvValue = (env, key, platform = process.platform) => {
|
|
3
|
+
if (platform !== 'win32')
|
|
4
|
+
return env[key];
|
|
5
|
+
if (Object.hasOwn(env, key))
|
|
6
|
+
return env[key];
|
|
7
|
+
const matchedKey = Object.keys(env)
|
|
8
|
+
.filter((item) => item.toLowerCase() === key.toLowerCase())
|
|
9
|
+
.at(-1);
|
|
10
|
+
return matchedKey ? env[matchedKey] : undefined;
|
|
11
|
+
};
|
|
12
|
+
const createPosixShellArgs = (shell, command) => {
|
|
13
|
+
const shellName = basename(shell).toLowerCase();
|
|
14
|
+
if (shellName.includes('bash') || shellName.includes('zsh') || shellName.includes('ksh')) {
|
|
15
|
+
return ['-lic', command];
|
|
16
|
+
}
|
|
17
|
+
if (shellName.includes('fish'))
|
|
18
|
+
return ['-ic', command];
|
|
19
|
+
return ['-ic', command];
|
|
20
|
+
};
|
|
21
|
+
export const createStartupCommandLaunch = (startupCommand, env = process.env, platform = process.platform) => {
|
|
22
|
+
const command = startupCommand.trim();
|
|
23
|
+
if (platform === 'win32') {
|
|
24
|
+
return {
|
|
25
|
+
args: ['/d', '/s', '/c', command],
|
|
26
|
+
command: getEnvValue(env, 'ComSpec', platform) ?? 'cmd.exe',
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
const shell = env.SHELL || '/bin/sh';
|
|
30
|
+
return {
|
|
31
|
+
args: createPosixShellArgs(shell, command),
|
|
32
|
+
command: shell,
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
export const getStartupCommandExecutable = (startupCommand) => {
|
|
36
|
+
const command = startupCommand.trim();
|
|
37
|
+
if (!command)
|
|
38
|
+
return null;
|
|
39
|
+
// Match alternates, in order:
|
|
40
|
+
// 1. Double-quoted token (may contain spaces, backslashes, slashes)
|
|
41
|
+
// 2. Single-quoted token
|
|
42
|
+
// 3. Bare token: no whitespace, no embedded quotes
|
|
43
|
+
// An unbalanced opening quote falls through all three and returns null.
|
|
44
|
+
// The previous regex used `[^'"\s]+` for the captured run, which forbade
|
|
45
|
+
// spaces and therefore returned null for `"C:\Program Files\…claude.cmd"`
|
|
46
|
+
// — the standard Windows install layout. See the parser tests for the
|
|
47
|
+
// contract; brand identification belongs in agent-launch-resolver.
|
|
48
|
+
const match = /^"([^"]+)"|^'([^']+)'|^([^\s'"]+)/.exec(command);
|
|
49
|
+
return match?.[1] ?? match?.[2] ?? match?.[3] ?? null;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Reduce an executable token to its canonical brand id for preset lookup
|
|
53
|
+
* and CLI-behavior dispatch. Splits on both '\\' and '/' so Windows paths
|
|
54
|
+
* normalize even when the host runs `node:path.posix` (macOS test runners,
|
|
55
|
+
* mixed-slash paths from npm-installed shims).
|
|
56
|
+
*
|
|
57
|
+
* Examples (return value in parens):
|
|
58
|
+
* 'claude' → 'claude'
|
|
59
|
+
* 'claude.CMD' → 'claude'
|
|
60
|
+
* 'C:\\Program Files\\nodejs\\claude.cmd' → 'claude'
|
|
61
|
+
* '/usr/local/bin/codex' → 'codex'
|
|
62
|
+
* 'C:/Users/me/opencode.CMD' → 'opencode'
|
|
63
|
+
* 'my-custom-runner.bat' → 'my-custom-runner'
|
|
64
|
+
*/
|
|
65
|
+
export const normalizeExecutableToken = (token) => {
|
|
66
|
+
if (!token)
|
|
67
|
+
return null;
|
|
68
|
+
const lastSegment = token.replace(/^.*[\\/]/, '');
|
|
69
|
+
if (!lastSegment)
|
|
70
|
+
return null;
|
|
71
|
+
return lastSegment.toLowerCase().replace(/\.(cmd|bat|exe|ps1)$/u, '');
|
|
72
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wraps a system-injected message body in an out-of-band XML envelope so the
|
|
3
|
+
* agent attends to it as system content rather than mistaking it for user
|
|
4
|
+
* input or its own output. `<hive-system-reminder>` is reserved for the short
|
|
5
|
+
* re-anchoring action menu appended at a message tail; this `<hive-system-message>`
|
|
6
|
+
* tag carries larger injected bodies (crash-recovery / restart env-sync).
|
|
7
|
+
*/
|
|
8
|
+
export declare const wrapSystemMessage: (content: string) => string;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wraps a system-injected message body in an out-of-band XML envelope so the
|
|
3
|
+
* agent attends to it as system content rather than mistaking it for user
|
|
4
|
+
* input or its own output. `<hive-system-reminder>` is reserved for the short
|
|
5
|
+
* re-anchoring action menu appended at a message tail; this `<hive-system-message>`
|
|
6
|
+
* tag carries larger injected bodies (crash-recovery / restart env-sync).
|
|
7
|
+
*/
|
|
8
|
+
export const wrapSystemMessage = (content) => `<hive-system-message>\n${content}\n</hive-system-message>`;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Optional, read-only task-dependency support for `.hive/tasks.md`.
|
|
3
|
+
*
|
|
4
|
+
* A task line may carry a trailing `[needs: #2, #5]` annotation declaring that
|
|
5
|
+
* it depends on other tasks (referenced by their 1-based position among the
|
|
6
|
+
* GFM task-list items). `team next` uses this to surface the tasks that are
|
|
7
|
+
* currently runnable — not done, and with every dependency already checked off.
|
|
8
|
+
*
|
|
9
|
+
* Deliberately scoped: parsing happens here on the server only and is purely a
|
|
10
|
+
* READ — Hive never auto-dispatches a runnable task and never writes the
|
|
11
|
+
* annotation back into tasks.md (that file stays a human/orchestrator-edited,
|
|
12
|
+
* git-mergeable artifact). The web task renderer is intentionally left
|
|
13
|
+
* untouched, so the annotation just shows as literal text in the UI.
|
|
14
|
+
*/
|
|
15
|
+
export interface ParsedTaskLine {
|
|
16
|
+
/** 1-based position among task-list items — the `#n` that `[needs:]` uses. */
|
|
17
|
+
index: number;
|
|
18
|
+
done: boolean;
|
|
19
|
+
text: string;
|
|
20
|
+
needs: number[];
|
|
21
|
+
}
|
|
22
|
+
export interface RunnableTask {
|
|
23
|
+
index: number;
|
|
24
|
+
text: string;
|
|
25
|
+
}
|
|
26
|
+
export declare const parseTasksWithDeps: (markdown: string) => ParsedTaskLine[];
|
|
27
|
+
/**
|
|
28
|
+
* Tasks that can be worked right now: not yet done, and every `[needs:]`
|
|
29
|
+
* dependency is a task that exists AND is checked off. A dependency on a
|
|
30
|
+
* non-existent `#n`, or on a task that isn't done, withholds the task.
|
|
31
|
+
*/
|
|
32
|
+
export declare const computeRunnableTasks: (markdown: string) => RunnableTask[];
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
const TASK_LINE = /^\s*[-*]\s+\[([ xX])\]\s+(.*)$/;
|
|
2
|
+
const NEEDS = /\[needs:\s*([#\d,\s]+)\]\s*$/i;
|
|
3
|
+
export const parseTasksWithDeps = (markdown) => {
|
|
4
|
+
const tasks = [];
|
|
5
|
+
let index = 0;
|
|
6
|
+
for (const line of markdown.split('\n')) {
|
|
7
|
+
const match = TASK_LINE.exec(line);
|
|
8
|
+
if (!match)
|
|
9
|
+
continue;
|
|
10
|
+
index += 1;
|
|
11
|
+
const done = (match[1] ?? ' ').toLowerCase() === 'x';
|
|
12
|
+
let text = (match[2] ?? '').trim();
|
|
13
|
+
const needs = [];
|
|
14
|
+
const needsMatch = NEEDS.exec(text);
|
|
15
|
+
if (needsMatch) {
|
|
16
|
+
for (const token of (needsMatch[1] ?? '').split(',')) {
|
|
17
|
+
const parsed = Number.parseInt(token.replace('#', '').trim(), 10);
|
|
18
|
+
if (Number.isInteger(parsed) && parsed > 0)
|
|
19
|
+
needs.push(parsed);
|
|
20
|
+
}
|
|
21
|
+
// Drop the trailing annotation from the human-readable text.
|
|
22
|
+
text = text.slice(0, needsMatch.index).trim();
|
|
23
|
+
}
|
|
24
|
+
tasks.push({ index, done, text, needs });
|
|
25
|
+
}
|
|
26
|
+
return tasks;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Tasks that can be worked right now: not yet done, and every `[needs:]`
|
|
30
|
+
* dependency is a task that exists AND is checked off. A dependency on a
|
|
31
|
+
* non-existent `#n`, or on a task that isn't done, withholds the task.
|
|
32
|
+
*/
|
|
33
|
+
export const computeRunnableTasks = (markdown) => {
|
|
34
|
+
const tasks = parseTasksWithDeps(markdown);
|
|
35
|
+
const doneByIndex = new Map(tasks.map((task) => [task.index, task.done]));
|
|
36
|
+
return tasks
|
|
37
|
+
.filter((task) => !task.done)
|
|
38
|
+
.filter((task) => task.needs.every((dep) => doneByIndex.get(dep) === true))
|
|
39
|
+
.map((task) => ({ index: task.index, text: task.text }));
|
|
40
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type ChokidarOptions } from 'chokidar';
|
|
2
|
+
import { type FeatureFlags } from './feature-flags.js';
|
|
3
|
+
import type { WorkflowCliPolicy } from './workflow-cli-policy.js';
|
|
4
|
+
/**
|
|
5
|
+
* Watcher configuration. The atomic-save option matters on Windows: VS
|
|
6
|
+
* Code, Cursor, Notepad++, and the editor inside Hive itself all save
|
|
7
|
+
* by writing a temp file and renaming it over the target. On
|
|
8
|
+
* ReadDirectoryChangesW (Windows' native fs-event backend) that rename
|
|
9
|
+
* invalidates the file-handle the chokidar watcher held for the
|
|
10
|
+
* single-file path, and subsequent edits would emit no events at all.
|
|
11
|
+
*
|
|
12
|
+
* `atomic: 100` tells chokidar to correlate an unlink+add pair within
|
|
13
|
+
* a 100ms window as a single `change` event — collapsing the rename
|
|
14
|
+
* into one logical "the file was modified" notification and rebinding
|
|
15
|
+
* the underlying watch handle. Without it the tasks panel goes deaf
|
|
16
|
+
* to changes the user makes outside the app after the first save.
|
|
17
|
+
*
|
|
18
|
+
* We intentionally do NOT set `awaitWriteFinish` here. It would help
|
|
19
|
+
* even more on Windows (waits for the file size to stabilise before
|
|
20
|
+
* emitting), but it also throttles every emission by `stabilityThreshold`
|
|
21
|
+
* — clashing with continuous-write workflows (a worker streaming
|
|
22
|
+
* updates into tasks.md every 100ms would never see an emit). The
|
|
23
|
+
* `atomic` option alone covers atomic-save; if a future workspace
|
|
24
|
+
* needs stronger settling behaviour we can promote it then.
|
|
25
|
+
*
|
|
26
|
+
* Exported so the configuration is testable in isolation.
|
|
27
|
+
*/
|
|
28
|
+
export declare const TASKS_WATCHER_OPTIONS: ChokidarOptions;
|
|
29
|
+
export declare const buildTasksWatcherOptions: (workspacePath: string, platform?: NodeJS.Platform) => ChokidarOptions;
|
|
30
|
+
export declare const getTasksWatcherReadyTimeoutMs: (workspacePath: string, platform?: NodeJS.Platform) => number;
|
|
31
|
+
export declare const isTasksFileEvent: (tasksPath: string, changedPath: string | Buffer | undefined, platform?: NodeJS.Platform) => boolean;
|
|
32
|
+
export interface TasksFileWatcher {
|
|
33
|
+
close: () => Promise<void>;
|
|
34
|
+
start: (workspaceId: string, workspacePath: string) => Promise<void>;
|
|
35
|
+
stop: (workspaceId: string) => Promise<void>;
|
|
36
|
+
}
|
|
37
|
+
export declare const createTasksFileWatcher: ({ onTasksUpdated, getWorkflowCliPolicy, getFlags, }: {
|
|
38
|
+
onTasksUpdated: (workspaceId: string, content: string) => void;
|
|
39
|
+
/** Lets the freshly-written `.hive/PROTOCOL.md` state the workspace's
|
|
40
|
+
* workflow CLI default + allowlist. Optional: omitted → the doc renders
|
|
41
|
+
* the unrestricted default. */
|
|
42
|
+
getWorkflowCliPolicy?: () => WorkflowCliPolicy;
|
|
43
|
+
/** Resolves the live experimental flags. PROTOCOL.md omits the workflow DSL
|
|
44
|
+
* + `team workflow` commands when `workflowsEnabled` is off, and the
|
|
45
|
+
* team-sizing rule when `autostaffEnabled` is off. Omitted → all off. */
|
|
46
|
+
getFlags?: () => FeatureFlags;
|
|
47
|
+
}) => TasksFileWatcher;
|