verbolab 0.1.0-alpha.1
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 +71 -0
- package/dist/bin/verbo.d.ts +3 -0
- package/dist/bin/verbo.d.ts.map +1 -0
- package/dist/bin/verbo.js +1156 -0
- package/dist/bin/verbo.js.map +1 -0
- package/dist/relay/index.d.ts +2 -0
- package/dist/relay/index.d.ts.map +1 -0
- package/dist/relay/index.js +15 -0
- package/dist/relay/index.js.map +1 -0
- package/dist/src/agent/agent-launcher.d.ts +64 -0
- package/dist/src/agent/agent-launcher.d.ts.map +1 -0
- package/dist/src/agent/agent-launcher.js +326 -0
- package/dist/src/agent/agent-launcher.js.map +1 -0
- package/dist/src/agent/agent-monitor.d.ts +16 -0
- package/dist/src/agent/agent-monitor.d.ts.map +1 -0
- package/dist/src/agent/agent-monitor.js +41 -0
- package/dist/src/agent/agent-monitor.js.map +1 -0
- package/dist/src/agent/fun-names.d.ts +9 -0
- package/dist/src/agent/fun-names.d.ts.map +1 -0
- package/dist/src/agent/fun-names.js +118 -0
- package/dist/src/agent/fun-names.js.map +1 -0
- package/dist/src/agent/mcp-shim.d.ts +45 -0
- package/dist/src/agent/mcp-shim.d.ts.map +1 -0
- package/dist/src/agent/mcp-shim.js +192 -0
- package/dist/src/agent/mcp-shim.js.map +1 -0
- package/dist/src/agent/personas.d.ts +47 -0
- package/dist/src/agent/personas.d.ts.map +1 -0
- package/dist/src/agent/personas.js +86 -0
- package/dist/src/agent/personas.js.map +1 -0
- package/dist/src/agent/provider-detection.d.ts +21 -0
- package/dist/src/agent/provider-detection.d.ts.map +1 -0
- package/dist/src/agent/provider-detection.js +47 -0
- package/dist/src/agent/provider-detection.js.map +1 -0
- package/dist/src/agent/providers/claude-provider.d.ts +3 -0
- package/dist/src/agent/providers/claude-provider.d.ts.map +1 -0
- package/dist/src/agent/providers/claude-provider.js +119 -0
- package/dist/src/agent/providers/claude-provider.js.map +1 -0
- package/dist/src/agent/providers/gemini-provider.d.ts +13 -0
- package/dist/src/agent/providers/gemini-provider.d.ts.map +1 -0
- package/dist/src/agent/providers/gemini-provider.js +143 -0
- package/dist/src/agent/providers/gemini-provider.js.map +1 -0
- package/dist/src/agent/providers/openai-provider.d.ts +3 -0
- package/dist/src/agent/providers/openai-provider.d.ts.map +1 -0
- package/dist/src/agent/providers/openai-provider.js +127 -0
- package/dist/src/agent/providers/openai-provider.js.map +1 -0
- package/dist/src/agent/providers/registry.d.ts +19 -0
- package/dist/src/agent/providers/registry.d.ts.map +1 -0
- package/dist/src/agent/providers/registry.js +30 -0
- package/dist/src/agent/providers/registry.js.map +1 -0
- package/dist/src/agent/providers/types.d.ts +118 -0
- package/dist/src/agent/providers/types.d.ts.map +1 -0
- package/dist/src/agent/providers/types.js +2 -0
- package/dist/src/agent/providers/types.js.map +1 -0
- package/dist/src/approval/approval-server.d.ts +17 -0
- package/dist/src/approval/approval-server.d.ts.map +1 -0
- package/dist/src/approval/approval-server.js +90 -0
- package/dist/src/approval/approval-server.js.map +1 -0
- package/dist/src/approval/approval-store.d.ts +29 -0
- package/dist/src/approval/approval-store.d.ts.map +1 -0
- package/dist/src/approval/approval-store.js +94 -0
- package/dist/src/approval/approval-store.js.map +1 -0
- package/dist/src/auth/auth-store.d.ts +18 -0
- package/dist/src/auth/auth-store.d.ts.map +1 -0
- package/dist/src/auth/auth-store.js +34 -0
- package/dist/src/auth/auth-store.js.map +1 -0
- package/dist/src/auth/device-code-client.d.ts +32 -0
- package/dist/src/auth/device-code-client.d.ts.map +1 -0
- package/dist/src/auth/device-code-client.js +41 -0
- package/dist/src/auth/device-code-client.js.map +1 -0
- package/dist/src/auth/plan-enforcer.d.ts +8 -0
- package/dist/src/auth/plan-enforcer.d.ts.map +1 -0
- package/dist/src/auth/plan-enforcer.js +14 -0
- package/dist/src/auth/plan-enforcer.js.map +1 -0
- package/dist/src/commands/audit.d.ts +7 -0
- package/dist/src/commands/audit.d.ts.map +1 -0
- package/dist/src/commands/audit.js +92 -0
- package/dist/src/commands/audit.js.map +1 -0
- package/dist/src/commands/team.d.ts +48 -0
- package/dist/src/commands/team.d.ts.map +1 -0
- package/dist/src/commands/team.js +175 -0
- package/dist/src/commands/team.js.map +1 -0
- package/dist/src/config/verbo-config.d.ts +43 -0
- package/dist/src/config/verbo-config.d.ts.map +1 -0
- package/dist/src/config/verbo-config.js +111 -0
- package/dist/src/config/verbo-config.js.map +1 -0
- package/dist/src/core/agent-session-store.d.ts +69 -0
- package/dist/src/core/agent-session-store.d.ts.map +1 -0
- package/dist/src/core/agent-session-store.js +168 -0
- package/dist/src/core/agent-session-store.js.map +1 -0
- package/dist/src/core/audit-log-store.d.ts +33 -0
- package/dist/src/core/audit-log-store.d.ts.map +1 -0
- package/dist/src/core/audit-log-store.js +104 -0
- package/dist/src/core/audit-log-store.js.map +1 -0
- package/dist/src/core/compliance.d.ts +50 -0
- package/dist/src/core/compliance.d.ts.map +1 -0
- package/dist/src/core/compliance.js +59 -0
- package/dist/src/core/compliance.js.map +1 -0
- package/dist/src/core/conflict-detector.d.ts +19 -0
- package/dist/src/core/conflict-detector.d.ts.map +1 -0
- package/dist/src/core/conflict-detector.js +87 -0
- package/dist/src/core/conflict-detector.js.map +1 -0
- package/dist/src/core/conflict-enforcer.d.ts +37 -0
- package/dist/src/core/conflict-enforcer.d.ts.map +1 -0
- package/dist/src/core/conflict-enforcer.js +139 -0
- package/dist/src/core/conflict-enforcer.js.map +1 -0
- package/dist/src/core/cost-store.d.ts +55 -0
- package/dist/src/core/cost-store.d.ts.map +1 -0
- package/dist/src/core/cost-store.js +140 -0
- package/dist/src/core/cost-store.js.map +1 -0
- package/dist/src/core/hot-files.d.ts +19 -0
- package/dist/src/core/hot-files.d.ts.map +1 -0
- package/dist/src/core/hot-files.js +64 -0
- package/dist/src/core/hot-files.js.map +1 -0
- package/dist/src/core/human-action-store.d.ts +33 -0
- package/dist/src/core/human-action-store.d.ts.map +1 -0
- package/dist/src/core/human-action-store.js +92 -0
- package/dist/src/core/human-action-store.js.map +1 -0
- package/dist/src/core/learning-store.d.ts +32 -0
- package/dist/src/core/learning-store.d.ts.map +1 -0
- package/dist/src/core/learning-store.js +95 -0
- package/dist/src/core/learning-store.js.map +1 -0
- package/dist/src/core/merge-queue.d.ts +28 -0
- package/dist/src/core/merge-queue.d.ts.map +1 -0
- package/dist/src/core/merge-queue.js +92 -0
- package/dist/src/core/merge-queue.js.map +1 -0
- package/dist/src/core/notification-service.d.ts +13 -0
- package/dist/src/core/notification-service.d.ts.map +1 -0
- package/dist/src/core/notification-service.js +126 -0
- package/dist/src/core/notification-service.js.map +1 -0
- package/dist/src/core/notifications.d.ts +10 -0
- package/dist/src/core/notifications.d.ts.map +1 -0
- package/dist/src/core/notifications.js +33 -0
- package/dist/src/core/notifications.js.map +1 -0
- package/dist/src/core/orchestrator-store.d.ts +44 -0
- package/dist/src/core/orchestrator-store.d.ts.map +1 -0
- package/dist/src/core/orchestrator-store.js +69 -0
- package/dist/src/core/orchestrator-store.js.map +1 -0
- package/dist/src/core/parallelizer.d.ts +47 -0
- package/dist/src/core/parallelizer.d.ts.map +1 -0
- package/dist/src/core/parallelizer.js +224 -0
- package/dist/src/core/parallelizer.js.map +1 -0
- package/dist/src/core/pipeline-rollback.d.ts +29 -0
- package/dist/src/core/pipeline-rollback.d.ts.map +1 -0
- package/dist/src/core/pipeline-rollback.js +84 -0
- package/dist/src/core/pipeline-rollback.js.map +1 -0
- package/dist/src/core/pipeline-runner.d.ts +73 -0
- package/dist/src/core/pipeline-runner.d.ts.map +1 -0
- package/dist/src/core/pipeline-runner.js +165 -0
- package/dist/src/core/pipeline-runner.js.map +1 -0
- package/dist/src/core/pr-creator.d.ts +22 -0
- package/dist/src/core/pr-creator.d.ts.map +1 -0
- package/dist/src/core/pr-creator.js +55 -0
- package/dist/src/core/pr-creator.js.map +1 -0
- package/dist/src/core/rbac.d.ts +27 -0
- package/dist/src/core/rbac.d.ts.map +1 -0
- package/dist/src/core/rbac.js +76 -0
- package/dist/src/core/rbac.js.map +1 -0
- package/dist/src/core/startup-cleanup.d.ts +47 -0
- package/dist/src/core/startup-cleanup.d.ts.map +1 -0
- package/dist/src/core/startup-cleanup.js +150 -0
- package/dist/src/core/startup-cleanup.js.map +1 -0
- package/dist/src/core/task-store.d.ts +96 -0
- package/dist/src/core/task-store.d.ts.map +1 -0
- package/dist/src/core/task-store.js +309 -0
- package/dist/src/core/task-store.js.map +1 -0
- package/dist/src/core/verbo-config-editor.d.ts +44 -0
- package/dist/src/core/verbo-config-editor.d.ts.map +1 -0
- package/dist/src/core/verbo-config-editor.js +204 -0
- package/dist/src/core/verbo-config-editor.js.map +1 -0
- package/dist/src/core/verbo-config.d.ts +35 -0
- package/dist/src/core/verbo-config.d.ts.map +1 -0
- package/dist/src/core/verbo-config.js +55 -0
- package/dist/src/core/verbo-config.js.map +1 -0
- package/dist/src/core/verbo-md.d.ts +96 -0
- package/dist/src/core/verbo-md.d.ts.map +1 -0
- package/dist/src/core/verbo-md.js +410 -0
- package/dist/src/core/verbo-md.js.map +1 -0
- package/dist/src/db/database.d.ts +9 -0
- package/dist/src/db/database.d.ts.map +1 -0
- package/dist/src/db/database.js +37 -0
- package/dist/src/db/database.js.map +1 -0
- package/dist/src/db/migrations/001-personas-subtasks.d.ts +10 -0
- package/dist/src/db/migrations/001-personas-subtasks.d.ts.map +1 -0
- package/dist/src/db/migrations/001-personas-subtasks.js +32 -0
- package/dist/src/db/migrations/001-personas-subtasks.js.map +1 -0
- package/dist/src/db/migrations/002-rbac.d.ts +9 -0
- package/dist/src/db/migrations/002-rbac.d.ts.map +1 -0
- package/dist/src/db/migrations/002-rbac.js +31 -0
- package/dist/src/db/migrations/002-rbac.js.map +1 -0
- package/dist/src/db/migrations/003-provider-column.d.ts +8 -0
- package/dist/src/db/migrations/003-provider-column.d.ts.map +1 -0
- package/dist/src/db/migrations/003-provider-column.js +12 -0
- package/dist/src/db/migrations/003-provider-column.js.map +1 -0
- package/dist/src/db/migrations/004-pipeline-cost.d.ts +8 -0
- package/dist/src/db/migrations/004-pipeline-cost.d.ts.map +1 -0
- package/dist/src/db/migrations/004-pipeline-cost.js +23 -0
- package/dist/src/db/migrations/004-pipeline-cost.js.map +1 -0
- package/dist/src/db/migrations/005-audit-log-timestamp.d.ts +10 -0
- package/dist/src/db/migrations/005-audit-log-timestamp.d.ts.map +1 -0
- package/dist/src/db/migrations/005-audit-log-timestamp.js +39 -0
- package/dist/src/db/migrations/005-audit-log-timestamp.js.map +1 -0
- package/dist/src/db/migrations/006-human-action-type.d.ts +9 -0
- package/dist/src/db/migrations/006-human-action-type.d.ts.map +1 -0
- package/dist/src/db/migrations/006-human-action-type.js +16 -0
- package/dist/src/db/migrations/006-human-action-type.js.map +1 -0
- package/dist/src/db/schema.d.ts +6 -0
- package/dist/src/db/schema.d.ts.map +1 -0
- package/dist/src/db/schema.js +255 -0
- package/dist/src/db/schema.js.map +1 -0
- package/dist/src/deps/dependabot-generator.d.ts +22 -0
- package/dist/src/deps/dependabot-generator.d.ts.map +1 -0
- package/dist/src/deps/dependabot-generator.js +83 -0
- package/dist/src/deps/dependabot-generator.js.map +1 -0
- package/dist/src/deps/dependabot-monitor.d.ts +22 -0
- package/dist/src/deps/dependabot-monitor.d.ts.map +1 -0
- package/dist/src/deps/dependabot-monitor.js +28 -0
- package/dist/src/deps/dependabot-monitor.js.map +1 -0
- package/dist/src/deps/package-auditor.d.ts +24 -0
- package/dist/src/deps/package-auditor.d.ts.map +1 -0
- package/dist/src/deps/package-auditor.js +118 -0
- package/dist/src/deps/package-auditor.js.map +1 -0
- package/dist/src/init/ensure-init.d.ts +6 -0
- package/dist/src/init/ensure-init.d.ts.map +1 -0
- package/dist/src/init/ensure-init.js +27 -0
- package/dist/src/init/ensure-init.js.map +1 -0
- package/dist/src/init/project-detector.d.ts +11 -0
- package/dist/src/init/project-detector.d.ts.map +1 -0
- package/dist/src/init/project-detector.js +117 -0
- package/dist/src/init/project-detector.js.map +1 -0
- package/dist/src/init/questionnaire.d.ts +5 -0
- package/dist/src/init/questionnaire.d.ts.map +1 -0
- package/dist/src/init/questionnaire.js +112 -0
- package/dist/src/init/questionnaire.js.map +1 -0
- package/dist/src/init/template.d.ts +17 -0
- package/dist/src/init/template.d.ts.map +1 -0
- package/dist/src/init/template.js +46 -0
- package/dist/src/init/template.js.map +1 -0
- package/dist/src/intelligence/claude-client.d.ts +3 -0
- package/dist/src/intelligence/claude-client.d.ts.map +1 -0
- package/dist/src/intelligence/claude-client.js +12 -0
- package/dist/src/intelligence/claude-client.js.map +1 -0
- package/dist/src/intelligence/conflict-mediator.d.ts +17 -0
- package/dist/src/intelligence/conflict-mediator.d.ts.map +1 -0
- package/dist/src/intelligence/conflict-mediator.js +83 -0
- package/dist/src/intelligence/conflict-mediator.js.map +1 -0
- package/dist/src/intelligence/github-orchestrator.d.ts +30 -0
- package/dist/src/intelligence/github-orchestrator.d.ts.map +1 -0
- package/dist/src/intelligence/github-orchestrator.js +270 -0
- package/dist/src/intelligence/github-orchestrator.js.map +1 -0
- package/dist/src/intelligence/kill-switch.d.ts +10 -0
- package/dist/src/intelligence/kill-switch.d.ts.map +1 -0
- package/dist/src/intelligence/kill-switch.js +12 -0
- package/dist/src/intelligence/kill-switch.js.map +1 -0
- package/dist/src/intelligence/learnings-extractor.d.ts +13 -0
- package/dist/src/intelligence/learnings-extractor.d.ts.map +1 -0
- package/dist/src/intelligence/learnings-extractor.js +74 -0
- package/dist/src/intelligence/learnings-extractor.js.map +1 -0
- package/dist/src/intelligence/project-scanner.d.ts +2 -0
- package/dist/src/intelligence/project-scanner.d.ts.map +1 -0
- package/dist/src/intelligence/project-scanner.js +28 -0
- package/dist/src/intelligence/project-scanner.js.map +1 -0
- package/dist/src/intelligence/task-decomposer.d.ts +14 -0
- package/dist/src/intelligence/task-decomposer.d.ts.map +1 -0
- package/dist/src/intelligence/task-decomposer.js +97 -0
- package/dist/src/intelligence/task-decomposer.js.map +1 -0
- package/dist/src/intelligence/types.d.ts +14 -0
- package/dist/src/intelligence/types.d.ts.map +1 -0
- package/dist/src/intelligence/types.js +2 -0
- package/dist/src/intelligence/types.js.map +1 -0
- package/dist/src/mcp/server.d.ts +63 -0
- package/dist/src/mcp/server.d.ts.map +1 -0
- package/dist/src/mcp/server.js +537 -0
- package/dist/src/mcp/server.js.map +1 -0
- package/dist/src/mcp/stdio-entry.d.ts +2 -0
- package/dist/src/mcp/stdio-entry.d.ts.map +1 -0
- package/dist/src/mcp/stdio-entry.js +124 -0
- package/dist/src/mcp/stdio-entry.js.map +1 -0
- package/dist/src/mcp/subtask-handlers.d.ts +7 -0
- package/dist/src/mcp/subtask-handlers.d.ts.map +1 -0
- package/dist/src/mcp/subtask-handlers.js +50 -0
- package/dist/src/mcp/subtask-handlers.js.map +1 -0
- package/dist/src/security/network-proxy.d.ts +20 -0
- package/dist/src/security/network-proxy.d.ts.map +1 -0
- package/dist/src/security/network-proxy.js +125 -0
- package/dist/src/security/network-proxy.js.map +1 -0
- package/dist/src/security/network-sandbox.d.ts +19 -0
- package/dist/src/security/network-sandbox.d.ts.map +1 -0
- package/dist/src/security/network-sandbox.js +100 -0
- package/dist/src/security/network-sandbox.js.map +1 -0
- package/dist/src/security/sanitize.d.ts +13 -0
- package/dist/src/security/sanitize.d.ts.map +1 -0
- package/dist/src/security/sanitize.js +19 -0
- package/dist/src/security/sanitize.js.map +1 -0
- package/dist/src/security/secrets-patterns.d.ts +29 -0
- package/dist/src/security/secrets-patterns.d.ts.map +1 -0
- package/dist/src/security/secrets-patterns.js +430 -0
- package/dist/src/security/secrets-patterns.js.map +1 -0
- package/dist/src/security/secrets-scanner.d.ts +26 -0
- package/dist/src/security/secrets-scanner.d.ts.map +1 -0
- package/dist/src/security/secrets-scanner.js +62 -0
- package/dist/src/security/secrets-scanner.js.map +1 -0
- package/dist/src/skills/classifier.d.ts +9 -0
- package/dist/src/skills/classifier.d.ts.map +1 -0
- package/dist/src/skills/classifier.js +41 -0
- package/dist/src/skills/classifier.js.map +1 -0
- package/dist/src/skills/registry.d.ts +16 -0
- package/dist/src/skills/registry.d.ts.map +1 -0
- package/dist/src/skills/registry.js +61 -0
- package/dist/src/skills/registry.js.map +1 -0
- package/dist/src/sync/events.d.ts +9 -0
- package/dist/src/sync/events.d.ts.map +1 -0
- package/dist/src/sync/events.js +2 -0
- package/dist/src/sync/events.js.map +1 -0
- package/dist/src/sync/relay-server.d.ts +18 -0
- package/dist/src/sync/relay-server.d.ts.map +1 -0
- package/dist/src/sync/relay-server.js +131 -0
- package/dist/src/sync/relay-server.js.map +1 -0
- package/dist/src/sync/sync-client.d.ts +31 -0
- package/dist/src/sync/sync-client.d.ts.map +1 -0
- package/dist/src/sync/sync-client.js +314 -0
- package/dist/src/sync/sync-client.js.map +1 -0
- package/dist/src/tui/app.d.ts +35 -0
- package/dist/src/tui/app.d.ts.map +1 -0
- package/dist/src/tui/app.js +676 -0
- package/dist/src/tui/app.js.map +1 -0
- package/dist/src/tui/components/activity-feed.d.ts +12 -0
- package/dist/src/tui/components/activity-feed.d.ts.map +1 -0
- package/dist/src/tui/components/activity-feed.js +82 -0
- package/dist/src/tui/components/activity-feed.js.map +1 -0
- package/dist/src/tui/components/agent-list.d.ts +19 -0
- package/dist/src/tui/components/agent-list.d.ts.map +1 -0
- package/dist/src/tui/components/agent-list.js +33 -0
- package/dist/src/tui/components/agent-list.js.map +1 -0
- package/dist/src/tui/components/agent-row.d.ts +12 -0
- package/dist/src/tui/components/agent-row.d.ts.map +1 -0
- package/dist/src/tui/components/agent-row.js +37 -0
- package/dist/src/tui/components/agent-row.js.map +1 -0
- package/dist/src/tui/components/approval-terminal.d.ts +13 -0
- package/dist/src/tui/components/approval-terminal.d.ts.map +1 -0
- package/dist/src/tui/components/approval-terminal.js +34 -0
- package/dist/src/tui/components/approval-terminal.js.map +1 -0
- package/dist/src/tui/components/audit-viewer.d.ts +16 -0
- package/dist/src/tui/components/audit-viewer.d.ts.map +1 -0
- package/dist/src/tui/components/audit-viewer.js +46 -0
- package/dist/src/tui/components/audit-viewer.js.map +1 -0
- package/dist/src/tui/components/auth-gate.d.ts +9 -0
- package/dist/src/tui/components/auth-gate.d.ts.map +1 -0
- package/dist/src/tui/components/auth-gate.js +112 -0
- package/dist/src/tui/components/auth-gate.js.map +1 -0
- package/dist/src/tui/components/command-palette.d.ts +12 -0
- package/dist/src/tui/components/command-palette.d.ts.map +1 -0
- package/dist/src/tui/components/command-palette.js +51 -0
- package/dist/src/tui/components/command-palette.js.map +1 -0
- package/dist/src/tui/components/compliance-badge.d.ts +11 -0
- package/dist/src/tui/components/compliance-badge.d.ts.map +1 -0
- package/dist/src/tui/components/compliance-badge.js +12 -0
- package/dist/src/tui/components/compliance-badge.js.map +1 -0
- package/dist/src/tui/components/decomposition-review.d.ts +10 -0
- package/dist/src/tui/components/decomposition-review.d.ts.map +1 -0
- package/dist/src/tui/components/decomposition-review.js +19 -0
- package/dist/src/tui/components/decomposition-review.js.map +1 -0
- package/dist/src/tui/components/dependency-graph.d.ts +13 -0
- package/dist/src/tui/components/dependency-graph.d.ts.map +1 -0
- package/dist/src/tui/components/dependency-graph.js +143 -0
- package/dist/src/tui/components/dependency-graph.js.map +1 -0
- package/dist/src/tui/components/diff-viewer.d.ts +11 -0
- package/dist/src/tui/components/diff-viewer.d.ts.map +1 -0
- package/dist/src/tui/components/diff-viewer.js +82 -0
- package/dist/src/tui/components/diff-viewer.js.map +1 -0
- package/dist/src/tui/components/edit-task-input.d.ts +10 -0
- package/dist/src/tui/components/edit-task-input.d.ts.map +1 -0
- package/dist/src/tui/components/edit-task-input.js +20 -0
- package/dist/src/tui/components/edit-task-input.js.map +1 -0
- package/dist/src/tui/components/footer.d.ts +12 -0
- package/dist/src/tui/components/footer.d.ts.map +1 -0
- package/dist/src/tui/components/footer.js +41 -0
- package/dist/src/tui/components/footer.js.map +1 -0
- package/dist/src/tui/components/header.d.ts +8 -0
- package/dist/src/tui/components/header.d.ts.map +1 -0
- package/dist/src/tui/components/header.js +20 -0
- package/dist/src/tui/components/header.js.map +1 -0
- package/dist/src/tui/components/human-actions.d.ts +14 -0
- package/dist/src/tui/components/human-actions.d.ts.map +1 -0
- package/dist/src/tui/components/human-actions.js +43 -0
- package/dist/src/tui/components/human-actions.js.map +1 -0
- package/dist/src/tui/components/log-panel.d.ts +10 -0
- package/dist/src/tui/components/log-panel.d.ts.map +1 -0
- package/dist/src/tui/components/log-panel.js +38 -0
- package/dist/src/tui/components/log-panel.js.map +1 -0
- package/dist/src/tui/components/memory-viewer.d.ts +10 -0
- package/dist/src/tui/components/memory-viewer.d.ts.map +1 -0
- package/dist/src/tui/components/memory-viewer.js +44 -0
- package/dist/src/tui/components/memory-viewer.js.map +1 -0
- package/dist/src/tui/components/new-task-input.d.ts +9 -0
- package/dist/src/tui/components/new-task-input.d.ts.map +1 -0
- package/dist/src/tui/components/new-task-input.js +21 -0
- package/dist/src/tui/components/new-task-input.js.map +1 -0
- package/dist/src/tui/components/orchestrator-status.d.ts +9 -0
- package/dist/src/tui/components/orchestrator-status.d.ts.map +1 -0
- package/dist/src/tui/components/orchestrator-status.js +15 -0
- package/dist/src/tui/components/orchestrator-status.js.map +1 -0
- package/dist/src/tui/components/parallelize-banner.d.ts +8 -0
- package/dist/src/tui/components/parallelize-banner.d.ts.map +1 -0
- package/dist/src/tui/components/parallelize-banner.js +9 -0
- package/dist/src/tui/components/parallelize-banner.js.map +1 -0
- package/dist/src/tui/components/progress-bar.d.ts +9 -0
- package/dist/src/tui/components/progress-bar.d.ts.map +1 -0
- package/dist/src/tui/components/progress-bar.js +15 -0
- package/dist/src/tui/components/progress-bar.js.map +1 -0
- package/dist/src/tui/components/review-queue.d.ts +13 -0
- package/dist/src/tui/components/review-queue.d.ts.map +1 -0
- package/dist/src/tui/components/review-queue.js +78 -0
- package/dist/src/tui/components/review-queue.js.map +1 -0
- package/dist/src/tui/components/rich-header.d.ts +11 -0
- package/dist/src/tui/components/rich-header.d.ts.map +1 -0
- package/dist/src/tui/components/rich-header.js +25 -0
- package/dist/src/tui/components/rich-header.js.map +1 -0
- package/dist/src/tui/components/spinner.d.ts +7 -0
- package/dist/src/tui/components/spinner.d.ts.map +1 -0
- package/dist/src/tui/components/spinner.js +8 -0
- package/dist/src/tui/components/spinner.js.map +1 -0
- package/dist/src/tui/components/status-bar.d.ts +23 -0
- package/dist/src/tui/components/status-bar.d.ts.map +1 -0
- package/dist/src/tui/components/status-bar.js +28 -0
- package/dist/src/tui/components/status-bar.js.map +1 -0
- package/dist/src/tui/components/task-queue.d.ts +11 -0
- package/dist/src/tui/components/task-queue.d.ts.map +1 -0
- package/dist/src/tui/components/task-queue.js +30 -0
- package/dist/src/tui/components/task-queue.js.map +1 -0
- package/dist/src/tui/components/team-view.d.ts +13 -0
- package/dist/src/tui/components/team-view.d.ts.map +1 -0
- package/dist/src/tui/components/team-view.js +12 -0
- package/dist/src/tui/components/team-view.js.map +1 -0
- package/dist/src/tui/graph-renderer.d.ts +11 -0
- package/dist/src/tui/graph-renderer.d.ts.map +1 -0
- package/dist/src/tui/graph-renderer.js +296 -0
- package/dist/src/tui/graph-renderer.js.map +1 -0
- package/dist/src/tui/hooks/use-bell.d.ts +21 -0
- package/dist/src/tui/hooks/use-bell.d.ts.map +1 -0
- package/dist/src/tui/hooks/use-bell.js +38 -0
- package/dist/src/tui/hooks/use-bell.js.map +1 -0
- package/dist/src/tui/hooks/use-ci-status.d.ts +16 -0
- package/dist/src/tui/hooks/use-ci-status.d.ts.map +1 -0
- package/dist/src/tui/hooks/use-ci-status.js +97 -0
- package/dist/src/tui/hooks/use-ci-status.js.map +1 -0
- package/dist/src/tui/hooks/use-command-palette.d.ts +37 -0
- package/dist/src/tui/hooks/use-command-palette.d.ts.map +1 -0
- package/dist/src/tui/hooks/use-command-palette.js +108 -0
- package/dist/src/tui/hooks/use-command-palette.js.map +1 -0
- package/dist/src/tui/hooks/use-diff-view.d.ts +16 -0
- package/dist/src/tui/hooks/use-diff-view.d.ts.map +1 -0
- package/dist/src/tui/hooks/use-diff-view.js +75 -0
- package/dist/src/tui/hooks/use-diff-view.js.map +1 -0
- package/dist/src/tui/hooks/use-keyboard.d.ts +3 -0
- package/dist/src/tui/hooks/use-keyboard.d.ts.map +1 -0
- package/dist/src/tui/hooks/use-keyboard.js +70 -0
- package/dist/src/tui/hooks/use-keyboard.js.map +1 -0
- package/dist/src/tui/hooks/use-log-stream.d.ts +25 -0
- package/dist/src/tui/hooks/use-log-stream.d.ts.map +1 -0
- package/dist/src/tui/hooks/use-log-stream.js +83 -0
- package/dist/src/tui/hooks/use-log-stream.js.map +1 -0
- package/dist/src/tui/hooks/use-spinner.d.ts +3 -0
- package/dist/src/tui/hooks/use-spinner.d.ts.map +1 -0
- package/dist/src/tui/hooks/use-spinner.js +13 -0
- package/dist/src/tui/hooks/use-spinner.js.map +1 -0
- package/dist/src/tui/hooks/use-store.d.ts +33 -0
- package/dist/src/tui/hooks/use-store.d.ts.map +1 -0
- package/dist/src/tui/hooks/use-store.js +21 -0
- package/dist/src/tui/hooks/use-store.js.map +1 -0
- package/dist/src/tui/lib/diff-parser.d.ts +24 -0
- package/dist/src/tui/lib/diff-parser.d.ts.map +1 -0
- package/dist/src/tui/lib/diff-parser.js +115 -0
- package/dist/src/tui/lib/diff-parser.js.map +1 -0
- package/dist/src/tui/lib/palette-commands.d.ts +14 -0
- package/dist/src/tui/lib/palette-commands.d.ts.map +1 -0
- package/dist/src/tui/lib/palette-commands.js +101 -0
- package/dist/src/tui/lib/palette-commands.js.map +1 -0
- package/dist/src/tui/tui.d.ts +8 -0
- package/dist/src/tui/tui.d.ts.map +1 -0
- package/dist/src/tui/tui.js +8 -0
- package/dist/src/tui/tui.js.map +1 -0
- package/package.json +66 -0
- package/skills/api-design.md +84 -0
- package/skills/backend-typescript.md +76 -0
- package/skills/data-modeling.md +73 -0
- package/skills/devops-ci.md +82 -0
- package/skills/frontend-design.md +69 -0
- package/skills/observability.md +73 -0
- package/skills/react-nextjs.md +76 -0
- package/skills/refactoring.md +77 -0
- package/skills/security.md +75 -0
- package/skills/testing.md +69 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration 004: Add task_cost_ledger table for pipeline cost tracking
|
|
3
|
+
*
|
|
4
|
+
* task_cost_ledger: append-only record of token usage and USD cost per pipeline run
|
|
5
|
+
*/
|
|
6
|
+
export function migrate(db) {
|
|
7
|
+
db.exec(`
|
|
8
|
+
CREATE TABLE IF NOT EXISTS task_cost_ledger (
|
|
9
|
+
id TEXT PRIMARY KEY,
|
|
10
|
+
timestamp TEXT NOT NULL,
|
|
11
|
+
pipeline_run_id TEXT NOT NULL,
|
|
12
|
+
task_id TEXT,
|
|
13
|
+
input_tokens INTEGER NOT NULL DEFAULT 0,
|
|
14
|
+
output_tokens INTEGER NOT NULL DEFAULT 0,
|
|
15
|
+
cache_read_tokens INTEGER NOT NULL DEFAULT 0,
|
|
16
|
+
cache_write_tokens INTEGER NOT NULL DEFAULT 0,
|
|
17
|
+
cost_usd REAL NOT NULL DEFAULT 0
|
|
18
|
+
)
|
|
19
|
+
`);
|
|
20
|
+
db.exec('CREATE INDEX IF NOT EXISTS idx_cost_ledger_pipeline_run_id ON task_cost_ledger(pipeline_run_id)');
|
|
21
|
+
db.exec('CREATE INDEX IF NOT EXISTS idx_cost_ledger_task_id ON task_cost_ledger(task_id)');
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=004-pipeline-cost.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"004-pipeline-cost.js","sourceRoot":"","sources":["../../../../src/db/migrations/004-pipeline-cost.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,EAAqB;IAC3C,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;GAYP,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CACL,iGAAiG,CAClG,CAAC;IACF,EAAE,CAAC,IAAI,CACL,iFAAiF,CAClF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type Database from 'better-sqlite3';
|
|
2
|
+
/**
|
|
3
|
+
* Migration 005: Fix audit_log schema and add fun_name to agent_sessions
|
|
4
|
+
*
|
|
5
|
+
* - audit_log: add timestamp column if missing (was added in full implementation)
|
|
6
|
+
* - audit_log: add missing columns for full implementation (agent_session_id, task_id, human_id)
|
|
7
|
+
* - agent_sessions: add fun_name column if missing
|
|
8
|
+
*/
|
|
9
|
+
export declare function migrate(db: Database.Database): void;
|
|
10
|
+
//# sourceMappingURL=005-audit-log-timestamp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"005-audit-log-timestamp.d.ts","sourceRoot":"","sources":["../../../../src/db/migrations/005-audit-log-timestamp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAsCnD"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration 005: Fix audit_log schema and add fun_name to agent_sessions
|
|
3
|
+
*
|
|
4
|
+
* - audit_log: add timestamp column if missing (was added in full implementation)
|
|
5
|
+
* - audit_log: add missing columns for full implementation (agent_session_id, task_id, human_id)
|
|
6
|
+
* - agent_sessions: add fun_name column if missing
|
|
7
|
+
*/
|
|
8
|
+
export function migrate(db) {
|
|
9
|
+
const auditCols = db.prepare('PRAGMA table_info(audit_log)').all().map((c) => c.name);
|
|
10
|
+
if (!auditCols.includes('timestamp')) {
|
|
11
|
+
db.exec("ALTER TABLE audit_log ADD COLUMN timestamp TEXT NOT NULL DEFAULT ''");
|
|
12
|
+
// Backfill existing rows with current time
|
|
13
|
+
db.exec("UPDATE audit_log SET timestamp = datetime('now') WHERE timestamp = ''");
|
|
14
|
+
}
|
|
15
|
+
if (!auditCols.includes('agent_session_id')) {
|
|
16
|
+
db.exec('ALTER TABLE audit_log ADD COLUMN agent_session_id TEXT');
|
|
17
|
+
}
|
|
18
|
+
if (!auditCols.includes('task_id')) {
|
|
19
|
+
db.exec('ALTER TABLE audit_log ADD COLUMN task_id TEXT');
|
|
20
|
+
}
|
|
21
|
+
if (!auditCols.includes('human_id')) {
|
|
22
|
+
db.exec('ALTER TABLE audit_log ADD COLUMN human_id TEXT');
|
|
23
|
+
}
|
|
24
|
+
if (!auditCols.includes('details')) {
|
|
25
|
+
db.exec("ALTER TABLE audit_log ADD COLUMN details TEXT NOT NULL DEFAULT '{}'");
|
|
26
|
+
}
|
|
27
|
+
// Create indexes now that columns exist
|
|
28
|
+
db.exec('CREATE INDEX IF NOT EXISTS idx_audit_log_timestamp ON audit_log(timestamp)');
|
|
29
|
+
db.exec('CREATE INDEX IF NOT EXISTS idx_audit_log_event_type ON audit_log(event_type)');
|
|
30
|
+
db.exec('CREATE INDEX IF NOT EXISTS idx_audit_log_agent_session_id ON audit_log(agent_session_id)');
|
|
31
|
+
db.exec('CREATE INDEX IF NOT EXISTS idx_audit_log_task_id ON audit_log(task_id)');
|
|
32
|
+
db.exec('CREATE INDEX IF NOT EXISTS idx_audit_log_human_id ON audit_log(human_id)');
|
|
33
|
+
// agent_sessions: add fun_name if missing
|
|
34
|
+
const sessionCols = db.prepare('PRAGMA table_info(agent_sessions)').all().map((c) => c.name);
|
|
35
|
+
if (!sessionCols.includes('fun_name')) {
|
|
36
|
+
db.exec('ALTER TABLE agent_sessions ADD COLUMN fun_name TEXT');
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=005-audit-log-timestamp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"005-audit-log-timestamp.js","sourceRoot":"","sources":["../../../../src/db/migrations/005-audit-log-timestamp.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,EAAqB;IAC3C,MAAM,SAAS,GACb,EAAE,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,GAAG,EAC/C,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAErB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACrC,EAAE,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;QAC/E,2CAA2C;QAC3C,EAAE,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC;IACnF,CAAC;IACD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC5C,EAAE,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACnC,EAAE,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACpC,EAAE,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACnC,EAAE,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IACjF,CAAC;IAED,wCAAwC;IACxC,EAAE,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;IACtF,EAAE,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;IACxF,EAAE,CAAC,IAAI,CAAC,0FAA0F,CAAC,CAAC;IACpG,EAAE,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;IAClF,EAAE,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;IAEpF,0CAA0C;IAC1C,MAAM,WAAW,GACf,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,GAAG,EACpD,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAErB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACtC,EAAE,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;IACjE,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type Database from 'better-sqlite3';
|
|
2
|
+
/**
|
|
3
|
+
* Migration 006: Add action_type and pr_url to human_actions
|
|
4
|
+
*
|
|
5
|
+
* action_type: 'merge-review' for TUI Your Turn actions, null for regular actions
|
|
6
|
+
* pr_url: URL of the GitHub PR for merge-review actions
|
|
7
|
+
*/
|
|
8
|
+
export declare function migrate(db: Database.Database): void;
|
|
9
|
+
//# sourceMappingURL=006-human-action-type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"006-human-action-type.d.ts","sourceRoot":"","sources":["../../../../src/db/migrations/006-human-action-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAWnD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration 006: Add action_type and pr_url to human_actions
|
|
3
|
+
*
|
|
4
|
+
* action_type: 'merge-review' for TUI Your Turn actions, null for regular actions
|
|
5
|
+
* pr_url: URL of the GitHub PR for merge-review actions
|
|
6
|
+
*/
|
|
7
|
+
export function migrate(db) {
|
|
8
|
+
const cols = db.prepare('PRAGMA table_info(human_actions)').all().map((c) => c.name);
|
|
9
|
+
if (!cols.includes('action_type')) {
|
|
10
|
+
db.exec('ALTER TABLE human_actions ADD COLUMN action_type TEXT');
|
|
11
|
+
}
|
|
12
|
+
if (!cols.includes('pr_url')) {
|
|
13
|
+
db.exec('ALTER TABLE human_actions ADD COLUMN pr_url TEXT');
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=006-human-action-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"006-human-action-type.js","sourceRoot":"","sources":["../../../../src/db/migrations/006-human-action-type.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,EAAqB;IAC3C,MAAM,IAAI,GACR,EAAE,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC,GAAG,EACnD,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAErB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,EAAE,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,EAAE,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type PipelineRunStatus = 'pending' | 'running' | 'success' | 'failure' | 'cancelled';
|
|
2
|
+
export type StepRunStatus = 'pending' | 'running' | 'success' | 'failure' | 'skipped' | 'cancelled';
|
|
3
|
+
export type PipelineTrigger = 'manual' | 'schedule' | 'task_complete' | 'pr_merge' | 'webhook';
|
|
4
|
+
export type OnFailure = 'stop' | 'continue' | 'retry';
|
|
5
|
+
export declare const SCHEMA = "\n CREATE TABLE IF NOT EXISTS tasks (\n id TEXT PRIMARY KEY,\n title TEXT NOT NULL,\n description TEXT,\n status TEXT NOT NULL DEFAULT 'todo' CHECK(status IN ('todo','in_progress','done','blocked')),\n priority TEXT NOT NULL DEFAULT 'p2' CHECK(priority IN ('p0','p1','p2','p3')),\n assignee TEXT,\n agent_id TEXT,\n agent_session_id TEXT,\n file_paths TEXT DEFAULT '[]',\n dependencies TEXT DEFAULT '[]',\n progress INTEGER DEFAULT 0,\n progress_log TEXT DEFAULT '[]',\n attachments TEXT DEFAULT '[]',\n labels TEXT DEFAULT '[]',\n pr_url TEXT,\n ci_status TEXT DEFAULT NULL CHECK(ci_status IS NULL OR ci_status IN ('pending','success','failure','error')),\n created_by TEXT,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n parent_task_id TEXT,\n depth INTEGER DEFAULT 0,\n FOREIGN KEY (parent_task_id) REFERENCES tasks(id)\n );\n\n CREATE TABLE IF NOT EXISTS agent_sessions (\n id TEXT PRIMARY KEY,\n task_id TEXT NOT NULL,\n human_id TEXT NOT NULL,\n pid INTEGER,\n worktree_path TEXT,\n worktree_branch TEXT,\n status TEXT NOT NULL DEFAULT 'starting' CHECK(status IN ('starting','active','stalled','completed','errored')),\n started_at TEXT NOT NULL,\n last_heartbeat TEXT,\n completion_summary TEXT,\n fun_name TEXT,\n fun_tagline TEXT,\n persona_name TEXT,\n parent_session_id TEXT,\n provider TEXT DEFAULT 'claude',\n FOREIGN KEY (task_id) REFERENCES tasks(id),\n FOREIGN KEY (parent_session_id) REFERENCES agent_sessions(id)\n );\n\n CREATE TABLE IF NOT EXISTS sync_events (\n id TEXT PRIMARY KEY,\n type TEXT NOT NULL,\n payload TEXT NOT NULL,\n author_id TEXT NOT NULL,\n timestamp TEXT NOT NULL\n );\n\n CREATE TABLE IF NOT EXISTS approval_requests (\n id TEXT PRIMARY KEY,\n agent_session_id TEXT,\n agent_name TEXT NOT NULL,\n tool_name TEXT NOT NULL,\n tool_input TEXT NOT NULL DEFAULT '{}',\n status TEXT NOT NULL DEFAULT 'pending' CHECK(status IN ('pending','approved','denied')),\n created_at TEXT NOT NULL,\n resolved_at TEXT\n );\n\n CREATE INDEX IF NOT EXISTS idx_approval_requests_status ON approval_requests(status);\n\n CREATE INDEX IF NOT EXISTS idx_tasks_status ON tasks(status);\n CREATE INDEX IF NOT EXISTS idx_tasks_assignee ON tasks(assignee);\n CREATE INDEX IF NOT EXISTS idx_tasks_priority ON tasks(priority);\n CREATE INDEX IF NOT EXISTS idx_agent_sessions_status ON agent_sessions(status);\n CREATE INDEX IF NOT EXISTS idx_agent_sessions_task_id ON agent_sessions(task_id);\n CREATE TABLE IF NOT EXISTS human_actions (\n id TEXT PRIMARY KEY,\n task_id TEXT,\n agent_session_id TEXT,\n description TEXT NOT NULL,\n context TEXT,\n urgency TEXT NOT NULL DEFAULT 'important' CHECK(urgency IN ('blocking','important','nice-to-have')),\n status TEXT NOT NULL DEFAULT 'pending' CHECK(status IN ('pending','done')),\n created_at TEXT NOT NULL,\n resolved_at TEXT,\n action_type TEXT,\n pr_url TEXT,\n FOREIGN KEY (task_id) REFERENCES tasks(id)\n );\n\n CREATE INDEX IF NOT EXISTS idx_human_actions_status ON human_actions(status);\n CREATE INDEX IF NOT EXISTS idx_human_actions_urgency ON human_actions(urgency);\n\n CREATE INDEX IF NOT EXISTS idx_sync_events_timestamp ON sync_events(timestamp);\n\n CREATE TABLE IF NOT EXISTS learnings (\n id TEXT PRIMARY KEY,\n task_id TEXT,\n category TEXT NOT NULL CHECK(category IN ('decision','pattern','pitfall','convention')),\n content TEXT NOT NULL,\n source TEXT,\n embedding BLOB,\n created_at TEXT NOT NULL,\n FOREIGN KEY (task_id) REFERENCES tasks(id)\n );\n\n CREATE INDEX IF NOT EXISTS idx_learnings_category ON learnings(category);\n CREATE INDEX IF NOT EXISTS idx_learnings_task_id ON learnings(task_id);\n CREATE INDEX IF NOT EXISTS idx_learnings_created_at ON learnings(created_at);\n\n CREATE TABLE IF NOT EXISTS audit_log (\n id TEXT PRIMARY KEY,\n event_type TEXT NOT NULL\n );\n\n CREATE VIRTUAL TABLE IF NOT EXISTS learnings_fts USING fts5(\n content,\n source,\n category UNINDEXED,\n content='learnings',\n content_rowid='rowid'\n );\n\n CREATE TRIGGER IF NOT EXISTS learnings_ai AFTER INSERT ON learnings BEGIN\n INSERT INTO learnings_fts(rowid, content, source, category)\n VALUES (new.rowid, new.content, COALESCE(new.source, ''), new.category);\n END;\n\n CREATE TRIGGER IF NOT EXISTS learnings_ad AFTER DELETE ON learnings BEGIN\n INSERT INTO learnings_fts(learnings_fts, rowid, content, source, category)\n VALUES ('delete', old.rowid, old.content, COALESCE(old.source, ''), old.category);\n END;\n\n CREATE TRIGGER IF NOT EXISTS learnings_au AFTER UPDATE ON learnings BEGIN\n INSERT INTO learnings_fts(learnings_fts, rowid, content, source, category)\n VALUES ('delete', old.rowid, old.content, COALESCE(old.source, ''), old.category);\n INSERT INTO learnings_fts(rowid, content, source, category)\n VALUES (new.rowid, new.content, COALESCE(new.source, ''), new.category);\n END;\n\n CREATE TABLE IF NOT EXISTS team_members (\n human_id TEXT PRIMARY KEY,\n role TEXT NOT NULL DEFAULT 'viewer' CHECK(role IN ('owner','lead','developer','viewer')),\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL\n );\n\n CREATE INDEX IF NOT EXISTS idx_team_members_role ON team_members(role);\n\n CREATE TABLE IF NOT EXISTS role_change_log (\n id TEXT PRIMARY KEY,\n target_human_id TEXT NOT NULL,\n changed_by TEXT NOT NULL,\n old_role TEXT CHECK(old_role IS NULL OR old_role IN ('owner','lead','developer','viewer')),\n new_role TEXT NOT NULL CHECK(new_role IN ('owner','lead','developer','viewer')),\n reason TEXT,\n created_at TEXT NOT NULL\n );\n\n CREATE INDEX IF NOT EXISTS idx_role_change_log_target ON role_change_log(target_human_id);\n CREATE INDEX IF NOT EXISTS idx_role_change_log_created_at ON role_change_log(created_at);\n\n CREATE TABLE IF NOT EXISTS pipelines (\n id TEXT PRIMARY KEY,\n name TEXT NOT NULL,\n description TEXT,\n trigger TEXT NOT NULL CHECK(trigger IN ('manual','schedule','task_complete','pr_merge','webhook')),\n on_failure TEXT NOT NULL DEFAULT 'stop' CHECK(on_failure IN ('stop','continue','retry')),\n config TEXT NOT NULL DEFAULT '{}',\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL\n );\n\n CREATE TABLE IF NOT EXISTS pipeline_steps (\n id TEXT PRIMARY KEY,\n pipeline_id TEXT NOT NULL,\n name TEXT NOT NULL,\n step_order INTEGER NOT NULL,\n agent_type TEXT,\n config TEXT NOT NULL DEFAULT '{}',\n on_failure TEXT NOT NULL DEFAULT 'stop' CHECK(on_failure IN ('stop','continue','retry')),\n created_at TEXT NOT NULL,\n FOREIGN KEY (pipeline_id) REFERENCES pipelines(id)\n );\n\n CREATE INDEX IF NOT EXISTS idx_pipeline_steps_pipeline_id ON pipeline_steps(pipeline_id);\n\n CREATE TABLE IF NOT EXISTS pipeline_runs (\n id TEXT PRIMARY KEY,\n pipeline_id TEXT NOT NULL,\n task_id TEXT,\n session_id TEXT,\n status TEXT NOT NULL DEFAULT 'pending' CHECK(status IN ('pending','running','success','failure','cancelled')),\n trigger TEXT NOT NULL CHECK(trigger IN ('manual','schedule','task_complete','pr_merge','webhook')),\n triggered_by TEXT,\n started_at TEXT,\n completed_at TEXT,\n created_at TEXT NOT NULL,\n FOREIGN KEY (pipeline_id) REFERENCES pipelines(id),\n FOREIGN KEY (task_id) REFERENCES tasks(id)\n );\n\n CREATE INDEX IF NOT EXISTS idx_pipeline_runs_pipeline_id ON pipeline_runs(pipeline_id);\n CREATE INDEX IF NOT EXISTS idx_pipeline_runs_status ON pipeline_runs(status);\n CREATE INDEX IF NOT EXISTS idx_pipeline_runs_task_id ON pipeline_runs(task_id);\n CREATE INDEX IF NOT EXISTS idx_pipeline_runs_session_id ON pipeline_runs(session_id);\n\n CREATE TABLE IF NOT EXISTS pipeline_step_runs (\n id TEXT PRIMARY KEY,\n pipeline_run_id TEXT NOT NULL,\n pipeline_step_id TEXT NOT NULL,\n status TEXT NOT NULL DEFAULT 'pending' CHECK(status IN ('pending','running','success','failure','skipped','cancelled')),\n started_at TEXT,\n completed_at TEXT,\n output TEXT,\n error TEXT,\n created_at TEXT NOT NULL,\n FOREIGN KEY (pipeline_run_id) REFERENCES pipeline_runs(id),\n FOREIGN KEY (pipeline_step_id) REFERENCES pipeline_steps(id)\n );\n\n CREATE INDEX IF NOT EXISTS idx_pipeline_step_runs_run_id ON pipeline_step_runs(pipeline_run_id);\n CREATE INDEX IF NOT EXISTS idx_pipeline_step_runs_step_id ON pipeline_step_runs(pipeline_step_id);\n CREATE INDEX IF NOT EXISTS idx_pipeline_step_runs_status ON pipeline_step_runs(status);\n\n CREATE TABLE IF NOT EXISTS cost_events (\n id TEXT PRIMARY KEY,\n session_id TEXT,\n task_id TEXT,\n pipeline_run_id TEXT,\n model TEXT NOT NULL,\n input_tokens INTEGER NOT NULL DEFAULT 0,\n output_tokens INTEGER NOT NULL DEFAULT 0,\n cache_read_tokens INTEGER NOT NULL DEFAULT 0,\n cache_write_tokens INTEGER NOT NULL DEFAULT 0,\n cost_usd REAL NOT NULL DEFAULT 0,\n timestamp TEXT NOT NULL,\n FOREIGN KEY (task_id) REFERENCES tasks(id),\n FOREIGN KEY (pipeline_run_id) REFERENCES pipeline_runs(id)\n );\n\n CREATE INDEX IF NOT EXISTS idx_cost_events_session_id ON cost_events(session_id);\n CREATE INDEX IF NOT EXISTS idx_cost_events_task_id ON cost_events(task_id);\n CREATE INDEX IF NOT EXISTS idx_cost_events_pipeline_run_id ON cost_events(pipeline_run_id);\n CREATE INDEX IF NOT EXISTS idx_cost_events_model ON cost_events(model);\n CREATE INDEX IF NOT EXISTS idx_cost_events_timestamp ON cost_events(timestamp);\n\n CREATE TABLE IF NOT EXISTS model_pricing (\n model TEXT PRIMARY KEY,\n input_cost_per_1m_tokens REAL NOT NULL,\n output_cost_per_1m_tokens REAL NOT NULL,\n cache_read_cost_per_1m_tokens REAL,\n cache_write_cost_per_1m_tokens REAL,\n updated_at TEXT NOT NULL\n );\n";
|
|
6
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/db/schema.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;AAC5F,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;AACpG,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,UAAU,GAAG,eAAe,GAAG,UAAU,GAAG,SAAS,CAAC;AAC/F,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;AAEtD,eAAO,MAAM,MAAM,wrTA4PlB,CAAC"}
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
// ---- Pipeline / cost domain types ----
|
|
2
|
+
export const SCHEMA = `
|
|
3
|
+
CREATE TABLE IF NOT EXISTS tasks (
|
|
4
|
+
id TEXT PRIMARY KEY,
|
|
5
|
+
title TEXT NOT NULL,
|
|
6
|
+
description TEXT,
|
|
7
|
+
status TEXT NOT NULL DEFAULT 'todo' CHECK(status IN ('todo','in_progress','done','blocked')),
|
|
8
|
+
priority TEXT NOT NULL DEFAULT 'p2' CHECK(priority IN ('p0','p1','p2','p3')),
|
|
9
|
+
assignee TEXT,
|
|
10
|
+
agent_id TEXT,
|
|
11
|
+
agent_session_id TEXT,
|
|
12
|
+
file_paths TEXT DEFAULT '[]',
|
|
13
|
+
dependencies TEXT DEFAULT '[]',
|
|
14
|
+
progress INTEGER DEFAULT 0,
|
|
15
|
+
progress_log TEXT DEFAULT '[]',
|
|
16
|
+
attachments TEXT DEFAULT '[]',
|
|
17
|
+
labels TEXT DEFAULT '[]',
|
|
18
|
+
pr_url TEXT,
|
|
19
|
+
ci_status TEXT DEFAULT NULL CHECK(ci_status IS NULL OR ci_status IN ('pending','success','failure','error')),
|
|
20
|
+
created_by TEXT,
|
|
21
|
+
created_at TEXT NOT NULL,
|
|
22
|
+
updated_at TEXT NOT NULL,
|
|
23
|
+
parent_task_id TEXT,
|
|
24
|
+
depth INTEGER DEFAULT 0,
|
|
25
|
+
FOREIGN KEY (parent_task_id) REFERENCES tasks(id)
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
CREATE TABLE IF NOT EXISTS agent_sessions (
|
|
29
|
+
id TEXT PRIMARY KEY,
|
|
30
|
+
task_id TEXT NOT NULL,
|
|
31
|
+
human_id TEXT NOT NULL,
|
|
32
|
+
pid INTEGER,
|
|
33
|
+
worktree_path TEXT,
|
|
34
|
+
worktree_branch TEXT,
|
|
35
|
+
status TEXT NOT NULL DEFAULT 'starting' CHECK(status IN ('starting','active','stalled','completed','errored')),
|
|
36
|
+
started_at TEXT NOT NULL,
|
|
37
|
+
last_heartbeat TEXT,
|
|
38
|
+
completion_summary TEXT,
|
|
39
|
+
fun_name TEXT,
|
|
40
|
+
fun_tagline TEXT,
|
|
41
|
+
persona_name TEXT,
|
|
42
|
+
parent_session_id TEXT,
|
|
43
|
+
provider TEXT DEFAULT 'claude',
|
|
44
|
+
FOREIGN KEY (task_id) REFERENCES tasks(id),
|
|
45
|
+
FOREIGN KEY (parent_session_id) REFERENCES agent_sessions(id)
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
CREATE TABLE IF NOT EXISTS sync_events (
|
|
49
|
+
id TEXT PRIMARY KEY,
|
|
50
|
+
type TEXT NOT NULL,
|
|
51
|
+
payload TEXT NOT NULL,
|
|
52
|
+
author_id TEXT NOT NULL,
|
|
53
|
+
timestamp TEXT NOT NULL
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
CREATE TABLE IF NOT EXISTS approval_requests (
|
|
57
|
+
id TEXT PRIMARY KEY,
|
|
58
|
+
agent_session_id TEXT,
|
|
59
|
+
agent_name TEXT NOT NULL,
|
|
60
|
+
tool_name TEXT NOT NULL,
|
|
61
|
+
tool_input TEXT NOT NULL DEFAULT '{}',
|
|
62
|
+
status TEXT NOT NULL DEFAULT 'pending' CHECK(status IN ('pending','approved','denied')),
|
|
63
|
+
created_at TEXT NOT NULL,
|
|
64
|
+
resolved_at TEXT
|
|
65
|
+
);
|
|
66
|
+
|
|
67
|
+
CREATE INDEX IF NOT EXISTS idx_approval_requests_status ON approval_requests(status);
|
|
68
|
+
|
|
69
|
+
CREATE INDEX IF NOT EXISTS idx_tasks_status ON tasks(status);
|
|
70
|
+
CREATE INDEX IF NOT EXISTS idx_tasks_assignee ON tasks(assignee);
|
|
71
|
+
CREATE INDEX IF NOT EXISTS idx_tasks_priority ON tasks(priority);
|
|
72
|
+
CREATE INDEX IF NOT EXISTS idx_agent_sessions_status ON agent_sessions(status);
|
|
73
|
+
CREATE INDEX IF NOT EXISTS idx_agent_sessions_task_id ON agent_sessions(task_id);
|
|
74
|
+
CREATE TABLE IF NOT EXISTS human_actions (
|
|
75
|
+
id TEXT PRIMARY KEY,
|
|
76
|
+
task_id TEXT,
|
|
77
|
+
agent_session_id TEXT,
|
|
78
|
+
description TEXT NOT NULL,
|
|
79
|
+
context TEXT,
|
|
80
|
+
urgency TEXT NOT NULL DEFAULT 'important' CHECK(urgency IN ('blocking','important','nice-to-have')),
|
|
81
|
+
status TEXT NOT NULL DEFAULT 'pending' CHECK(status IN ('pending','done')),
|
|
82
|
+
created_at TEXT NOT NULL,
|
|
83
|
+
resolved_at TEXT,
|
|
84
|
+
action_type TEXT,
|
|
85
|
+
pr_url TEXT,
|
|
86
|
+
FOREIGN KEY (task_id) REFERENCES tasks(id)
|
|
87
|
+
);
|
|
88
|
+
|
|
89
|
+
CREATE INDEX IF NOT EXISTS idx_human_actions_status ON human_actions(status);
|
|
90
|
+
CREATE INDEX IF NOT EXISTS idx_human_actions_urgency ON human_actions(urgency);
|
|
91
|
+
|
|
92
|
+
CREATE INDEX IF NOT EXISTS idx_sync_events_timestamp ON sync_events(timestamp);
|
|
93
|
+
|
|
94
|
+
CREATE TABLE IF NOT EXISTS learnings (
|
|
95
|
+
id TEXT PRIMARY KEY,
|
|
96
|
+
task_id TEXT,
|
|
97
|
+
category TEXT NOT NULL CHECK(category IN ('decision','pattern','pitfall','convention')),
|
|
98
|
+
content TEXT NOT NULL,
|
|
99
|
+
source TEXT,
|
|
100
|
+
embedding BLOB,
|
|
101
|
+
created_at TEXT NOT NULL,
|
|
102
|
+
FOREIGN KEY (task_id) REFERENCES tasks(id)
|
|
103
|
+
);
|
|
104
|
+
|
|
105
|
+
CREATE INDEX IF NOT EXISTS idx_learnings_category ON learnings(category);
|
|
106
|
+
CREATE INDEX IF NOT EXISTS idx_learnings_task_id ON learnings(task_id);
|
|
107
|
+
CREATE INDEX IF NOT EXISTS idx_learnings_created_at ON learnings(created_at);
|
|
108
|
+
|
|
109
|
+
CREATE TABLE IF NOT EXISTS audit_log (
|
|
110
|
+
id TEXT PRIMARY KEY,
|
|
111
|
+
event_type TEXT NOT NULL
|
|
112
|
+
);
|
|
113
|
+
|
|
114
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS learnings_fts USING fts5(
|
|
115
|
+
content,
|
|
116
|
+
source,
|
|
117
|
+
category UNINDEXED,
|
|
118
|
+
content='learnings',
|
|
119
|
+
content_rowid='rowid'
|
|
120
|
+
);
|
|
121
|
+
|
|
122
|
+
CREATE TRIGGER IF NOT EXISTS learnings_ai AFTER INSERT ON learnings BEGIN
|
|
123
|
+
INSERT INTO learnings_fts(rowid, content, source, category)
|
|
124
|
+
VALUES (new.rowid, new.content, COALESCE(new.source, ''), new.category);
|
|
125
|
+
END;
|
|
126
|
+
|
|
127
|
+
CREATE TRIGGER IF NOT EXISTS learnings_ad AFTER DELETE ON learnings BEGIN
|
|
128
|
+
INSERT INTO learnings_fts(learnings_fts, rowid, content, source, category)
|
|
129
|
+
VALUES ('delete', old.rowid, old.content, COALESCE(old.source, ''), old.category);
|
|
130
|
+
END;
|
|
131
|
+
|
|
132
|
+
CREATE TRIGGER IF NOT EXISTS learnings_au AFTER UPDATE ON learnings BEGIN
|
|
133
|
+
INSERT INTO learnings_fts(learnings_fts, rowid, content, source, category)
|
|
134
|
+
VALUES ('delete', old.rowid, old.content, COALESCE(old.source, ''), old.category);
|
|
135
|
+
INSERT INTO learnings_fts(rowid, content, source, category)
|
|
136
|
+
VALUES (new.rowid, new.content, COALESCE(new.source, ''), new.category);
|
|
137
|
+
END;
|
|
138
|
+
|
|
139
|
+
CREATE TABLE IF NOT EXISTS team_members (
|
|
140
|
+
human_id TEXT PRIMARY KEY,
|
|
141
|
+
role TEXT NOT NULL DEFAULT 'viewer' CHECK(role IN ('owner','lead','developer','viewer')),
|
|
142
|
+
created_at TEXT NOT NULL,
|
|
143
|
+
updated_at TEXT NOT NULL
|
|
144
|
+
);
|
|
145
|
+
|
|
146
|
+
CREATE INDEX IF NOT EXISTS idx_team_members_role ON team_members(role);
|
|
147
|
+
|
|
148
|
+
CREATE TABLE IF NOT EXISTS role_change_log (
|
|
149
|
+
id TEXT PRIMARY KEY,
|
|
150
|
+
target_human_id TEXT NOT NULL,
|
|
151
|
+
changed_by TEXT NOT NULL,
|
|
152
|
+
old_role TEXT CHECK(old_role IS NULL OR old_role IN ('owner','lead','developer','viewer')),
|
|
153
|
+
new_role TEXT NOT NULL CHECK(new_role IN ('owner','lead','developer','viewer')),
|
|
154
|
+
reason TEXT,
|
|
155
|
+
created_at TEXT NOT NULL
|
|
156
|
+
);
|
|
157
|
+
|
|
158
|
+
CREATE INDEX IF NOT EXISTS idx_role_change_log_target ON role_change_log(target_human_id);
|
|
159
|
+
CREATE INDEX IF NOT EXISTS idx_role_change_log_created_at ON role_change_log(created_at);
|
|
160
|
+
|
|
161
|
+
CREATE TABLE IF NOT EXISTS pipelines (
|
|
162
|
+
id TEXT PRIMARY KEY,
|
|
163
|
+
name TEXT NOT NULL,
|
|
164
|
+
description TEXT,
|
|
165
|
+
trigger TEXT NOT NULL CHECK(trigger IN ('manual','schedule','task_complete','pr_merge','webhook')),
|
|
166
|
+
on_failure TEXT NOT NULL DEFAULT 'stop' CHECK(on_failure IN ('stop','continue','retry')),
|
|
167
|
+
config TEXT NOT NULL DEFAULT '{}',
|
|
168
|
+
created_at TEXT NOT NULL,
|
|
169
|
+
updated_at TEXT NOT NULL
|
|
170
|
+
);
|
|
171
|
+
|
|
172
|
+
CREATE TABLE IF NOT EXISTS pipeline_steps (
|
|
173
|
+
id TEXT PRIMARY KEY,
|
|
174
|
+
pipeline_id TEXT NOT NULL,
|
|
175
|
+
name TEXT NOT NULL,
|
|
176
|
+
step_order INTEGER NOT NULL,
|
|
177
|
+
agent_type TEXT,
|
|
178
|
+
config TEXT NOT NULL DEFAULT '{}',
|
|
179
|
+
on_failure TEXT NOT NULL DEFAULT 'stop' CHECK(on_failure IN ('stop','continue','retry')),
|
|
180
|
+
created_at TEXT NOT NULL,
|
|
181
|
+
FOREIGN KEY (pipeline_id) REFERENCES pipelines(id)
|
|
182
|
+
);
|
|
183
|
+
|
|
184
|
+
CREATE INDEX IF NOT EXISTS idx_pipeline_steps_pipeline_id ON pipeline_steps(pipeline_id);
|
|
185
|
+
|
|
186
|
+
CREATE TABLE IF NOT EXISTS pipeline_runs (
|
|
187
|
+
id TEXT PRIMARY KEY,
|
|
188
|
+
pipeline_id TEXT NOT NULL,
|
|
189
|
+
task_id TEXT,
|
|
190
|
+
session_id TEXT,
|
|
191
|
+
status TEXT NOT NULL DEFAULT 'pending' CHECK(status IN ('pending','running','success','failure','cancelled')),
|
|
192
|
+
trigger TEXT NOT NULL CHECK(trigger IN ('manual','schedule','task_complete','pr_merge','webhook')),
|
|
193
|
+
triggered_by TEXT,
|
|
194
|
+
started_at TEXT,
|
|
195
|
+
completed_at TEXT,
|
|
196
|
+
created_at TEXT NOT NULL,
|
|
197
|
+
FOREIGN KEY (pipeline_id) REFERENCES pipelines(id),
|
|
198
|
+
FOREIGN KEY (task_id) REFERENCES tasks(id)
|
|
199
|
+
);
|
|
200
|
+
|
|
201
|
+
CREATE INDEX IF NOT EXISTS idx_pipeline_runs_pipeline_id ON pipeline_runs(pipeline_id);
|
|
202
|
+
CREATE INDEX IF NOT EXISTS idx_pipeline_runs_status ON pipeline_runs(status);
|
|
203
|
+
CREATE INDEX IF NOT EXISTS idx_pipeline_runs_task_id ON pipeline_runs(task_id);
|
|
204
|
+
CREATE INDEX IF NOT EXISTS idx_pipeline_runs_session_id ON pipeline_runs(session_id);
|
|
205
|
+
|
|
206
|
+
CREATE TABLE IF NOT EXISTS pipeline_step_runs (
|
|
207
|
+
id TEXT PRIMARY KEY,
|
|
208
|
+
pipeline_run_id TEXT NOT NULL,
|
|
209
|
+
pipeline_step_id TEXT NOT NULL,
|
|
210
|
+
status TEXT NOT NULL DEFAULT 'pending' CHECK(status IN ('pending','running','success','failure','skipped','cancelled')),
|
|
211
|
+
started_at TEXT,
|
|
212
|
+
completed_at TEXT,
|
|
213
|
+
output TEXT,
|
|
214
|
+
error TEXT,
|
|
215
|
+
created_at TEXT NOT NULL,
|
|
216
|
+
FOREIGN KEY (pipeline_run_id) REFERENCES pipeline_runs(id),
|
|
217
|
+
FOREIGN KEY (pipeline_step_id) REFERENCES pipeline_steps(id)
|
|
218
|
+
);
|
|
219
|
+
|
|
220
|
+
CREATE INDEX IF NOT EXISTS idx_pipeline_step_runs_run_id ON pipeline_step_runs(pipeline_run_id);
|
|
221
|
+
CREATE INDEX IF NOT EXISTS idx_pipeline_step_runs_step_id ON pipeline_step_runs(pipeline_step_id);
|
|
222
|
+
CREATE INDEX IF NOT EXISTS idx_pipeline_step_runs_status ON pipeline_step_runs(status);
|
|
223
|
+
|
|
224
|
+
CREATE TABLE IF NOT EXISTS cost_events (
|
|
225
|
+
id TEXT PRIMARY KEY,
|
|
226
|
+
session_id TEXT,
|
|
227
|
+
task_id TEXT,
|
|
228
|
+
pipeline_run_id TEXT,
|
|
229
|
+
model TEXT NOT NULL,
|
|
230
|
+
input_tokens INTEGER NOT NULL DEFAULT 0,
|
|
231
|
+
output_tokens INTEGER NOT NULL DEFAULT 0,
|
|
232
|
+
cache_read_tokens INTEGER NOT NULL DEFAULT 0,
|
|
233
|
+
cache_write_tokens INTEGER NOT NULL DEFAULT 0,
|
|
234
|
+
cost_usd REAL NOT NULL DEFAULT 0,
|
|
235
|
+
timestamp TEXT NOT NULL,
|
|
236
|
+
FOREIGN KEY (task_id) REFERENCES tasks(id),
|
|
237
|
+
FOREIGN KEY (pipeline_run_id) REFERENCES pipeline_runs(id)
|
|
238
|
+
);
|
|
239
|
+
|
|
240
|
+
CREATE INDEX IF NOT EXISTS idx_cost_events_session_id ON cost_events(session_id);
|
|
241
|
+
CREATE INDEX IF NOT EXISTS idx_cost_events_task_id ON cost_events(task_id);
|
|
242
|
+
CREATE INDEX IF NOT EXISTS idx_cost_events_pipeline_run_id ON cost_events(pipeline_run_id);
|
|
243
|
+
CREATE INDEX IF NOT EXISTS idx_cost_events_model ON cost_events(model);
|
|
244
|
+
CREATE INDEX IF NOT EXISTS idx_cost_events_timestamp ON cost_events(timestamp);
|
|
245
|
+
|
|
246
|
+
CREATE TABLE IF NOT EXISTS model_pricing (
|
|
247
|
+
model TEXT PRIMARY KEY,
|
|
248
|
+
input_cost_per_1m_tokens REAL NOT NULL,
|
|
249
|
+
output_cost_per_1m_tokens REAL NOT NULL,
|
|
250
|
+
cache_read_cost_per_1m_tokens REAL,
|
|
251
|
+
cache_write_cost_per_1m_tokens REAL,
|
|
252
|
+
updated_at TEXT NOT NULL
|
|
253
|
+
);
|
|
254
|
+
`;
|
|
255
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/db/schema.ts"],"names":[],"mappings":"AAAA,yCAAyC;AAOzC,MAAM,CAAC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4PrB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export type DependabotEcosystem = 'npm' | 'pip' | 'cargo' | 'gomod' | 'docker' | 'github-actions';
|
|
2
|
+
export interface PackageManagerInfo {
|
|
3
|
+
ecosystem: DependabotEcosystem;
|
|
4
|
+
directory: string;
|
|
5
|
+
}
|
|
6
|
+
export interface DependabotOptions {
|
|
7
|
+
interval?: 'daily' | 'weekly' | 'monthly';
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Detect which package managers / ecosystems are present in a directory.
|
|
11
|
+
*/
|
|
12
|
+
export declare function detectPackageManagers(dir: string): PackageManagerInfo[];
|
|
13
|
+
/**
|
|
14
|
+
* Generate the contents of a .github/dependabot.yml file from detected package managers.
|
|
15
|
+
*/
|
|
16
|
+
export declare function generateDependabotYml(managers: PackageManagerInfo[], options?: DependabotOptions): string;
|
|
17
|
+
/**
|
|
18
|
+
* Write .github/dependabot.yml into the target project directory.
|
|
19
|
+
* Returns the path to the written file.
|
|
20
|
+
*/
|
|
21
|
+
export declare function writeDependabotYml(projectDir: string, content: string): string;
|
|
22
|
+
//# sourceMappingURL=dependabot-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependabot-generator.d.ts","sourceRoot":"","sources":["../../../src/deps/dependabot-generator.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,gBAAgB,CAAC;AAElG,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,mBAAmB,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;CAC3C;AA+CD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAUvE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,kBAAkB,EAAE,EAC9B,OAAO,GAAE,iBAAsB,GAC9B,MAAM,CAgBR;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAS9E"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
const DETECTORS = [
|
|
4
|
+
{
|
|
5
|
+
ecosystem: 'npm',
|
|
6
|
+
check: (dir) => fs.existsSync(path.join(dir, 'package.json')),
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
ecosystem: 'pip',
|
|
10
|
+
check: (dir) => fs.existsSync(path.join(dir, 'requirements.txt')) ||
|
|
11
|
+
fs.existsSync(path.join(dir, 'pyproject.toml')) ||
|
|
12
|
+
fs.existsSync(path.join(dir, 'Pipfile')),
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
ecosystem: 'cargo',
|
|
16
|
+
check: (dir) => fs.existsSync(path.join(dir, 'Cargo.toml')),
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
ecosystem: 'gomod',
|
|
20
|
+
check: (dir) => fs.existsSync(path.join(dir, 'go.mod')),
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
ecosystem: 'docker',
|
|
24
|
+
check: (dir) => fs.existsSync(path.join(dir, 'Dockerfile')) ||
|
|
25
|
+
fs.existsSync(path.join(dir, 'docker-compose.yml')) ||
|
|
26
|
+
fs.existsSync(path.join(dir, 'docker-compose.yaml')),
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
ecosystem: 'github-actions',
|
|
30
|
+
check: (dir) => {
|
|
31
|
+
const workflowDir = path.join(dir, '.github', 'workflows');
|
|
32
|
+
if (!fs.existsSync(workflowDir))
|
|
33
|
+
return false;
|
|
34
|
+
try {
|
|
35
|
+
const files = fs.readdirSync(workflowDir);
|
|
36
|
+
return files.some((f) => f.endsWith('.yml') || f.endsWith('.yaml'));
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
];
|
|
44
|
+
/**
|
|
45
|
+
* Detect which package managers / ecosystems are present in a directory.
|
|
46
|
+
*/
|
|
47
|
+
export function detectPackageManagers(dir) {
|
|
48
|
+
const found = [];
|
|
49
|
+
for (const detector of DETECTORS) {
|
|
50
|
+
if (detector.check(dir)) {
|
|
51
|
+
found.push({ ecosystem: detector.ecosystem, directory: '/' });
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return found;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Generate the contents of a .github/dependabot.yml file from detected package managers.
|
|
58
|
+
*/
|
|
59
|
+
export function generateDependabotYml(managers, options = {}) {
|
|
60
|
+
const interval = options.interval ?? 'weekly';
|
|
61
|
+
if (managers.length === 0) {
|
|
62
|
+
return `version: 2\nupdates: []\n`;
|
|
63
|
+
}
|
|
64
|
+
const entries = managers.map((m) => ` - package-ecosystem: "${m.ecosystem}"\n` +
|
|
65
|
+
` directory: "${m.directory}"\n` +
|
|
66
|
+
` schedule:\n` +
|
|
67
|
+
` interval: "${interval}"`);
|
|
68
|
+
return `version: 2\nupdates:\n${entries.join('\n')}\n`;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Write .github/dependabot.yml into the target project directory.
|
|
72
|
+
* Returns the path to the written file.
|
|
73
|
+
*/
|
|
74
|
+
export function writeDependabotYml(projectDir, content) {
|
|
75
|
+
const githubDir = path.join(projectDir, '.github');
|
|
76
|
+
if (!fs.existsSync(githubDir)) {
|
|
77
|
+
fs.mkdirSync(githubDir, { recursive: true });
|
|
78
|
+
}
|
|
79
|
+
const filePath = path.join(githubDir, 'dependabot.yml');
|
|
80
|
+
fs.writeFileSync(filePath, content, 'utf-8');
|
|
81
|
+
return filePath;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=dependabot-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependabot-generator.js","sourceRoot":"","sources":["../../../src/deps/dependabot-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAaxB,MAAM,SAAS,GAGV;IACH;QACE,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;KAC9D;IACD;QACE,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CACb,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;YACjD,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;YAC/C,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;KAC3C;IACD;QACE,SAAS,EAAE,OAAO;QAClB,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;KAC5D;IACD;QACE,SAAS,EAAE,OAAO;QAClB,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;KACxD;IACD;QACE,SAAS,EAAE,QAAQ;QACnB,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CACb,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YAC3C,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;YACnD,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;KACvD;IACD;QACE,SAAS,EAAE,gBAAgB;QAC3B,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE;YACb,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;YAC3D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC9C,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;gBAC1C,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YACtE,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;KACF;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,MAAM,KAAK,GAAyB,EAAE,CAAC;IAEvC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAA8B,EAC9B,UAA6B,EAAE;IAE/B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC;IAE9C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,2BAA2B,CAAC;IACrC,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAC1B,CAAC,CAAC,EAAE,EAAE,CACJ,2BAA2B,CAAC,CAAC,SAAS,KAAK;QAC3C,mBAAmB,CAAC,CAAC,SAAS,KAAK;QACnC,iBAAiB;QACjB,oBAAoB,QAAQ,GAAG,CAClC,CAAC;IAEF,OAAO,yBAAyB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAAkB,EAAE,OAAe;IACpE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IACxD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Octokit } from '@octokit/rest';
|
|
2
|
+
export interface DependabotPR {
|
|
3
|
+
number: number;
|
|
4
|
+
title: string;
|
|
5
|
+
state: string;
|
|
6
|
+
url: string;
|
|
7
|
+
createdAt: string;
|
|
8
|
+
updatedAt: string;
|
|
9
|
+
labels: string[];
|
|
10
|
+
}
|
|
11
|
+
export interface ListPRsOptions {
|
|
12
|
+
state?: 'open' | 'closed' | 'all';
|
|
13
|
+
}
|
|
14
|
+
export interface DependabotMonitor {
|
|
15
|
+
listDependabotPRs(owner: string, repo: string, options?: ListPRsOptions): Promise<DependabotPR[]>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Create a monitor that queries GitHub for Dependabot pull requests.
|
|
19
|
+
* Accepts an Octokit instance (caller provides authentication).
|
|
20
|
+
*/
|
|
21
|
+
export declare function createDependabotMonitor(octokit: Octokit): DependabotMonitor;
|
|
22
|
+
//# sourceMappingURL=dependabot-monitor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependabot-monitor.d.ts","sourceRoot":"","sources":["../../../src/deps/dependabot-monitor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;CACnG;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,iBAAiB,CA6B3E"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create a monitor that queries GitHub for Dependabot pull requests.
|
|
3
|
+
* Accepts an Octokit instance (caller provides authentication).
|
|
4
|
+
*/
|
|
5
|
+
export function createDependabotMonitor(octokit) {
|
|
6
|
+
async function listDependabotPRs(owner, repo, options = {}) {
|
|
7
|
+
const state = options.state ?? 'open';
|
|
8
|
+
const { data: pulls } = await octokit.rest.pulls.list({
|
|
9
|
+
owner,
|
|
10
|
+
repo,
|
|
11
|
+
state,
|
|
12
|
+
per_page: 100,
|
|
13
|
+
});
|
|
14
|
+
return pulls
|
|
15
|
+
.filter((pr) => pr.user?.login === 'dependabot[bot]')
|
|
16
|
+
.map((pr) => ({
|
|
17
|
+
number: pr.number,
|
|
18
|
+
title: pr.title,
|
|
19
|
+
state: pr.state,
|
|
20
|
+
url: pr.html_url,
|
|
21
|
+
createdAt: pr.created_at,
|
|
22
|
+
updatedAt: pr.updated_at,
|
|
23
|
+
labels: (pr.labels ?? []).map((l) => l.name),
|
|
24
|
+
}));
|
|
25
|
+
}
|
|
26
|
+
return { listDependabotPRs };
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=dependabot-monitor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependabot-monitor.js","sourceRoot":"","sources":["../../../src/deps/dependabot-monitor.ts"],"names":[],"mappings":"AAoBA;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,KAAK,UAAU,iBAAiB,CAC9B,KAAa,EACb,IAAY,EACZ,UAA0B,EAAE;QAE5B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC;QAEtC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACpD,KAAK;YACL,IAAI;YACJ,KAAK;YACL,QAAQ,EAAE,GAAG;SACd,CAAC,CAAC;QAEH,OAAO,KAAK;aACT,MAAM,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,iBAAiB,CAAC;aACzD,GAAG,CAAC,CAAC,EAAO,EAAgB,EAAE,CAAC,CAAC;YAC/B,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,KAAK,EAAE,EAAE,CAAC,KAAK;YACf,KAAK,EAAE,EAAE,CAAC,KAAK;YACf,GAAG,EAAE,EAAE,CAAC,QAAQ;YAChB,SAAS,EAAE,EAAE,CAAC,UAAU;YACxB,SAAS,EAAE,EAAE,CAAC,UAAU;YACxB,MAAM,EAAE,CAAC,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClD,CAAC,CAAC,CAAC;IACR,CAAC;IAED,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface Vulnerability {
|
|
2
|
+
name: string;
|
|
3
|
+
severity?: string;
|
|
4
|
+
id?: string;
|
|
5
|
+
title?: string;
|
|
6
|
+
url?: string;
|
|
7
|
+
fixAvailable?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface AuditResult {
|
|
10
|
+
ecosystem: string;
|
|
11
|
+
vulnerabilities: Vulnerability[];
|
|
12
|
+
error?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface PackageAuditor {
|
|
15
|
+
auditNpm(): AuditResult;
|
|
16
|
+
auditCargo(): AuditResult;
|
|
17
|
+
auditPip(): AuditResult;
|
|
18
|
+
auditAll(ecosystems: string[]): AuditResult[];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Create a package auditor that runs security audit commands for various ecosystems.
|
|
22
|
+
*/
|
|
23
|
+
export declare function createPackageAuditor(projectDir: string): PackageAuditor;
|
|
24
|
+
//# sourceMappingURL=package-auditor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-auditor.d.ts","sourceRoot":"","sources":["../../../src/deps/package-auditor.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,aAAa,EAAE,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,IAAI,WAAW,CAAC;IACxB,UAAU,IAAI,WAAW,CAAC;IAC1B,QAAQ,IAAI,WAAW,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;CAC/C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CAsHvE"}
|