crewly 1.3.31 → 1.4.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/config/constants.ts +18 -3
- package/config/hooks/install-hooks.sh +88 -0
- package/config/hooks/pre-commit +104 -0
- package/config/orchestrator_tasks/prompts/orchestrator-prompt.md +17 -24
- package/config/roles/auditor/role.json +13 -0
- package/config/roles/orchestrator/prompt.md +25 -0
- package/config/roles/product-manager/prompt.md +18 -1
- package/config/roles/researcher/prompt.md +110 -0
- package/config/roles/team-leader/prompt.md +31 -8
- package/config/roles/team-leader/tl-addon.md +40 -9
- package/config/roles/ux-designer/prompt.md +111 -0
- package/config/skills/_common/lib.sh +33 -0
- package/config/skills/agent/browse-stealth/{instructions.md → SKILL.md} +40 -0
- package/config/skills/agent/chrome-attach/SKILL.md +84 -0
- package/config/skills/agent/chrome-attach/execute.sh +279 -0
- package/config/skills/agent/competitor-content-tracker/{instructions.md → SKILL.md} +34 -0
- package/config/skills/agent/computer-use/{instructions.md → SKILL.md} +43 -0
- package/config/skills/agent/content-calendar/{instructions.md → SKILL.md} +32 -0
- package/config/skills/agent/content-repurposer/{instructions.md → SKILL.md} +38 -0
- package/config/skills/agent/content-writer/{instructions.md → SKILL.md} +38 -0
- package/config/skills/agent/core/accept-task/{instructions.md → SKILL.md} +37 -0
- package/config/skills/agent/core/block-task/{instructions.md → SKILL.md} +37 -0
- package/config/skills/agent/core/check-quality-gates/{instructions.md → SKILL.md} +40 -0
- package/config/skills/agent/core/complete-task/{instructions.md → SKILL.md} +37 -0
- package/config/skills/agent/core/complete-task/execute.sh +15 -0
- package/config/skills/agent/core/generate-pdf/{instructions.md → SKILL.md} +42 -0
- package/config/skills/agent/core/get-my-context/{instructions.md → SKILL.md} +38 -0
- package/config/skills/agent/core/get-sops/{instructions.md → SKILL.md} +38 -0
- package/config/skills/agent/core/get-team-norms/execute.sh +106 -0
- package/config/skills/agent/core/get-team-status/SKILL.md +55 -0
- package/config/skills/agent/core/handoff-task/execute.sh +150 -0
- package/config/skills/agent/core/heartbeat/{instructions.md → SKILL.md} +27 -0
- package/config/skills/agent/core/marketplace-search/{instructions.md → SKILL.md} +41 -0
- package/config/skills/agent/core/query-knowledge/{instructions.md → SKILL.md} +40 -0
- package/config/skills/agent/core/read-task/SKILL.md +56 -0
- package/config/skills/agent/core/recall/{instructions.md → SKILL.md} +38 -0
- package/config/skills/agent/core/record-learning/{instructions.md → SKILL.md} +38 -0
- package/config/skills/agent/core/register-self/SKILL.md +54 -0
- package/config/skills/agent/core/remember/{instructions.md → SKILL.md} +37 -0
- package/config/skills/agent/core/remember/execute.sh +6 -0
- package/config/skills/agent/core/reply-chat/{instructions.md → SKILL.md} +37 -0
- package/config/skills/agent/core/report-progress/{instructions.md → SKILL.md} +38 -0
- package/config/skills/agent/core/report-status/{instructions.md → SKILL.md} +39 -0
- package/config/skills/agent/core/send-chat-response/{instructions.md → SKILL.md} +37 -0
- package/config/skills/agent/core/send-message/SKILL.md +58 -0
- package/config/skills/agent/core/update-team-norm/execute.sh +115 -0
- package/config/skills/agent/desktop-app-control/{instructions.md → SKILL.md} +42 -0
- package/config/skills/agent/trend-monitor/{instructions.md → SKILL.md} +34 -0
- package/config/skills/agent/vnc-browser/{instructions.md → SKILL.md} +38 -0
- package/config/skills/auditor/score-task/SKILL.md +28 -0
- package/config/skills/auditor/score-task/execute.sh +21 -0
- package/config/skills/examples/enterprise-skill-example.json +22 -0
- package/config/skills/examples/premium-skill-example.json +22 -0
- package/config/skills/orchestrator/assign-task/SKILL.md +41 -0
- package/config/skills/orchestrator/assign-team-to-project/{instructions.md → SKILL.md} +25 -0
- package/config/skills/orchestrator/broadcast/{instructions.md → SKILL.md} +24 -0
- package/config/skills/orchestrator/broadcast-to-org/{instructions.md → SKILL.md} +25 -0
- package/config/skills/orchestrator/cancel-all-schedules/{instructions.md → SKILL.md} +5 -0
- package/config/skills/orchestrator/cancel-schedule/SKILL.md +43 -0
- package/config/skills/orchestrator/complete-task/SKILL.md +41 -0
- package/config/skills/orchestrator/create-project/{instructions.md → SKILL.md} +24 -0
- package/config/skills/orchestrator/create-team/{instructions.md → SKILL.md} +24 -0
- package/config/skills/orchestrator/delegate-task/{instructions.md → SKILL.md} +27 -0
- package/config/skills/orchestrator/delegate-task/execute.sh +31 -2
- package/config/skills/orchestrator/get-agent-logs/{instructions.md → SKILL.md} +25 -0
- package/config/skills/orchestrator/get-agent-status/{instructions.md → SKILL.md} +24 -0
- package/config/skills/orchestrator/get-project-overview/SKILL.md +41 -0
- package/config/skills/orchestrator/get-tasks/SKILL.md +41 -0
- package/config/skills/orchestrator/get-team-status/SKILL.md +43 -0
- package/config/skills/orchestrator/handle-agent-failure/{instructions.md → SKILL.md} +27 -0
- package/config/skills/orchestrator/heartbeat/{instructions.md → SKILL.md} +24 -0
- package/config/skills/orchestrator/list-schedules/{instructions.md → SKILL.md} +5 -0
- package/config/skills/orchestrator/list-subscriptions/SKILL.md +41 -0
- package/config/skills/orchestrator/query-knowledge/{instructions.md → SKILL.md} +28 -0
- package/config/skills/orchestrator/read-session-logs/{instructions.md → SKILL.md} +26 -0
- package/config/skills/orchestrator/read-system-logs/{instructions.md → SKILL.md} +25 -0
- package/config/skills/orchestrator/recall/{instructions.md → SKILL.md} +24 -0
- package/config/skills/orchestrator/record-failure/{instructions.md → SKILL.md} +27 -0
- package/config/skills/orchestrator/record-learning/{instructions.md → SKILL.md} +24 -0
- package/config/skills/orchestrator/record-success/{instructions.md → SKILL.md} +26 -0
- package/config/skills/orchestrator/register-self/{instructions.md → SKILL.md} +24 -0
- package/config/skills/orchestrator/remember/{instructions.md → SKILL.md} +24 -0
- package/config/skills/orchestrator/reply-chat/{instructions.md → SKILL.md} +25 -0
- package/config/skills/orchestrator/reply-chat/execute.sh +0 -13
- package/config/skills/orchestrator/reply-gchat/{instructions.md → SKILL.md} +25 -0
- package/config/skills/orchestrator/reply-gchat/execute.sh +0 -18
- package/config/skills/orchestrator/reply-slack/{instructions.md → SKILL.md} +24 -0
- package/config/skills/orchestrator/reply-slack/execute.sh +18 -31
- package/config/skills/orchestrator/report-bug/{instructions.md → SKILL.md} +26 -0
- package/config/skills/orchestrator/restart-crewly/{instructions.md → SKILL.md} +26 -0
- package/config/skills/orchestrator/resume-session/{instructions.md → SKILL.md} +24 -0
- package/config/skills/orchestrator/schedule-check/{instructions.md → SKILL.md} +24 -0
- package/config/skills/orchestrator/send-key/{instructions.md → SKILL.md} +26 -0
- package/config/skills/orchestrator/send-message/{instructions.md → SKILL.md} +24 -0
- package/config/skills/orchestrator/send-pdf-to-slack/{instructions.md → SKILL.md} +27 -0
- package/config/skills/orchestrator/set-goal/{instructions.md → SKILL.md} +26 -0
- package/config/skills/orchestrator/start-agent/{instructions.md → SKILL.md} +24 -0
- package/config/skills/orchestrator/start-team/{instructions.md → SKILL.md} +24 -0
- package/config/skills/orchestrator/stop-agent/{instructions.md → SKILL.md} +24 -0
- package/config/skills/orchestrator/stop-team/SKILL.md +43 -0
- package/config/skills/orchestrator/subscribe-event/{instructions.md → SKILL.md} +24 -0
- package/config/skills/orchestrator/terminate-agent/{instructions.md → SKILL.md} +24 -0
- package/config/skills/orchestrator/unsubscribe-event/SKILL.md +42 -0
- package/config/skills/orchestrator/update-focus/{instructions.md → SKILL.md} +26 -0
- package/config/skills/orchestrator/update-team/{instructions.md → SKILL.md} +24 -0
- package/config/skills/team-leader/aggregate-results/{instructions.md → SKILL.md} +26 -0
- package/config/skills/team-leader/decompose-goal/{instructions.md → SKILL.md} +26 -0
- package/config/skills/team-leader/delegate-task/{instructions.md → SKILL.md} +26 -0
- package/config/skills/team-leader/delegate-task/execute.sh +14 -6
- package/config/skills/team-leader/delegate-task/execute.test.sh +401 -0
- package/config/skills/team-leader/handle-failure/{instructions.md → SKILL.md} +27 -0
- package/config/skills/team-leader/schedule-check/{instructions.md → SKILL.md} +26 -0
- package/config/skills/team-leader/start-agent/{instructions.md → SKILL.md} +26 -0
- package/config/skills/team-leader/stop-agent/{instructions.md → SKILL.md} +26 -0
- package/config/skills/team-leader/verify-output/{instructions.md → SKILL.md} +27 -0
- package/config/templates/agent-agents-md.md +35 -0
- package/config/templates/agent-gemini-md.md +35 -0
- package/config/templates/code-review-team/team-config.json +7 -0
- package/config/templates/content-generation-team/norms/brand-guidelines.md +64 -0
- package/config/templates/content-generation-team/norms/content-review.md +66 -0
- package/config/templates/content-generation-team/norms/publish-checklist.md +58 -0
- package/config/templates/content-generation-team/team-config.json +8 -0
- package/config/templates/dev-fullstack/norms/code-commit-sop.md +40 -0
- package/config/templates/dev-fullstack/norms/quality-gates.md +35 -0
- package/config/templates/dev-fullstack/template.json +17 -1
- package/config/templates/education-smb/template.json +10 -1
- package/config/templates/insurance-smb/template.json +10 -1
- package/config/templates/research-analysis/norms/research-methodology.md +36 -0
- package/config/templates/research-analysis/norms/source-citation.md +33 -0
- package/config/templates/research-analysis/template.json +17 -1
- package/config/templates/security-audit-team.json +67 -0
- package/config/templates/social-media-ops/norms/engagement-rules.md +35 -0
- package/config/templates/social-media-ops/norms/posting-schedule.md +43 -0
- package/config/templates/social-media-ops/template.json +17 -1
- package/config/templates/video-production/template.json +10 -1
- package/dist/backend/backend/src/constants.d.ts +80 -11
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +85 -11
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/approvals/approvals.controller.d.ts +99 -0
- package/dist/backend/backend/src/controllers/approvals/approvals.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/approvals/approvals.controller.js +183 -0
- package/dist/backend/backend/src/controllers/approvals/approvals.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/approvals/approvals.routes.d.ts +15 -0
- package/dist/backend/backend/src/controllers/approvals/approvals.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/approvals/approvals.routes.js +27 -0
- package/dist/backend/backend/src/controllers/approvals/approvals.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/cloud/cloud-google-auth.controller.d.ts +70 -0
- package/dist/backend/backend/src/controllers/cloud/cloud-google-auth.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/cloud/cloud-google-auth.controller.js +368 -0
- package/dist/backend/backend/src/controllers/cloud/cloud-google-auth.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts +24 -0
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.js +195 -3
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.routes.d.ts +9 -4
- package/dist/backend/backend/src/controllers/cloud/cloud.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.routes.js +19 -5
- package/dist/backend/backend/src/controllers/cloud/cloud.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/index.d.ts +1 -0
- package/dist/backend/backend/src/controllers/cloud/index.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/index.js +1 -0
- package/dist/backend/backend/src/controllers/cloud/index.js.map +1 -1
- package/dist/backend/backend/src/controllers/index.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/index.js +2 -0
- package/dist/backend/backend/src/controllers/index.js.map +1 -1
- package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.js +1 -1
- package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/marketplace/template-marketplace.routes.d.ts +3 -3
- package/dist/backend/backend/src/controllers/marketplace/template-marketplace.routes.js +9 -9
- package/dist/backend/backend/src/controllers/marketplace/template-marketplace.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/memory/memory.controller.js +6 -6
- package/dist/backend/backend/src/controllers/memory/memory.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/messaging/messenger.routes.d.ts +0 -7
- package/dist/backend/backend/src/controllers/messaging/messenger.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/messaging/messenger.routes.js +2 -135
- package/dist/backend/backend/src/controllers/messaging/messenger.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts +14 -0
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +96 -1
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/oauth/oauth.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/oauth/oauth.routes.js +8 -1
- package/dist/backend/backend/src/controllers/oauth/oauth.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/payment/payment.controller.js +2 -2
- package/dist/backend/backend/src/controllers/payment/payment.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/payment/payment.routes.d.ts +3 -3
- package/dist/backend/backend/src/controllers/payment/payment.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/payment/payment.routes.js +4 -14
- package/dist/backend/backend/src/controllers/payment/payment.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/payment/payment.types.d.ts +15 -94
- package/dist/backend/backend/src/controllers/payment/payment.types.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/payment/payment.types.js +11 -35
- package/dist/backend/backend/src/controllers/payment/payment.types.js.map +1 -1
- package/dist/backend/backend/src/controllers/pr-review/pr-review.controller.d.ts +49 -0
- package/dist/backend/backend/src/controllers/pr-review/pr-review.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/pr-review/pr-review.controller.js +138 -0
- package/dist/backend/backend/src/controllers/pr-review/pr-review.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/pr-review/pr-review.routes.d.ts +20 -0
- package/dist/backend/backend/src/controllers/pr-review/pr-review.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/pr-review/pr-review.routes.js +30 -0
- package/dist/backend/backend/src/controllers/pr-review/pr-review.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/quality-gate/quality-gate.controller.d.ts +12 -0
- package/dist/backend/backend/src/controllers/quality-gate/quality-gate.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/quality-gate/quality-gate.controller.js +107 -0
- package/dist/backend/backend/src/controllers/quality-gate/quality-gate.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/request-types.d.ts +20 -1
- package/dist/backend/backend/src/controllers/request-types.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/slack/slack.controller.js +11 -5
- package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts +46 -0
- package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/task-management/task-management.controller.js +598 -326
- package/dist/backend/backend/src/controllers/task-management/task-management.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.controller.d.ts +12 -0
- package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.controller.js +105 -36
- package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.routes.js +2 -1
- package/dist/backend/backend/src/controllers/team/team.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/template/template.controller.d.ts +11 -0
- package/dist/backend/backend/src/controllers/template/template.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/template/template.controller.js +59 -0
- package/dist/backend/backend/src/controllers/template/template.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/template/template.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/template/template.routes.js +2 -1
- package/dist/backend/backend/src/controllers/template/template.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/workspace/workspace.controller.d.ts +39 -0
- package/dist/backend/backend/src/controllers/workspace/workspace.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/workspace/workspace.controller.js +120 -0
- package/dist/backend/backend/src/controllers/workspace/workspace.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/workspace/workspace.routes.d.ts +18 -0
- package/dist/backend/backend/src/controllers/workspace/workspace.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/workspace/workspace.routes.js +27 -0
- package/dist/backend/backend/src/controllers/workspace/workspace.routes.js.map +1 -0
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +108 -15
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/middleware/require-auth.middleware.d.ts +20 -0
- package/dist/backend/backend/src/middleware/require-auth.middleware.d.ts.map +1 -0
- package/dist/backend/backend/src/middleware/require-auth.middleware.js +21 -0
- package/dist/backend/backend/src/middleware/require-auth.middleware.js.map +1 -0
- package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/routes/api.routes.js +18 -5
- package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
- package/dist/backend/backend/src/routes/modules/quality-gate.routes.d.ts +2 -1
- package/dist/backend/backend/src/routes/modules/quality-gate.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/routes/modules/quality-gate.routes.js +4 -2
- package/dist/backend/backend/src/routes/modules/quality-gate.routes.js.map +1 -1
- package/dist/backend/backend/src/routes/modules/task-management.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/routes/modules/task-management.routes.js +8 -0
- package/dist/backend/backend/src/routes/modules/task-management.routes.js.map +1 -1
- package/dist/backend/backend/src/routes/modules/terminal.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/routes/modules/terminal.routes.js +4 -0
- package/dist/backend/backend/src/routes/modules/terminal.routes.js.map +1 -1
- package/dist/backend/backend/src/services/agent/adaptive-heartbeat.service.d.ts +149 -0
- package/dist/backend/backend/src/services/agent/adaptive-heartbeat.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/adaptive-heartbeat.service.js +200 -0
- package/dist/backend/backend/src/services/agent/adaptive-heartbeat.service.js.map +1 -0
- package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.d.ts +13 -0
- package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.js +65 -6
- package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +36 -0
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.js +174 -52
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/auditor-scheduler.service.d.ts +66 -20
- package/dist/backend/backend/src/services/agent/auditor-scheduler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/auditor-scheduler.service.js +261 -60
- package/dist/backend/backend/src/services/agent/auditor-scheduler.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/claude-runtime.service.d.ts +19 -0
- package/dist/backend/backend/src/services/agent/claude-runtime.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/claude-runtime.service.js +80 -0
- package/dist/backend/backend/src/services/agent/claude-runtime.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/context-window-monitor.service.d.ts +11 -0
- package/dist/backend/backend/src/services/agent/context-window-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/context-window-monitor.service.js +49 -1
- package/dist/backend/backend/src/services/agent/context-window-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts +74 -3
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js +248 -18
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/approval-queue.service.d.ts +161 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/approval-queue.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/approval-queue.service.js +237 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/approval-queue.service.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.d.ts +74 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.js +140 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.js +50 -2
- package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.d.ts +16 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js +45 -5
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/index.d.ts +3 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/index.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/index.js +3 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/index.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.d.ts +135 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.js +185 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts +10 -2
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js +22 -2
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.d.ts +143 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.js +264 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.js +2 -2
- package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.d.ts +55 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js +660 -45
- package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts +75 -3
- package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/types.js +49 -2
- package/dist/backend/backend/src/services/agent/crewly-agent/types.js.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js +17 -2
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts +37 -0
- package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-builder.service.js +170 -3
- package/dist/backend/backend/src/services/ai/prompt-builder.service.js.map +1 -1
- package/dist/backend/backend/src/services/browser/chrome-discovery.service.d.ts +108 -0
- package/dist/backend/backend/src/services/browser/chrome-discovery.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/browser/chrome-discovery.service.js +251 -0
- package/dist/backend/backend/src/services/browser/chrome-discovery.service.js.map +1 -0
- package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts +12 -0
- package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-client.service.js +19 -0
- package/dist/backend/backend/src/services/cloud/cloud-client.service.js.map +1 -1
- package/dist/backend/backend/src/services/cloud/device-auto-discovery.service.d.ts +191 -0
- package/dist/backend/backend/src/services/cloud/device-auto-discovery.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/cloud/device-auto-discovery.service.js +415 -0
- package/dist/backend/backend/src/services/cloud/device-auto-discovery.service.js.map +1 -0
- package/dist/backend/backend/src/services/cloud/device-identity.service.d.ts +89 -0
- package/dist/backend/backend/src/services/cloud/device-identity.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/cloud/device-identity.service.js +148 -0
- package/dist/backend/backend/src/services/cloud/device-identity.service.js.map +1 -0
- package/dist/backend/backend/src/services/core/tracing.service.d.ts +127 -0
- package/dist/backend/backend/src/services/core/tracing.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/core/tracing.service.js +238 -0
- package/dist/backend/backend/src/services/core/tracing.service.js.map +1 -0
- package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-bus.service.js +11 -3
- package/dist/backend/backend/src/services/event-bus/event-bus.service.js.map +1 -1
- package/dist/backend/backend/src/services/index.d.ts +1 -0
- package/dist/backend/backend/src/services/index.d.ts.map +1 -1
- package/dist/backend/backend/src/services/index.js +1 -0
- package/dist/backend/backend/src/services/index.js.map +1 -1
- package/dist/backend/backend/src/services/knowledge/embedding-provider.d.ts +78 -0
- package/dist/backend/backend/src/services/knowledge/embedding-provider.d.ts.map +1 -0
- package/dist/backend/backend/src/services/knowledge/embedding-provider.js +164 -0
- package/dist/backend/backend/src/services/knowledge/embedding-provider.js.map +1 -0
- package/dist/backend/backend/src/services/knowledge/knowledge-search.service.d.ts +39 -13
- package/dist/backend/backend/src/services/knowledge/knowledge-search.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/knowledge/knowledge-search.service.js +114 -17
- package/dist/backend/backend/src/services/knowledge/knowledge-search.service.js.map +1 -1
- package/dist/backend/backend/src/services/knowledge/vector-store.service.d.ts +170 -23
- package/dist/backend/backend/src/services/knowledge/vector-store.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/knowledge/vector-store.service.js +565 -73
- package/dist/backend/backend/src/services/knowledge/vector-store.service.js.map +1 -1
- package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.js +8 -11
- package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.js.map +1 -1
- package/dist/backend/backend/src/services/marketplace/marketplace.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/marketplace/marketplace.service.js +1 -0
- package/dist/backend/backend/src/services/marketplace/marketplace.service.js.map +1 -1
- package/dist/backend/backend/src/services/memory/context-flush.service.d.ts +73 -0
- package/dist/backend/backend/src/services/memory/context-flush.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/memory/context-flush.service.js +131 -0
- package/dist/backend/backend/src/services/memory/context-flush.service.js.map +1 -0
- package/dist/backend/backend/src/services/memory/learning-accumulation.service.d.ts +23 -2
- package/dist/backend/backend/src/services/memory/learning-accumulation.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/memory/learning-accumulation.service.js +78 -16
- package/dist/backend/backend/src/services/memory/learning-accumulation.service.js.map +1 -1
- package/dist/backend/backend/src/services/memory/memory.service.d.ts +38 -0
- package/dist/backend/backend/src/services/memory/memory.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/memory/memory.service.js +121 -2
- package/dist/backend/backend/src/services/memory/memory.service.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.d.ts +29 -207
- package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.js +97 -683
- package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/google-chat-initializer.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/google-chat-initializer.js +13 -12
- package/dist/backend/backend/src/services/messaging/google-chat-initializer.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/messenger-adapter.interface.d.ts +2 -0
- package/dist/backend/backend/src/services/messaging/messenger-adapter.interface.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts +6 -23
- package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/queue-processor.service.js +48 -184
- package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
- package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js +51 -5
- package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/index.d.ts +1 -1
- package/dist/backend/backend/src/services/orchestrator/index.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/index.js +1 -1
- package/dist/backend/backend/src/services/orchestrator/index.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts +65 -0
- package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js +165 -2
- package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts +8 -0
- package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js +23 -0
- package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -1
- package/dist/backend/backend/src/services/payment/stripe.service.d.ts +95 -43
- package/dist/backend/backend/src/services/payment/stripe.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/payment/stripe.service.js +229 -190
- package/dist/backend/backend/src/services/payment/stripe.service.js.map +1 -1
- package/dist/backend/backend/src/services/pr-review/pr-review.service.d.ts +181 -0
- package/dist/backend/backend/src/services/pr-review/pr-review.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/pr-review/pr-review.service.js +336 -0
- package/dist/backend/backend/src/services/pr-review/pr-review.service.js.map +1 -0
- package/dist/backend/backend/src/services/project/task-tracking.service.d.ts +23 -0
- package/dist/backend/backend/src/services/project/task-tracking.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project/task-tracking.service.js +88 -0
- package/dist/backend/backend/src/services/project/task-tracking.service.js.map +1 -1
- package/dist/backend/backend/src/services/session/index.d.ts +2 -0
- package/dist/backend/backend/src/services/session/index.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/index.js +2 -0
- package/dist/backend/backend/src/services/session/index.js.map +1 -1
- package/dist/backend/backend/src/services/session/session-handoff.service.d.ts +260 -0
- package/dist/backend/backend/src/services/session/session-handoff.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/session/session-handoff.service.js +565 -0
- package/dist/backend/backend/src/services/session/session-handoff.service.js.map +1 -0
- package/dist/backend/backend/src/services/skill/index.d.ts +1 -0
- package/dist/backend/backend/src/services/skill/index.d.ts.map +1 -1
- package/dist/backend/backend/src/services/skill/index.js +1 -0
- package/dist/backend/backend/src/services/skill/index.js.map +1 -1
- package/dist/backend/backend/src/services/skill/skill-catalog.service.d.ts +25 -6
- package/dist/backend/backend/src/services/skill/skill-catalog.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/skill/skill-catalog.service.js +78 -20
- package/dist/backend/backend/src/services/skill/skill-catalog.service.js.map +1 -1
- package/dist/backend/backend/src/services/skill/skill-tier.service.d.ts +116 -0
- package/dist/backend/backend/src/services/skill/skill-tier.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/skill/skill-tier.service.js +155 -0
- package/dist/backend/backend/src/services/skill/skill-tier.service.js.map +1 -0
- package/dist/backend/backend/src/services/skill/skill.service.d.ts +35 -7
- package/dist/backend/backend/src/services/skill/skill.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/skill/skill.service.js +128 -35
- package/dist/backend/backend/src/services/skill/skill.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +50 -47
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +267 -202
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack.service.d.ts +28 -2
- package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack.service.js +69 -3
- package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
- package/dist/backend/backend/src/services/template/template.service.d.ts +19 -1
- package/dist/backend/backend/src/services/template/template.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/template/template.service.js +110 -3
- package/dist/backend/backend/src/services/template/template.service.js.map +1 -1
- package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.d.ts +11 -0
- package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.d.ts.map +1 -1
- package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.js +57 -3
- package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.js.map +1 -1
- package/dist/backend/backend/src/services/workflow/message-scheduler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/workflow/message-scheduler.service.js +6 -0
- package/dist/backend/backend/src/services/workflow/message-scheduler.service.js.map +1 -1
- package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts +52 -0
- package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/workflow/scheduler.service.js +319 -6
- package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
- package/dist/backend/backend/src/types/chat.types.d.ts +2 -2
- package/dist/backend/backend/src/types/chat.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/chat.types.js +18 -22
- package/dist/backend/backend/src/types/chat.types.js.map +1 -1
- package/dist/backend/backend/src/types/index.d.ts +37 -0
- package/dist/backend/backend/src/types/index.d.ts.map +1 -1
- package/dist/backend/backend/src/types/index.js.map +1 -1
- package/dist/backend/backend/src/types/marketplace.types.d.ts +1 -1
- package/dist/backend/backend/src/types/marketplace.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/scheduler.types.d.ts +4 -0
- package/dist/backend/backend/src/types/scheduler.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/scheduler.types.js.map +1 -1
- package/dist/backend/backend/src/types/skill.types.d.ts +4 -0
- package/dist/backend/backend/src/types/skill.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/skill.types.js.map +1 -1
- package/dist/backend/backend/src/types/task-tracking.types.d.ts +6 -0
- package/dist/backend/backend/src/types/task-tracking.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/task-tracking.types.js.map +1 -1
- package/dist/backend/backend/src/types/team-template.types.d.ts +2 -0
- package/dist/backend/backend/src/types/team-template.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/team-template.types.js.map +1 -1
- package/dist/backend/backend/src/utils/skill-md-parser.d.ts +38 -0
- package/dist/backend/backend/src/utils/skill-md-parser.d.ts.map +1 -0
- package/dist/backend/backend/src/utils/skill-md-parser.js +47 -0
- package/dist/backend/backend/src/utils/skill-md-parser.js.map +1 -0
- package/dist/backend/backend/src/websocket/terminal.gateway.d.ts +0 -154
- package/dist/backend/backend/src/websocket/terminal.gateway.d.ts.map +1 -1
- package/dist/backend/backend/src/websocket/terminal.gateway.js +0 -515
- package/dist/backend/backend/src/websocket/terminal.gateway.js.map +1 -1
- package/dist/backend/config/constants.d.ts +18 -3
- package/dist/backend/config/constants.d.ts.map +1 -1
- package/dist/backend/config/constants.js +18 -3
- package/dist/backend/config/constants.js.map +1 -1
- package/dist/cli/backend/src/constants.d.ts +80 -11
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +85 -11
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/knowledge/embedding-provider.d.ts +78 -0
- package/dist/cli/backend/src/services/knowledge/embedding-provider.d.ts.map +1 -0
- package/dist/cli/backend/src/services/knowledge/embedding-provider.js +164 -0
- package/dist/cli/backend/src/services/knowledge/embedding-provider.js.map +1 -0
- package/dist/cli/backend/src/services/knowledge/knowledge-search.service.d.ts +39 -13
- package/dist/cli/backend/src/services/knowledge/knowledge-search.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/knowledge/knowledge-search.service.js +114 -17
- package/dist/cli/backend/src/services/knowledge/knowledge-search.service.js.map +1 -1
- package/dist/cli/backend/src/services/knowledge/vector-store.service.d.ts +170 -23
- package/dist/cli/backend/src/services/knowledge/vector-store.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/knowledge/vector-store.service.js +565 -73
- package/dist/cli/backend/src/services/knowledge/vector-store.service.js.map +1 -1
- package/dist/cli/backend/src/services/memory/memory.service.d.ts +38 -0
- package/dist/cli/backend/src/services/memory/memory.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/memory/memory.service.js +121 -2
- package/dist/cli/backend/src/services/memory/memory.service.js.map +1 -1
- package/dist/cli/backend/src/types/chat.types.d.ts +2 -2
- package/dist/cli/backend/src/types/chat.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/chat.types.js +18 -22
- package/dist/cli/backend/src/types/chat.types.js.map +1 -1
- package/dist/cli/backend/src/types/index.d.ts +37 -0
- package/dist/cli/backend/src/types/index.d.ts.map +1 -1
- package/dist/cli/backend/src/types/index.js.map +1 -1
- package/dist/cli/backend/src/types/scheduler.types.d.ts +4 -0
- package/dist/cli/backend/src/types/scheduler.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/scheduler.types.js.map +1 -1
- package/dist/cli/backend/src/types/skill.types.d.ts +4 -0
- package/dist/cli/backend/src/types/skill.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/skill.types.js.map +1 -1
- package/dist/cli/cli/src/commands/onboard.d.ts +19 -2
- package/dist/cli/cli/src/commands/onboard.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/onboard.js +58 -15
- package/dist/cli/cli/src/commands/onboard.js.map +1 -1
- package/dist/cli/cli/src/commands/pair.d.ts +46 -0
- package/dist/cli/cli/src/commands/pair.d.ts.map +1 -0
- package/dist/cli/cli/src/commands/pair.js +258 -0
- package/dist/cli/cli/src/commands/pair.js.map +1 -0
- package/dist/cli/cli/src/commands/service.d.ts +86 -0
- package/dist/cli/cli/src/commands/service.d.ts.map +1 -0
- package/dist/cli/cli/src/commands/service.js +687 -0
- package/dist/cli/cli/src/commands/service.js.map +1 -0
- package/dist/cli/cli/src/index.js +17 -0
- package/dist/cli/cli/src/index.js.map +1 -1
- package/dist/cli/config/constants.d.ts +18 -3
- package/dist/cli/config/constants.d.ts.map +1 -1
- package/dist/cli/config/constants.js +18 -3
- package/dist/cli/config/constants.js.map +1 -1
- package/frontend/dist/assets/index-1d23cce8.js +4919 -0
- package/frontend/dist/assets/index-60a9e4ea.css +33 -0
- package/frontend/dist/index.html +2 -2
- package/package.json +22 -10
- package/config/skills/agent/browse-stealth/skill.json +0 -20
- package/config/skills/agent/competitor-content-tracker/skill.json +0 -22
- package/config/skills/agent/computer-use/skill.json +0 -29
- package/config/skills/agent/content-calendar/skill.json +0 -22
- package/config/skills/agent/content-repurposer/skill.json +0 -22
- package/config/skills/agent/content-writer/skill.json +0 -22
- package/config/skills/agent/core/accept-task/skill.json +0 -20
- package/config/skills/agent/core/block-task/skill.json +0 -20
- package/config/skills/agent/core/check-quality-gates/skill.json +0 -20
- package/config/skills/agent/core/complete-task/skill.json +0 -20
- package/config/skills/agent/core/generate-pdf/skill.json +0 -20
- package/config/skills/agent/core/get-my-context/skill.json +0 -20
- package/config/skills/agent/core/get-sops/skill.json +0 -20
- package/config/skills/agent/core/get-team-status/instructions.md +0 -17
- package/config/skills/agent/core/get-team-status/skill.json +0 -20
- package/config/skills/agent/core/heartbeat/skill.json +0 -20
- package/config/skills/agent/core/marketplace-search/skill.json +0 -20
- package/config/skills/agent/core/query-knowledge/skill.json +0 -20
- package/config/skills/agent/core/read-task/instructions.md +0 -19
- package/config/skills/agent/core/read-task/skill.json +0 -20
- package/config/skills/agent/core/recall/skill.json +0 -20
- package/config/skills/agent/core/record-learning/skill.json +0 -20
- package/config/skills/agent/core/register-self/instructions.md +0 -18
- package/config/skills/agent/core/register-self/skill.json +0 -20
- package/config/skills/agent/core/remember/skill.json +0 -20
- package/config/skills/agent/core/reply-chat/skill.json +0 -20
- package/config/skills/agent/core/report-progress/skill.json +0 -20
- package/config/skills/agent/core/report-status/skill.json +0 -20
- package/config/skills/agent/core/send-chat-response/skill.json +0 -20
- package/config/skills/agent/core/send-message/instructions.md +0 -20
- package/config/skills/agent/core/send-message/skill.json +0 -20
- package/config/skills/agent/desktop-app-control/skill.json +0 -33
- package/config/skills/agent/trend-monitor/skill.json +0 -22
- package/config/skills/agent/vnc-browser/skill.json +0 -20
- package/config/skills/orchestrator/assign-task/instructions.md +0 -17
- package/config/skills/orchestrator/assign-task/skill.json +0 -20
- package/config/skills/orchestrator/assign-team-to-project/skill.json +0 -20
- package/config/skills/orchestrator/broadcast/skill.json +0 -20
- package/config/skills/orchestrator/broadcast-to-org/skill.json +0 -20
- package/config/skills/orchestrator/cancel-all-schedules/skill.json +0 -17
- package/config/skills/orchestrator/cancel-schedule/instructions.md +0 -19
- package/config/skills/orchestrator/cancel-schedule/skill.json +0 -20
- package/config/skills/orchestrator/complete-task/instructions.md +0 -17
- package/config/skills/orchestrator/complete-task/skill.json +0 -20
- package/config/skills/orchestrator/create-project/skill.json +0 -20
- package/config/skills/orchestrator/create-team/skill.json +0 -20
- package/config/skills/orchestrator/delegate-task/skill.json +0 -20
- package/config/skills/orchestrator/get-agent-logs/skill.json +0 -20
- package/config/skills/orchestrator/get-agent-status/skill.json +0 -20
- package/config/skills/orchestrator/get-project-overview/instructions.md +0 -17
- package/config/skills/orchestrator/get-project-overview/skill.json +0 -20
- package/config/skills/orchestrator/get-tasks/instructions.md +0 -17
- package/config/skills/orchestrator/get-tasks/skill.json +0 -20
- package/config/skills/orchestrator/get-team-status/instructions.md +0 -17
- package/config/skills/orchestrator/get-team-status/skill.json +0 -20
- package/config/skills/orchestrator/handle-agent-failure/skill.json +0 -20
- package/config/skills/orchestrator/heartbeat/skill.json +0 -20
- package/config/skills/orchestrator/list-schedules/skill.json +0 -12
- package/config/skills/orchestrator/list-subscriptions/instructions.md +0 -17
- package/config/skills/orchestrator/list-subscriptions/skill.json +0 -20
- package/config/skills/orchestrator/query-knowledge/skill.json +0 -20
- package/config/skills/orchestrator/read-session-logs/skill.json +0 -20
- package/config/skills/orchestrator/read-system-logs/skill.json +0 -20
- package/config/skills/orchestrator/recall/skill.json +0 -20
- package/config/skills/orchestrator/record-failure/skill.json +0 -20
- package/config/skills/orchestrator/record-learning/skill.json +0 -20
- package/config/skills/orchestrator/record-success/skill.json +0 -20
- package/config/skills/orchestrator/register-self/skill.json +0 -20
- package/config/skills/orchestrator/remember/skill.json +0 -20
- package/config/skills/orchestrator/reply-chat/skill.json +0 -20
- package/config/skills/orchestrator/reply-gchat/skill.json +0 -20
- package/config/skills/orchestrator/reply-slack/skill.json +0 -20
- package/config/skills/orchestrator/report-bug/skill.json +0 -20
- package/config/skills/orchestrator/restart-crewly/skill.json +0 -20
- package/config/skills/orchestrator/resume-session/skill.json +0 -20
- package/config/skills/orchestrator/schedule-check/skill.json +0 -20
- package/config/skills/orchestrator/send-key/skill.json +0 -20
- package/config/skills/orchestrator/send-message/skill.json +0 -20
- package/config/skills/orchestrator/send-pdf-to-slack/skill.json +0 -20
- package/config/skills/orchestrator/set-goal/skill.json +0 -20
- package/config/skills/orchestrator/start-agent/skill.json +0 -20
- package/config/skills/orchestrator/start-team/skill.json +0 -20
- package/config/skills/orchestrator/stop-agent/skill.json +0 -20
- package/config/skills/orchestrator/stop-team/instructions.md +0 -19
- package/config/skills/orchestrator/stop-team/skill.json +0 -20
- package/config/skills/orchestrator/subscribe-event/skill.json +0 -20
- package/config/skills/orchestrator/terminate-agent/skill.json +0 -20
- package/config/skills/orchestrator/unsubscribe-event/instructions.md +0 -19
- package/config/skills/orchestrator/unsubscribe-event/skill.json +0 -20
- package/config/skills/orchestrator/update-focus/skill.json +0 -20
- package/config/skills/orchestrator/update-team/skill.json +0 -20
- package/config/skills/team-leader/aggregate-results/skill.json +0 -20
- package/config/skills/team-leader/decompose-goal/skill.json +0 -20
- package/config/skills/team-leader/delegate-task/skill.json +0 -20
- package/config/skills/team-leader/handle-failure/skill.json +0 -20
- package/config/skills/team-leader/schedule-check/skill.json +0 -20
- package/config/skills/team-leader/start-agent/skill.json +0 -20
- package/config/skills/team-leader/stop-agent/skill.json +0 -20
- package/config/skills/team-leader/verify-output/skill.json +0 -20
- package/frontend/dist/assets/index-0e5673b0.css +0 -33
- package/frontend/dist/assets/index-e6d7db4a.js +0 -5213
|
@@ -13,6 +13,32 @@ import { VectorStoreService } from './vector-store.service.js';
|
|
|
13
13
|
import { EMBEDDING_CONSTANTS, ENV_CONSTANTS } from '../../constants.js';
|
|
14
14
|
/** Default number of results returned by search */
|
|
15
15
|
const DEFAULT_SEARCH_LIMIT = 5;
|
|
16
|
+
/** Half-life in days for temporal decay — score halves every 30 days (#154) */
|
|
17
|
+
const TEMPORAL_DECAY_HALF_LIFE_DAYS = 30;
|
|
18
|
+
/** Tags that bypass temporal decay (always full relevance) (#154) */
|
|
19
|
+
const EVERGREEN_TAGS = new Set(['evergreen', 'decision', 'architecture', 'sop', 'runbook']);
|
|
20
|
+
/**
|
|
21
|
+
* Apply temporal decay to a search score (#154).
|
|
22
|
+
* Score decays by half every TEMPORAL_DECAY_HALF_LIFE_DAYS days.
|
|
23
|
+
* Documents tagged with evergreen/decision tags bypass decay entirely.
|
|
24
|
+
*
|
|
25
|
+
* @param score - Raw relevance score
|
|
26
|
+
* @param createdAt - ISO timestamp of document creation
|
|
27
|
+
* @param tags - Document tags
|
|
28
|
+
* @returns Decayed score
|
|
29
|
+
*/
|
|
30
|
+
export function applyTemporalDecay(score, createdAt, tags) {
|
|
31
|
+
// Bypass decay for evergreen documents
|
|
32
|
+
const lowerTags = tags.map(t => t.toLowerCase());
|
|
33
|
+
if (lowerTags.some(tag => EVERGREEN_TAGS.has(tag))) {
|
|
34
|
+
return score;
|
|
35
|
+
}
|
|
36
|
+
const daysSinceCreation = (Date.now() - new Date(createdAt).getTime()) / (1000 * 60 * 60 * 24);
|
|
37
|
+
if (daysSinceCreation <= 0) {
|
|
38
|
+
return score;
|
|
39
|
+
}
|
|
40
|
+
return score * Math.pow(0.5, daysSinceCreation / TEMPORAL_DECAY_HALF_LIFE_DAYS);
|
|
41
|
+
}
|
|
16
42
|
/**
|
|
17
43
|
* Keyword-based search strategy (default, zero dependencies).
|
|
18
44
|
*
|
|
@@ -316,23 +342,88 @@ export class LocalVectorSearchStrategy {
|
|
|
316
342
|
}
|
|
317
343
|
}
|
|
318
344
|
/**
|
|
319
|
-
*
|
|
345
|
+
* BM25-inspired keyword scoring for hybrid search (#152).
|
|
346
|
+
*
|
|
347
|
+
* Computes a simplified BM25-like score for a document against a query.
|
|
348
|
+
* Uses term frequency with diminishing returns (k1 saturation).
|
|
349
|
+
*
|
|
350
|
+
* @param query - Search query text
|
|
351
|
+
* @param docText - Document text to score
|
|
352
|
+
* @returns BM25-inspired score (higher is better)
|
|
353
|
+
*/
|
|
354
|
+
export function bm25Score(query, docText) {
|
|
355
|
+
const k1 = 1.2;
|
|
356
|
+
const b = 0.75;
|
|
357
|
+
const avgDocLen = 200;
|
|
358
|
+
const queryTerms = query.toLowerCase().split(/\s+/).filter(w => w.length > 1);
|
|
359
|
+
const docLower = docText.toLowerCase();
|
|
360
|
+
const docWords = docLower.split(/\s+/);
|
|
361
|
+
const docLen = docWords.length;
|
|
362
|
+
let score = 0;
|
|
363
|
+
for (const term of queryTerms) {
|
|
364
|
+
const tf = docWords.filter(w => w.includes(term)).length;
|
|
365
|
+
if (tf === 0)
|
|
366
|
+
continue;
|
|
367
|
+
const idf = Math.log(1 + 1 / (tf + 0.5));
|
|
368
|
+
const tfNorm = (tf * (k1 + 1)) / (tf + k1 * (1 - b + b * (docLen / avgDocLen)));
|
|
369
|
+
score += idf * tfNorm;
|
|
370
|
+
}
|
|
371
|
+
return score;
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* Hybrid search strategy: vector similarity (70%) + BM25 keywords (30%) (#152).
|
|
320
375
|
*
|
|
321
|
-
*
|
|
322
|
-
*
|
|
323
|
-
*
|
|
376
|
+
* Combines semantic vector search with BM25 keyword matching for more
|
|
377
|
+
* accurate retrieval. Proper nouns, technical terms, and IDs are caught
|
|
378
|
+
* by BM25 while conceptual matches come from vector similarity.
|
|
379
|
+
*/
|
|
380
|
+
export class HybridSearchStrategy {
|
|
381
|
+
vectorStrategy;
|
|
382
|
+
keywordStrategy;
|
|
383
|
+
logger;
|
|
384
|
+
vectorWeight;
|
|
385
|
+
keywordWeight;
|
|
386
|
+
constructor(apiKey, vectorWeight = 0.7, keywordWeight = 0.3) {
|
|
387
|
+
this.vectorStrategy = new LocalVectorSearchStrategy(apiKey);
|
|
388
|
+
this.keywordStrategy = new KeywordSearchStrategy();
|
|
389
|
+
this.vectorWeight = vectorWeight;
|
|
390
|
+
this.keywordWeight = keywordWeight;
|
|
391
|
+
this.logger = LoggerService.getInstance().createComponentLogger('HybridSearchStrategy');
|
|
392
|
+
}
|
|
393
|
+
async search(query, documents) {
|
|
394
|
+
const vectorResults = await this.vectorStrategy.search(query, documents);
|
|
395
|
+
const vectorMap = new Map(vectorResults.map(r => [r.document.id, r.score]));
|
|
396
|
+
const keywordResults = await this.keywordStrategy.search(query, documents);
|
|
397
|
+
const keywordMap = new Map(keywordResults.map(r => [r.document.id, r.score]));
|
|
398
|
+
const maxVector = vectorResults.length > 0 ? Math.max(...vectorResults.map(r => r.score)) : 1;
|
|
399
|
+
const maxKeyword = keywordResults.length > 0 ? Math.max(...keywordResults.map(r => r.score)) : 1;
|
|
400
|
+
const allDocIds = new Set([...vectorMap.keys(), ...keywordMap.keys()]);
|
|
401
|
+
const docById = new Map(documents.map(d => [d.id, d]));
|
|
402
|
+
const combined = [];
|
|
403
|
+
for (const docId of allDocIds) {
|
|
404
|
+
const doc = docById.get(docId);
|
|
405
|
+
if (!doc)
|
|
406
|
+
continue;
|
|
407
|
+
const vScore = (vectorMap.get(docId) || 0) / (maxVector || 1);
|
|
408
|
+
const kScore = (keywordMap.get(docId) || 0) / (maxKeyword || 1);
|
|
409
|
+
const docText = `${doc.title} ${doc.tags.join(' ')} ${doc.preview}`;
|
|
410
|
+
const bm25 = bm25Score(query, docText);
|
|
411
|
+
const normalizedBm25 = Math.min(bm25 / 5, 1);
|
|
412
|
+
const combinedScore = this.vectorWeight * vScore +
|
|
413
|
+
this.keywordWeight * Math.max(kScore, normalizedBm25);
|
|
414
|
+
if (combinedScore > 0) {
|
|
415
|
+
combined.push({ document: doc, score: combinedScore });
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
return combined.sort((a, b) => b.score - a.score);
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Knowledge Search Service singleton.
|
|
324
423
|
*
|
|
325
424
|
* Strategy selection priority:
|
|
326
|
-
* 1.
|
|
425
|
+
* 1. HybridSearchStrategy (when embedding API key is set — vector 70% + BM25 30%) (#152)
|
|
327
426
|
* 2. KeywordSearchStrategy (default, zero dependencies)
|
|
328
|
-
*
|
|
329
|
-
* @example
|
|
330
|
-
* ```typescript
|
|
331
|
-
* const results = await KnowledgeSearchService.getInstance().search(
|
|
332
|
-
* 'deployment runbook',
|
|
333
|
-
* 'global',
|
|
334
|
-
* );
|
|
335
|
-
* ```
|
|
336
427
|
*/
|
|
337
428
|
export class KnowledgeSearchService {
|
|
338
429
|
static instance = null;
|
|
@@ -342,11 +433,11 @@ export class KnowledgeSearchService {
|
|
|
342
433
|
this.logger = LoggerService.getInstance().createComponentLogger('KnowledgeSearchService');
|
|
343
434
|
const geminiKey = process.env[ENV_CONSTANTS.GEMINI_API_KEY];
|
|
344
435
|
if (geminiKey) {
|
|
345
|
-
this.logger.info('Using
|
|
346
|
-
this.strategy = new
|
|
436
|
+
this.logger.info('Using hybrid search strategy (vector 70% + BM25 30%)');
|
|
437
|
+
this.strategy = new HybridSearchStrategy(geminiKey);
|
|
347
438
|
}
|
|
348
439
|
else {
|
|
349
|
-
this.logger.info('Using keyword search strategy (no
|
|
440
|
+
this.logger.info('Using keyword search strategy (no embedding API key set)');
|
|
350
441
|
this.strategy = new KeywordSearchStrategy();
|
|
351
442
|
}
|
|
352
443
|
}
|
|
@@ -385,7 +476,13 @@ export class KnowledgeSearchService {
|
|
|
385
476
|
return [];
|
|
386
477
|
}
|
|
387
478
|
const scored = await this.strategy.search(query, candidates);
|
|
388
|
-
|
|
479
|
+
// #154: Apply temporal decay to re-rank results
|
|
480
|
+
const decayed = scored.map((s) => ({
|
|
481
|
+
...s,
|
|
482
|
+
score: applyTemporalDecay(s.score, s.document.createdAt, s.document.tags),
|
|
483
|
+
}));
|
|
484
|
+
decayed.sort((a, b) => b.score - a.score);
|
|
485
|
+
return decayed.slice(0, limit).map((s) => s.document);
|
|
389
486
|
}
|
|
390
487
|
}
|
|
391
488
|
//# sourceMappingURL=knowledge-search.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge-search.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/knowledge/knowledge-search.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"knowledge-search.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/knowledge/knowledge-search.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Vector Store Service
|
|
2
|
+
* Vector Store Service — v2
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Local, on-device vector storage using SQLite (better-sqlite3) with optional
|
|
5
|
+
* sqlite-vec extension for native KNN search. Falls back gracefully to
|
|
6
|
+
* JavaScript cosine similarity when the extension is unavailable.
|
|
7
|
+
*
|
|
8
|
+
* v2 improvements over v1:
|
|
9
|
+
* - Binary BLOB storage (Float32Array) instead of JSON TEXT (~4× smaller, faster)
|
|
10
|
+
* - Optional sqlite-vec integration for native SQL-based KNN search (cosine metric)
|
|
11
|
+
* - Dimension validation ensures all vectors in a scope share the same width
|
|
12
|
+
* - Prepared statement caching for repeated operations
|
|
13
|
+
* - Input sanitization (NaN, Infinity rejection)
|
|
14
|
+
* - Batch upsert with transaction wrapping
|
|
15
|
+
* - Automatic schema migration from v1 (JSON TEXT) databases
|
|
7
16
|
*
|
|
8
17
|
* Storage locations:
|
|
9
18
|
* - Global scope: ~/.crewly/vector-store.db
|
|
@@ -11,6 +20,8 @@
|
|
|
11
20
|
*
|
|
12
21
|
* @module services/knowledge/vector-store.service
|
|
13
22
|
*/
|
|
23
|
+
/** Reset the sqlite-vec loader state (for testing). */
|
|
24
|
+
export declare function resetSqliteVecLoader(): void;
|
|
14
25
|
/** Constants for the vector store */
|
|
15
26
|
export declare const VECTOR_STORE_CONSTANTS: {
|
|
16
27
|
/** SQLite database filename */
|
|
@@ -21,6 +32,12 @@ export declare const VECTOR_STORE_CONSTANTS: {
|
|
|
21
32
|
readonly DEFAULT_SIMILARITY_THRESHOLD: 0.1;
|
|
22
33
|
/** Maximum metadata JSON size (bytes) */
|
|
23
34
|
readonly MAX_METADATA_SIZE: 65536;
|
|
35
|
+
/** Current schema version */
|
|
36
|
+
readonly SCHEMA_VERSION: 2;
|
|
37
|
+
/** Maximum supported embedding dimensions */
|
|
38
|
+
readonly MAX_DIMENSIONS: 4096;
|
|
39
|
+
/** Maximum items in a single batch upsert */
|
|
40
|
+
readonly MAX_BATCH_SIZE: 500;
|
|
24
41
|
};
|
|
25
42
|
/**
|
|
26
43
|
* A stored embedding record with metadata.
|
|
@@ -48,6 +65,20 @@ export interface VectorSearchResult {
|
|
|
48
65
|
/** Associated metadata */
|
|
49
66
|
metadata: Record<string, unknown>;
|
|
50
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* Convert a number array to a Float32Array Buffer for efficient BLOB storage.
|
|
70
|
+
*
|
|
71
|
+
* @param embedding - The embedding vector
|
|
72
|
+
* @returns Buffer containing the Float32Array binary data
|
|
73
|
+
*/
|
|
74
|
+
export declare function embeddingToBlob(embedding: number[]): Buffer;
|
|
75
|
+
/**
|
|
76
|
+
* Convert a BLOB Buffer back to a number array.
|
|
77
|
+
*
|
|
78
|
+
* @param blob - Buffer containing Float32Array binary data
|
|
79
|
+
* @returns The embedding as a number array
|
|
80
|
+
*/
|
|
81
|
+
export declare function blobToEmbedding(blob: Buffer): number[];
|
|
51
82
|
/**
|
|
52
83
|
* Compute cosine similarity between two vectors.
|
|
53
84
|
*
|
|
@@ -57,20 +88,32 @@ export interface VectorSearchResult {
|
|
|
57
88
|
*/
|
|
58
89
|
export declare function cosineSimilarity(a: number[], b: number[]): number;
|
|
59
90
|
/**
|
|
60
|
-
*
|
|
91
|
+
* Validate an embedding vector for storage. Rejects empty arrays, values
|
|
92
|
+
* that are not finite numbers (NaN, Infinity), and dimensions exceeding
|
|
93
|
+
* the maximum.
|
|
94
|
+
*
|
|
95
|
+
* @param embedding - The embedding to validate
|
|
96
|
+
* @throws Error if the embedding is invalid
|
|
97
|
+
*/
|
|
98
|
+
export declare function validateEmbedding(embedding: number[]): void;
|
|
99
|
+
/**
|
|
100
|
+
* VectorStoreService provides local SQLite-based vector storage with optional
|
|
101
|
+
* native KNN search via the sqlite-vec extension.
|
|
61
102
|
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
103
|
+
* When sqlite-vec is available, search uses a `vec0` virtual table with cosine
|
|
104
|
+
* distance metric for hardware-accelerated nearest-neighbor queries. When it is
|
|
105
|
+
* not available, search falls back to JavaScript cosine similarity (fully
|
|
106
|
+
* portable, no native extension required).
|
|
65
107
|
*
|
|
66
|
-
* Each scope (global / project) gets its own database file so project
|
|
67
|
-
*
|
|
108
|
+
* Each scope (global / project) gets its own database file so project data
|
|
109
|
+
* stays isolated and portable.
|
|
68
110
|
*
|
|
69
111
|
* @example
|
|
70
112
|
* ```typescript
|
|
71
113
|
* const store = VectorStoreService.getInstance();
|
|
72
114
|
* store.upsert('doc-123', embedding, { title: 'My Doc' }, 'global');
|
|
73
|
-
* const results = store.search(queryEmbedding, 'global'
|
|
115
|
+
* const results = store.search(queryEmbedding, 'global');
|
|
116
|
+
* console.log(store.isVecEnabled('global')); // true if sqlite-vec loaded
|
|
74
117
|
* ```
|
|
75
118
|
*/
|
|
76
119
|
export declare class VectorStoreService {
|
|
@@ -99,16 +142,69 @@ export declare class VectorStoreService {
|
|
|
99
142
|
*/
|
|
100
143
|
private dbPath;
|
|
101
144
|
/**
|
|
102
|
-
*
|
|
103
|
-
*
|
|
145
|
+
* Check whether the sqlite-vec native KNN search is available for a scope.
|
|
146
|
+
*
|
|
147
|
+
* @param scope - Storage scope
|
|
148
|
+
* @param projectPath - Required when scope is 'project'
|
|
149
|
+
* @returns true if vec0 virtual table is active
|
|
150
|
+
*/
|
|
151
|
+
isVecEnabled(scope: 'global' | 'project', projectPath?: string): boolean;
|
|
152
|
+
/**
|
|
153
|
+
* Get (or prepare + cache) a statement for the given database state.
|
|
154
|
+
*
|
|
155
|
+
* @param state - Database state to prepare on
|
|
156
|
+
* @param key - Unique cache key
|
|
157
|
+
* @param sql - SQL to prepare if not yet cached
|
|
158
|
+
* @returns A prepared Statement
|
|
159
|
+
*/
|
|
160
|
+
private getStmt;
|
|
161
|
+
/**
|
|
162
|
+
* Open or retrieve a cached database connection. Creates the parent
|
|
163
|
+
* directory, schema, and vec0 table (if sqlite-vec is available) on first
|
|
164
|
+
* access. Handles automatic migration from v1 databases.
|
|
104
165
|
*
|
|
105
166
|
* @param scope - Document scope
|
|
106
167
|
* @param projectPath - Project path for project-scoped databases
|
|
107
|
-
* @returns
|
|
168
|
+
* @returns Internal DatabaseState
|
|
169
|
+
*/
|
|
170
|
+
private getDbState;
|
|
171
|
+
/**
|
|
172
|
+
* Migrate database schema to v2.
|
|
173
|
+
* - Creates vec_config table for tracking schema version and dimensions
|
|
174
|
+
* - Adds dimensions column if missing
|
|
175
|
+
* - Converts JSON TEXT embeddings to BLOB if needed
|
|
176
|
+
* - Creates vec0 virtual table if sqlite-vec is available and dimensions are known
|
|
177
|
+
*
|
|
178
|
+
* @param db - The database to migrate
|
|
179
|
+
* @param vecEnabled - Whether sqlite-vec extension is loaded
|
|
180
|
+
*/
|
|
181
|
+
private migrateSchema;
|
|
182
|
+
/**
|
|
183
|
+
* Create the vec0 virtual table if it doesn't already exist and dimensions
|
|
184
|
+
* are known. Returns true if the table is ready for use.
|
|
185
|
+
*
|
|
186
|
+
* @param db - The database
|
|
187
|
+
* @param dimensions - Explicit dimensions; if omitted, reads from vec_config
|
|
188
|
+
* @returns true if vec0 table exists and is ready
|
|
189
|
+
*/
|
|
190
|
+
private ensureVecTable;
|
|
191
|
+
/**
|
|
192
|
+
* Copy all existing embeddings matching the target dimensions into the vec0
|
|
193
|
+
* virtual table.
|
|
194
|
+
*
|
|
195
|
+
* @param db - The database
|
|
196
|
+
* @param dimensions - Target embedding dimensions
|
|
197
|
+
*/
|
|
198
|
+
private backfillVecTable;
|
|
199
|
+
/**
|
|
200
|
+
* Read the stored embedding dimensions from the vec_config table.
|
|
201
|
+
*
|
|
202
|
+
* @param db - The database
|
|
203
|
+
* @returns Stored dimensions, or null if not yet determined
|
|
108
204
|
*/
|
|
109
|
-
private
|
|
205
|
+
private getStoredDimensions;
|
|
110
206
|
/**
|
|
111
|
-
* Close all open database connections.
|
|
207
|
+
* Close all open database connections and clear caches.
|
|
112
208
|
*/
|
|
113
209
|
closeAll(): void;
|
|
114
210
|
/**
|
|
@@ -119,9 +215,38 @@ export declare class VectorStoreService {
|
|
|
119
215
|
* @param metadata - Optional metadata to associate with the embedding
|
|
120
216
|
* @param scope - Storage scope ('global' or 'project')
|
|
121
217
|
* @param projectPath - Required when scope is 'project'
|
|
122
|
-
* @throws Error if
|
|
218
|
+
* @throws Error if id is empty, embedding is invalid, metadata exceeds size,
|
|
219
|
+
* or dimensions don't match previously stored embeddings
|
|
123
220
|
*/
|
|
124
221
|
upsert(id: string, embedding: number[], metadata: Record<string, unknown>, scope: 'global' | 'project', projectPath?: string): void;
|
|
222
|
+
/**
|
|
223
|
+
* Sync a single embedding to the vec0 virtual table.
|
|
224
|
+
* Uses CAST(? AS INTEGER) for rowid because sqlite-vec's vec0 virtual
|
|
225
|
+
* table does not accept JS number params directly for primary keys.
|
|
226
|
+
*
|
|
227
|
+
* @param state - Database state
|
|
228
|
+
* @param id - Document identifier
|
|
229
|
+
* @param blob - Embedding as a Float32Array buffer
|
|
230
|
+
*/
|
|
231
|
+
private syncToVec;
|
|
232
|
+
/**
|
|
233
|
+
* Batch upsert multiple embeddings in a single transaction. Significantly
|
|
234
|
+
* faster than individual upserts for bulk imports.
|
|
235
|
+
*
|
|
236
|
+
* @param items - Array of { id, embedding, metadata } objects
|
|
237
|
+
* @param scope - Storage scope
|
|
238
|
+
* @param projectPath - Required when scope is 'project'
|
|
239
|
+
* @returns Count of succeeded and failed inserts
|
|
240
|
+
* @throws Error if batch size exceeds MAX_BATCH_SIZE
|
|
241
|
+
*/
|
|
242
|
+
batchUpsert(items: Array<{
|
|
243
|
+
id: string;
|
|
244
|
+
embedding: number[];
|
|
245
|
+
metadata: Record<string, unknown>;
|
|
246
|
+
}>, scope: 'global' | 'project', projectPath?: string): {
|
|
247
|
+
succeeded: number;
|
|
248
|
+
failed: number;
|
|
249
|
+
};
|
|
125
250
|
/**
|
|
126
251
|
* Retrieve a stored embedding by document ID.
|
|
127
252
|
*
|
|
@@ -158,11 +283,9 @@ export declare class VectorStoreService {
|
|
|
158
283
|
*/
|
|
159
284
|
count(scope: 'global' | 'project', projectPath?: string): number;
|
|
160
285
|
/**
|
|
161
|
-
* Search for the most similar embeddings
|
|
162
|
-
*
|
|
163
|
-
*
|
|
164
|
-
* against the query vector, and returns the top results above the
|
|
165
|
-
* similarity threshold.
|
|
286
|
+
* Search for the most similar embeddings. Uses native vec0 KNN search when
|
|
287
|
+
* sqlite-vec is available, otherwise falls back to JavaScript cosine
|
|
288
|
+
* similarity.
|
|
166
289
|
*
|
|
167
290
|
* @param queryEmbedding - The query embedding vector
|
|
168
291
|
* @param scope - Storage scope
|
|
@@ -173,7 +296,31 @@ export declare class VectorStoreService {
|
|
|
173
296
|
*/
|
|
174
297
|
search(queryEmbedding: number[], scope: 'global' | 'project', projectPath?: string, limit?: number, threshold?: number): VectorSearchResult[];
|
|
175
298
|
/**
|
|
176
|
-
*
|
|
299
|
+
* Native KNN search using sqlite-vec's vec0 virtual table with cosine
|
|
300
|
+
* distance metric. Results are converted from cosine distance (0 = identical,
|
|
301
|
+
* 1 = orthogonal) to cosine similarity (1 = identical, 0 = orthogonal).
|
|
302
|
+
*
|
|
303
|
+
* @param state - Database state
|
|
304
|
+
* @param queryEmbedding - The query vector
|
|
305
|
+
* @param limit - Max results
|
|
306
|
+
* @param threshold - Minimum cosine similarity
|
|
307
|
+
* @returns Sorted search results
|
|
308
|
+
*/
|
|
309
|
+
private vecSearch;
|
|
310
|
+
/**
|
|
311
|
+
* JavaScript fallback search using cosine similarity on BLOB embeddings.
|
|
312
|
+
* Used when sqlite-vec is not available.
|
|
313
|
+
*
|
|
314
|
+
* @param state - Database state
|
|
315
|
+
* @param queryEmbedding - The query vector
|
|
316
|
+
* @param limit - Max results
|
|
317
|
+
* @param threshold - Minimum cosine similarity
|
|
318
|
+
* @returns Sorted search results
|
|
319
|
+
*/
|
|
320
|
+
private jsFallbackSearch;
|
|
321
|
+
/**
|
|
322
|
+
* Delete all embeddings from the store. Also resets the stored dimension
|
|
323
|
+
* constraint so that subsequent inserts may use a different embedding width.
|
|
177
324
|
*
|
|
178
325
|
* @param scope - Storage scope
|
|
179
326
|
* @param projectPath - Required when scope is 'project'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector-store.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/knowledge/vector-store.service.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"vector-store.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/knowledge/vector-store.service.ts"],"names":[],"mappings":"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"}
|