crewly 1.5.18 → 1.5.20
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 +50 -0
- package/config/domain-sops/content-production-pipeline.sop.md +76 -0
- package/config/domain-sops/content-publishing-policy.sop.md +59 -0
- package/config/domain-sops/customer-onboarding.sop.md +74 -0
- package/config/domain-sops/expert-distillation.sop.md +70 -0
- package/config/domain-sops/innovation-strategy.sop.md +26 -0
- package/config/experts/EXAMPLE.json +11 -0
- package/config/experts/EXAMPLE.md +41 -0
- package/config/experts/empathetic-resolver/expert.json +11 -0
- package/config/experts/empathetic-resolver.md +32 -0
- package/config/experts/pragmatic-architect/expert.json +11 -0
- package/config/experts/pragmatic-architect.md +32 -0
- package/config/experts/viral-alchemist/expert.json +11 -0
- package/config/experts/viral-alchemist.md +32 -0
- package/config/orchestrator_tasks/prompts/checkin-orchestrator-prompt-template.md +2 -2
- package/config/orchestrator_tasks/prompts/orchestrator-prompt.md +57 -1
- package/config/risk-policies/no-local-browser.policy.md +43 -0
- package/config/roles/developer/prompt.md +43 -0
- package/config/roles/orchestrator/fragments/role-boundary.md +31 -0
- package/config/roles/orchestrator/prompt.md +104 -0
- package/config/skills/agent/computer-use/SKILL.md +144 -93
- package/config/skills/agent/computer-use/execute.sh +847 -211
- package/config/skills/agent/core/break-down-request/SKILL.md +128 -0
- package/config/skills/agent/core/break-down-request/execute.sh +200 -0
- package/config/skills/agent/core/claim-heartbeat/execute.sh +57 -0
- package/config/skills/agent/core/claim-heartbeat/execute.test.sh +130 -0
- package/config/skills/agent/core/create-intent-tasks/execute.sh +93 -0
- package/config/skills/agent/core/create-mission/SKILL.md +78 -0
- package/config/skills/agent/core/create-mission/execute.sh +141 -0
- package/config/skills/agent/core/create-request/SKILL.md +132 -0
- package/config/skills/agent/core/create-request/execute.sh +176 -0
- package/config/skills/agent/core/create-task/SKILL.md +76 -0
- package/config/skills/agent/core/create-task/execute.sh +134 -0
- package/config/skills/agent/core/decompose-intent/execute.sh +106 -0
- package/config/skills/agent/core/extend-lease/execute.sh +63 -0
- package/config/skills/agent/core/extend-lease/execute.test.sh +46 -0
- package/config/skills/agent/core/get-my-context/execute.sh +85 -8
- package/config/skills/agent/core/get-my-tasks/SKILL.md +58 -0
- package/config/skills/agent/core/get-my-tasks/execute.sh +77 -6
- package/config/skills/agent/core/handoff-task/execute.sh +139 -95
- package/config/skills/agent/core/handoff-task/execute.test.sh +348 -0
- package/config/skills/agent/core/poll-tasks/execute.sh +182 -0
- package/config/skills/agent/core/poll-tasks/execute.test.sh +215 -0
- package/config/skills/agent/core/register-self/execute.sh +102 -14
- package/config/skills/agent/core/release-claim/execute.sh +53 -0
- package/config/skills/agent/core/release-claim/execute.test.sh +46 -0
- package/config/skills/agent/core/report-status/execute.sh +44 -0
- package/config/skills/agent/core/update-intent-task/execute.sh +93 -0
- package/config/skills/agent/core/work-loop/execute.sh +130 -0
- package/config/skills/agent/core/work-loop/execute.test.sh +52 -0
- package/config/skills/agent/core/workspace/execute.sh +270 -0
- package/config/skills/agent/core/workspace/execute.test.sh +185 -0
- package/config/skills/agent/remote-browser/SOP-google-flow-video.md +202 -0
- package/config/skills/agent/remote-browser/execute.sh +287 -0
- package/config/skills/agent/v3/plan-request/SKILL.md +72 -0
- package/config/skills/agent/v3/plan-request/execute.sh +116 -0
- package/config/skills/orchestrator/decompose-mission/SKILL.md +78 -0
- package/config/skills/orchestrator/decompose-mission/execute.sh +138 -0
- package/config/skills/orchestrator/delegate-task/SKILL.md +4 -3
- package/config/skills/orchestrator/delegate-task/execute.sh +43 -97
- package/config/skills/orchestrator/design-team/SKILL.md +51 -0
- package/config/skills/orchestrator/design-team/execute.sh +145 -0
- package/config/skills/orchestrator/measure-kr/SKILL.md +47 -0
- package/config/skills/orchestrator/measure-kr/execute.sh +87 -0
- package/config/skills/orchestrator/review-mission/SKILL.md +61 -0
- package/config/skills/orchestrator/review-mission/execute.sh +127 -0
- package/config/skills/team-leader/aggregate-results/execute.sh +25 -74
- package/config/skills/team-leader/delegate-task/SKILL.md +10 -0
- package/config/skills/team-leader/delegate-task/execute.sh +42 -3
- package/config/skills/team-leader/design-checklist/SKILL.md +122 -0
- package/config/skills/team-leader/design-checklist/execute.sh +157 -0
- package/config/skills/team-leader/verify-output/execute.sh +42 -0
- package/config/sops/xhs-requirement-log.v1.md +238 -0
- package/config/templates/agent-gemini-md.md +3 -1
- package/config/templates/ai-video-social-team.json +22 -0
- package/config/templates/broker-squad-v1.json +22 -0
- package/config/templates/customer-loyalty-team.json +44 -0
- package/config/templates/customer-ops-team.json +22 -0
- package/config/templates/dtc-viral-content-team.json +58 -0
- package/config/templates/expert-innovation-team.json +60 -0
- package/config/templates/growth-marketing-team.json +22 -0
- package/config/templates/pragmatic-mvp-dev-team.json +58 -0
- package/config/templates/pro-sops/norms/content-production-pipeline.md +39 -0
- package/config/templates/pro-sops/norms/customer-onboarding-sop.md +40 -0
- package/config/templates/prop-manager-v1.json +22 -0
- package/dist/backend/backend/src/constants.d.ts +5 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +5 -0
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/browser/browser.controller.d.ts +12 -2
- package/dist/backend/backend/src/controllers/browser/browser.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/browser/browser.controller.js +34 -20
- package/dist/backend/backend/src/controllers/browser/browser.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/browser/browser.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/browser/browser.routes.js +4 -2
- package/dist/backend/backend/src/controllers/browser/browser.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/chat/chat.controller.js +28 -0
- package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.js +5 -2
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/content-approvals/content-approvals.controller.d.ts +72 -0
- package/dist/backend/backend/src/controllers/content-approvals/content-approvals.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/content-approvals/content-approvals.controller.js +202 -0
- package/dist/backend/backend/src/controllers/content-approvals/content-approvals.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/content-approvals/content-approvals.routes.d.ts +16 -0
- package/dist/backend/backend/src/controllers/content-approvals/content-approvals.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/content-approvals/content-approvals.routes.js +32 -0
- package/dist/backend/backend/src/controllers/content-approvals/content-approvals.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/eval/eval.controller.d.ts +63 -0
- package/dist/backend/backend/src/controllers/eval/eval.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/eval/eval.controller.js +228 -0
- package/dist/backend/backend/src/controllers/eval/eval.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/eval/eval.routes.d.ts +23 -0
- package/dist/backend/backend/src/controllers/eval/eval.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/eval/eval.routes.js +37 -0
- package/dist/backend/backend/src/controllers/eval/eval.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/expert/expert.controller.d.ts +29 -0
- package/dist/backend/backend/src/controllers/expert/expert.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/expert/expert.controller.js +79 -0
- package/dist/backend/backend/src/controllers/expert/expert.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/expert/expert.routes.d.ts +15 -0
- package/dist/backend/backend/src/controllers/expert/expert.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/expert/expert.routes.js +21 -0
- package/dist/backend/backend/src/controllers/expert/expert.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/expert/index.d.ts +9 -0
- package/dist/backend/backend/src/controllers/expert/index.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/expert/index.js +9 -0
- package/dist/backend/backend/src/controllers/expert/index.js.map +1 -0
- package/dist/backend/backend/src/controllers/fission/fission.controller.d.ts +80 -0
- package/dist/backend/backend/src/controllers/fission/fission.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/fission/fission.controller.js +264 -0
- package/dist/backend/backend/src/controllers/fission/fission.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/fission/fission.routes.d.ts +15 -0
- package/dist/backend/backend/src/controllers/fission/fission.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/fission/fission.routes.js +29 -0
- package/dist/backend/backend/src/controllers/fission/fission.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/growth/growth.controller.d.ts +29 -0
- package/dist/backend/backend/src/controllers/growth/growth.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/growth/growth.controller.js +74 -0
- package/dist/backend/backend/src/controllers/growth/growth.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/growth/growth.routes.d.ts +20 -0
- package/dist/backend/backend/src/controllers/growth/growth.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/growth/growth.routes.js +26 -0
- package/dist/backend/backend/src/controllers/growth/growth.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/index.d.ts +5 -1
- package/dist/backend/backend/src/controllers/index.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/index.js +9 -1
- package/dist/backend/backend/src/controllers/index.js.map +1 -1
- package/dist/backend/backend/src/controllers/intent-task/index.d.ts +9 -0
- package/dist/backend/backend/src/controllers/intent-task/index.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/intent-task/index.js +9 -0
- package/dist/backend/backend/src/controllers/intent-task/index.js.map +1 -0
- package/dist/backend/backend/src/controllers/intent-task/intent-task.controller.d.ts +85 -0
- package/dist/backend/backend/src/controllers/intent-task/intent-task.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/intent-task/intent-task.controller.js +356 -0
- package/dist/backend/backend/src/controllers/intent-task/intent-task.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/intent-task/intent-task.routes.d.ts +19 -0
- package/dist/backend/backend/src/controllers/intent-task/intent-task.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/intent-task/intent-task.routes.js +43 -0
- package/dist/backend/backend/src/controllers/intent-task/intent-task.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/knowledge-v3/index.d.ts +8 -0
- package/dist/backend/backend/src/controllers/knowledge-v3/index.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/knowledge-v3/index.js +8 -0
- package/dist/backend/backend/src/controllers/knowledge-v3/index.js.map +1 -0
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.controller.d.ts +63 -0
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.controller.js +179 -0
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.routes.d.ts +22 -0
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.routes.js +34 -0
- package/dist/backend/backend/src/controllers/knowledge-v3/knowledge-v3.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.js +38 -1
- package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.js +11 -0
- package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/mission/kr.controller.d.ts +40 -0
- package/dist/backend/backend/src/controllers/mission/kr.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/mission/kr.controller.js +131 -0
- package/dist/backend/backend/src/controllers/mission/kr.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/mission/mission-policy.controller.d.ts +71 -0
- package/dist/backend/backend/src/controllers/mission/mission-policy.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/mission/mission-policy.controller.js +270 -0
- package/dist/backend/backend/src/controllers/mission/mission-policy.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/mission/mission-policy.routes.d.ts +16 -0
- package/dist/backend/backend/src/controllers/mission/mission-policy.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/mission/mission-policy.routes.js +327 -0
- package/dist/backend/backend/src/controllers/mission/mission-policy.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/monitoring/monitoring.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/monitoring.routes.js +5 -1
- package/dist/backend/backend/src/controllers/monitoring/monitoring.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/token-usage.controller.d.ts +19 -0
- package/dist/backend/backend/src/controllers/monitoring/token-usage.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/token-usage.controller.js +36 -0
- package/dist/backend/backend/src/controllers/monitoring/token-usage.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/onboarding/index.d.ts +7 -0
- package/dist/backend/backend/src/controllers/onboarding/index.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/onboarding/index.js +7 -0
- package/dist/backend/backend/src/controllers/onboarding/index.js.map +1 -0
- package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.d.ts +24 -0
- package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.js +340 -0
- package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/onboarding/website-analysis.routes.d.ts +21 -0
- package/dist/backend/backend/src/controllers/onboarding/website-analysis.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/onboarding/website-analysis.routes.js +181 -0
- package/dist/backend/backend/src/controllers/onboarding/website-analysis.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/payment/payment.controller.js +1 -1
- package/dist/backend/backend/src/controllers/payment/payment.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/payment/payment.types.d.ts +1 -1
- package/dist/backend/backend/src/controllers/payment/payment.types.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/payment/payment.types.js +1 -1
- package/dist/backend/backend/src/controllers/payment/payment.types.js.map +1 -1
- package/dist/backend/backend/src/controllers/project/project.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/project/project.controller.js +0 -2
- package/dist/backend/backend/src/controllers/project/project.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/project/project.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/project/project.routes.js +9 -5
- package/dist/backend/backend/src/controllers/project/project.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/provisioning/provisioning.controller.d.ts +84 -0
- package/dist/backend/backend/src/controllers/provisioning/provisioning.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/provisioning/provisioning.controller.js +189 -0
- package/dist/backend/backend/src/controllers/provisioning/provisioning.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/provisioning/provisioning.routes.d.ts +16 -0
- package/dist/backend/backend/src/controllers/provisioning/provisioning.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/provisioning/provisioning.routes.js +29 -0
- package/dist/backend/backend/src/controllers/provisioning/provisioning.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/reconciler/reconciler.controller.d.ts +51 -0
- package/dist/backend/backend/src/controllers/reconciler/reconciler.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/reconciler/reconciler.controller.js +106 -0
- package/dist/backend/backend/src/controllers/reconciler/reconciler.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/reconciler/reconciler.routes.d.ts +15 -0
- package/dist/backend/backend/src/controllers/reconciler/reconciler.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/reconciler/reconciler.routes.js +25 -0
- package/dist/backend/backend/src/controllers/reconciler/reconciler.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/request/request.controller.d.ts +55 -0
- package/dist/backend/backend/src/controllers/request/request.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/request/request.controller.js +168 -0
- package/dist/backend/backend/src/controllers/request/request.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/request/request.routes.d.ts +23 -0
- package/dist/backend/backend/src/controllers/request/request.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/request/request.routes.js +37 -0
- package/dist/backend/backend/src/controllers/request/request.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/slack/slack.controller.js +18 -1
- 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 +20 -57
- 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 +283 -385
- package/dist/backend/backend/src/controllers/task-management/task-management.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts +180 -0
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js +737 -0
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.d.ts +15 -0
- package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.js +45 -0
- package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/task-projection/task-projection.controller.d.ts +75 -0
- package/dist/backend/backend/src/controllers/task-projection/task-projection.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/task-projection/task-projection.controller.js +170 -0
- package/dist/backend/backend/src/controllers/task-projection/task-projection.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/task-projection/task-projection.routes.d.ts +10 -0
- package/dist/backend/backend/src/controllers/task-projection/task-projection.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/task-projection/task-projection.routes.js +29 -0
- package/dist/backend/backend/src/controllers/task-projection/task-projection.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/team/team.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.routes.js +16 -12
- package/dist/backend/backend/src/controllers/team/team.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/template/template.controller.d.ts +4 -4
- package/dist/backend/backend/src/controllers/template/template.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/template/template.controller.js +73 -31
- package/dist/backend/backend/src/controllers/template/template.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/trigger/trigger.controller.d.ts +50 -0
- package/dist/backend/backend/src/controllers/trigger/trigger.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/trigger/trigger.controller.js +125 -0
- package/dist/backend/backend/src/controllers/trigger/trigger.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/trigger/trigger.routes.d.ts +26 -0
- package/dist/backend/backend/src/controllers/trigger/trigger.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/trigger/trigger.routes.js +38 -0
- package/dist/backend/backend/src/controllers/trigger/trigger.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/user/user-validation.d.ts +86 -0
- package/dist/backend/backend/src/controllers/user/user-validation.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/user/user-validation.js +165 -0
- package/dist/backend/backend/src/controllers/user/user-validation.js.map +1 -0
- package/dist/backend/backend/src/controllers/user/user.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/user/user.routes.js +7 -4
- package/dist/backend/backend/src/controllers/user/user.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/v2-workspace/workspace.controller.d.ts +72 -0
- package/dist/backend/backend/src/controllers/v2-workspace/workspace.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/v2-workspace/workspace.controller.js +236 -0
- package/dist/backend/backend/src/controllers/v2-workspace/workspace.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/v2-workspace/workspace.routes.d.ts +15 -0
- package/dist/backend/backend/src/controllers/v2-workspace/workspace.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/v2-workspace/workspace.routes.js +31 -0
- package/dist/backend/backend/src/controllers/v2-workspace/workspace.routes.js.map +1 -0
- package/dist/backend/backend/src/index.d.ts +18 -0
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +643 -11
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/middleware/cache.middleware.d.ts +43 -0
- package/dist/backend/backend/src/middleware/cache.middleware.d.ts.map +1 -0
- package/dist/backend/backend/src/middleware/cache.middleware.js +103 -0
- package/dist/backend/backend/src/middleware/cache.middleware.js.map +1 -0
- package/dist/backend/backend/src/middleware/require-auth.middleware.d.ts +49 -9
- package/dist/backend/backend/src/middleware/require-auth.middleware.d.ts.map +1 -1
- package/dist/backend/backend/src/middleware/require-auth.middleware.js +115 -9
- package/dist/backend/backend/src/middleware/require-auth.middleware.js.map +1 -1
- package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/routes/api.routes.js +77 -0
- package/dist/backend/backend/src/routes/api.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 +4 -0
- package/dist/backend/backend/src/routes/modules/task-management.routes.js.map +1 -1
- package/dist/backend/backend/src/scripts/backfill-mission-priority.d.ts +43 -0
- package/dist/backend/backend/src/scripts/backfill-mission-priority.d.ts.map +1 -0
- package/dist/backend/backend/src/scripts/backfill-mission-priority.js +90 -0
- package/dist/backend/backend/src/scripts/backfill-mission-priority.js.map +1 -0
- package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.d.ts +6 -9
- 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 +43 -30
- 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.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.js +14 -0
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts +66 -1
- 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 +282 -4
- 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/crewly-agent-external-runtime.service.d.ts +60 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +407 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/cli-adapter.d.ts +130 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/cli-adapter.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/cli-adapter.js +406 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/cli-adapter.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/crewly-agent-adapter.d.ts +68 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/crewly-agent-adapter.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/crewly-agent-adapter.js +206 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/crewly-agent-adapter.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/index.d.ts +32 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/index.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/index.js +46 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/adapters/index.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/context-generator.d.ts +87 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/context-generator.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/context-generator.js +299 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/context-generator.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-runner.d.ts +59 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-runner.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-runner.js +218 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-runner.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-scorer.d.ts +203 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-scorer.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-scorer.js +467 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-scorer.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-types.d.ts +313 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-types.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-types.js +45 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/eval-types.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/index.d.ts +21 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/index.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/index.js +21 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/index.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-cli.d.ts +15 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-cli.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-cli.js +349 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-cli.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-l4.d.ts +97 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-l4.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-l4.js +414 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-l4.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-standalone.d.ts +42 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-standalone.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-standalone.js +403 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/run-eval-standalone.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/index.d.ts +41 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/index.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/index.js +58 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/index.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l1-tasks.d.ts +15 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l1-tasks.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l1-tasks.js +396 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l1-tasks.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l2-tasks.d.ts +14 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l2-tasks.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l2-tasks.js +564 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l2-tasks.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l3-tasks.d.ts +13 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l3-tasks.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l3-tasks.js +634 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l3-tasks.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l4-tasks.d.ts +21 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l4-tasks.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l4-tasks.js +1036 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tasks/l4-tasks.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tool-log-parser.d.ts +100 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tool-log-parser.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tool-log-parser.js +187 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/eval/tool-log-parser.js.map +1 -0
- 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 +43 -6
- 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 +7 -0
- 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.map +1 -1
- package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts +10 -0
- package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/idle-detection.service.js +63 -0
- package/dist/backend/backend/src/services/agent/idle-detection.service.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/expert-profile.module.d.ts +41 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/expert-profile.module.d.ts.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/expert-profile.module.js +95 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/expert-profile.module.js.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js +21 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +47 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.d.ts +26 -2
- package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.js +191 -8
- package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js +4 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/team-norms.module.d.ts +61 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/team-norms.module.d.ts.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/team-norms.module.js +197 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/team-norms.module.js.map +1 -0
- package/dist/backend/backend/src/services/browser/browser-bridge.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-bridge.service.js +3 -1
- package/dist/backend/backend/src/services/browser/browser-bridge.service.js.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-proxy.service.d.ts +11 -2
- package/dist/backend/backend/src/services/browser/browser-proxy.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-proxy.service.js +59 -10
- package/dist/backend/backend/src/services/browser/browser-proxy.service.js.map +1 -1
- package/dist/backend/backend/src/services/cache/redis-cache.service.d.ts +115 -0
- package/dist/backend/backend/src/services/cache/redis-cache.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/cache/redis-cache.service.js +316 -0
- package/dist/backend/backend/src/services/cache/redis-cache.service.js.map +1 -0
- package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts +8 -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 +55 -4
- package/dist/backend/backend/src/services/cloud/cloud-client.service.js.map +1 -1
- package/dist/backend/backend/src/services/core/logger.service.js +1 -1
- package/dist/backend/backend/src/services/core/logger.service.js.map +1 -1
- package/dist/backend/backend/src/services/core/storage.service.d.ts +33 -0
- package/dist/backend/backend/src/services/core/storage.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/core/storage.service.js +54 -0
- package/dist/backend/backend/src/services/core/storage.service.js.map +1 -1
- package/dist/backend/backend/src/services/core/system-health.util.d.ts +23 -0
- package/dist/backend/backend/src/services/core/system-health.util.d.ts.map +1 -0
- package/dist/backend/backend/src/services/core/system-health.util.js +44 -0
- package/dist/backend/backend/src/services/core/system-health.util.js.map +1 -0
- package/dist/backend/backend/src/services/fission/fission-guard.service.d.ts +188 -0
- package/dist/backend/backend/src/services/fission/fission-guard.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/fission/fission-guard.service.js +372 -0
- package/dist/backend/backend/src/services/fission/fission-guard.service.js.map +1 -0
- package/dist/backend/backend/src/services/fission/fission-guard.types.d.ts +137 -0
- package/dist/backend/backend/src/services/fission/fission-guard.types.d.ts.map +1 -0
- package/dist/backend/backend/src/services/fission/fission-guard.types.js +133 -0
- package/dist/backend/backend/src/services/fission/fission-guard.types.js.map +1 -0
- package/dist/backend/backend/src/services/intent-task/intent-decomposition.service.d.ts +91 -0
- package/dist/backend/backend/src/services/intent-task/intent-decomposition.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/intent-task/intent-decomposition.service.js +179 -0
- package/dist/backend/backend/src/services/intent-task/intent-decomposition.service.js.map +1 -0
- package/dist/backend/backend/src/services/intent-task/intent-task-follow-up.service.d.ts +138 -0
- package/dist/backend/backend/src/services/intent-task/intent-task-follow-up.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/intent-task/intent-task-follow-up.service.js +244 -0
- package/dist/backend/backend/src/services/intent-task/intent-task-follow-up.service.js.map +1 -0
- package/dist/backend/backend/src/services/intent-task/intent-task.service.d.ts +333 -0
- package/dist/backend/backend/src/services/intent-task/intent-task.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/intent-task/intent-task.service.js +843 -0
- package/dist/backend/backend/src/services/intent-task/intent-task.service.js.map +1 -0
- package/dist/backend/backend/src/services/knowledge/fts5-index.service.d.ts +118 -0
- package/dist/backend/backend/src/services/knowledge/fts5-index.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/knowledge/fts5-index.service.js +220 -0
- package/dist/backend/backend/src/services/knowledge/fts5-index.service.js.map +1 -0
- package/dist/backend/backend/src/services/knowledge/fts5-search-strategy.d.ts +56 -0
- package/dist/backend/backend/src/services/knowledge/fts5-search-strategy.d.ts.map +1 -0
- package/dist/backend/backend/src/services/knowledge/fts5-search-strategy.js +91 -0
- package/dist/backend/backend/src/services/knowledge/fts5-search-strategy.js.map +1 -0
- package/dist/backend/backend/src/services/knowledge/wiki-compiler.service.d.ts +115 -0
- package/dist/backend/backend/src/services/knowledge/wiki-compiler.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/knowledge/wiki-compiler.service.js +215 -0
- package/dist/backend/backend/src/services/knowledge/wiki-compiler.service.js.map +1 -0
- package/dist/backend/backend/src/services/marketplace/marketplace-auto-update.service.d.ts +34 -0
- package/dist/backend/backend/src/services/marketplace/marketplace-auto-update.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/marketplace/marketplace-auto-update.service.js +128 -0
- package/dist/backend/backend/src/services/marketplace/marketplace-auto-update.service.js.map +1 -0
- package/dist/backend/backend/src/services/memory/agent-memory.service.d.ts +11 -0
- package/dist/backend/backend/src/services/memory/agent-memory.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/memory/agent-memory.service.js +76 -11
- package/dist/backend/backend/src/services/memory/agent-memory.service.js.map +1 -1
- package/dist/backend/backend/src/services/memory/embedding-provider.d.ts +78 -0
- package/dist/backend/backend/src/services/memory/embedding-provider.d.ts.map +1 -0
- package/dist/backend/backend/src/services/memory/embedding-provider.js +185 -0
- package/dist/backend/backend/src/services/memory/embedding-provider.js.map +1 -0
- package/dist/backend/backend/src/services/memory/vector-store.service.d.ts +331 -0
- package/dist/backend/backend/src/services/memory/vector-store.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/memory/vector-store.service.js +814 -0
- package/dist/backend/backend/src/services/memory/vector-store.service.js.map +1 -0
- package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts +15 -0
- 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 +42 -0
- package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/thread-status-queue.service.d.ts +8 -0
- package/dist/backend/backend/src/services/messaging/thread-status-queue.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/thread-status-queue.service.js +20 -0
- package/dist/backend/backend/src/services/messaging/thread-status-queue.service.js.map +1 -1
- package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts +17 -0
- 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 +62 -0
- package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/monitoring/claude-session-tokens.service.d.ts +81 -0
- package/dist/backend/backend/src/services/monitoring/claude-session-tokens.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/monitoring/claude-session-tokens.service.js +287 -0
- package/dist/backend/backend/src/services/monitoring/claude-session-tokens.service.js.map +1 -0
- package/dist/backend/backend/src/services/monitoring/runtime-token-parser.service.d.ts +73 -0
- package/dist/backend/backend/src/services/monitoring/runtime-token-parser.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/monitoring/runtime-token-parser.service.js +199 -0
- package/dist/backend/backend/src/services/monitoring/runtime-token-parser.service.js.map +1 -0
- package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.d.ts +7 -0
- package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.js +37 -6
- package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.js.map +1 -1
- package/dist/backend/backend/src/services/monitoring/token-usage.service.d.ts +56 -4
- package/dist/backend/backend/src/services/monitoring/token-usage.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/monitoring/token-usage.service.js +102 -7
- package/dist/backend/backend/src/services/monitoring/token-usage.service.js.map +1 -1
- package/dist/backend/backend/src/services/onboarding/brand-onboarding.service.d.ts +5 -1
- package/dist/backend/backend/src/services/onboarding/brand-onboarding.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/onboarding/brand-onboarding.service.js +41 -0
- package/dist/backend/backend/src/services/onboarding/brand-onboarding.service.js.map +1 -1
- package/dist/backend/backend/src/services/onboarding/brand-onboarding.types.d.ts +36 -0
- package/dist/backend/backend/src/services/onboarding/brand-onboarding.types.d.ts.map +1 -1
- package/dist/backend/backend/src/services/onboarding/brand-onboarding.types.js.map +1 -1
- package/dist/backend/backend/src/services/onboarding/onboarding-provision.service.d.ts +51 -0
- package/dist/backend/backend/src/services/onboarding/onboarding-provision.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/onboarding/onboarding-provision.service.js +136 -0
- package/dist/backend/backend/src/services/onboarding/onboarding-provision.service.js.map +1 -0
- package/dist/backend/backend/src/services/onboarding/onboarding-provision.types.d.ts +178 -0
- package/dist/backend/backend/src/services/onboarding/onboarding-provision.types.d.ts.map +1 -0
- package/dist/backend/backend/src/services/onboarding/onboarding-provision.types.js +163 -0
- package/dist/backend/backend/src/services/onboarding/onboarding-provision.types.js.map +1 -0
- package/dist/backend/backend/src/services/onboarding/website-analysis.service.d.ts +141 -0
- package/dist/backend/backend/src/services/onboarding/website-analysis.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/onboarding/website-analysis.service.js +411 -0
- package/dist/backend/backend/src/services/onboarding/website-analysis.service.js.map +1 -0
- package/dist/backend/backend/src/services/onboarding/website-analysis.types.d.ts +129 -0
- package/dist/backend/backend/src/services/onboarding/website-analysis.types.d.ts.map +1 -0
- package/dist/backend/backend/src/services/onboarding/website-analysis.types.js +10 -0
- package/dist/backend/backend/src/services/onboarding/website-analysis.types.js.map +1 -0
- package/dist/backend/backend/src/services/onboarding/website-extractor.service.d.ts +241 -0
- package/dist/backend/backend/src/services/onboarding/website-extractor.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/onboarding/website-extractor.service.js +605 -0
- package/dist/backend/backend/src/services/onboarding/website-extractor.service.js.map +1 -0
- package/dist/backend/backend/src/services/payment/stripe.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/payment/stripe.service.js +17 -11
- package/dist/backend/backend/src/services/payment/stripe.service.js.map +1 -1
- package/dist/backend/backend/src/services/policy/default-policies.d.ts +66 -0
- package/dist/backend/backend/src/services/policy/default-policies.d.ts.map +1 -0
- package/dist/backend/backend/src/services/policy/default-policies.js +120 -0
- package/dist/backend/backend/src/services/policy/default-policies.js.map +1 -0
- package/dist/backend/backend/src/services/policy/policy-enforcement.service.d.ts +77 -0
- package/dist/backend/backend/src/services/policy/policy-enforcement.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/policy/policy-enforcement.service.js +164 -0
- package/dist/backend/backend/src/services/policy/policy-enforcement.service.js.map +1 -0
- package/dist/backend/backend/src/services/project/active-projects.service.d.ts +0 -4
- package/dist/backend/backend/src/services/project/active-projects.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project/active-projects.service.js +1 -43
- package/dist/backend/backend/src/services/project/active-projects.service.js.map +1 -1
- package/dist/backend/backend/src/services/project/task.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project/task.service.js +88 -48
- package/dist/backend/backend/src/services/project/task.service.js.map +1 -1
- package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.service.d.ts +137 -0
- package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.service.js +410 -0
- package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.service.js.map +1 -0
- package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.types.d.ts +182 -0
- package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.types.d.ts.map +1 -0
- package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.types.js +84 -0
- package/dist/backend/backend/src/services/provisioning/deployment-orchestrator.types.js.map +1 -0
- package/dist/backend/backend/src/services/provisioning/deployment-status.service.d.ts +149 -0
- package/dist/backend/backend/src/services/provisioning/deployment-status.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/provisioning/deployment-status.service.js +201 -0
- package/dist/backend/backend/src/services/provisioning/deployment-status.service.js.map +1 -0
- package/dist/backend/backend/src/services/provisioning/provisioning.service.d.ts +135 -0
- package/dist/backend/backend/src/services/provisioning/provisioning.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/provisioning/provisioning.service.js +261 -0
- package/dist/backend/backend/src/services/provisioning/provisioning.service.js.map +1 -0
- package/dist/backend/backend/src/services/provisioning/provisioning.types.d.ts +184 -0
- package/dist/backend/backend/src/services/provisioning/provisioning.types.d.ts.map +1 -0
- package/dist/backend/backend/src/services/provisioning/provisioning.types.js +119 -0
- package/dist/backend/backend/src/services/provisioning/provisioning.types.js.map +1 -0
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts +229 -0
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -0
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +666 -0
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.js.map +1 -0
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts +141 -0
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts.map +1 -0
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js +470 -0
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -0
- package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts +144 -0
- package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/reconciler/reconciler.service.js +360 -0
- package/dist/backend/backend/src/services/reconciler/reconciler.service.js.map +1 -0
- package/dist/backend/backend/src/services/session/pty/pty-session-backend.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/pty/pty-session-backend.js +4 -3
- package/dist/backend/backend/src/services/session/pty/pty-session-backend.js.map +1 -1
- package/dist/backend/backend/src/services/session/session-handoff.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/session-handoff.service.js +13 -0
- package/dist/backend/backend/src/services/session/session-handoff.service.js.map +1 -1
- package/dist/backend/backend/src/services/skill/skill-permission.service.d.ts +59 -0
- package/dist/backend/backend/src/services/skill/skill-permission.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/skill/skill-permission.service.js +141 -0
- package/dist/backend/backend/src/services/skill/skill-permission.service.js.map +1 -0
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +13 -0
- 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 +124 -0
- 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.map +1 -1
- package/dist/backend/backend/src/services/slack/slack.service.js +78 -0
- package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/claim.service.d.ts +190 -0
- package/dist/backend/backend/src/services/task-pool/claim.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/task-pool/claim.service.js +354 -0
- package/dist/backend/backend/src/services/task-pool/claim.service.js.map +1 -0
- package/dist/backend/backend/src/services/task-pool/pool-storage.d.ts +146 -0
- package/dist/backend/backend/src/services/task-pool/pool-storage.d.ts.map +1 -0
- package/dist/backend/backend/src/services/task-pool/pool-storage.js +243 -0
- package/dist/backend/backend/src/services/task-pool/pool-storage.js.map +1 -0
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +288 -0
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js +653 -0
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -0
- package/dist/backend/backend/src/services/template/template.service.d.ts +2 -0
- package/dist/backend/backend/src/services/template/template.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/template/template.service.js +17 -3
- package/dist/backend/backend/src/services/template/template.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts +90 -0
- package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js +394 -0
- package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/escalation-router.service.d.ts +100 -0
- package/dist/backend/backend/src/services/v3/escalation-router.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/escalation-router.service.js +357 -0
- package/dist/backend/backend/src/services/v3/escalation-router.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/escalation.service.d.ts +148 -0
- package/dist/backend/backend/src/services/v3/escalation.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/escalation.service.js +371 -0
- package/dist/backend/backend/src/services/v3/escalation.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/kr-tracking.service.d.ts +109 -0
- package/dist/backend/backend/src/services/v3/kr-tracking.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/kr-tracking.service.js +314 -0
- package/dist/backend/backend/src/services/v3/kr-tracking.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/mission-executor.service.d.ts +117 -0
- package/dist/backend/backend/src/services/v3/mission-executor.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/mission-executor.service.js +301 -0
- package/dist/backend/backend/src/services/v3/mission-executor.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/mission-period.service.d.ts +73 -0
- package/dist/backend/backend/src/services/v3/mission-period.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/mission-period.service.js +200 -0
- package/dist/backend/backend/src/services/v3/mission-period.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/okr-review.service.d.ts +58 -0
- package/dist/backend/backend/src/services/v3/okr-review.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/okr-review.service.js +221 -0
- package/dist/backend/backend/src/services/v3/okr-review.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/project-task-watcher.service.d.ts +118 -0
- package/dist/backend/backend/src/services/v3/project-task-watcher.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/project-task-watcher.service.js +326 -0
- package/dist/backend/backend/src/services/v3/project-task-watcher.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/request-notification.service.d.ts +52 -0
- package/dist/backend/backend/src/services/v3/request-notification.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/request-notification.service.js +161 -0
- package/dist/backend/backend/src/services/v3/request-notification.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/request-tracker.service.d.ts +78 -0
- package/dist/backend/backend/src/services/v3/request-tracker.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/request-tracker.service.js +108 -0
- package/dist/backend/backend/src/services/v3/request-tracker.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/request.service.d.ts +166 -0
- package/dist/backend/backend/src/services/v3/request.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/request.service.js +310 -0
- package/dist/backend/backend/src/services/v3/request.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/service-contract-gate.service.d.ts +88 -0
- package/dist/backend/backend/src/services/v3/service-contract-gate.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/service-contract-gate.service.js +138 -0
- package/dist/backend/backend/src/services/v3/service-contract-gate.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/task-projection.service.d.ts +128 -0
- package/dist/backend/backend/src/services/v3/task-projection.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/task-projection.service.js +378 -0
- package/dist/backend/backend/src/services/v3/task-projection.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/team-trigger-reconciler.service.d.ts +77 -0
- package/dist/backend/backend/src/services/v3/team-trigger-reconciler.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/team-trigger-reconciler.service.js +177 -0
- package/dist/backend/backend/src/services/v3/team-trigger-reconciler.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/tl-auto-verify.service.d.ts +63 -0
- package/dist/backend/backend/src/services/v3/tl-auto-verify.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/tl-auto-verify.service.js +169 -0
- package/dist/backend/backend/src/services/v3/tl-auto-verify.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/trigger-engine.service.d.ts +263 -0
- package/dist/backend/backend/src/services/v3/trigger-engine.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/trigger-engine.service.js +632 -0
- package/dist/backend/backend/src/services/v3/trigger-engine.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/v3-data.service.d.ts +298 -0
- package/dist/backend/backend/src/services/v3/v3-data.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/v3-data.service.js +1075 -0
- package/dist/backend/backend/src/services/v3/v3-data.service.js.map +1 -0
- package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts +5 -11
- package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/workflow/scheduler.service.js +34 -23
- package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
- package/dist/backend/backend/src/services/workspace/workspace.service.d.ts +120 -0
- package/dist/backend/backend/src/services/workspace/workspace.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/workspace/workspace.service.js +271 -0
- package/dist/backend/backend/src/services/workspace/workspace.service.js.map +1 -0
- package/dist/backend/backend/src/types/index.d.ts +42 -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/intent-task.types.d.ts +386 -0
- package/dist/backend/backend/src/types/intent-task.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/intent-task.types.js +231 -0
- package/dist/backend/backend/src/types/intent-task.types.js.map +1 -0
- package/dist/backend/backend/src/types/memory.types.d.ts +19 -0
- package/dist/backend/backend/src/types/memory.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/memory.types.js.map +1 -1
- package/dist/backend/backend/src/types/team-template.types.d.ts +54 -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/types/v2/claim.types.d.ts +140 -0
- package/dist/backend/backend/src/types/v2/claim.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/v2/claim.types.js +180 -0
- package/dist/backend/backend/src/types/v2/claim.types.js.map +1 -0
- package/dist/backend/backend/src/types/v2/index.d.ts +30 -0
- package/dist/backend/backend/src/types/v2/index.d.ts.map +1 -0
- package/dist/backend/backend/src/types/v2/index.js +22 -0
- package/dist/backend/backend/src/types/v2/index.js.map +1 -0
- package/dist/backend/backend/src/types/v2/key-result.types.d.ts +195 -0
- package/dist/backend/backend/src/types/v2/key-result.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/v2/key-result.types.js +194 -0
- package/dist/backend/backend/src/types/v2/key-result.types.js.map +1 -0
- package/dist/backend/backend/src/types/v2/mission.types.d.ts +408 -0
- package/dist/backend/backend/src/types/v2/mission.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/v2/mission.types.js +482 -0
- package/dist/backend/backend/src/types/v2/mission.types.js.map +1 -0
- package/dist/backend/backend/src/types/v2/reconcile.types.d.ts +199 -0
- package/dist/backend/backend/src/types/v2/reconcile.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/v2/reconcile.types.js +121 -0
- package/dist/backend/backend/src/types/v2/reconcile.types.js.map +1 -0
- package/dist/backend/backend/src/types/v2/request.types.d.ts +188 -0
- package/dist/backend/backend/src/types/v2/request.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/v2/request.types.js +178 -0
- package/dist/backend/backend/src/types/v2/request.types.js.map +1 -0
- package/dist/backend/backend/src/types/v2/trigger.types.d.ts +201 -0
- package/dist/backend/backend/src/types/v2/trigger.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/v2/trigger.types.js +174 -0
- package/dist/backend/backend/src/types/v2/trigger.types.js.map +1 -0
- package/dist/backend/backend/src/types/v2/work-item.types.d.ts +333 -0
- package/dist/backend/backend/src/types/v2/work-item.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/v2/work-item.types.js +274 -0
- package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -0
- package/dist/backend/backend/src/types/v2/workspace.types.d.ts +157 -0
- package/dist/backend/backend/src/types/v2/workspace.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/v2/workspace.types.js +173 -0
- package/dist/backend/backend/src/types/v2/workspace.types.js.map +1 -0
- package/dist/backend/backend/src/types/v3/task-record.types.d.ts +98 -0
- package/dist/backend/backend/src/types/v3/task-record.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/v3/task-record.types.js +55 -0
- package/dist/backend/backend/src/types/v3/task-record.types.js.map +1 -0
- package/dist/backend/config/constants.d.ts +47 -0
- package/dist/backend/config/constants.d.ts.map +1 -1
- package/dist/backend/config/constants.js +49 -0
- package/dist/backend/config/constants.js.map +1 -1
- package/dist/cli/backend/src/constants.d.ts +5 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +5 -0
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +47 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +1 -1
- package/dist/cli/backend/src/services/core/logger.service.js +1 -1
- package/dist/cli/backend/src/services/core/logger.service.js.map +1 -1
- package/dist/cli/backend/src/services/core/storage.service.d.ts +33 -0
- package/dist/cli/backend/src/services/core/storage.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/core/storage.service.js +54 -0
- package/dist/cli/backend/src/services/core/storage.service.js.map +1 -1
- package/dist/cli/backend/src/services/knowledge/fts5-index.service.d.ts +118 -0
- package/dist/cli/backend/src/services/knowledge/fts5-index.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/knowledge/fts5-index.service.js +220 -0
- package/dist/cli/backend/src/services/knowledge/fts5-index.service.js.map +1 -0
- package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.d.ts +56 -0
- package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.d.ts.map +1 -0
- package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.js +91 -0
- package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.js.map +1 -0
- package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.d.ts +115 -0
- package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.js +215 -0
- package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.js.map +1 -0
- package/dist/cli/backend/src/services/memory/agent-memory.service.d.ts +11 -0
- package/dist/cli/backend/src/services/memory/agent-memory.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/memory/agent-memory.service.js +76 -11
- package/dist/cli/backend/src/services/memory/agent-memory.service.js.map +1 -1
- package/dist/cli/backend/src/services/memory/embedding-provider.d.ts +78 -0
- package/dist/cli/backend/src/services/memory/embedding-provider.d.ts.map +1 -0
- package/dist/cli/backend/src/services/memory/embedding-provider.js +179 -0
- package/dist/cli/backend/src/services/memory/embedding-provider.js.map +1 -0
- package/dist/cli/backend/src/services/memory/vector-store.service.d.ts +331 -0
- package/dist/cli/backend/src/services/memory/vector-store.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/memory/vector-store.service.js +814 -0
- package/dist/cli/backend/src/services/memory/vector-store.service.js.map +1 -0
- package/dist/cli/backend/src/services/task-pool/claim.service.d.ts +190 -0
- package/dist/cli/backend/src/services/task-pool/claim.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/task-pool/claim.service.js +354 -0
- package/dist/cli/backend/src/services/task-pool/claim.service.js.map +1 -0
- package/dist/cli/backend/src/services/task-pool/pool-storage.d.ts +146 -0
- package/dist/cli/backend/src/services/task-pool/pool-storage.d.ts.map +1 -0
- package/dist/cli/backend/src/services/task-pool/pool-storage.js +243 -0
- package/dist/cli/backend/src/services/task-pool/pool-storage.js.map +1 -0
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +263 -0
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js +605 -0
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -0
- package/dist/cli/backend/src/types/index.d.ts +42 -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/memory.types.d.ts +19 -0
- package/dist/cli/backend/src/types/memory.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/memory.types.js.map +1 -1
- package/dist/cli/backend/src/types/team-template.types.d.ts +222 -0
- package/dist/cli/backend/src/types/team-template.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/team-template.types.js +139 -0
- package/dist/cli/backend/src/types/team-template.types.js.map +1 -0
- package/dist/cli/backend/src/types/v2/claim.types.d.ts +143 -0
- package/dist/cli/backend/src/types/v2/claim.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/v2/claim.types.js +183 -0
- package/dist/cli/backend/src/types/v2/claim.types.js.map +1 -0
- package/dist/cli/backend/src/types/v2/trigger.types.d.ts +201 -0
- package/dist/cli/backend/src/types/v2/trigger.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/v2/trigger.types.js +174 -0
- package/dist/cli/backend/src/types/v2/trigger.types.js.map +1 -0
- package/dist/cli/backend/src/types/v2/work-item.types.d.ts +333 -0
- package/dist/cli/backend/src/types/v2/work-item.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/v2/work-item.types.js +274 -0
- package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -0
- package/dist/cli/config/constants.d.ts +47 -0
- package/dist/cli/config/constants.d.ts.map +1 -1
- package/dist/cli/config/constants.js +49 -0
- package/dist/cli/config/constants.js.map +1 -1
- package/frontend/dist/assets/index-47564020.css +33 -0
- package/frontend/dist/assets/index-5e804749.js +5220 -0
- package/frontend/dist/index.html +2 -2
- package/package.json +3 -1
- package/config/skills/agent/computer-use/lib/accessibility.sh +0 -292
- package/config/skills/agent/computer-use/lib/applescript.sh +0 -117
- package/config/skills/agent/computer-use/lib/discover.sh +0 -122
- package/config/skills/agent/computer-use/lib/playwright.sh +0 -153
- package/config/skills/agent/computer-use/lib/screenshot.sh +0 -61
- package/config/templates/cloud-deploy.json +0 -119
- package/config/templates/code-review-team/README.md +0 -176
- package/config/templates/code-review-team/team-config.json +0 -23
- package/config/templates/code-review-team.json +0 -62
- package/config/templates/content-generation-team/README.md +0 -128
- package/config/templates/content-generation-team/norms/publish-checklist.md +0 -64
- package/config/templates/content-generation-team/team-config.json +0 -28
- package/config/templates/content-generation-team.json +0 -67
- package/config/templates/dev-fullstack/norms/docker-deploy-cleanup.md +0 -28
- package/config/templates/dev-fullstack/template.json +0 -178
- package/config/templates/education-smb/README.md +0 -27
- package/config/templates/education-smb/goals.md +0 -16
- package/config/templates/education-smb/knowledge/docs/content-standards.md +0 -24
- package/config/templates/education-smb/knowledge/docs/education-industry-context.md +0 -13
- package/config/templates/education-smb/knowledge/index.json +0 -24
- package/config/templates/education-smb/learned-patterns.json +0 -16
- package/config/templates/education-smb/quality-gates.yaml +0 -66
- package/config/templates/education-smb/roles/analytics-specialist.md +0 -6
- package/config/templates/education-smb/roles/content-creator.md +0 -6
- package/config/templates/education-smb/roles/curriculum-designer.md +0 -6
- package/config/templates/education-smb/roles/engagement-manager.md +0 -6
- package/config/templates/education-smb/team.json +0 -40
- package/config/templates/education-smb/template.json +0 -35
- package/config/templates/education-smb/workflows/course-content-generation.yaml +0 -44
- package/config/templates/education-smb/workflows/reporting.yaml +0 -31
- package/config/templates/education-smb/workflows/student-communication.yaml +0 -44
- package/config/templates/education-smb/workflows.yaml +0 -40
- package/config/templates/insurance-smb/README.md +0 -28
- package/config/templates/insurance-smb/goals.md +0 -21
- package/config/templates/insurance-smb/knowledge/docs/compliance-checklist.md +0 -28
- package/config/templates/insurance-smb/knowledge/docs/insurance-industry-context.md +0 -23
- package/config/templates/insurance-smb/knowledge/index.json +0 -24
- package/config/templates/insurance-smb/learned-patterns.json +0 -16
- package/config/templates/insurance-smb/quality-gates.yaml +0 -54
- package/config/templates/insurance-smb/roles/claims-processor.md +0 -6
- package/config/templates/insurance-smb/roles/client-manager.md +0 -6
- package/config/templates/insurance-smb/roles/compliance-officer.md +0 -6
- package/config/templates/insurance-smb/roles/marketing-specialist.md +0 -6
- package/config/templates/insurance-smb/roles/policy-analyst.md +0 -6
- package/config/templates/insurance-smb/team.json +0 -48
- package/config/templates/insurance-smb/template.json +0 -35
- package/config/templates/insurance-smb/workflows/claims-processing.yaml +0 -48
- package/config/templates/insurance-smb/workflows.yaml +0 -43
- package/config/templates/marketing-team/README.md +0 -42
- package/config/templates/marketing-team/goals.md +0 -21
- package/config/templates/marketing-team/knowledge/docs/brand-voice-guide.md +0 -61
- package/config/templates/marketing-team/knowledge/docs/content-best-practices.md +0 -64
- package/config/templates/marketing-team/knowledge/index.json +0 -24
- package/config/templates/marketing-team/learned-patterns.json +0 -5
- package/config/templates/marketing-team/norms/brand-consistency.md +0 -40
- package/config/templates/marketing-team/norms/content-quality-checklist.md +0 -45
- package/config/templates/marketing-team/quality-gates.yaml +0 -47
- package/config/templates/marketing-team/roles/analyst.md +0 -63
- package/config/templates/marketing-team/roles/strategist.md +0 -26
- package/config/templates/marketing-team/roles/writer.md +0 -58
- package/config/templates/marketing-team/template.json +0 -90
- package/config/templates/marketing-team/workflows/weekly-content-cycle.yaml +0 -48
- package/config/templates/research-analysis/template.json +0 -133
- package/config/templates/security-audit-team.json +0 -67
- package/config/templates/social-media-ops/template.json +0 -129
- package/config/templates/social-media-ops-team/README.md +0 -145
- package/config/templates/social-media-ops-team/team-config.json +0 -21
- package/config/templates/social-media-ops-team.json +0 -67
- package/config/templates/video-production/template.json +0 -132
- package/dist/backend/backend/src/controllers/admin/admin.controller.d.ts +0 -69
- package/dist/backend/backend/src/controllers/admin/admin.controller.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/admin/admin.controller.js +0 -187
- package/dist/backend/backend/src/controllers/admin/admin.controller.js.map +0 -1
- package/dist/backend/backend/src/controllers/admin/admin.routes.d.ts +0 -22
- package/dist/backend/backend/src/controllers/admin/admin.routes.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/admin/admin.routes.js +0 -31
- package/dist/backend/backend/src/controllers/admin/admin.routes.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/admin/admin-auth.middleware.d.ts +0 -23
- package/dist/backend/backend/src/controllers/cloud/admin/admin-auth.middleware.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/admin/admin-auth.middleware.js +0 -42
- package/dist/backend/backend/src/controllers/cloud/admin/admin-auth.middleware.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/admin/admin.controller.d.ts +0 -56
- package/dist/backend/backend/src/controllers/cloud/admin/admin.controller.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/admin/admin.controller.js +0 -173
- package/dist/backend/backend/src/controllers/cloud/admin/admin.controller.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/admin/admin.routes.d.ts +0 -22
- package/dist/backend/backend/src/controllers/cloud/admin/admin.routes.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/admin/admin.routes.js +0 -33
- package/dist/backend/backend/src/controllers/cloud/admin/admin.routes.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/admin/index.d.ts +0 -7
- package/dist/backend/backend/src/controllers/cloud/admin/index.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/admin/index.js +0 -7
- package/dist/backend/backend/src/controllers/cloud/admin/index.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/auth/auth.controller.d.ts +0 -81
- package/dist/backend/backend/src/controllers/cloud/auth/auth.controller.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/auth/auth.controller.js +0 -234
- package/dist/backend/backend/src/controllers/cloud/auth/auth.controller.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/auth/auth.routes.d.ts +0 -25
- package/dist/backend/backend/src/controllers/cloud/auth/auth.routes.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/auth/auth.routes.js +0 -42
- package/dist/backend/backend/src/controllers/cloud/auth/auth.routes.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/auth/google-auth.controller.d.ts +0 -40
- package/dist/backend/backend/src/controllers/cloud/auth/google-auth.controller.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/auth/google-auth.controller.js +0 -161
- package/dist/backend/backend/src/controllers/cloud/auth/google-auth.controller.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/cloud-auth.controller.d.ts +0 -69
- package/dist/backend/backend/src/controllers/cloud/cloud-auth.controller.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/cloud-auth.controller.js +0 -165
- package/dist/backend/backend/src/controllers/cloud/cloud-auth.controller.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/cloud-auth.routes.d.ts +0 -23
- package/dist/backend/backend/src/controllers/cloud/cloud-auth.routes.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/cloud-auth.routes.js +0 -32
- package/dist/backend/backend/src/controllers/cloud/cloud-auth.routes.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/device.controller.d.ts +0 -34
- package/dist/backend/backend/src/controllers/cloud/device.controller.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/device.controller.js +0 -70
- package/dist/backend/backend/src/controllers/cloud/device.controller.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/device.routes.d.ts +0 -23
- package/dist/backend/backend/src/controllers/cloud/device.routes.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/device.routes.js +0 -34
- package/dist/backend/backend/src/controllers/cloud/device.routes.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/files/cloud-file.controller.d.ts +0 -42
- package/dist/backend/backend/src/controllers/cloud/files/cloud-file.controller.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/files/cloud-file.controller.js +0 -138
- package/dist/backend/backend/src/controllers/cloud/files/cloud-file.controller.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/files/cloud-file.routes.d.ts +0 -23
- package/dist/backend/backend/src/controllers/cloud/files/cloud-file.routes.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/files/cloud-file.routes.js +0 -34
- package/dist/backend/backend/src/controllers/cloud/files/cloud-file.routes.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/files/cloud-file.types.d.ts +0 -43
- package/dist/backend/backend/src/controllers/cloud/files/cloud-file.types.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/files/cloud-file.types.js +0 -9
- package/dist/backend/backend/src/controllers/cloud/files/cloud-file.types.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/files/index.d.ts +0 -7
- package/dist/backend/backend/src/controllers/cloud/files/index.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/files/index.js +0 -7
- package/dist/backend/backend/src/controllers/cloud/files/index.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.controller.d.ts +0 -47
- package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.controller.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.controller.js +0 -131
- package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.controller.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.routes.d.ts +0 -23
- package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.routes.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.routes.js +0 -30
- package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.routes.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.types.d.ts +0 -81
- package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.types.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.types.js +0 -85
- package/dist/backend/backend/src/controllers/cloud/h5/h5-entry.types.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/h5/index.d.ts +0 -7
- package/dist/backend/backend/src/controllers/cloud/h5/index.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/h5/index.js +0 -7
- package/dist/backend/backend/src/controllers/cloud/h5/index.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/magic-moment/index.d.ts +0 -7
- package/dist/backend/backend/src/controllers/cloud/magic-moment/index.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/magic-moment/index.js +0 -7
- package/dist/backend/backend/src/controllers/cloud/magic-moment/index.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.controller.d.ts +0 -45
- package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.controller.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.controller.js +0 -155
- package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.controller.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.routes.d.ts +0 -25
- package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.routes.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.routes.js +0 -32
- package/dist/backend/backend/src/controllers/cloud/magic-moment/magic-moment.routes.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/relay.controller.d.ts +0 -97
- package/dist/backend/backend/src/controllers/cloud/relay.controller.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/relay.controller.js +0 -317
- package/dist/backend/backend/src/controllers/cloud/relay.controller.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/relay.routes.d.ts +0 -25
- package/dist/backend/backend/src/controllers/cloud/relay.routes.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/relay.routes.js +0 -35
- package/dist/backend/backend/src/controllers/cloud/relay.routes.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.controller.d.ts +0 -49
- package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.controller.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.controller.js +0 -152
- package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.controller.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.routes.d.ts +0 -24
- package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.routes.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.routes.js +0 -34
- package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.routes.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.types.d.ts +0 -90
- package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.types.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.types.js +0 -48
- package/dist/backend/backend/src/controllers/cloud/tasks/cloud-task.types.js.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/tasks/index.d.ts +0 -10
- package/dist/backend/backend/src/controllers/cloud/tasks/index.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/cloud/tasks/index.js +0 -10
- package/dist/backend/backend/src/controllers/cloud/tasks/index.js.map +0 -1
- package/dist/backend/backend/src/controllers/payment/index.d.ts +0 -7
- package/dist/backend/backend/src/controllers/payment/index.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/payment/index.js +0 -7
- package/dist/backend/backend/src/controllers/payment/index.js.map +0 -1
- package/dist/backend/backend/src/scripts/run-log-rotation.d.ts +0 -3
- package/dist/backend/backend/src/scripts/run-log-rotation.d.ts.map +0 -1
- package/dist/backend/backend/src/scripts/run-log-rotation.js +0 -31
- package/dist/backend/backend/src/scripts/run-log-rotation.js.map +0 -1
- package/dist/backend/backend/src/services/agent/openhands-runtime.service.d.ts +0 -70
- package/dist/backend/backend/src/services/agent/openhands-runtime.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/openhands-runtime.service.js +0 -131
- package/dist/backend/backend/src/services/agent/openhands-runtime.service.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/admin-seed.service.d.ts +0 -18
- package/dist/backend/backend/src/services/cloud/admin-seed.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/admin-seed.service.js +0 -50
- package/dist/backend/backend/src/services/cloud/admin-seed.service.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/auth/auth.service.d.ts +0 -203
- package/dist/backend/backend/src/services/cloud/auth/auth.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/auth/auth.service.js +0 -494
- package/dist/backend/backend/src/services/cloud/auth/auth.service.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/auth/auth.types.d.ts +0 -110
- package/dist/backend/backend/src/services/cloud/auth/auth.types.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/auth/auth.types.js +0 -54
- package/dist/backend/backend/src/services/cloud/auth/auth.types.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/auth/jwt-auth.middleware.d.ts +0 -47
- package/dist/backend/backend/src/services/cloud/auth/jwt-auth.middleware.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/auth/jwt-auth.middleware.js +0 -116
- package/dist/backend/backend/src/services/cloud/auth/jwt-auth.middleware.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/auth/require-user.middleware.d.ts +0 -25
- package/dist/backend/backend/src/services/cloud/auth/require-user.middleware.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/auth/require-user.middleware.js +0 -52
- package/dist/backend/backend/src/services/cloud/auth/require-user.middleware.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/auth/supabase-auth.middleware.d.ts +0 -61
- package/dist/backend/backend/src/services/cloud/auth/supabase-auth.middleware.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/auth/supabase-auth.middleware.js +0 -203
- package/dist/backend/backend/src/services/cloud/auth/supabase-auth.middleware.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-auth.service.d.ts +0 -136
- package/dist/backend/backend/src/services/cloud/cloud-auth.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-auth.service.js +0 -204
- package/dist/backend/backend/src/services/cloud/cloud-auth.service.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-features.d.ts +0 -19
- package/dist/backend/backend/src/services/cloud/cloud-features.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-features.js +0 -23
- package/dist/backend/backend/src/services/cloud/cloud-features.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-file.service.d.ts +0 -97
- package/dist/backend/backend/src/services/cloud/cloud-file.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-file.service.js +0 -184
- package/dist/backend/backend/src/services/cloud/cloud-file.service.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-image-analysis.service.d.ts +0 -114
- package/dist/backend/backend/src/services/cloud/cloud-image-analysis.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-image-analysis.service.js +0 -196
- package/dist/backend/backend/src/services/cloud/cloud-image-analysis.service.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.d.ts +0 -118
- package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.js +0 -326
- package/dist/backend/backend/src/services/cloud/cloud-task-processor.service.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-task.service.d.ts +0 -115
- package/dist/backend/backend/src/services/cloud/cloud-task.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/cloud-task.service.js +0 -265
- package/dist/backend/backend/src/services/cloud/cloud-task.service.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/device-heartbeat.service.d.ts +0 -103
- package/dist/backend/backend/src/services/cloud/device-heartbeat.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/device-heartbeat.service.js +0 -143
- package/dist/backend/backend/src/services/cloud/device-heartbeat.service.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/mongodb.service.d.ts +0 -45
- package/dist/backend/backend/src/services/cloud/mongodb.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/mongodb.service.js +0 -76
- package/dist/backend/backend/src/services/cloud/mongodb.service.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/relay-client.service.d.ts +0 -245
- package/dist/backend/backend/src/services/cloud/relay-client.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/relay-client.service.js +0 -586
- package/dist/backend/backend/src/services/cloud/relay-client.service.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/relay-crypto.service.d.ts +0 -87
- package/dist/backend/backend/src/services/cloud/relay-crypto.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/relay-crypto.service.js +0 -140
- package/dist/backend/backend/src/services/cloud/relay-crypto.service.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/relay-server.service.d.ts +0 -181
- package/dist/backend/backend/src/services/cloud/relay-server.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/relay-server.service.js +0 -485
- package/dist/backend/backend/src/services/cloud/relay-server.service.js.map +0 -1
- package/dist/backend/backend/src/services/cloud/relay.types.d.ts +0 -195
- package/dist/backend/backend/src/services/cloud/relay.types.d.ts.map +0 -1
- package/dist/backend/backend/src/services/cloud/relay.types.js +0 -69
- package/dist/backend/backend/src/services/cloud/relay.types.js.map +0 -1
- package/dist/backend/backend/src/services/messaging/adapters/wechat-messenger.adapter.d.ts +0 -47
- package/dist/backend/backend/src/services/messaging/adapters/wechat-messenger.adapter.d.ts.map +0 -1
- package/dist/backend/backend/src/services/messaging/adapters/wechat-messenger.adapter.js +0 -69
- package/dist/backend/backend/src/services/messaging/adapters/wechat-messenger.adapter.js.map +0 -1
- package/dist/backend/backend/src/services/payment/magic-moment.service.d.ts +0 -69
- package/dist/backend/backend/src/services/payment/magic-moment.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/payment/magic-moment.service.js +0 -158
- package/dist/backend/backend/src/services/payment/magic-moment.service.js.map +0 -1
- package/dist/backend/backend/src/services/payment/magic-moment.types.d.ts +0 -95
- package/dist/backend/backend/src/services/payment/magic-moment.types.d.ts.map +0 -1
- package/dist/backend/backend/src/services/payment/magic-moment.types.js +0 -91
- package/dist/backend/backend/src/services/payment/magic-moment.types.js.map +0 -1
- package/dist/backend/backend/src/services/wechat/wechat-bridge.service.d.ts +0 -69
- package/dist/backend/backend/src/services/wechat/wechat-bridge.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/wechat/wechat-bridge.service.js +0 -133
- package/dist/backend/backend/src/services/wechat/wechat-bridge.service.js.map +0 -1
- package/dist/backend/backend/src/services/wechat/wechat.controller.d.ts +0 -51
- package/dist/backend/backend/src/services/wechat/wechat.controller.d.ts.map +0 -1
- package/dist/backend/backend/src/services/wechat/wechat.controller.js +0 -104
- package/dist/backend/backend/src/services/wechat/wechat.controller.js.map +0 -1
- package/dist/backend/backend/src/services/wechat/wechat.service.d.ts +0 -171
- package/dist/backend/backend/src/services/wechat/wechat.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/wechat/wechat.service.js +0 -411
- package/dist/backend/backend/src/services/wechat/wechat.service.js.map +0 -1
- package/frontend/dist/assets/index-58e9f83b.js +0 -5215
- package/frontend/dist/assets/index-a2db8a73.css +0 -33
|
@@ -1,228 +1,864 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
# =============================================================================
|
|
3
|
-
#
|
|
4
|
-
#
|
|
5
|
-
#
|
|
3
|
+
# Computer Use — Self-Contained macOS Desktop Control
|
|
4
|
+
#
|
|
5
|
+
# A single-file skill for programmatic desktop interaction on macOS.
|
|
6
|
+
# Uses CoreGraphics (kCGSessionEventTap), screencapture, and AppleScript.
|
|
6
7
|
#
|
|
7
8
|
# Usage:
|
|
8
|
-
# bash execute.sh
|
|
9
|
+
# bash execute.sh '{"action":"screenshot"}'
|
|
10
|
+
# bash execute.sh '{"action":"click","x":500,"y":300}'
|
|
11
|
+
# bash execute.sh '{"action":"type","text":"hello"}'
|
|
12
|
+
# bash execute.sh '{"action":"find","mode":"button"}'
|
|
9
13
|
#
|
|
10
|
-
#
|
|
11
|
-
#
|
|
12
|
-
# app-info --app NAME Get detailed app info
|
|
13
|
-
# ui-tree --app NAME Read UI element tree (Accessibility)
|
|
14
|
-
# click --app NAME Click element or coordinates
|
|
15
|
-
# type --text TEXT Type text in focused field
|
|
16
|
-
# get-text --app NAME Extract all text from app
|
|
17
|
-
# scroll --app NAME Scroll within app
|
|
18
|
-
# focus --app NAME Bring app to foreground
|
|
19
|
-
# screenshot [--app NAME] Screenshot app or full screen
|
|
20
|
-
# applescript --code CODE Run custom AppleScript
|
|
21
|
-
# applescript --preset NAME Run preset AppleScript
|
|
22
|
-
# check-access Check Accessibility permission
|
|
23
|
-
# chrome-connect [--port N] Connect to Chrome CDP
|
|
24
|
-
# chrome-tabs [--port N] List Chrome tabs
|
|
25
|
-
# chrome-eval --code JS Evaluate JS in Chrome tab
|
|
14
|
+
# All coordinates are in SCREEN POINTS (not backing pixels).
|
|
15
|
+
# Screenshots are automatically downscaled to match screen coordinates.
|
|
26
16
|
# =============================================================================
|
|
27
17
|
|
|
28
18
|
set -euo pipefail
|
|
29
19
|
|
|
30
20
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
#
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
21
|
+
|
|
22
|
+
# Source common library for read_json_input, error_exit, require_param
|
|
23
|
+
source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
24
|
+
|
|
25
|
+
# Temp directory for screenshots
|
|
26
|
+
TMPDIR_CU="${TMPDIR:-/tmp}/crewly-computer-use"
|
|
27
|
+
mkdir -p "$TMPDIR_CU"
|
|
28
|
+
|
|
29
|
+
# ---------------------------------------------------------------------------
|
|
30
|
+
# Read and parse JSON input
|
|
31
|
+
# ---------------------------------------------------------------------------
|
|
32
|
+
INPUT=$(read_json_input "${1:-}")
|
|
33
|
+
[ -z "$INPUT" ] && error_exit "No JSON input provided"
|
|
34
|
+
|
|
35
|
+
ACTION=$(echo "$INPUT" | jq -r '.action // empty')
|
|
36
|
+
[ -z "$ACTION" ] && error_exit "Missing required parameter: action"
|
|
37
|
+
|
|
38
|
+
# ---------------------------------------------------------------------------
|
|
39
|
+
# Helper: get screen dimensions and scale factor
|
|
40
|
+
# ---------------------------------------------------------------------------
|
|
41
|
+
get_screen_info() {
|
|
42
|
+
osascript -l JavaScript -e '
|
|
43
|
+
ObjC.import("AppKit");
|
|
44
|
+
var screen = $.NSScreen.mainScreen;
|
|
45
|
+
var frame = screen.frame;
|
|
46
|
+
var w = frame.size.width;
|
|
47
|
+
var h = frame.size.height;
|
|
48
|
+
var scale = screen.backingScaleFactor;
|
|
49
|
+
JSON.stringify({width: w, height: h, scale: scale});
|
|
50
|
+
'
|
|
52
51
|
}
|
|
53
52
|
|
|
54
|
-
#
|
|
55
|
-
#
|
|
56
|
-
#
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
53
|
+
# ---------------------------------------------------------------------------
|
|
54
|
+
# Action: screenshot
|
|
55
|
+
# Captures screen, downscales to screen coordinates (1px = 1 screen point),
|
|
56
|
+
# optionally overlays a grid, optionally crops.
|
|
57
|
+
# ---------------------------------------------------------------------------
|
|
58
|
+
do_screenshot() {
|
|
59
|
+
local output="${TMPDIR_CU}/screen_$(date +%s%N).png"
|
|
60
|
+
local grid=$(echo "$INPUT" | jq -r '.grid // empty')
|
|
61
|
+
local crop_json=$(echo "$INPUT" | jq -r '.crop // empty')
|
|
62
|
+
|
|
63
|
+
# Capture full screen (silent)
|
|
64
|
+
screencapture -x "$output"
|
|
65
|
+
|
|
66
|
+
# Get backing scale factor
|
|
67
|
+
local scale_int
|
|
68
|
+
scale_int=$(osascript -l JavaScript -e 'ObjC.import("AppKit"); Math.round($.NSScreen.mainScreen.backingScaleFactor);')
|
|
69
|
+
|
|
70
|
+
# Get pixel dimensions of captured image
|
|
71
|
+
local img_w
|
|
72
|
+
img_w=$(sips -g pixelWidth "$output" | tail -1 | awk '{print $2}')
|
|
73
|
+
|
|
74
|
+
# Downscale so 1 pixel = 1 screen point
|
|
75
|
+
if [ "$scale_int" -gt 1 ]; then
|
|
76
|
+
local target_w=$((img_w / scale_int))
|
|
77
|
+
sips --resampleWidth "$target_w" "$output" --out "$output" >/dev/null 2>&1
|
|
78
|
+
fi
|
|
79
|
+
|
|
80
|
+
# Re-read dimensions after downscale
|
|
81
|
+
img_w=$(sips -g pixelWidth "$output" | tail -1 | awk '{print $2}')
|
|
82
|
+
local img_h
|
|
83
|
+
img_h=$(sips -g pixelHeight "$output" | tail -1 | awk '{print $2}')
|
|
84
|
+
|
|
85
|
+
# Crop FIRST, then grid — so grid labels show absolute screen coordinates
|
|
86
|
+
local origin_x=0 origin_y=0
|
|
87
|
+
if [ -n "$crop_json" ]; then
|
|
88
|
+
local cx cy cw ch
|
|
89
|
+
cx=$(echo "$INPUT" | jq -r '.crop.x')
|
|
90
|
+
cy=$(echo "$INPUT" | jq -r '.crop.y')
|
|
91
|
+
cw=$(echo "$INPUT" | jq -r '.crop.w')
|
|
92
|
+
ch=$(echo "$INPUT" | jq -r '.crop.h')
|
|
93
|
+
origin_x="$cx"
|
|
94
|
+
origin_y="$cy"
|
|
95
|
+
local cropped="${TMPDIR_CU}/crop_$(date +%s%N).png"
|
|
96
|
+
python3 - "$output" "$cx" "$cy" "$cw" "$ch" "$cropped" <<'PYEOF'
|
|
97
|
+
import sys
|
|
98
|
+
from PIL import Image
|
|
99
|
+
path, cx, cy, cw, ch, out = sys.argv[1], int(sys.argv[2]), int(sys.argv[3]), int(sys.argv[4]), int(sys.argv[5]), sys.argv[6]
|
|
100
|
+
img = Image.open(path)
|
|
101
|
+
cropped = img.crop((cx, cy, cx + cw, cy + ch))
|
|
102
|
+
cropped.save(out)
|
|
103
|
+
PYEOF
|
|
104
|
+
output="$cropped"
|
|
105
|
+
img_w="$cw"
|
|
106
|
+
img_h="$ch"
|
|
107
|
+
fi
|
|
108
|
+
|
|
109
|
+
# Grid overlay — labels show ABSOLUTE screen coordinates
|
|
110
|
+
# Grid step adapts to image size: dense for small crops, sparse for full screen
|
|
111
|
+
if [ "$grid" = "true" ]; then
|
|
112
|
+
python3 - "$output" "$origin_x" "$origin_y" <<'PYEOF'
|
|
113
|
+
import sys
|
|
114
|
+
from PIL import Image, ImageDraw, ImageFont
|
|
115
|
+
|
|
116
|
+
path = sys.argv[1]
|
|
117
|
+
ox, oy = int(sys.argv[2]), int(sys.argv[3])
|
|
118
|
+
img = Image.open(path)
|
|
119
|
+
draw = ImageDraw.Draw(img)
|
|
120
|
+
w, h = img.size
|
|
121
|
+
|
|
122
|
+
# Adaptive grid step: aim for ~8-12 cells across the image
|
|
123
|
+
step = max(25, min(100, w // 10))
|
|
124
|
+
# Round to nearest 25
|
|
125
|
+
step = (step // 25) * 25
|
|
126
|
+
|
|
127
|
+
try:
|
|
128
|
+
font = ImageFont.truetype("/System/Library/Fonts/Helvetica.ttc", max(10, min(14, w // 80)))
|
|
129
|
+
except Exception:
|
|
130
|
+
font = ImageFont.load_default()
|
|
131
|
+
|
|
132
|
+
# Vertical lines with absolute X labels
|
|
133
|
+
for x in range(0, w, step):
|
|
134
|
+
draw.line([(x, 0), (x, h)], fill="red", width=1)
|
|
135
|
+
label = str(ox + x) # absolute screen coordinate
|
|
136
|
+
draw.text((x + 2, 2), label, fill="red", font=font)
|
|
137
|
+
|
|
138
|
+
# Horizontal lines with absolute Y labels
|
|
139
|
+
for y in range(0, h, step):
|
|
140
|
+
draw.line([(0, y), (w, y)], fill="red", width=1)
|
|
141
|
+
label = str(oy + y)
|
|
142
|
+
draw.text((2, y + 2), label, fill="red", font=font)
|
|
143
|
+
|
|
144
|
+
img.save(path)
|
|
145
|
+
PYEOF
|
|
146
|
+
fi
|
|
147
|
+
|
|
148
|
+
# Return result as JSON
|
|
149
|
+
jq -n \
|
|
150
|
+
--arg path "$output" \
|
|
151
|
+
--argjson width "$img_w" \
|
|
152
|
+
--argjson height "$img_h" \
|
|
153
|
+
--argjson scale "$scale_int" \
|
|
154
|
+
'{action:"screenshot", path:$path, width:$width, height:$height, scale:$scale, note:"Coordinates are in screen points. 1 pixel = 1 screen point."}'
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
# ---------------------------------------------------------------------------
|
|
158
|
+
# Action: click (left, right, double)
|
|
159
|
+
# Uses CoreGraphics with kCGSessionEventTap for reliable clicking.
|
|
160
|
+
# ---------------------------------------------------------------------------
|
|
161
|
+
do_click() {
|
|
162
|
+
local x y button
|
|
163
|
+
x=$(echo "$INPUT" | jq -r '.x // empty')
|
|
164
|
+
y=$(echo "$INPUT" | jq -r '.y // empty')
|
|
165
|
+
button=$(echo "$INPUT" | jq -r '.button // "left"')
|
|
166
|
+
require_param "x" "$x"
|
|
167
|
+
require_param "y" "$y"
|
|
168
|
+
|
|
169
|
+
case "$button" in
|
|
170
|
+
left)
|
|
171
|
+
osascript -l JavaScript -e "
|
|
172
|
+
ObjC.import('CoreGraphics');
|
|
173
|
+
var p = \$.CGPointMake($x, $y);
|
|
174
|
+
var mv = \$.CGEventCreateMouseEvent(null, \$.kCGEventMouseMoved, p, 0);
|
|
175
|
+
\$.CGEventPost(\$.kCGSessionEventTap, mv);
|
|
176
|
+
delay(0.1);
|
|
177
|
+
var dn = \$.CGEventCreateMouseEvent(null, \$.kCGEventLeftMouseDown, p, 0);
|
|
178
|
+
\$.CGEventPost(\$.kCGSessionEventTap, dn);
|
|
179
|
+
delay(0.05);
|
|
180
|
+
var up = \$.CGEventCreateMouseEvent(null, \$.kCGEventLeftMouseUp, p, 0);
|
|
181
|
+
\$.CGEventPost(\$.kCGSessionEventTap, up);
|
|
182
|
+
"
|
|
183
|
+
;;
|
|
184
|
+
right)
|
|
185
|
+
osascript -l JavaScript -e "
|
|
186
|
+
ObjC.import('CoreGraphics');
|
|
187
|
+
var p = \$.CGPointMake($x, $y);
|
|
188
|
+
var mv = \$.CGEventCreateMouseEvent(null, \$.kCGEventMouseMoved, p, 0);
|
|
189
|
+
\$.CGEventPost(\$.kCGSessionEventTap, mv);
|
|
190
|
+
delay(0.1);
|
|
191
|
+
var dn = \$.CGEventCreateMouseEvent(null, \$.kCGEventRightMouseDown, p, 0);
|
|
192
|
+
\$.CGEventPost(\$.kCGSessionEventTap, dn);
|
|
193
|
+
delay(0.05);
|
|
194
|
+
var up = \$.CGEventCreateMouseEvent(null, \$.kCGEventRightMouseUp, p, 0);
|
|
195
|
+
\$.CGEventPost(\$.kCGSessionEventTap, up);
|
|
196
|
+
"
|
|
197
|
+
;;
|
|
198
|
+
double)
|
|
199
|
+
osascript -l JavaScript -e "
|
|
200
|
+
ObjC.import('CoreGraphics');
|
|
201
|
+
var p = \$.CGPointMake($x, $y);
|
|
202
|
+
var mv = \$.CGEventCreateMouseEvent(null, \$.kCGEventMouseMoved, p, 0);
|
|
203
|
+
\$.CGEventPost(\$.kCGSessionEventTap, mv);
|
|
204
|
+
delay(0.1);
|
|
205
|
+
var dn = \$.CGEventCreateMouseEvent(null, \$.kCGEventLeftMouseDown, p, 0);
|
|
206
|
+
\$.CGEventSetIntegerValueField(dn, \$.kCGMouseEventClickState, 2);
|
|
207
|
+
\$.CGEventPost(\$.kCGSessionEventTap, dn);
|
|
208
|
+
delay(0.05);
|
|
209
|
+
var up = \$.CGEventCreateMouseEvent(null, \$.kCGEventLeftMouseUp, p, 0);
|
|
210
|
+
\$.CGEventSetIntegerValueField(up, \$.kCGMouseEventClickState, 2);
|
|
211
|
+
\$.CGEventPost(\$.kCGSessionEventTap, up);
|
|
212
|
+
"
|
|
213
|
+
;;
|
|
214
|
+
*)
|
|
215
|
+
error_exit "Unknown button type: $button (use left, right, or double)"
|
|
216
|
+
;;
|
|
97
217
|
esac
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
#
|
|
128
|
-
#
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
take_screenshot "${OUTPUT:-/tmp/screenshot.png}" "$APP_NAME"
|
|
180
|
-
;;
|
|
181
|
-
|
|
182
|
-
applescript)
|
|
183
|
-
if [ -n "$PRESET" ]; then
|
|
184
|
-
log_action "applescript preset=$PRESET app=${APP_NAME:-} menu=${MENU:-} item=${ITEM:-} path=${FILE_PATH:-}"
|
|
185
|
-
case "$PRESET" in
|
|
186
|
-
activate-app) run_preset "activate-app" "$APP_NAME" ;;
|
|
187
|
-
get-window-list) run_preset "get-window-list" "$APP_NAME" ;;
|
|
188
|
-
click-menu-item) run_preset "click-menu-item" "$APP_NAME" "$MENU" "$ITEM" ;;
|
|
189
|
-
open-file) run_preset "open-file" "$FILE_PATH" ;;
|
|
190
|
-
get-clipboard) run_preset "get-clipboard" ;;
|
|
191
|
-
set-clipboard) run_preset "set-clipboard" "$TEXT" ;;
|
|
192
|
-
*) echo '{"error":"Unknown preset: '"$PRESET"'"}' >&2; exit 1 ;;
|
|
218
|
+
|
|
219
|
+
jq -n --arg action "click" --arg button "$button" --argjson x "$x" --argjson y "$y" \
|
|
220
|
+
'{action:$action, button:$button, x:$x, y:$y, status:"ok"}'
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
# ---------------------------------------------------------------------------
|
|
224
|
+
# Action: move
|
|
225
|
+
# Moves mouse cursor to given screen coordinates.
|
|
226
|
+
# ---------------------------------------------------------------------------
|
|
227
|
+
do_move() {
|
|
228
|
+
local x y
|
|
229
|
+
x=$(echo "$INPUT" | jq -r '.x // empty')
|
|
230
|
+
y=$(echo "$INPUT" | jq -r '.y // empty')
|
|
231
|
+
require_param "x" "$x"
|
|
232
|
+
require_param "y" "$y"
|
|
233
|
+
|
|
234
|
+
osascript -l JavaScript -e "
|
|
235
|
+
ObjC.import('CoreGraphics');
|
|
236
|
+
var p = \$.CGPointMake($x, $y);
|
|
237
|
+
var mv = \$.CGEventCreateMouseEvent(null, \$.kCGEventMouseMoved, p, 0);
|
|
238
|
+
\$.CGEventPost(\$.kCGSessionEventTap, mv);
|
|
239
|
+
"
|
|
240
|
+
|
|
241
|
+
jq -n --argjson x "$x" --argjson y "$y" '{action:"move", x:$x, y:$y, status:"ok"}'
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
# ---------------------------------------------------------------------------
|
|
245
|
+
# Action: type
|
|
246
|
+
# Types text using System Events keystroke.
|
|
247
|
+
# Auto-switches to English (ABC) input source first.
|
|
248
|
+
# ---------------------------------------------------------------------------
|
|
249
|
+
do_type() {
|
|
250
|
+
local text
|
|
251
|
+
text=$(echo "$INPUT" | jq -r '.text // empty')
|
|
252
|
+
require_param "text" "$text"
|
|
253
|
+
|
|
254
|
+
# Switch to English (ABC) input source to avoid IME issues
|
|
255
|
+
osascript -l JavaScript -e '
|
|
256
|
+
ObjC.import("Carbon");
|
|
257
|
+
var sources = $.TISCreateInputSourceList($(), false);
|
|
258
|
+
var count = $.CFArrayGetCount(sources);
|
|
259
|
+
for (var i = 0; i < count; i++) {
|
|
260
|
+
var src = $.CFArrayGetValueAtIndex(sources, i);
|
|
261
|
+
var srcId = $.CFStringGetCStringPtr($.TISGetInputSourceProperty(src, $.kTISPropertyInputSourceID), 0);
|
|
262
|
+
if (srcId && (srcId.match(/ABC/) || srcId.match(/US/) || srcId.match(/com\.apple\.keylayout\.ABC/))) {
|
|
263
|
+
$.TISSelectInputSource(src);
|
|
264
|
+
break;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
' 2>/dev/null || true
|
|
268
|
+
|
|
269
|
+
# Type text via System Events
|
|
270
|
+
osascript -e "tell application \"System Events\" to keystroke \"$text\""
|
|
271
|
+
|
|
272
|
+
jq -n --arg text "$text" '{action:"type", text:$text, status:"ok"}'
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
# ---------------------------------------------------------------------------
|
|
276
|
+
# Action: key
|
|
277
|
+
# Sends a key combination (e.g., "command+c", "return", "shift+tab").
|
|
278
|
+
# ---------------------------------------------------------------------------
|
|
279
|
+
do_key() {
|
|
280
|
+
local combo
|
|
281
|
+
combo=$(echo "$INPUT" | jq -r '.key // empty')
|
|
282
|
+
require_param "key" "$combo"
|
|
283
|
+
|
|
284
|
+
# Parse modifier+key combination
|
|
285
|
+
local modifiers=""
|
|
286
|
+
local key_name=""
|
|
287
|
+
IFS='+' read -ra parts <<< "$combo"
|
|
288
|
+
|
|
289
|
+
if [ ${#parts[@]} -eq 1 ]; then
|
|
290
|
+
key_name="${parts[0]}"
|
|
291
|
+
else
|
|
292
|
+
key_name="${parts[-1]}"
|
|
293
|
+
for ((i=0; i<${#parts[@]}-1; i++)); do
|
|
294
|
+
case "${parts[$i]}" in
|
|
295
|
+
command|cmd) modifiers="${modifiers}command down, " ;;
|
|
296
|
+
shift) modifiers="${modifiers}shift down, " ;;
|
|
297
|
+
option|alt) modifiers="${modifiers}option down, " ;;
|
|
298
|
+
control|ctrl) modifiers="${modifiers}control down, " ;;
|
|
193
299
|
esac
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
300
|
+
done
|
|
301
|
+
modifiers="${modifiers%, }"
|
|
302
|
+
fi
|
|
303
|
+
|
|
304
|
+
# Map common key names to AppleScript key codes
|
|
305
|
+
local key_code=""
|
|
306
|
+
case "$key_name" in
|
|
307
|
+
return|enter) key_code="36" ;;
|
|
308
|
+
tab) key_code="48" ;;
|
|
309
|
+
escape|esc) key_code="53" ;;
|
|
310
|
+
space) key_code="49" ;;
|
|
311
|
+
delete|backspace) key_code="51" ;;
|
|
312
|
+
up) key_code="126" ;;
|
|
313
|
+
down) key_code="125" ;;
|
|
314
|
+
left) key_code="123" ;;
|
|
315
|
+
right) key_code="124" ;;
|
|
316
|
+
f1) key_code="122" ;;
|
|
317
|
+
f2) key_code="120" ;;
|
|
318
|
+
f3) key_code="99" ;;
|
|
319
|
+
f4) key_code="118" ;;
|
|
320
|
+
f5) key_code="96" ;;
|
|
321
|
+
esac
|
|
322
|
+
|
|
323
|
+
if [ -n "$key_code" ]; then
|
|
324
|
+
if [ -n "$modifiers" ]; then
|
|
325
|
+
osascript -e "tell application \"System Events\" to key code $key_code using {$modifiers}"
|
|
197
326
|
else
|
|
198
|
-
|
|
199
|
-
exit 1
|
|
327
|
+
osascript -e "tell application \"System Events\" to key code $key_code"
|
|
200
328
|
fi
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
329
|
+
else
|
|
330
|
+
if [ -n "$modifiers" ]; then
|
|
331
|
+
osascript -e "tell application \"System Events\" to keystroke \"$key_name\" using {$modifiers}"
|
|
332
|
+
else
|
|
333
|
+
osascript -e "tell application \"System Events\" to keystroke \"$key_name\""
|
|
334
|
+
fi
|
|
335
|
+
fi
|
|
336
|
+
|
|
337
|
+
jq -n --arg combo "$combo" '{action:"key", key:$combo, status:"ok"}'
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
# ---------------------------------------------------------------------------
|
|
341
|
+
# Action: scroll
|
|
342
|
+
# Scrolls at the given position (or current mouse location).
|
|
343
|
+
# ---------------------------------------------------------------------------
|
|
344
|
+
do_scroll() {
|
|
345
|
+
local x y dx dy
|
|
346
|
+
x=$(echo "$INPUT" | jq -r '.x // empty')
|
|
347
|
+
y=$(echo "$INPUT" | jq -r '.y // empty')
|
|
348
|
+
dx=$(echo "$INPUT" | jq -r '.dx // "0"')
|
|
349
|
+
dy=$(echo "$INPUT" | jq -r '.dy // "-3"')
|
|
350
|
+
|
|
351
|
+
# Move mouse first if coordinates given
|
|
352
|
+
if [ -n "$x" ] && [ -n "$y" ]; then
|
|
353
|
+
osascript -l JavaScript -e "
|
|
354
|
+
ObjC.import('CoreGraphics');
|
|
355
|
+
var p = \$.CGPointMake($x, $y);
|
|
356
|
+
var mv = \$.CGEventCreateMouseEvent(null, \$.kCGEventMouseMoved, p, 0);
|
|
357
|
+
\$.CGEventPost(\$.kCGSessionEventTap, mv);
|
|
358
|
+
"
|
|
359
|
+
sleep 0.1
|
|
360
|
+
fi
|
|
361
|
+
|
|
362
|
+
# Scroll using CoreGraphics scroll event
|
|
363
|
+
osascript -l JavaScript -e "
|
|
364
|
+
ObjC.import('CoreGraphics');
|
|
365
|
+
var ev = \$.CGEventCreateScrollWheelEvent(null, \$.kCGScrollEventUnitLine, 2, $dy, $dx);
|
|
366
|
+
\$.CGEventPost(\$.kCGSessionEventTap, ev);
|
|
367
|
+
"
|
|
368
|
+
|
|
369
|
+
jq -n --arg dx "$dx" --arg dy "$dy" '{action:"scroll", dx:$dx, dy:$dy, status:"ok"}'
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
# ---------------------------------------------------------------------------
|
|
373
|
+
# Action: drag
|
|
374
|
+
# Drags from (x1,y1) to (x2,y2).
|
|
375
|
+
# ---------------------------------------------------------------------------
|
|
376
|
+
do_drag() {
|
|
377
|
+
local x1 y1 x2 y2
|
|
378
|
+
x1=$(echo "$INPUT" | jq -r '.x1 // empty')
|
|
379
|
+
y1=$(echo "$INPUT" | jq -r '.y1 // empty')
|
|
380
|
+
x2=$(echo "$INPUT" | jq -r '.x2 // empty')
|
|
381
|
+
y2=$(echo "$INPUT" | jq -r '.y2 // empty')
|
|
382
|
+
require_param "x1" "$x1"
|
|
383
|
+
require_param "y1" "$y1"
|
|
384
|
+
require_param "x2" "$x2"
|
|
385
|
+
require_param "y2" "$y2"
|
|
386
|
+
|
|
387
|
+
osascript -l JavaScript -e "
|
|
388
|
+
ObjC.import('CoreGraphics');
|
|
389
|
+
var p1 = \$.CGPointMake($x1, $y1);
|
|
390
|
+
var p2 = \$.CGPointMake($x2, $y2);
|
|
391
|
+
var mv = \$.CGEventCreateMouseEvent(null, \$.kCGEventMouseMoved, p1, 0);
|
|
392
|
+
\$.CGEventPost(\$.kCGSessionEventTap, mv);
|
|
393
|
+
delay(0.1);
|
|
394
|
+
var dn = \$.CGEventCreateMouseEvent(null, \$.kCGEventLeftMouseDown, p1, 0);
|
|
395
|
+
\$.CGEventPost(\$.kCGSessionEventTap, dn);
|
|
396
|
+
delay(0.1);
|
|
397
|
+
var drag = \$.CGEventCreateMouseEvent(null, \$.kCGEventLeftMouseDragged, p2, 0);
|
|
398
|
+
\$.CGEventPost(\$.kCGSessionEventTap, drag);
|
|
399
|
+
delay(0.1);
|
|
400
|
+
var up = \$.CGEventCreateMouseEvent(null, \$.kCGEventLeftMouseUp, p2, 0);
|
|
401
|
+
\$.CGEventPost(\$.kCGSessionEventTap, up);
|
|
402
|
+
"
|
|
403
|
+
|
|
404
|
+
jq -n --argjson x1 "$x1" --argjson y1 "$y1" --argjson x2 "$x2" --argjson y2 "$y2" \
|
|
405
|
+
'{action:"drag", from:{x:$x1,y:$y1}, to:{x:$x2,y:$y2}, status:"ok"}'
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
# ---------------------------------------------------------------------------
|
|
409
|
+
# Action: focus
|
|
410
|
+
# Brings an application to the foreground.
|
|
411
|
+
# ---------------------------------------------------------------------------
|
|
412
|
+
do_focus() {
|
|
413
|
+
local app
|
|
414
|
+
app=$(echo "$INPUT" | jq -r '.app // empty')
|
|
415
|
+
require_param "app" "$app"
|
|
416
|
+
|
|
417
|
+
osascript -e "
|
|
418
|
+
tell application \"$app\"
|
|
419
|
+
activate
|
|
420
|
+
end tell
|
|
421
|
+
"
|
|
422
|
+
sleep 0.3
|
|
423
|
+
|
|
424
|
+
jq -n --arg app "$app" '{action:"focus", app:$app, status:"ok"}'
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
# ---------------------------------------------------------------------------
|
|
428
|
+
# Action: open-url
|
|
429
|
+
# Opens a URL in a browser. Bypasses keyboard entirely.
|
|
430
|
+
# ---------------------------------------------------------------------------
|
|
431
|
+
do_open_url() {
|
|
432
|
+
local url app_name
|
|
433
|
+
url=$(echo "$INPUT" | jq -r '.url // empty')
|
|
434
|
+
app_name=$(echo "$INPUT" | jq -r '.app // "Safari"')
|
|
435
|
+
require_param "url" "$url"
|
|
436
|
+
|
|
437
|
+
osascript -e "tell application \"$app_name\" to open location \"$url\""
|
|
438
|
+
osascript -e "tell application \"$app_name\" to activate"
|
|
439
|
+
sleep 0.5
|
|
440
|
+
|
|
441
|
+
jq -n --arg url "$url" --arg app "$app_name" '{action:"open-url", url:$url, app:$app, status:"ok"}'
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
# ---------------------------------------------------------------------------
|
|
445
|
+
# Action: list-apps
|
|
446
|
+
# Lists all running GUI applications.
|
|
447
|
+
# ---------------------------------------------------------------------------
|
|
448
|
+
do_list_apps() {
|
|
449
|
+
local apps
|
|
450
|
+
apps=$(osascript -e '
|
|
451
|
+
tell application "System Events"
|
|
452
|
+
set appList to {}
|
|
453
|
+
repeat with proc in (every process whose background only is false)
|
|
454
|
+
set end of appList to name of proc
|
|
455
|
+
end repeat
|
|
456
|
+
set AppleScript'\''s text item delimiters to ","
|
|
457
|
+
return appList as text
|
|
458
|
+
end tell
|
|
459
|
+
')
|
|
460
|
+
|
|
461
|
+
# Convert comma-separated list to JSON array
|
|
462
|
+
echo "$apps" | tr ',' '\n' | jq -R -s '
|
|
463
|
+
split("\n") | map(gsub("^\\s+|\\s+$"; "")) | map(select(length > 0)) |
|
|
464
|
+
{action: "list-apps", apps: ., count: length}
|
|
465
|
+
'
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
# ---------------------------------------------------------------------------
|
|
469
|
+
# Action: find
|
|
470
|
+
# Locates UI elements by pixel-level color/contrast analysis.
|
|
471
|
+
# Takes a full-resolution screenshot, analyzes it with Python/Pillow,
|
|
472
|
+
# and returns screen-point coordinates of found elements.
|
|
473
|
+
# Modes: button (bright rectangles), avatar (colored circles), color (target RGB).
|
|
474
|
+
# ---------------------------------------------------------------------------
|
|
475
|
+
do_find() {
|
|
476
|
+
local mode target region
|
|
477
|
+
mode=$(printf '%s' "$INPUT" | jq -r '.mode // "button"')
|
|
478
|
+
target=$(printf '%s' "$INPUT" | jq -r '.target // empty')
|
|
479
|
+
region=$(printf '%s' "$INPUT" | jq -c '.region // null')
|
|
480
|
+
|
|
481
|
+
# Take screenshot at FULL resolution for pixel-accurate scanning
|
|
482
|
+
local scan_file="/tmp/cu-find-scan.png"
|
|
483
|
+
screencapture -x "$scan_file" 2>/dev/null
|
|
484
|
+
|
|
485
|
+
local scale_int
|
|
486
|
+
scale_int=$(osascript -l JavaScript -e 'ObjC.import("AppKit"); Math.round($.NSScreen.mainScreen.backingScaleFactor);' 2>/dev/null || echo "2")
|
|
487
|
+
|
|
488
|
+
CU_SCALE="$scale_int" CU_MODE="$mode" CU_TARGET="$target" CU_REGION="$region" python3 << 'PYEOF'
|
|
489
|
+
import json, sys, os
|
|
490
|
+
from PIL import Image, ImageDraw, ImageFont
|
|
491
|
+
|
|
492
|
+
img = Image.open('/tmp/cu-find-scan.png')
|
|
493
|
+
W, H = img.size
|
|
494
|
+
S = int(os.environ.get('CU_SCALE', '2'))
|
|
495
|
+
mode = os.environ.get('CU_MODE', 'button')
|
|
496
|
+
target = os.environ.get('CU_TARGET', '')
|
|
497
|
+
region_json = os.environ.get('CU_REGION', 'null')
|
|
498
|
+
|
|
499
|
+
# Optional region constraint: {"x":100,"y":200,"w":400,"h":300} in screen coords
|
|
500
|
+
region = json.loads(region_json) if region_json != 'null' else None
|
|
501
|
+
if region:
|
|
502
|
+
rx, ry, rw, rh = region['x']*S, region['y']*S, region['w']*S, region['h']*S
|
|
503
|
+
else:
|
|
504
|
+
rx, ry, rw, rh = 0, 0, W, H
|
|
505
|
+
|
|
506
|
+
def px(x, y):
|
|
507
|
+
"""Get pixel RGB, clamped to image bounds."""
|
|
508
|
+
x, y = max(0, min(x, W-1)), max(0, min(y, H-1))
|
|
509
|
+
return img.getpixel((x, y))[:3]
|
|
510
|
+
|
|
511
|
+
def to_screen(x, y):
|
|
512
|
+
"""Convert pixel coords to screen coords."""
|
|
513
|
+
return x // S, y // S
|
|
514
|
+
|
|
515
|
+
def cluster_points(points, gap=20):
|
|
516
|
+
"""Cluster nearby points by Y proximity."""
|
|
517
|
+
if not points:
|
|
518
|
+
return []
|
|
519
|
+
points.sort(key=lambda p: p[1])
|
|
520
|
+
clusters = [[points[0]]]
|
|
521
|
+
for i in range(1, len(points)):
|
|
522
|
+
if points[i][1] - points[i-1][1] < gap:
|
|
523
|
+
clusters[-1].append(points[i])
|
|
524
|
+
else:
|
|
525
|
+
clusters.append([points[i]])
|
|
526
|
+
return [c for c in clusters if len(c) >= 3]
|
|
527
|
+
|
|
528
|
+
# ── MODE: text ──────────────────────────────────────────────────
|
|
529
|
+
# Uses macOS Vision framework OCR for fast, accurate text detection.
|
|
530
|
+
# Finds target text on screen and returns its screen coordinates.
|
|
531
|
+
if mode == 'text' and target:
|
|
532
|
+
import subprocess
|
|
533
|
+
# Call Swift Vision OCR (fast, accurate, built into macOS)
|
|
534
|
+
swift_code = r'''
|
|
535
|
+
import Vision
|
|
536
|
+
import AppKit
|
|
537
|
+
import Foundation
|
|
538
|
+
|
|
539
|
+
let url = URL(fileURLWithPath: "/tmp/cu-find-scan.png")
|
|
540
|
+
guard let image = NSImage(contentsOf: url),
|
|
541
|
+
let tiffData = image.tiffRepresentation,
|
|
542
|
+
let bitmap = NSBitmapImageRep(data: tiffData),
|
|
543
|
+
let cgImage = bitmap.cgImage else {
|
|
544
|
+
print("[]")
|
|
545
|
+
exit(0)
|
|
546
|
+
}
|
|
547
|
+
let imgW = Double(cgImage.width)
|
|
548
|
+
let imgH = Double(cgImage.height)
|
|
549
|
+
let request = VNRecognizeTextRequest()
|
|
550
|
+
request.recognitionLevel = .accurate
|
|
551
|
+
let handler = VNImageRequestHandler(cgImage: cgImage, options: [:])
|
|
552
|
+
try? handler.perform([request])
|
|
553
|
+
var results: [[String: Any]] = []
|
|
554
|
+
for obs in request.results ?? [] {
|
|
555
|
+
if let candidate = obs.topCandidates(1).first {
|
|
556
|
+
let box = obs.boundingBox
|
|
557
|
+
// Convert from Vision coords (bottom-left, 0-1) to pixel coords (top-left)
|
|
558
|
+
let px = box.origin.x * imgW + box.size.width * imgW / 2
|
|
559
|
+
let py = (1.0 - box.origin.y - box.size.height) * imgH + box.size.height * imgH / 2
|
|
560
|
+
results.append([
|
|
561
|
+
"text": candidate.string,
|
|
562
|
+
"px": Int(px),
|
|
563
|
+
"py": Int(py),
|
|
564
|
+
"confidence": candidate.confidence
|
|
565
|
+
])
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
let jsonData = try! JSONSerialization.data(withJSONObject: results)
|
|
569
|
+
print(String(data: jsonData, encoding: .utf8) ?? "[]")
|
|
570
|
+
'''
|
|
571
|
+
|
|
572
|
+
proc = subprocess.run(['swift', '-e', swift_code], capture_output=True, text=True, timeout=15)
|
|
573
|
+
ocr_results = json.loads(proc.stdout.strip()) if proc.stdout.strip() else []
|
|
574
|
+
|
|
575
|
+
# Search for target text (case-insensitive substring match)
|
|
576
|
+
target_lower = target.lower()
|
|
577
|
+
matches = []
|
|
578
|
+
for r in ocr_results:
|
|
579
|
+
if target_lower in r['text'].lower():
|
|
580
|
+
sx, sy = r['px'] // S, r['py'] // S
|
|
581
|
+
matches.append({'x': sx, 'y': sy, 'text': r['text'], 'confidence': round(r['confidence'], 3)})
|
|
582
|
+
|
|
583
|
+
if matches:
|
|
584
|
+
best = matches[0]
|
|
585
|
+
print(json.dumps({'found': True, 'x': best['x'], 'y': best['y'], 'text': best['text'], 'confidence': best['confidence'], 'allMatches': matches[:5]}))
|
|
586
|
+
else:
|
|
587
|
+
# Return all detected text for debugging
|
|
588
|
+
all_texts = [r['text'] for r in ocr_results[:15]]
|
|
589
|
+
print(json.dumps({'found': False, 'target': target, 'textsOnScreen': all_texts}))
|
|
590
|
+
|
|
591
|
+
# ── MODE: button ────────────────────────────────────────────────
|
|
592
|
+
# Find button-like rectangles (white on dark OR bordered on light)
|
|
593
|
+
elif mode == 'button':
|
|
594
|
+
buttons = []
|
|
595
|
+
# Scan for horizontal runs of uniform bright OR bordered pixels
|
|
596
|
+
for y in range(ry, ry+rh, 3):
|
|
597
|
+
in_run = False
|
|
598
|
+
run_start = 0
|
|
599
|
+
for x in range(rx, rx+rw, 2):
|
|
600
|
+
r, g, b = px(x, y)
|
|
601
|
+
bright = r > 200 and g > 200 and b > 200
|
|
602
|
+
# Check if this bright pixel has dark neighbors above/below (= button)
|
|
603
|
+
if bright:
|
|
604
|
+
above = px(x, max(0, y-40))
|
|
605
|
+
below = px(x, min(H-1, y+40))
|
|
606
|
+
is_button_pixel = (sum(above)/3 < 120) or (sum(below)/3 < 120)
|
|
607
|
+
else:
|
|
608
|
+
is_button_pixel = False
|
|
609
|
+
|
|
610
|
+
if is_button_pixel and not in_run:
|
|
611
|
+
run_start = x
|
|
612
|
+
in_run = True
|
|
613
|
+
elif not is_button_pixel and in_run:
|
|
614
|
+
run_len = x - run_start
|
|
615
|
+
if run_len > 80:
|
|
616
|
+
cx, cy = to_screen((run_start + x) // 2, y)
|
|
617
|
+
buttons.append({'x': cx, 'y': cy, 'width': run_len // S})
|
|
618
|
+
in_run = False
|
|
619
|
+
|
|
620
|
+
# Cluster
|
|
621
|
+
clusters = []
|
|
622
|
+
buttons.sort(key=lambda b: (b['y'], b['x']))
|
|
623
|
+
if buttons:
|
|
624
|
+
current = [buttons[0]]
|
|
625
|
+
for i in range(1, len(buttons)):
|
|
626
|
+
if abs(buttons[i]['y'] - current[-1]['y']) < 8:
|
|
627
|
+
current.append(buttons[i])
|
|
628
|
+
else:
|
|
629
|
+
if len(current) >= 2:
|
|
630
|
+
cx = sum(b['x'] for b in current) // len(current)
|
|
631
|
+
cy = sum(b['y'] for b in current) // len(current)
|
|
632
|
+
w = max(b['width'] for b in current)
|
|
633
|
+
clusters.append({'x': cx, 'y': cy, 'width': w, 'height': len(current) * 3})
|
|
634
|
+
current = [buttons[i]]
|
|
635
|
+
if len(current) >= 2:
|
|
636
|
+
cx = sum(b['x'] for b in current) // len(current)
|
|
637
|
+
cy = sum(b['y'] for b in current) // len(current)
|
|
638
|
+
w = max(b['width'] for b in current)
|
|
639
|
+
clusters.append({'x': cx, 'y': cy, 'width': w, 'height': len(current) * 3})
|
|
640
|
+
|
|
641
|
+
print(json.dumps({'found': len(clusters), 'elements': clusters[:20]}))
|
|
642
|
+
|
|
643
|
+
# ── MODE: avatar ────────────────────────────────────────────────
|
|
644
|
+
elif mode == 'avatar':
|
|
645
|
+
colored = []
|
|
646
|
+
for y in range(ry + rh//4, ry + 3*rh//4, 2):
|
|
647
|
+
for x in range(rx + rw//4, rx + 3*rw//4, 3):
|
|
648
|
+
r, g, b = px(x, y)
|
|
649
|
+
sat = max(r,g,b) - min(r,g,b)
|
|
650
|
+
if sat > 40 and max(r,g,b) > 80 and min(r,g,b) < 200:
|
|
651
|
+
colored.append((x, y))
|
|
652
|
+
|
|
653
|
+
clusters = cluster_points(colored, gap=15)
|
|
654
|
+
avatars = []
|
|
655
|
+
for c in clusters:
|
|
656
|
+
if len(c) >= 5:
|
|
657
|
+
cx, cy = to_screen(
|
|
658
|
+
sum(p[0] for p in c) // len(c),
|
|
659
|
+
sum(p[1] for p in c) // len(c)
|
|
660
|
+
)
|
|
661
|
+
avatars.append({'x': cx + 50, 'y': cy})
|
|
662
|
+
|
|
663
|
+
print(json.dumps({'found': len(avatars), 'elements': avatars[:10]}))
|
|
664
|
+
|
|
665
|
+
# ── MODE: color ─────────────────────────────────────────────────
|
|
666
|
+
elif mode == 'color' and target:
|
|
667
|
+
parts = target.split(',')
|
|
668
|
+
tr, tg, tb = int(parts[0]), int(parts[1]), int(parts[2])
|
|
669
|
+
tol = 60
|
|
670
|
+
hits = []
|
|
671
|
+
for y in range(ry, ry+rh, 3):
|
|
672
|
+
for x in range(rx, rx+rw, 3):
|
|
673
|
+
r, g, b = px(x, y)
|
|
674
|
+
if abs(r-tr) < tol and abs(g-tg) < tol and abs(b-tb) < tol:
|
|
675
|
+
hits.append((x, y))
|
|
676
|
+
if hits:
|
|
677
|
+
cx, cy = to_screen(
|
|
678
|
+
sum(p[0] for p in hits) // len(hits),
|
|
679
|
+
sum(p[1] for p in hits) // len(hits)
|
|
680
|
+
)
|
|
681
|
+
print(json.dumps({'found': len(hits), 'center': {'x': cx, 'y': cy}}))
|
|
682
|
+
else:
|
|
683
|
+
print(json.dumps({'found': 0}))
|
|
684
|
+
|
|
685
|
+
# ── MODE: contrast ──────────────────────────────────────────────
|
|
686
|
+
# Find high-contrast edges (useful for finding UI element boundaries)
|
|
687
|
+
elif mode == 'contrast':
|
|
688
|
+
edges = []
|
|
689
|
+
for y in range(ry+2, ry+rh-2, 3):
|
|
690
|
+
for x in range(rx+2, rx+rw-2, 3):
|
|
691
|
+
c = px(x, y)
|
|
692
|
+
r_pixel = px(x+4, y)
|
|
693
|
+
d_pixel = px(x, y+4)
|
|
694
|
+
h_diff = abs(sum(c)/3 - sum(r_pixel)/3)
|
|
695
|
+
v_diff = abs(sum(c)/3 - sum(d_pixel)/3)
|
|
696
|
+
if h_diff > 80 or v_diff > 80:
|
|
697
|
+
edges.append((x, y))
|
|
698
|
+
clusters = cluster_points(edges, gap=10)
|
|
699
|
+
elements = []
|
|
700
|
+
for c in clusters:
|
|
701
|
+
if len(c) >= 10:
|
|
702
|
+
cx, cy = to_screen(
|
|
703
|
+
sum(p[0] for p in c) // len(c),
|
|
704
|
+
sum(p[1] for p in c) // len(c)
|
|
705
|
+
)
|
|
706
|
+
elements.append({'x': cx, 'y': cy, 'density': len(c)})
|
|
707
|
+
print(json.dumps({'found': len(elements), 'elements': elements[:20]}))
|
|
708
|
+
|
|
709
|
+
elif mode == 'near':
|
|
710
|
+
# Find an icon/element near a known text anchor.
|
|
711
|
+
# target = the text to anchor on (found via OCR)
|
|
712
|
+
# Uses pixel scanning around the anchor to find nearby non-text elements.
|
|
713
|
+
# Params via env: CU_NEAR_DIR (right|left|above|below), CU_NEAR_DIST (max distance)
|
|
714
|
+
near_dir = os.environ.get('CU_NEAR_DIR', 'right')
|
|
715
|
+
near_dist = int(os.environ.get('CU_NEAR_DIST', '150'))
|
|
716
|
+
|
|
717
|
+
if not target:
|
|
718
|
+
print(json.dumps({'error': 'near mode requires target text'}))
|
|
719
|
+
else:
|
|
720
|
+
# First find anchor text via OCR
|
|
721
|
+
import subprocess
|
|
722
|
+
proc = subprocess.run(['swift', '/tmp/cu-ocr.swift', '/tmp/cu-find-scan.png'],
|
|
723
|
+
capture_output=True, text=True, timeout=15)
|
|
724
|
+
ocr = json.loads(proc.stdout.strip()) if proc.stdout.strip() else []
|
|
725
|
+
anchor = None
|
|
726
|
+
for r in ocr:
|
|
727
|
+
if target.lower() in r['text'].lower():
|
|
728
|
+
anchor = (r['px'], r['py'])
|
|
729
|
+
break
|
|
730
|
+
|
|
731
|
+
if not anchor:
|
|
732
|
+
# Try inverted image for dark themes
|
|
733
|
+
from PIL import ImageOps
|
|
734
|
+
ImageOps.invert(img.convert('RGB')).save('/tmp/cu-find-inverted.png')
|
|
735
|
+
proc2 = subprocess.run(['swift', '/tmp/cu-ocr.swift', '/tmp/cu-find-inverted.png'],
|
|
736
|
+
capture_output=True, text=True, timeout=15)
|
|
737
|
+
ocr2 = json.loads(proc2.stdout.strip()) if proc2.stdout.strip() else []
|
|
738
|
+
for r in ocr2:
|
|
739
|
+
if target.lower() in r['text'].lower():
|
|
740
|
+
anchor = (r['px'], r['py'])
|
|
741
|
+
break
|
|
742
|
+
|
|
743
|
+
if not anchor:
|
|
744
|
+
print(json.dumps({'found': False, 'error': f'Anchor text "{target}" not found'}))
|
|
745
|
+
else:
|
|
746
|
+
ax, ay = anchor
|
|
747
|
+
dist_px = near_dist * S
|
|
748
|
+
# Define scan region based on direction
|
|
749
|
+
if near_dir == 'right':
|
|
750
|
+
scan_x1, scan_y1 = ax + 20, ay - 30
|
|
751
|
+
scan_x2, scan_y2 = ax + dist_px, ay + 30
|
|
752
|
+
elif near_dir == 'left':
|
|
753
|
+
scan_x1, scan_y1 = ax - dist_px, ay - 30
|
|
754
|
+
scan_x2, scan_y2 = ax - 20, ay + 30
|
|
755
|
+
elif near_dir == 'above':
|
|
756
|
+
scan_x1, scan_y1 = ax - 30, ay - dist_px
|
|
757
|
+
scan_x2, scan_y2 = ax + 30, ay - 20
|
|
758
|
+
else: # below
|
|
759
|
+
scan_x1, scan_y1 = ax - 30, ay + 20
|
|
760
|
+
scan_x2, scan_y2 = ax + 30, ay + dist_px
|
|
761
|
+
|
|
762
|
+
# Clamp to image bounds
|
|
763
|
+
scan_x1, scan_y1 = max(0, scan_x1), max(0, scan_y1)
|
|
764
|
+
scan_x2, scan_y2 = min(W-1, scan_x2), min(H-1, scan_y2)
|
|
765
|
+
|
|
766
|
+
# Scan for non-background pixels (icons, buttons)
|
|
767
|
+
icon_pixels = []
|
|
768
|
+
for y in range(scan_y1, scan_y2, 2):
|
|
769
|
+
for x in range(scan_x1, scan_x2, 2):
|
|
770
|
+
r, g, b = px(x, y)
|
|
771
|
+
brightness = (r + g + b) / 3
|
|
772
|
+
# Icon: medium brightness, not pure white/black
|
|
773
|
+
if 60 < brightness < 180:
|
|
774
|
+
icon_pixels.append((x, y))
|
|
775
|
+
|
|
776
|
+
if icon_pixels:
|
|
777
|
+
ix = sum(p[0] for p in icon_pixels) // len(icon_pixels)
|
|
778
|
+
iy = sum(p[1] for p in icon_pixels) // len(icon_pixels)
|
|
779
|
+
sx, sy = to_screen(ix, iy)
|
|
780
|
+
asx, asy = to_screen(ax, ay)
|
|
781
|
+
print(json.dumps({
|
|
782
|
+
'found': True,
|
|
783
|
+
'x': sx, 'y': sy,
|
|
784
|
+
'anchor': {'x': asx, 'y': asy, 'text': target},
|
|
785
|
+
'direction': near_dir
|
|
786
|
+
}))
|
|
787
|
+
else:
|
|
788
|
+
asx, asy = to_screen(ax, ay)
|
|
789
|
+
print(json.dumps({
|
|
790
|
+
'found': False,
|
|
791
|
+
'anchor': {'x': asx, 'y': asy},
|
|
792
|
+
'error': f'No icon found {near_dir} of "{target}"'
|
|
793
|
+
}))
|
|
794
|
+
|
|
795
|
+
else:
|
|
796
|
+
print(json.dumps({'error': f'Unknown mode: {mode}. Use: text, button, avatar, color, contrast, near'}))
|
|
797
|
+
PYEOF
|
|
798
|
+
|
|
799
|
+
rm -f "$scan_file"
|
|
800
|
+
}
|
|
801
|
+
|
|
802
|
+
# =============================================================================
|
|
803
|
+
# click-text — Find text via OCR and click on it (one-step convenience action)
|
|
804
|
+
# =============================================================================
|
|
805
|
+
do_click_text() {
|
|
806
|
+
local target
|
|
807
|
+
target=$(printf '%s' "$INPUT" | jq -r '.target // .text // empty')
|
|
808
|
+
require_param "target" "$target"
|
|
809
|
+
|
|
810
|
+
# Use find to locate the text
|
|
811
|
+
local find_result
|
|
812
|
+
find_result=$(CU_SCALE="$( osascript -l JavaScript -e 'ObjC.import("AppKit"); Math.round($.NSScreen.mainScreen.backingScaleFactor);' 2>/dev/null || echo 2)" \
|
|
813
|
+
CU_MODE="text" CU_TARGET="$target" CU_REGION="null" \
|
|
814
|
+
bash "${BASH_SOURCE[0]}" "{\"action\":\"find\",\"mode\":\"text\",\"target\":\"$target\"}" 2>&1)
|
|
815
|
+
|
|
816
|
+
local found x y
|
|
817
|
+
found=$(echo "$find_result" | jq -r '.found // false')
|
|
818
|
+
x=$(echo "$find_result" | jq -r '.x // empty')
|
|
819
|
+
y=$(echo "$find_result" | jq -r '.y // empty')
|
|
820
|
+
|
|
821
|
+
if [ "$found" = "true" ] && [ -n "$x" ] && [ -n "$y" ]; then
|
|
822
|
+
# Click at the found position
|
|
823
|
+
do_click_at "$x" "$y"
|
|
824
|
+
echo "{\"success\":true,\"action\":\"click-text\",\"target\":\"$target\",\"x\":$x,\"y\":$y,\"text\":$(echo "$find_result" | jq '.text')}"
|
|
825
|
+
else
|
|
826
|
+
echo "{\"success\":false,\"action\":\"click-text\",\"target\":\"$target\",\"error\":\"Text not found\",\"debug\":$find_result}"
|
|
827
|
+
fi
|
|
828
|
+
}
|
|
829
|
+
|
|
830
|
+
# Helper: click at coordinates (reuses click logic)
|
|
831
|
+
do_click_at() {
|
|
832
|
+
local cx="$1" cy="$2"
|
|
833
|
+
osascript -l JavaScript -e "
|
|
834
|
+
ObjC.import('CoreGraphics');
|
|
835
|
+
var point = \$.CGPointMake($cx, $cy);
|
|
836
|
+
var move = \$.CGEventCreateMouseEvent(null, \$.kCGEventMouseMoved, point, 0);
|
|
837
|
+
\$.CGEventPost(\$.kCGSessionEventTap, move);
|
|
838
|
+
delay(0.1);
|
|
839
|
+
var down = \$.CGEventCreateMouseEvent(null, \$.kCGEventLeftMouseDown, point, 0);
|
|
840
|
+
\$.CGEventPost(\$.kCGSessionEventTap, down);
|
|
841
|
+
delay(0.05);
|
|
842
|
+
var up = \$.CGEventCreateMouseEvent(null, \$.kCGEventLeftMouseUp, point, 0);
|
|
843
|
+
\$.CGEventPost(\$.kCGSessionEventTap, up);
|
|
844
|
+
" >/dev/null 2>&1
|
|
845
|
+
}
|
|
846
|
+
|
|
847
|
+
# ---------------------------------------------------------------------------
|
|
848
|
+
# Action dispatch
|
|
849
|
+
# ---------------------------------------------------------------------------
|
|
850
|
+
case "$ACTION" in
|
|
851
|
+
screenshot) do_screenshot ;;
|
|
852
|
+
click) do_click ;;
|
|
853
|
+
move) do_move ;;
|
|
854
|
+
type) do_type ;;
|
|
855
|
+
key) do_key ;;
|
|
856
|
+
scroll) do_scroll ;;
|
|
857
|
+
drag) do_drag ;;
|
|
858
|
+
focus) do_focus ;;
|
|
859
|
+
open-url) do_open_url ;;
|
|
860
|
+
list-apps) do_list_apps ;;
|
|
861
|
+
find) do_find ;;
|
|
862
|
+
click-text) do_click_text ;;
|
|
863
|
+
*) error_exit "Unknown action: $ACTION. Valid: screenshot, click, move, type, key, scroll, drag, focus, open-url, list-apps, find, click-text" ;;
|
|
228
864
|
esac
|