my-crew 0.1.0__tar.gz

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.
Files changed (938) hide show
  1. my_crew-0.1.0/.dockerignore +32 -0
  2. my_crew-0.1.0/.env.example +125 -0
  3. my_crew-0.1.0/.github/workflows/ci.yml +64 -0
  4. my_crew-0.1.0/.github/workflows/release.yml +47 -0
  5. my_crew-0.1.0/.gitignore +63 -0
  6. my_crew-0.1.0/.python-version +1 -0
  7. my_crew-0.1.0/CHANGELOG.md +38 -0
  8. my_crew-0.1.0/CONTRIBUTING.md +33 -0
  9. my_crew-0.1.0/HANDOVER.md +133 -0
  10. my_crew-0.1.0/LICENSE +202 -0
  11. my_crew-0.1.0/NOTICE +8 -0
  12. my_crew-0.1.0/PKG-INFO +31 -0
  13. my_crew-0.1.0/README.md +84 -0
  14. my_crew-0.1.0/README.vi.md +83 -0
  15. my_crew-0.1.0/SECURITY.md +33 -0
  16. my_crew-0.1.0/config/mcp-server-pins.sh +11 -0
  17. my_crew-0.1.0/config/model_prices.yaml +15 -0
  18. my_crew-0.1.0/demo/profiles/kiem-dinh/MEMORY.md +1 -0
  19. my_crew-0.1.0/demo/profiles/kiem-dinh/PROJECT.md +3 -0
  20. my_crew-0.1.0/demo/profiles/kiem-dinh/SOUL.md +5 -0
  21. my_crew-0.1.0/demo/profiles/kiem-dinh/profile.yaml +40 -0
  22. my_crew-0.1.0/demo/profiles/nghien-cuu/MEMORY.md +1 -0
  23. my_crew-0.1.0/demo/profiles/nghien-cuu/PROJECT.md +3 -0
  24. my_crew-0.1.0/demo/profiles/nghien-cuu/SOUL.md +5 -0
  25. my_crew-0.1.0/demo/profiles/nghien-cuu/profile.yaml +49 -0
  26. my_crew-0.1.0/demo/profiles/noi-dung/MEMORY.md +1 -0
  27. my_crew-0.1.0/demo/profiles/noi-dung/PROJECT.md +3 -0
  28. my_crew-0.1.0/demo/profiles/noi-dung/SOUL.md +5 -0
  29. my_crew-0.1.0/demo/profiles/noi-dung/profile.yaml +43 -0
  30. my_crew-0.1.0/demo/profiles/phan-tich/MEMORY.md +1 -0
  31. my_crew-0.1.0/demo/profiles/phan-tich/PROJECT.md +3 -0
  32. my_crew-0.1.0/demo/profiles/phan-tich/SOUL.md +5 -0
  33. my_crew-0.1.0/demo/profiles/phan-tich/profile.yaml +40 -0
  34. my_crew-0.1.0/demo/profiles/thiet-ke/MEMORY.md +1 -0
  35. my_crew-0.1.0/demo/profiles/thiet-ke/PROJECT.md +3 -0
  36. my_crew-0.1.0/demo/profiles/thiet-ke/SOUL.md +5 -0
  37. my_crew-0.1.0/demo/profiles/thiet-ke/profile.yaml +40 -0
  38. my_crew-0.1.0/demo/profiles/truong-phong/MEMORY.md +1 -0
  39. my_crew-0.1.0/demo/profiles/truong-phong/PROJECT.md +3 -0
  40. my_crew-0.1.0/demo/profiles/truong-phong/SOUL.md +5 -0
  41. my_crew-0.1.0/demo/profiles/truong-phong/profile.yaml +49 -0
  42. my_crew-0.1.0/demo/registry.yaml +22 -0
  43. my_crew-0.1.0/demo/seed_office_events.py +165 -0
  44. my_crew-0.1.0/deploy/backup.sh +33 -0
  45. my_crew-0.1.0/deploy/docker/Dockerfile +44 -0
  46. my_crew-0.1.0/deploy/docker/docker-compose.yaml +31 -0
  47. my_crew-0.1.0/deploy/docker/my-crew.env.example +17 -0
  48. my_crew-0.1.0/deploy/install.sh +346 -0
  49. my_crew-0.1.0/deploy/launchd/com.mpm.report.daily.plist +27 -0
  50. my_crew-0.1.0/deploy/launchd/com.mpm.report.resource.plist +29 -0
  51. my_crew-0.1.0/deploy/launchd/com.mpm.report.weekly.plist +29 -0
  52. my_crew-0.1.0/deploy/launchd/com.mpm.service.plist +33 -0
  53. my_crew-0.1.0/deploy/launchd/com.mpm.web.plist +30 -0
  54. my_crew-0.1.0/deploy/launchd/install.sh +42 -0
  55. my_crew-0.1.0/deploy/launchd/run-report.sh +29 -0
  56. my_crew-0.1.0/deploy/launchd/uninstall.sh +15 -0
  57. my_crew-0.1.0/deploy/restore.sh +32 -0
  58. my_crew-0.1.0/docs/PACK-AUTHORING.md +87 -0
  59. my_crew-0.1.0/docs/action-gateway-explainer.md +172 -0
  60. my_crew-0.1.0/docs/archive/architecture-comparison.md +238 -0
  61. my_crew-0.1.0/docs/archive/e2e-comprehensive-v1-v8-report.md +93 -0
  62. my_crew-0.1.0/docs/archive/interview-cheat-sheet-1-page.md +67 -0
  63. my_crew-0.1.0/docs/archive/interview-prep-ai-product-po.md +300 -0
  64. my_crew-0.1.0/docs/archive/project-changelog.md +130 -0
  65. my_crew-0.1.0/docs/archive/uat-nghiem-thu-cac-case-quan-trong.md +168 -0
  66. my_crew-0.1.0/docs/archive/v1/codebase-summary.md +150 -0
  67. my_crew-0.1.0/docs/archive/v1/deployment-guide.md +171 -0
  68. my_crew-0.1.0/docs/archive/v1/outer-loop-patterns.md +114 -0
  69. my_crew-0.1.0/docs/archive/v1/project-overview-pdr.md +129 -0
  70. my_crew-0.1.0/docs/archive/v1/project-roadmap.md +153 -0
  71. my_crew-0.1.0/docs/archive/v1/system-architecture.md +208 -0
  72. my_crew-0.1.0/docs/archive/v2/README.md +65 -0
  73. my_crew-0.1.0/docs/archive/v2/architecture.md +417 -0
  74. my_crew-0.1.0/docs/archive/v2/deployment-production.md +97 -0
  75. my_crew-0.1.0/docs/archive/v2/examples/automation-blocker-stakeholder-note.yaml +28 -0
  76. my_crew-0.1.0/docs/archive/v2/feature-proposals.md +93 -0
  77. my_crew-0.1.0/docs/archive/v2/getting-started.md +692 -0
  78. my_crew-0.1.0/docs/archive/v2/profile-design.md +139 -0
  79. my_crew-0.1.0/docs/archive/v2/risks-open-questions.md +16 -0
  80. my_crew-0.1.0/docs/archive/v2/roadmap-m1.md +94 -0
  81. my_crew-0.1.0/docs/archive/v2/roadmap-m2.md +164 -0
  82. my_crew-0.1.0/docs/archive/v2/uat-checklist.md +108 -0
  83. my_crew-0.1.0/docs/code-standards.md +58 -0
  84. my_crew-0.1.0/docs/codebase-summary.md +505 -0
  85. my_crew-0.1.0/docs/deployment-guide.md +412 -0
  86. my_crew-0.1.0/docs/deployment-guide.vi.md +381 -0
  87. my_crew-0.1.0/docs/design-guidelines.md +149 -0
  88. my_crew-0.1.0/docs/huong-dan-su-dung.md +454 -0
  89. my_crew-0.1.0/docs/images/van-phong-3-cot-command-center.png +0 -0
  90. my_crew-0.1.0/docs/images/van-phong-3d-tham-van-di-lai-gan.png +0 -0
  91. my_crew-0.1.0/docs/images/van-phong-3d-toan-canh.png +0 -0
  92. my_crew-0.1.0/docs/images/van-phong-banner-dieu-phoi.png +0 -0
  93. my_crew-0.1.0/docs/images/van-phong-giao-viec-pic-preview.png +0 -0
  94. my_crew-0.1.0/docs/images/van-phong-giao-viec-tu-xac-nhan.png +0 -0
  95. my_crew-0.1.0/docs/images/van-phong-hop-nhat-3d-feed-composer.png +0 -0
  96. my_crew-0.1.0/docs/images/van-phong-ket-qua-artifact-viewer.png +0 -0
  97. my_crew-0.1.0/docs/images/van-phong-timeline.png +0 -0
  98. my_crew-0.1.0/docs/images/van-phong-workrooms-toan-canh.png +0 -0
  99. my_crew-0.1.0/docs/journals/260621-phase-0-scaffold.md +28 -0
  100. my_crew-0.1.0/docs/journals/260621-phase-1-slice-1-reporting.md +36 -0
  101. my_crew-0.1.0/docs/journals/260622-phase-1-slice-2-confluence-report.md +28 -0
  102. my_crew-0.1.0/docs/journals/260622-phase-1-slice-3-daily-weekly-cron.md +28 -0
  103. my_crew-0.1.0/docs/journals/260622-phase-2-guardrail-hardening.md +26 -0
  104. my_crew-0.1.0/docs/journals/260622-phase-3-okr-tracking.md +30 -0
  105. my_crew-0.1.0/docs/journals/260622-phase-4-resource-cost.md +28 -0
  106. my_crew-0.1.0/docs/journals/260622-phase-5-audience-split.md +26 -0
  107. my_crew-0.1.0/docs/journals/260623-v2-m1-p1-config-injection.md +37 -0
  108. my_crew-0.1.0/docs/journals/260624-v2-m1-milestone-complete.md +35 -0
  109. my_crew-0.1.0/docs/journals/260624-v2-m1-p2-profile-system.md +37 -0
  110. my_crew-0.1.0/docs/journals/260624-v2-m1-p3-registry-worker.md +39 -0
  111. my_crew-0.1.0/docs/journals/260624-v2-m1-p4-multi-agent-cli.md +35 -0
  112. my_crew-0.1.0/docs/journals/260624-v2-m2-p5-graph-interrupts.md +34 -0
  113. my_crew-0.1.0/docs/journals/260625-v2-m2-milestone-complete.md +54 -0
  114. my_crew-0.1.0/docs/journals/260625-v2-m2-p6-fastapi-sse.md +39 -0
  115. my_crew-0.1.0/docs/journals/260625-v2-m2-p8-postgres-store.md +37 -0
  116. my_crew-0.1.0/docs/journals/260626-v2-m2-p7-web-dashboard.md +36 -0
  117. my_crew-0.1.0/docs/journals/260626-v2-m3-p10-skill-system.md +58 -0
  118. my_crew-0.1.0/docs/journals/260626-v2-m3-p9-cross-agent-memory.md +49 -0
  119. my_crew-0.1.0/docs/journals/260627-v2-complete-milestone.md +89 -0
  120. my_crew-0.1.0/docs/journals/260627-v2-final-live-e2e.md +60 -0
  121. my_crew-0.1.0/docs/journals/260627-v2-m3-p11-integrations-multichannel.md +30 -0
  122. my_crew-0.1.0/docs/journals/260627-v2-m3-p12-automation-observability.md +53 -0
  123. my_crew-0.1.0/docs/journals/260628-v2-m4-react-dashboard.md +54 -0
  124. my_crew-0.1.0/docs/journals/260630-v3-m5-domain-pack-abstraction.md +29 -0
  125. my_crew-0.1.0/docs/journals/260701-v3-m6-hr-pack-proof.md +35 -0
  126. my_crew-0.1.0/docs/journals/260702-v3-m11-ask-agent-inbox.md +27 -0
  127. my_crew-0.1.0/docs/journals/260702-v3-m7-low-tech-ui.md +30 -0
  128. my_crew-0.1.0/docs/journals/260702-v3-m8-admin-pack-fleet-watch.md +20 -0
  129. my_crew-0.1.0/docs/journals/260702-v4-m9-model-fallback-chain.md +25 -0
  130. my_crew-0.1.0/docs/journals/260702-v5-m12-chat-command-lop-b.md +26 -0
  131. my_crew-0.1.0/docs/journals/260703-v6-m13-telegram-identity.md +38 -0
  132. my_crew-0.1.0/docs/journals/260703-v6-m14a-ceo-chat-ops.md +32 -0
  133. my_crew-0.1.0/docs/journals/260703-v6-m14b-web-chat-ops.md +24 -0
  134. my_crew-0.1.0/docs/journals/260704-v6-m15a-watch-task.md +40 -0
  135. my_crew-0.1.0/docs/journals/260704-v6-m15b-report-qa-task-board.md +36 -0
  136. my_crew-0.1.0/docs/journals/260704-v6-m16-auth-golive.md +33 -0
  137. my_crew-0.1.0/docs/journals/260704-v7-m17-setup-wizard.md +34 -0
  138. my_crew-0.1.0/docs/journals/260704-v7-m18a-agent-studio-telegram.md +34 -0
  139. my_crew-0.1.0/docs/journals/260704-v7-m18b-knowledge-form-skills.md +30 -0
  140. my_crew-0.1.0/docs/journals/260704-v7-m19-company-docs.md +39 -0
  141. my_crew-0.1.0/docs/journals/260704-v7-m20-ceo-first-nav.md +36 -0
  142. my_crew-0.1.0/docs/journals/260704-v8-m21-ceo-observability.md +32 -0
  143. my_crew-0.1.0/docs/journals/260704-v8-m22-multi-project-rollup.md +32 -0
  144. my_crew-0.1.0/docs/journals/260704-v8-m23-trust-ladder.md +40 -0
  145. my_crew-0.1.0/docs/journals/260707-v10-m24-theme-light-dark.md +33 -0
  146. my_crew-0.1.0/docs/journals/260707-v10-m25-dual-mode.md +31 -0
  147. my_crew-0.1.0/docs/journals/260707-v10-m26-installer-health.md +39 -0
  148. my_crew-0.1.0/docs/journals/260707-v9-p1-i18n-human-hoa.md +40 -0
  149. my_crew-0.1.0/docs/journals/260707-v9-p2-nav-flow-create-via-chat.md +24 -0
  150. my_crew-0.1.0/docs/journals/260707-v9-p3-design-token-visual.md +26 -0
  151. my_crew-0.1.0/docs/journals/260707-v9-p4-responsive-mobile.md +35 -0
  152. my_crew-0.1.0/docs/journals/260708-v11-p1-p2-mcp-servers.md +36 -0
  153. my_crew-0.1.0/docs/journals/260708-v11-p3-session-pool.md +35 -0
  154. my_crew-0.1.0/docs/journals/260708-v11-p4-npm-distribution.md +40 -0
  155. my_crew-0.1.0/docs/journals/260710-v12-agent-office-cook.md +105 -0
  156. my_crew-0.1.0/docs/journals/260710-v12-agent-office-plan.md +75 -0
  157. my_crew-0.1.0/docs/journals/260710-v13-team-self-operation-cook.md +84 -0
  158. my_crew-0.1.0/docs/journals/260710-v13-team-self-operation-plan.md +68 -0
  159. my_crew-0.1.0/docs/journals/260710-v14-living-office-recover-cook.md +85 -0
  160. my_crew-0.1.0/docs/journals/260710-v15-pic-unified-office-cook.md +88 -0
  161. my_crew-0.1.0/docs/journals/260710-xlsx-report-email-attachment.md +55 -0
  162. my_crew-0.1.0/docs/journals/260711-v16-office-workrooms-cook.md +55 -0
  163. my_crew-0.1.0/docs/journals/260711-v17-office-command-center-cook.md +58 -0
  164. my_crew-0.1.0/docs/journals/260711-v18-registry-userdata-team-ux-cook.md +62 -0
  165. my_crew-0.1.0/docs/journals/260711-v19-agent-workspace-memory-seam.md +43 -0
  166. my_crew-0.1.0/docs/journals/260711-v20-agentruntime-community-sockets.md +52 -0
  167. my_crew-0.1.0/docs/journals/260711-v205-runtime-tiers-sandbox.md +88 -0
  168. my_crew-0.1.0/docs/journals/260712-v26-capture-telemetry.md +55 -0
  169. my_crew-0.1.0/docs/journals/260712-v27-deep-agent-harden.md +30 -0
  170. my_crew-0.1.0/docs/journals/260712-v28-runtime-consolidation.md +25 -0
  171. my_crew-0.1.0/docs/journals/260712-v30-autonomy-first-trust-mode.md +26 -0
  172. my_crew-0.1.0/docs/journals/260712-v31-agent-tools-capability-wave.md +30 -0
  173. my_crew-0.1.0/docs/journals/260713-v32-templates-crew-office-ux.md +29 -0
  174. my_crew-0.1.0/docs/journals/260713-v33-connections-output-hub-clarify-history.md +28 -0
  175. my_crew-0.1.0/docs/journals/260713-v34-core-autonomy-checkpointer-interrupt.md +29 -0
  176. my_crew-0.1.0/docs/journals/260713-v35-toolerror-memory-consolidation.md +27 -0
  177. my_crew-0.1.0/docs/journals/260713-v36-storage-hygiene-template-hybrid.md +29 -0
  178. my_crew-0.1.0/docs/journals/260713-v37-ui-design-system-sync.md +26 -0
  179. my_crew-0.1.0/docs/journals/260713-v38-harness-sendmessage-skillcurator.md +27 -0
  180. my_crew-0.1.0/docs/journals/260713-v39-gws-context-smtp-connection.md +28 -0
  181. my_crew-0.1.0/docs/journals/260714-v40-deep-agent-filewrite-fix.md +25 -0
  182. my_crew-0.1.0/docs/journals/260714-v41-deep-agent-lease-artifact-createagent.md +27 -0
  183. my_crew-0.1.0/docs/journals/260714-v42-deep-agent-compose-early-contract.md +24 -0
  184. my_crew-0.1.0/docs/journals/260714-v43-deep-team-in-sandbox.md +28 -0
  185. my_crew-0.1.0/docs/journals/260714-v44-benchmark-hardening.md +29 -0
  186. my_crew-0.1.0/docs/journals/260714-v45-tier0-routing.md +32 -0
  187. my_crew-0.1.0/docs/journals/260715-v46-central-audit-actor.md +29 -0
  188. my_crew-0.1.0/docs/journals/260715-v47-docker-ux.md +23 -0
  189. my_crew-0.1.0/docs/journals/260715-v48-team-step-mcp-pool.md +23 -0
  190. my_crew-0.1.0/docs/journals/260715-v49-barrier-to-entry.md +26 -0
  191. my_crew-0.1.0/docs/journals/260715-v50-ui-catchup.md +33 -0
  192. my_crew-0.1.0/docs/journals/260718-v51-productize-phase01-packaging-core.md +37 -0
  193. my_crew-0.1.0/docs/journals/260718-v51-productize-phase02-06-serve-docker-wheel-ci-docs-lifecycle.md +37 -0
  194. my_crew-0.1.0/docs/journals/README.md +112 -0
  195. my_crew-0.1.0/docs/project-overview-pdr.md +83 -0
  196. my_crew-0.1.0/docs/project-roadmap.md +99 -0
  197. my_crew-0.1.0/docs/releasing.md +46 -0
  198. my_crew-0.1.0/docs/research/deep-agent-safety-checklist-v205-v26.md +29 -0
  199. my_crew-0.1.0/docs/research/deerflow-2-architecture-study.md +708 -0
  200. my_crew-0.1.0/docs/research/firecrawl-local-integration-guide.md +177 -0
  201. my_crew-0.1.0/docs/research/harness-enhancement-suggestions-v37.md +93 -0
  202. my_crew-0.1.0/docs/research/office-harness-community-ecosystem-strategy.md +177 -0
  203. my_crew-0.1.0/docs/research/openclaw-hermes-tools-inventory-for-mycrew.md +104 -0
  204. my_crew-0.1.0/docs/system-architecture.md +234 -0
  205. my_crew-0.1.0/docs/uat-theo-user-story.md +245 -0
  206. my_crew-0.1.0/docs/user-guide.md +404 -0
  207. my_crew-0.1.0/domain-packs/_template-pack/graphs.py +32 -0
  208. my_crew-0.1.0/domain-packs/_template-pack/pack.yaml +13 -0
  209. my_crew-0.1.0/domain-packs/_template-pack/tools.py +12 -0
  210. my_crew-0.1.0/domain-packs/_template-pack/write_handlers.py +14 -0
  211. my_crew-0.1.0/domain-packs/admin-pack/analyzers.py +177 -0
  212. my_crew-0.1.0/domain-packs/admin-pack/graphs.py +145 -0
  213. my_crew-0.1.0/domain-packs/admin-pack/pack.yaml +19 -0
  214. my_crew-0.1.0/domain-packs/admin-pack/prompts/admin-narrative-system.md +8 -0
  215. my_crew-0.1.0/domain-packs/admin-pack/prompts_build.py +33 -0
  216. my_crew-0.1.0/domain-packs/admin-pack/tools.py +27 -0
  217. my_crew-0.1.0/domain-packs/admin-pack/write_handlers.py +18 -0
  218. my_crew-0.1.0/domain-packs/hr-pack/analyzers.py +117 -0
  219. my_crew-0.1.0/domain-packs/hr-pack/commands.py +91 -0
  220. my_crew-0.1.0/domain-packs/hr-pack/graphs.py +159 -0
  221. my_crew-0.1.0/domain-packs/hr-pack/pack.yaml +16 -0
  222. my_crew-0.1.0/domain-packs/hr-pack/prompts/headcount-narrative-external-system.md +1 -0
  223. my_crew-0.1.0/domain-packs/hr-pack/prompts/headcount-narrative-system.md +1 -0
  224. my_crew-0.1.0/domain-packs/hr-pack/prompts_build.py +59 -0
  225. my_crew-0.1.0/domain-packs/hr-pack/skills/flag-understaffed-team.md +7 -0
  226. my_crew-0.1.0/domain-packs/hr-pack/tools.py +193 -0
  227. my_crew-0.1.0/domain-packs/hr-pack/write_handlers.py +22 -0
  228. my_crew-0.1.0/domain-packs/office-pack/commands.py +77 -0
  229. my_crew-0.1.0/domain-packs/office-pack/graphs.py +21 -0
  230. my_crew-0.1.0/domain-packs/office-pack/pack.yaml +12 -0
  231. my_crew-0.1.0/domain-packs/office-pack/tools.py +25 -0
  232. my_crew-0.1.0/domain-packs/office-pack/write_handlers.py +21 -0
  233. my_crew-0.1.0/domain-packs/pm-pack/commands.py +69 -0
  234. my_crew-0.1.0/domain-packs/pm-pack/graphs.py +74 -0
  235. my_crew-0.1.0/domain-packs/pm-pack/models.py +41 -0
  236. my_crew-0.1.0/domain-packs/pm-pack/pack.yaml +23 -0
  237. my_crew-0.1.0/domain-packs/pm-pack/prompts/okr-narrative-external-system.md +1 -0
  238. my_crew-0.1.0/domain-packs/pm-pack/prompts/okr-narrative-system.md +1 -0
  239. my_crew-0.1.0/domain-packs/pm-pack/prompts/report-detail-external-system.md +3 -0
  240. my_crew-0.1.0/domain-packs/pm-pack/prompts/report-detail-system.md +3 -0
  241. my_crew-0.1.0/domain-packs/pm-pack/prompts/report-external-system.md +3 -0
  242. my_crew-0.1.0/domain-packs/pm-pack/prompts/report-system.md +3 -0
  243. my_crew-0.1.0/domain-packs/pm-pack/prompts/resource-narrative-external-system.md +1 -0
  244. my_crew-0.1.0/domain-packs/pm-pack/prompts/resource-narrative-system.md +1 -0
  245. my_crew-0.1.0/domain-packs/pm-pack/skills/estimate-effort.md +9 -0
  246. my_crew-0.1.0/domain-packs/pm-pack/skills/fetch-jira-epics.md +9 -0
  247. my_crew-0.1.0/domain-packs/pm-pack/skills/flag-risk.md +10 -0
  248. my_crew-0.1.0/domain-packs/pm-pack/skills/parse-github-labels.md +9 -0
  249. my_crew-0.1.0/domain-packs/pm-pack/skills/prioritize-blockers.md +9 -0
  250. my_crew-0.1.0/domain-packs/pm-pack/tools.py +68 -0
  251. my_crew-0.1.0/domain-packs/pm-pack/write_handlers.py +27 -0
  252. my_crew-0.1.0/my_crew/__init__.py +0 -0
  253. my_crew-0.1.0/my_crew/actions/__init__.py +0 -0
  254. my_crew-0.1.0/my_crew/actions/action_gateway.py +540 -0
  255. my_crew-0.1.0/my_crew/actions/approval_store.py +125 -0
  256. my_crew-0.1.0/my_crew/actions/approved_dispatch.py +96 -0
  257. my_crew-0.1.0/my_crew/actions/auto_approve_policy.py +133 -0
  258. my_crew-0.1.0/my_crew/actions/confluence_write.py +148 -0
  259. my_crew-0.1.0/my_crew/actions/dedup_store.py +65 -0
  260. my_crew-0.1.0/my_crew/actions/email_write.py +146 -0
  261. my_crew-0.1.0/my_crew/actions/gws_write.py +89 -0
  262. my_crew-0.1.0/my_crew/actions/hard_block.py +863 -0
  263. my_crew-0.1.0/my_crew/actions/jira_write.py +37 -0
  264. my_crew-0.1.0/my_crew/actions/linear_write.py +95 -0
  265. my_crew-0.1.0/my_crew/actions/schedule_write.py +145 -0
  266. my_crew-0.1.0/my_crew/actions/secret_patterns.py +200 -0
  267. my_crew-0.1.0/my_crew/actions/send_message.py +134 -0
  268. my_crew-0.1.0/my_crew/actions/slack_write.py +91 -0
  269. my_crew-0.1.0/my_crew/actions/team_task_write.py +142 -0
  270. my_crew-0.1.0/my_crew/actions/telegram_write.py +156 -0
  271. my_crew-0.1.0/my_crew/adapters/__init__.py +0 -0
  272. my_crew-0.1.0/my_crew/adapters/cli_adapter.py +62 -0
  273. my_crew-0.1.0/my_crew/adapters/mcp_adapter.py +134 -0
  274. my_crew-0.1.0/my_crew/adapters/mcp_session_pool.py +354 -0
  275. my_crew-0.1.0/my_crew/agent/__init__.py +0 -0
  276. my_crew-0.1.0/my_crew/agent/approval_gate.py +138 -0
  277. my_crew-0.1.0/my_crew/agent/audience_delivery.py +99 -0
  278. my_crew-0.1.0/my_crew/agent/channel_registry.py +151 -0
  279. my_crew-0.1.0/my_crew/agent/chat_command.py +215 -0
  280. my_crew-0.1.0/my_crew/agent/checkpoint.py +101 -0
  281. my_crew-0.1.0/my_crew/agent/coordinator_graph.py +476 -0
  282. my_crew-0.1.0/my_crew/agent/coordinator_nodes/__init__.py +0 -0
  283. my_crew-0.1.0/my_crew/agent/coordinator_nodes/fanout_insert.py +209 -0
  284. my_crew-0.1.0/my_crew/agent/coordinator_nodes/review_insert.py +243 -0
  285. my_crew-0.1.0/my_crew/agent/coordinator_nodes/tick_actions.py +274 -0
  286. my_crew-0.1.0/my_crew/agent/graph.py +77 -0
  287. my_crew-0.1.0/my_crew/agent/knowledge_template.py +124 -0
  288. my_crew-0.1.0/my_crew/agent/memory_extractor.py +90 -0
  289. my_crew-0.1.0/my_crew/agent/memory_mirror.py +117 -0
  290. my_crew-0.1.0/my_crew/agent/memory_node.py +163 -0
  291. my_crew-0.1.0/my_crew/agent/office_room_qa.py +88 -0
  292. my_crew-0.1.0/my_crew/agent/okr_analyzer.py +154 -0
  293. my_crew-0.1.0/my_crew/agent/okr_report_graph.py +290 -0
  294. my_crew-0.1.0/my_crew/agent/okr_weekly_section.py +91 -0
  295. my_crew-0.1.0/my_crew/agent/ops_adjust_team_task.py +165 -0
  296. my_crew-0.1.0/my_crew/agent/ops_assign_team_task.py +369 -0
  297. my_crew-0.1.0/my_crew/agent/ops_calendar_event.py +97 -0
  298. my_crew-0.1.0/my_crew/agent/ops_catalog.py +568 -0
  299. my_crew-0.1.0/my_crew/agent/ops_chat.py +337 -0
  300. my_crew-0.1.0/my_crew/agent/ops_company_activity.py +124 -0
  301. my_crew-0.1.0/my_crew/agent/ops_conversation_store.py +94 -0
  302. my_crew-0.1.0/my_crew/agent/ops_send_message.py +87 -0
  303. my_crew-0.1.0/my_crew/agent/qa_answer.py +292 -0
  304. my_crew-0.1.0/my_crew/agent/report_graph.py +355 -0
  305. my_crew-0.1.0/my_crew/agent/resource_analyzer.py +115 -0
  306. my_crew-0.1.0/my_crew/agent/resource_report_graph.py +301 -0
  307. my_crew-0.1.0/my_crew/agent/resource_weekly_section.py +93 -0
  308. my_crew-0.1.0/my_crew/agent/review_graph.py +247 -0
  309. my_crew-0.1.0/my_crew/agent/risk_analyzer.py +111 -0
  310. my_crew-0.1.0/my_crew/agent/sibling_memory.py +118 -0
  311. my_crew-0.1.0/my_crew/agent/sibling_selector.py +90 -0
  312. my_crew-0.1.0/my_crew/agent/state.py +56 -0
  313. my_crew-0.1.0/my_crew/agent/store.py +54 -0
  314. my_crew-0.1.0/my_crew/agent/task_decomposition.py +312 -0
  315. my_crew-0.1.0/my_crew/agent/team_task_amend_prompt.py +161 -0
  316. my_crew-0.1.0/my_crew/agent/team_task_artifact.py +160 -0
  317. my_crew-0.1.0/my_crew/agent/team_task_consult.py +149 -0
  318. my_crew-0.1.0/my_crew/agent/team_task_consult_propose.py +201 -0
  319. my_crew-0.1.0/my_crew/agent/team_task_graph.py +920 -0
  320. my_crew-0.1.0/my_crew/agent/team_task_roster.py +114 -0
  321. my_crew-0.1.0/my_crew/audit/__init__.py +0 -0
  322. my_crew-0.1.0/my_crew/audit/audit_log.py +113 -0
  323. my_crew-0.1.0/my_crew/automation/__init__.py +6 -0
  324. my_crew-0.1.0/my_crew/automation/engine.py +110 -0
  325. my_crew-0.1.0/my_crew/automation/prompts.py +40 -0
  326. my_crew-0.1.0/my_crew/automation/propose.py +63 -0
  327. my_crew-0.1.0/my_crew/automation/schema.py +129 -0
  328. my_crew-0.1.0/my_crew/company_docs/__init__.py +6 -0
  329. my_crew-0.1.0/my_crew/company_docs/inject.py +58 -0
  330. my_crew-0.1.0/my_crew/company_docs/pool.py +39 -0
  331. my_crew-0.1.0/my_crew/company_docs/store.py +135 -0
  332. my_crew-0.1.0/my_crew/config/__init__.py +0 -0
  333. my_crew-0.1.0/my_crew/config/config_builders.py +153 -0
  334. my_crew-0.1.0/my_crew/config/config_builders_channels.py +139 -0
  335. my_crew-0.1.0/my_crew/config/config_builders_helpers.py +48 -0
  336. my_crew-0.1.0/my_crew/config/config_builders_reporting.py +156 -0
  337. my_crew-0.1.0/my_crew/config/home_seed.py +51 -0
  338. my_crew-0.1.0/my_crew/config/reporting_config.py +105 -0
  339. my_crew-0.1.0/my_crew/config/settings.py +135 -0
  340. my_crew-0.1.0/my_crew/config/smtp_config.py +27 -0
  341. my_crew-0.1.0/my_crew/config/telegram_config.py +29 -0
  342. my_crew-0.1.0/my_crew/config/telegram_token.py +23 -0
  343. my_crew-0.1.0/my_crew/entrypoints/__init__.py +0 -0
  344. my_crew-0.1.0/my_crew/entrypoints/cli.py +354 -0
  345. my_crew-0.1.0/my_crew/entrypoints/cron.py +150 -0
  346. my_crew-0.1.0/my_crew/entrypoints/mpm.py +204 -0
  347. my_crew-0.1.0/my_crew/entrypoints/mpm_automate_cmd.py +144 -0
  348. my_crew-0.1.0/my_crew/entrypoints/mpm_lifecycle_cmds.py +150 -0
  349. my_crew-0.1.0/my_crew/entrypoints/mpm_manage_cmds.py +121 -0
  350. my_crew-0.1.0/my_crew/entrypoints/mpm_onboarding_cmds.py +81 -0
  351. my_crew-0.1.0/my_crew/entrypoints/mpm_registry_cmds.py +83 -0
  352. my_crew-0.1.0/my_crew/entrypoints/mpm_replay_cmd.py +97 -0
  353. my_crew-0.1.0/my_crew/entrypoints/mpm_resume_cmd.py +68 -0
  354. my_crew-0.1.0/my_crew/entrypoints/mpm_run_cmd.py +92 -0
  355. my_crew-0.1.0/my_crew/entrypoints/mpm_web_cmd.py +40 -0
  356. my_crew-0.1.0/my_crew/entrypoints/serve_cmd.py +106 -0
  357. my_crew-0.1.0/my_crew/llm/__init__.py +0 -0
  358. my_crew-0.1.0/my_crew/llm/audience_external_prompts.py +21 -0
  359. my_crew-0.1.0/my_crew/llm/budget_tracker.py +129 -0
  360. my_crew-0.1.0/my_crew/llm/client.py +236 -0
  361. my_crew-0.1.0/my_crew/llm/cost.py +86 -0
  362. my_crew-0.1.0/my_crew/llm/fallback_policy.py +46 -0
  363. my_crew-0.1.0/my_crew/llm/model_pricing.py +87 -0
  364. my_crew-0.1.0/my_crew/llm/okr_report_prompt.py +184 -0
  365. my_crew-0.1.0/my_crew/llm/report_prompt.py +206 -0
  366. my_crew-0.1.0/my_crew/llm/report_slack_short.py +46 -0
  367. my_crew-0.1.0/my_crew/llm/resource_report_prompt.py +245 -0
  368. my_crew-0.1.0/my_crew/llm/slack_link.py +33 -0
  369. my_crew-0.1.0/my_crew/llm/team_task_check_prompt.py +174 -0
  370. my_crew-0.1.0/my_crew/llm/team_task_prompt.py +220 -0
  371. my_crew-0.1.0/my_crew/memory/__init__.py +22 -0
  372. my_crew-0.1.0/my_crew/memory/consolidation.py +221 -0
  373. my_crew-0.1.0/my_crew/memory/provider.py +87 -0
  374. my_crew-0.1.0/my_crew/memory/static_provider.py +25 -0
  375. my_crew-0.1.0/my_crew/packs/__init__.py +21 -0
  376. my_crew-0.1.0/my_crew/packs/pack_mcp_gate.py +75 -0
  377. my_crew-0.1.0/my_crew/packs/registry.py +340 -0
  378. my_crew-0.1.0/my_crew/packs/tool_provider.py +34 -0
  379. my_crew-0.1.0/my_crew/profile/__init__.py +5 -0
  380. my_crew-0.1.0/my_crew/profile/capability_block.py +53 -0
  381. my_crew-0.1.0/my_crew/profile/context.py +109 -0
  382. my_crew-0.1.0/my_crew/profile/loader.py +361 -0
  383. my_crew-0.1.0/my_crew/profile/loader_mapping.py +290 -0
  384. my_crew-0.1.0/my_crew/reporting/__init__.py +6 -0
  385. my_crew-0.1.0/my_crew/reporting/xlsx_export.py +126 -0
  386. my_crew-0.1.0/my_crew/runtime/__init__.py +15 -0
  387. my_crew-0.1.0/my_crew/runtime/agent_paths.py +70 -0
  388. my_crew-0.1.0/my_crew/runtime/agent_state_reader.py +393 -0
  389. my_crew-0.1.0/my_crew/runtime/capture_store.py +159 -0
  390. my_crew-0.1.0/my_crew/runtime/clarify_service.py +174 -0
  391. my_crew-0.1.0/my_crew/runtime/clarify_store.py +174 -0
  392. my_crew-0.1.0/my_crew/runtime/company.py +162 -0
  393. my_crew-0.1.0/my_crew/runtime/follow_up_sweep.py +203 -0
  394. my_crew-0.1.0/my_crew/runtime/history_search_index.py +232 -0
  395. my_crew-0.1.0/my_crew/runtime/inbox.py +223 -0
  396. my_crew-0.1.0/my_crew/runtime/inbox_dispatch.py +88 -0
  397. my_crew-0.1.0/my_crew/runtime/legacy_migration.py +50 -0
  398. my_crew-0.1.0/my_crew/runtime/milestone_mirror_runner.py +177 -0
  399. my_crew-0.1.0/my_crew/runtime/office_room_append.py +65 -0
  400. my_crew-0.1.0/my_crew/runtime/office_room_store.py +152 -0
  401. my_crew-0.1.0/my_crew/runtime/operator_notify.py +61 -0
  402. my_crew-0.1.0/my_crew/runtime/ops_alert_runner.py +101 -0
  403. my_crew-0.1.0/my_crew/runtime/recurring_task.py +89 -0
  404. my_crew-0.1.0/my_crew/runtime/registry.py +94 -0
  405. my_crew-0.1.0/my_crew/runtime/registry_edit.py +180 -0
  406. my_crew-0.1.0/my_crew/runtime/replay.py +107 -0
  407. my_crew-0.1.0/my_crew/runtime/report_summary.py +43 -0
  408. my_crew-0.1.0/my_crew/runtime/run_config.py +99 -0
  409. my_crew-0.1.0/my_crew/runtime/run_event.py +74 -0
  410. my_crew-0.1.0/my_crew/runtime/scheduler.py +47 -0
  411. my_crew-0.1.0/my_crew/runtime/service.py +312 -0
  412. my_crew-0.1.0/my_crew/runtime/step_telemetry.py +73 -0
  413. my_crew-0.1.0/my_crew/runtime/storage_hygiene.py +191 -0
  414. my_crew-0.1.0/my_crew/runtime/store_schema_meta.py +54 -0
  415. my_crew-0.1.0/my_crew/runtime/task_runner.py +210 -0
  416. my_crew-0.1.0/my_crew/runtime/task_scheduling.py +51 -0
  417. my_crew-0.1.0/my_crew/runtime/task_store.py +158 -0
  418. my_crew-0.1.0/my_crew/runtime/team_step_egress.py +58 -0
  419. my_crew-0.1.0/my_crew/runtime/team_step_runner.py +731 -0
  420. my_crew-0.1.0/my_crew/runtime/team_task_amend.py +277 -0
  421. my_crew-0.1.0/my_crew/runtime/team_task_cost.py +113 -0
  422. my_crew-0.1.0/my_crew/runtime/team_task_paths.py +50 -0
  423. my_crew-0.1.0/my_crew/runtime/team_task_steps.py +521 -0
  424. my_crew-0.1.0/my_crew/runtime/team_task_store.py +611 -0
  425. my_crew-0.1.0/my_crew/runtime/team_tick_collaborators.py +168 -0
  426. my_crew-0.1.0/my_crew/runtime/team_tick_runner.py +359 -0
  427. my_crew-0.1.0/my_crew/runtime/telegram_inbox.py +229 -0
  428. my_crew-0.1.0/my_crew/runtime/watch_task.py +94 -0
  429. my_crew-0.1.0/my_crew/runtime/watcher_normalize.py +109 -0
  430. my_crew-0.1.0/my_crew/runtime/watcher_runner.py +243 -0
  431. my_crew-0.1.0/my_crew/runtime/watcher_store.py +149 -0
  432. my_crew-0.1.0/my_crew/runtime/worker.py +521 -0
  433. my_crew-0.1.0/my_crew/runtime/worker_resume.py +109 -0
  434. my_crew-0.1.0/my_crew/runtime_backends/__init__.py +19 -0
  435. my_crew-0.1.0/my_crew/runtime_backends/community_loop_core.py +141 -0
  436. my_crew-0.1.0/my_crew/runtime_backends/config.py +132 -0
  437. my_crew-0.1.0/my_crew/runtime_backends/deep_agent_loop.py +266 -0
  438. my_crew-0.1.0/my_crew/runtime_backends/deep_agent_runtime.py +110 -0
  439. my_crew-0.1.0/my_crew/runtime_backends/deep_agent_sanitizer.py +109 -0
  440. my_crew-0.1.0/my_crew/runtime_backends/deep_team_task_cap.py +94 -0
  441. my_crew-0.1.0/my_crew/runtime_backends/native_graph_runtime.py +29 -0
  442. my_crew-0.1.0/my_crew/runtime_backends/protocol.py +137 -0
  443. my_crew-0.1.0/my_crew/runtime_backends/react_loop.py +199 -0
  444. my_crew-0.1.0/my_crew/runtime_backends/read_only_toolset.py +342 -0
  445. my_crew-0.1.0/my_crew/runtime_backends/sandbox_backend.py +511 -0
  446. my_crew-0.1.0/my_crew/runtime_backends/sandbox_reaper.py +115 -0
  447. my_crew-0.1.0/my_crew/runtime_backends/sandbox_teardown.py +34 -0
  448. my_crew-0.1.0/my_crew/runtime_backends/tool_calling_runtime.py +90 -0
  449. my_crew-0.1.0/my_crew/server/__init__.py +7 -0
  450. my_crew-0.1.0/my_crew/server/agent_create.py +262 -0
  451. my_crew-0.1.0/my_crew/server/agent_views.py +151 -0
  452. my_crew-0.1.0/my_crew/server/app.py +194 -0
  453. my_crew-0.1.0/my_crew/server/auth.py +183 -0
  454. my_crew-0.1.0/my_crew/server/env_writer.py +132 -0
  455. my_crew-0.1.0/my_crew/server/fleet_activity.py +124 -0
  456. my_crew-0.1.0/my_crew/server/graph_runner.py +68 -0
  457. my_crew-0.1.0/my_crew/server/integration_health.py +289 -0
  458. my_crew-0.1.0/my_crew/server/office_event_projection.py +155 -0
  459. my_crew-0.1.0/my_crew/server/ops_helpers.py +41 -0
  460. my_crew-0.1.0/my_crew/server/profile_editor.py +80 -0
  461. my_crew-0.1.0/my_crew/server/routes_agent_company_docs.py +72 -0
  462. my_crew-0.1.0/my_crew/server/routes_agent_knowledge.py +141 -0
  463. my_crew-0.1.0/my_crew/server/routes_agent_studio_shared.py +15 -0
  464. my_crew-0.1.0/my_crew/server/routes_agent_telegram.py +137 -0
  465. my_crew-0.1.0/my_crew/server/routes_agents.py +28 -0
  466. my_crew-0.1.0/my_crew/server/routes_agents_admin.py +182 -0
  467. my_crew-0.1.0/my_crew/server/routes_clarify.py +51 -0
  468. my_crew-0.1.0/my_crew/server/routes_company.py +256 -0
  469. my_crew-0.1.0/my_crew/server/routes_company_docs.py +88 -0
  470. my_crew-0.1.0/my_crew/server/routes_connections.py +161 -0
  471. my_crew-0.1.0/my_crew/server/routes_office_artifacts.py +94 -0
  472. my_crew-0.1.0/my_crew/server/routes_office_assign.py +95 -0
  473. my_crew-0.1.0/my_crew/server/routes_office_room_chat.py +214 -0
  474. my_crew-0.1.0/my_crew/server/routes_office_stream.py +119 -0
  475. my_crew-0.1.0/my_crew/server/routes_ops_chat.py +133 -0
  476. my_crew-0.1.0/my_crew/server/routes_ops_json.py +123 -0
  477. my_crew-0.1.0/my_crew/server/routes_outputs.py +227 -0
  478. my_crew-0.1.0/my_crew/server/routes_runs.py +85 -0
  479. my_crew-0.1.0/my_crew/server/routes_setup.py +189 -0
  480. my_crew-0.1.0/my_crew/server/routes_tasks.py +91 -0
  481. my_crew-0.1.0/my_crew/server/routes_visualize.py +67 -0
  482. my_crew-0.1.0/my_crew/server/run_manager.py +210 -0
  483. my_crew-0.1.0/my_crew/server/sse_events.py +55 -0
  484. my_crew-0.1.0/my_crew/server/sse_stream.py +55 -0
  485. my_crew-0.1.0/my_crew/server/static/app/assets/be-vietnam-pro-400-latin-OEyTajQY.woff2 +0 -0
  486. my_crew-0.1.0/my_crew/server/static/app/assets/be-vietnam-pro-400-vietnamese-SOx6iaFb.woff2 +0 -0
  487. my_crew-0.1.0/my_crew/server/static/app/assets/be-vietnam-pro-500-latin-BcWytNOG.woff2 +0 -0
  488. my_crew-0.1.0/my_crew/server/static/app/assets/be-vietnam-pro-500-vietnamese-D3pY20Dx.woff2 +0 -0
  489. my_crew-0.1.0/my_crew/server/static/app/assets/be-vietnam-pro-600-latin-xAC4kEK0.woff2 +0 -0
  490. my_crew-0.1.0/my_crew/server/static/app/assets/be-vietnam-pro-600-vietnamese-DbGrrtCq.woff2 +0 -0
  491. my_crew-0.1.0/my_crew/server/static/app/assets/be-vietnam-pro-700-latin-CPfR8Jz_.woff2 +0 -0
  492. my_crew-0.1.0/my_crew/server/static/app/assets/be-vietnam-pro-700-vietnamese-DptIoWwl.woff2 +0 -0
  493. my_crew-0.1.0/my_crew/server/static/app/assets/index-BCnoEXXz.css +1 -0
  494. my_crew-0.1.0/my_crew/server/static/app/assets/index-DIwIiKBQ.js +4198 -0
  495. my_crew-0.1.0/my_crew/server/static/app/assets/office-unified-DkSVTU_D.js +1 -0
  496. my_crew-0.1.0/my_crew/server/static/app/favicon.svg +1 -0
  497. my_crew-0.1.0/my_crew/server/static/app/icons.svg +24 -0
  498. my_crew-0.1.0/my_crew/server/static/app/index.html +35 -0
  499. my_crew-0.1.0/my_crew/server/template_create.py +237 -0
  500. my_crew-0.1.0/my_crew/server/template_upgrade.py +203 -0
  501. my_crew-0.1.0/my_crew/server/visualize_views.py +168 -0
  502. my_crew-0.1.0/my_crew/skills/__init__.py +7 -0
  503. my_crew-0.1.0/my_crew/skills/models.py +21 -0
  504. my_crew-0.1.0/my_crew/skills/skill_curator.py +183 -0
  505. my_crew-0.1.0/my_crew/skills/skill_loader.py +147 -0
  506. my_crew-0.1.0/my_crew/skills/skill_pool.py +140 -0
  507. my_crew-0.1.0/my_crew/skills/skill_selector.py +91 -0
  508. my_crew-0.1.0/my_crew/tools/__init__.py +0 -0
  509. my_crew-0.1.0/my_crew/tools/confluence_read.py +217 -0
  510. my_crew-0.1.0/my_crew/tools/firecrawl_tool.py +109 -0
  511. my_crew-0.1.0/my_crew/tools/github_read.py +127 -0
  512. my_crew-0.1.0/my_crew/tools/gws_read.py +90 -0
  513. my_crew-0.1.0/my_crew/tools/jira_read.py +171 -0
  514. my_crew-0.1.0/my_crew/tools/linear_read.py +60 -0
  515. my_crew-0.1.0/my_crew/tools/models.py +206 -0
  516. my_crew-0.1.0/my_crew/tools/okr_read.py +97 -0
  517. my_crew-0.1.0/my_crew/tools/openalex_tool.py +148 -0
  518. my_crew-0.1.0/my_crew/tools/search_result_formatter.py +221 -0
  519. my_crew-0.1.0/my_crew/tools/telegram_read.py +133 -0
  520. my_crew-0.1.0/my_crew/tools/web_search_tool.py +179 -0
  521. my_crew-0.1.0/profiles/default/MEMORY.md +3 -0
  522. my_crew-0.1.0/profiles/default/PROJECT.md +3 -0
  523. my_crew-0.1.0/profiles/default/SOUL.md +3 -0
  524. my_crew-0.1.0/profiles/default/profile.yaml +95 -0
  525. my_crew-0.1.0/profiles/templates/crew.yaml +14 -0
  526. my_crew-0.1.0/profiles/templates/kiem-dinh/SOUL.md +11 -0
  527. my_crew-0.1.0/profiles/templates/kiem-dinh/template.yaml +13 -0
  528. my_crew-0.1.0/profiles/templates/nghien-cuu/SOUL.md +14 -0
  529. my_crew-0.1.0/profiles/templates/nghien-cuu/skills/tra-cuu-co-trich-nguon.md +13 -0
  530. my_crew-0.1.0/profiles/templates/nghien-cuu/template.yaml +21 -0
  531. my_crew-0.1.0/profiles/templates/noi-dung/SOUL.md +11 -0
  532. my_crew-0.1.0/profiles/templates/noi-dung/template.yaml +13 -0
  533. my_crew-0.1.0/profiles/templates/phan-tich/SOUL.md +11 -0
  534. my_crew-0.1.0/profiles/templates/phan-tich/template.yaml +13 -0
  535. my_crew-0.1.0/profiles/templates/pm-coordinator/SOUL.md +11 -0
  536. my_crew-0.1.0/profiles/templates/pm-coordinator/template.yaml +30 -0
  537. my_crew-0.1.0/profiles/templates/truong-phong/SOUL.md +14 -0
  538. my_crew-0.1.0/profiles/templates/truong-phong/template.yaml +19 -0
  539. my_crew-0.1.0/pyproject.toml +80 -0
  540. my_crew-0.1.0/registry.example.yaml +13 -0
  541. my_crew-0.1.0/scripts/demo-mode.sh +173 -0
  542. my_crew-0.1.0/tests/__init__.py +0 -0
  543. my_crew-0.1.0/tests/conftest.py +49 -0
  544. my_crew-0.1.0/tests/test_acceptance_criteria_review.py +148 -0
  545. my_crew-0.1.0/tests/test_action_gateway.py +159 -0
  546. my_crew-0.1.0/tests/test_actor_attribution_e2e.py +87 -0
  547. my_crew-0.1.0/tests/test_adjust_team_task_toctou.py +156 -0
  548. my_crew-0.1.0/tests/test_admin_pack.py +302 -0
  549. my_crew-0.1.0/tests/test_agent_isolation.py +146 -0
  550. my_crew-0.1.0/tests/test_agent_knowledge_form.py +226 -0
  551. my_crew-0.1.0/tests/test_agent_runtime_seam.py +151 -0
  552. my_crew-0.1.0/tests/test_agent_skills_dir.py +90 -0
  553. my_crew-0.1.0/tests/test_agent_telegram_bind.py +141 -0
  554. my_crew-0.1.0/tests/test_agents_admin_api.py +392 -0
  555. my_crew-0.1.0/tests/test_agents_register_existing.py +90 -0
  556. my_crew-0.1.0/tests/test_agentskills_io_format.py +95 -0
  557. my_crew-0.1.0/tests/test_amend_hash_excludes_system_inserted.py +46 -0
  558. my_crew-0.1.0/tests/test_amend_over_amend_reject.py +122 -0
  559. my_crew-0.1.0/tests/test_amend_pending_only_swap.py +144 -0
  560. my_crew-0.1.0/tests/test_amend_pic_aware_and_company_roundtrip.py +111 -0
  561. my_crew-0.1.0/tests/test_approval_gate_auto.py +82 -0
  562. my_crew-0.1.0/tests/test_approval_gate_interrupt.py +143 -0
  563. my_crew-0.1.0/tests/test_approval_gate_okr_resource.py +136 -0
  564. my_crew-0.1.0/tests/test_approval_store_actor.py +51 -0
  565. my_crew-0.1.0/tests/test_ask_agent_inbox.py +405 -0
  566. my_crew-0.1.0/tests/test_assign_auto_confirm_and_pic_wiring.py +171 -0
  567. my_crew-0.1.0/tests/test_audience_delivery.py +313 -0
  568. my_crew-0.1.0/tests/test_audience_prompts.py +295 -0
  569. my_crew-0.1.0/tests/test_audit_log.py +90 -0
  570. my_crew-0.1.0/tests/test_auto_approve_policy.py +136 -0
  571. my_crew-0.1.0/tests/test_automation_engine.py +118 -0
  572. my_crew-0.1.0/tests/test_automation_redline.py +119 -0
  573. my_crew-0.1.0/tests/test_automation_schema.py +94 -0
  574. my_crew-0.1.0/tests/test_budget_tracker.py +71 -0
  575. my_crew-0.1.0/tests/test_calendar_create_write.py +131 -0
  576. my_crew-0.1.0/tests/test_capability_block.py +55 -0
  577. my_crew-0.1.0/tests/test_capture_remember_cost_fold.py +68 -0
  578. my_crew-0.1.0/tests/test_capture_runtime_telemetry_seam.py +66 -0
  579. my_crew-0.1.0/tests/test_capture_store.py +75 -0
  580. my_crew-0.1.0/tests/test_capture_team_step_integration.py +122 -0
  581. my_crew-0.1.0/tests/test_capture_telemetry_pricing.py +74 -0
  582. my_crew-0.1.0/tests/test_channel_registry.py +98 -0
  583. my_crew-0.1.0/tests/test_chat_command.py +366 -0
  584. my_crew-0.1.0/tests/test_checkpointer_selection.py +114 -0
  585. my_crew-0.1.0/tests/test_clarify_flow.py +254 -0
  586. my_crew-0.1.0/tests/test_cli_adapter.py +50 -0
  587. my_crew-0.1.0/tests/test_cli_profile_routing.py +30 -0
  588. my_crew-0.1.0/tests/test_community_loop_core.py +191 -0
  589. my_crew-0.1.0/tests/test_company.py +86 -0
  590. my_crew-0.1.0/tests/test_company_docs_injection.py +154 -0
  591. my_crew-0.1.0/tests/test_company_docs_routes.py +121 -0
  592. my_crew-0.1.0/tests/test_company_docs_store.py +125 -0
  593. my_crew-0.1.0/tests/test_config_builders.py +156 -0
  594. my_crew-0.1.0/tests/test_confirm_swap_vs_reserve_race.py +164 -0
  595. my_crew-0.1.0/tests/test_confluence_write.py +90 -0
  596. my_crew-0.1.0/tests/test_connections_routes.py +136 -0
  597. my_crew-0.1.0/tests/test_consult_projection.py +74 -0
  598. my_crew-0.1.0/tests/test_coordinator_graph.py +472 -0
  599. my_crew-0.1.0/tests/test_cost.py +40 -0
  600. my_crew-0.1.0/tests/test_create_agent_recursion_live.py +70 -0
  601. my_crew-0.1.0/tests/test_create_agent_state_scratch.py +102 -0
  602. my_crew-0.1.0/tests/test_create_from_template.py +187 -0
  603. my_crew-0.1.0/tests/test_decompose_acceptance_no_hash.py +92 -0
  604. my_crew-0.1.0/tests/test_deep_agent_artifact_readback.py +99 -0
  605. my_crew-0.1.0/tests/test_deep_agent_compose_contract.py +115 -0
  606. my_crew-0.1.0/tests/test_deep_agent_runtime.py +48 -0
  607. my_crew-0.1.0/tests/test_deep_agent_runtime_live.py +110 -0
  608. my_crew-0.1.0/tests/test_deep_agent_sanitizer.py +204 -0
  609. my_crew-0.1.0/tests/test_deep_team_cost_fold.py +123 -0
  610. my_crew-0.1.0/tests/test_deep_team_subagent_spec.py +161 -0
  611. my_crew-0.1.0/tests/test_deep_team_task_cap.py +107 -0
  612. my_crew-0.1.0/tests/test_deploy_backup.py +86 -0
  613. my_crew-0.1.0/tests/test_derived_headroom_cap.py +229 -0
  614. my_crew-0.1.0/tests/test_email_write.py +239 -0
  615. my_crew-0.1.0/tests/test_env_writer.py +83 -0
  616. my_crew-0.1.0/tests/test_extra_servers_config.py +97 -0
  617. my_crew-0.1.0/tests/test_firecrawl_live.py +60 -0
  618. my_crew-0.1.0/tests/test_firecrawl_tool.py +129 -0
  619. my_crew-0.1.0/tests/test_fleet_activity.py +252 -0
  620. my_crew-0.1.0/tests/test_follow_up_sweep.py +144 -0
  621. my_crew-0.1.0/tests/test_gateway_auto_approve.py +157 -0
  622. my_crew-0.1.0/tests/test_generic_task_model.py +86 -0
  623. my_crew-0.1.0/tests/test_github_read.py +61 -0
  624. my_crew-0.1.0/tests/test_graph_and_cli.py +67 -0
  625. my_crew-0.1.0/tests/test_gws_read.py +126 -0
  626. my_crew-0.1.0/tests/test_gws_write_redline.py +173 -0
  627. my_crew-0.1.0/tests/test_handoff_deps_read.py +118 -0
  628. my_crew-0.1.0/tests/test_hard_block.py +222 -0
  629. my_crew-0.1.0/tests/test_history_search.py +138 -0
  630. my_crew-0.1.0/tests/test_home_seed.py +65 -0
  631. my_crew-0.1.0/tests/test_hr_pack.py +195 -0
  632. my_crew-0.1.0/tests/test_inbox_auto_approve_wiring.py +82 -0
  633. my_crew-0.1.0/tests/test_integration_health_slack_whoami.py +155 -0
  634. my_crew-0.1.0/tests/test_interrupt_clarify.py +233 -0
  635. my_crew-0.1.0/tests/test_jira_read.py +89 -0
  636. my_crew-0.1.0/tests/test_legacy_migration.py +79 -0
  637. my_crew-0.1.0/tests/test_linear_read.py +69 -0
  638. my_crew-0.1.0/tests/test_linear_write.py +170 -0
  639. my_crew-0.1.0/tests/test_llm_client_retry.py +181 -0
  640. my_crew-0.1.0/tests/test_lop_b_and_audit_query.py +205 -0
  641. my_crew-0.1.0/tests/test_m4_e2e_offline.py +135 -0
  642. my_crew-0.1.0/tests/test_mcp_adapter.py +57 -0
  643. my_crew-0.1.0/tests/test_mcp_session_pool.py +332 -0
  644. my_crew-0.1.0/tests/test_memory_consolidation.py +200 -0
  645. my_crew-0.1.0/tests/test_memory_cross_thread_read.py +77 -0
  646. my_crew-0.1.0/tests/test_memory_node_extract_and_mirror.py +151 -0
  647. my_crew-0.1.0/tests/test_memory_provider_seam.py +110 -0
  648. my_crew-0.1.0/tests/test_milestone_mirror.py +282 -0
  649. my_crew-0.1.0/tests/test_model_fallback.py +204 -0
  650. my_crew-0.1.0/tests/test_mpm_automate_cmd.py +164 -0
  651. my_crew-0.1.0/tests/test_mpm_dispatch.py +50 -0
  652. my_crew-0.1.0/tests/test_mpm_lifecycle_cmds.py +52 -0
  653. my_crew-0.1.0/tests/test_mpm_manage_cmds.py +145 -0
  654. my_crew-0.1.0/tests/test_mpm_onboarding_cmds.py +102 -0
  655. my_crew-0.1.0/tests/test_mpm_registry_cmds.py +110 -0
  656. my_crew-0.1.0/tests/test_mpm_replay_cmd.py +119 -0
  657. my_crew-0.1.0/tests/test_mpm_resume_cmd.py +108 -0
  658. my_crew-0.1.0/tests/test_mpm_run_cmd.py +186 -0
  659. my_crew-0.1.0/tests/test_office_artifacts_routes.py +105 -0
  660. my_crew-0.1.0/tests/test_office_assign_routes.py +70 -0
  661. my_crew-0.1.0/tests/test_office_event_projection.py +115 -0
  662. my_crew-0.1.0/tests/test_office_pack_allowlist_redline.py +99 -0
  663. my_crew-0.1.0/tests/test_office_room_store.py +167 -0
  664. my_crew-0.1.0/tests/test_office_stream.py +229 -0
  665. my_crew-0.1.0/tests/test_okr_analyzer.py +128 -0
  666. my_crew-0.1.0/tests/test_okr_read.py +216 -0
  667. my_crew-0.1.0/tests/test_okr_report.py +212 -0
  668. my_crew-0.1.0/tests/test_openalex_tool.py +175 -0
  669. my_crew-0.1.0/tests/test_ops_adjust_team_task.py +194 -0
  670. my_crew-0.1.0/tests/test_ops_alerts.py +234 -0
  671. my_crew-0.1.0/tests/test_ops_assign_team_task.py +206 -0
  672. my_crew-0.1.0/tests/test_ops_chat.py +434 -0
  673. my_crew-0.1.0/tests/test_ops_operator_gate.py +72 -0
  674. my_crew-0.1.0/tests/test_outputs_routes.py +202 -0
  675. my_crew-0.1.0/tests/test_p11_integration_e2e.py +205 -0
  676. my_crew-0.1.0/tests/test_p11_redline.py +108 -0
  677. my_crew-0.1.0/tests/test_p12_e2e_offline.py +138 -0
  678. my_crew-0.1.0/tests/test_p12_redline_consolidated.py +53 -0
  679. my_crew-0.1.0/tests/test_pack_allowlist_redline.py +96 -0
  680. my_crew-0.1.0/tests/test_pack_mcp_gate.py +56 -0
  681. my_crew-0.1.0/tests/test_pack_registry.py +153 -0
  682. my_crew-0.1.0/tests/test_parallel_dispatch_cap.py +169 -0
  683. my_crew-0.1.0/tests/test_pic_assignment_validation.py +121 -0
  684. my_crew-0.1.0/tests/test_pm_tool_provider.py +119 -0
  685. my_crew-0.1.0/tests/test_profile_context.py +64 -0
  686. my_crew-0.1.0/tests/test_profile_entrypoints.py +166 -0
  687. my_crew-0.1.0/tests/test_profile_loader.py +199 -0
  688. my_crew-0.1.0/tests/test_project_rollup.py +117 -0
  689. my_crew-0.1.0/tests/test_query_redaction.py +111 -0
  690. my_crew-0.1.0/tests/test_recurring_task.py +281 -0
  691. my_crew-0.1.0/tests/test_registry.py +122 -0
  692. my_crew-0.1.0/tests/test_replay.py +114 -0
  693. my_crew-0.1.0/tests/test_report_summary.py +48 -0
  694. my_crew-0.1.0/tests/test_resource_analyzer.py +145 -0
  695. my_crew-0.1.0/tests/test_resource_report.py +275 -0
  696. my_crew-0.1.0/tests/test_resume_rebuild_deliver.py +177 -0
  697. my_crew-0.1.0/tests/test_review_graph.py +182 -0
  698. my_crew-0.1.0/tests/test_review_insert_rule.py +281 -0
  699. my_crew-0.1.0/tests/test_review_stall_escalate.py +121 -0
  700. my_crew-0.1.0/tests/test_reviewer_selection.py +50 -0
  701. my_crew-0.1.0/tests/test_rework_prompt_injection_wrap.py +93 -0
  702. my_crew-0.1.0/tests/test_rework_round_cap.py +163 -0
  703. my_crew-0.1.0/tests/test_risk_analyzer.py +81 -0
  704. my_crew-0.1.0/tests/test_run_config_tracing.py +136 -0
  705. my_crew-0.1.0/tests/test_run_event.py +29 -0
  706. my_crew-0.1.0/tests/test_run_manager.py +191 -0
  707. my_crew-0.1.0/tests/test_runtime_caps.py +93 -0
  708. my_crew-0.1.0/tests/test_runtime_fanout.py +348 -0
  709. my_crew-0.1.0/tests/test_sandbox_backend.py +259 -0
  710. my_crew-0.1.0/tests/test_sandbox_docker_live.py +75 -0
  711. my_crew-0.1.0/tests/test_sandbox_file_io.py +141 -0
  712. my_crew-0.1.0/tests/test_sandbox_lease.py +107 -0
  713. my_crew-0.1.0/tests/test_sandbox_prepull.py +74 -0
  714. my_crew-0.1.0/tests/test_sandbox_reaper.py +91 -0
  715. my_crew-0.1.0/tests/test_schedule_update_redline.py +241 -0
  716. my_crew-0.1.0/tests/test_scheduler.py +67 -0
  717. my_crew-0.1.0/tests/test_send_message.py +189 -0
  718. my_crew-0.1.0/tests/test_serve_cmd.py +90 -0
  719. my_crew-0.1.0/tests/test_server_agents.py +175 -0
  720. my_crew-0.1.0/tests/test_server_entrypoint.py +33 -0
  721. my_crew-0.1.0/tests/test_server_ops_chat.py +131 -0
  722. my_crew-0.1.0/tests/test_server_ops_json.py +238 -0
  723. my_crew-0.1.0/tests/test_server_spa_static.py +53 -0
  724. my_crew-0.1.0/tests/test_server_stream.py +212 -0
  725. my_crew-0.1.0/tests/test_server_trigger.py +97 -0
  726. my_crew-0.1.0/tests/test_server_visualize.py +200 -0
  727. my_crew-0.1.0/tests/test_service.py +149 -0
  728. my_crew-0.1.0/tests/test_service_loop.py +29 -0
  729. my_crew-0.1.0/tests/test_settings_home_resolution.py +40 -0
  730. my_crew-0.1.0/tests/test_setup_wizard.py +172 -0
  731. my_crew-0.1.0/tests/test_sibling_graph_e2e.py +229 -0
  732. my_crew-0.1.0/tests/test_sibling_memory.py +157 -0
  733. my_crew-0.1.0/tests/test_sibling_selector.py +191 -0
  734. my_crew-0.1.0/tests/test_sibling_write_boundary.py +43 -0
  735. my_crew-0.1.0/tests/test_skill_compose_injection.py +123 -0
  736. my_crew-0.1.0/tests/test_skill_curator.py +165 -0
  737. my_crew-0.1.0/tests/test_skill_graph_e2e.py +232 -0
  738. my_crew-0.1.0/tests/test_skill_loader.py +104 -0
  739. my_crew-0.1.0/tests/test_skill_selector.py +117 -0
  740. my_crew-0.1.0/tests/test_slack_write_and_report_graph.py +144 -0
  741. my_crew-0.1.0/tests/test_smtp_connection.py +53 -0
  742. my_crew-0.1.0/tests/test_sprint_and_report_kind.py +141 -0
  743. my_crew-0.1.0/tests/test_sse_events.py +72 -0
  744. my_crew-0.1.0/tests/test_staff_templates.py +143 -0
  745. my_crew-0.1.0/tests/test_stale_artifact_review.py +176 -0
  746. my_crew-0.1.0/tests/test_step_runtime_router.py +80 -0
  747. my_crew-0.1.0/tests/test_storage_hygiene.py +172 -0
  748. my_crew-0.1.0/tests/test_store_selection.py +90 -0
  749. my_crew-0.1.0/tests/test_task_assignment.py +362 -0
  750. my_crew-0.1.0/tests/test_task_decomposition.py +204 -0
  751. my_crew-0.1.0/tests/test_team_graph_checkpointer.py +176 -0
  752. my_crew-0.1.0/tests/test_team_step_egress.py +119 -0
  753. my_crew-0.1.0/tests/test_team_step_runner.py +132 -0
  754. my_crew-0.1.0/tests/test_team_task_actions_redline.py +237 -0
  755. my_crew-0.1.0/tests/test_team_task_artifact.py +135 -0
  756. my_crew-0.1.0/tests/test_team_task_consult.py +274 -0
  757. my_crew-0.1.0/tests/test_team_task_consult_propose.py +128 -0
  758. my_crew-0.1.0/tests/test_team_task_graph.py +221 -0
  759. my_crew-0.1.0/tests/test_team_task_graph_consult.py +198 -0
  760. my_crew-0.1.0/tests/test_team_task_graph_recover.py +244 -0
  761. my_crew-0.1.0/tests/test_team_task_graph_selfcheck.py +108 -0
  762. my_crew-0.1.0/tests/test_team_task_roster.py +90 -0
  763. my_crew-0.1.0/tests/test_team_task_roster_role_hints.py +64 -0
  764. my_crew-0.1.0/tests/test_team_task_store.py +947 -0
  765. my_crew-0.1.0/tests/test_team_tick_collaborators.py +176 -0
  766. my_crew-0.1.0/tests/test_team_tick_runner.py +73 -0
  767. my_crew-0.1.0/tests/test_telegram_identity.py +562 -0
  768. my_crew-0.1.0/tests/test_template_config_version_pin.py +165 -0
  769. my_crew-0.1.0/tests/test_template_live_skills.py +77 -0
  770. my_crew-0.1.0/tests/test_tool_calling_runtime.py +103 -0
  771. my_crew-0.1.0/tests/test_tool_error_resilience.py +147 -0
  772. my_crew-0.1.0/tests/test_trust_mode_policy.py +239 -0
  773. my_crew-0.1.0/tests/test_verify_plan_hash_system_inserted.py +177 -0
  774. my_crew-0.1.0/tests/test_watcher_wake_gate.py +352 -0
  775. my_crew-0.1.0/tests/test_web_auth.py +148 -0
  776. my_crew-0.1.0/tests/test_web_search_injection.py +296 -0
  777. my_crew-0.1.0/tests/test_weekly_resource_section.py +129 -0
  778. my_crew-0.1.0/tests/test_worker.py +172 -0
  779. my_crew-0.1.0/tests/test_worker_resume.py +167 -0
  780. my_crew-0.1.0/tests/test_worker_team_step_mcp_pool.py +57 -0
  781. my_crew-0.1.0/tests/test_workroom_chat_and_health.py +208 -0
  782. my_crew-0.1.0/tests/test_xlsx_export.py +134 -0
  783. my_crew-0.1.0/uv.lock +2272 -0
  784. my_crew-0.1.0/web/.gitignore +24 -0
  785. my_crew-0.1.0/web/.oxlintrc.json +8 -0
  786. my_crew-0.1.0/web/README.md +32 -0
  787. my_crew-0.1.0/web/index.html +34 -0
  788. my_crew-0.1.0/web/package-lock.json +4772 -0
  789. my_crew-0.1.0/web/package.json +39 -0
  790. my_crew-0.1.0/web/public/favicon.svg +1 -0
  791. my_crew-0.1.0/web/public/icons.svg +24 -0
  792. my_crew-0.1.0/web/src/App.css +711 -0
  793. my_crew-0.1.0/web/src/App.tsx +130 -0
  794. my_crew-0.1.0/web/src/action-summary.test.tsx +73 -0
  795. my_crew-0.1.0/web/src/action-summary.ts +125 -0
  796. my_crew-0.1.0/web/src/agent-context.tsx +46 -0
  797. my_crew-0.1.0/web/src/api/client.ts +332 -0
  798. my_crew-0.1.0/web/src/assets/fonts/be-vietnam-pro-400-latin.woff2 +0 -0
  799. my_crew-0.1.0/web/src/assets/fonts/be-vietnam-pro-400-vietnamese.woff2 +0 -0
  800. my_crew-0.1.0/web/src/assets/fonts/be-vietnam-pro-500-latin.woff2 +0 -0
  801. my_crew-0.1.0/web/src/assets/fonts/be-vietnam-pro-500-vietnamese.woff2 +0 -0
  802. my_crew-0.1.0/web/src/assets/fonts/be-vietnam-pro-600-latin.woff2 +0 -0
  803. my_crew-0.1.0/web/src/assets/fonts/be-vietnam-pro-600-vietnamese.woff2 +0 -0
  804. my_crew-0.1.0/web/src/assets/fonts/be-vietnam-pro-700-latin.woff2 +0 -0
  805. my_crew-0.1.0/web/src/assets/fonts/be-vietnam-pro-700-vietnamese.woff2 +0 -0
  806. my_crew-0.1.0/web/src/assets/hero.png +0 -0
  807. my_crew-0.1.0/web/src/assets/react.svg +1 -0
  808. my_crew-0.1.0/web/src/assets/vite.svg +1 -0
  809. my_crew-0.1.0/web/src/components/AdvancedAgentView.tsx +19 -0
  810. my_crew-0.1.0/web/src/components/AgentPicker.tsx +20 -0
  811. my_crew-0.1.0/web/src/components/AuditTable.tsx +36 -0
  812. my_crew-0.1.0/web/src/components/ConfigEditor.tsx +59 -0
  813. my_crew-0.1.0/web/src/components/ConfirmDialog.test.tsx +61 -0
  814. my_crew-0.1.0/web/src/components/ConfirmDialog.tsx +68 -0
  815. my_crew-0.1.0/web/src/components/DomainPicker.tsx +52 -0
  816. my_crew-0.1.0/web/src/components/FactsList.tsx +21 -0
  817. my_crew-0.1.0/web/src/components/IntegrationHealthPanel.test.tsx +34 -0
  818. my_crew-0.1.0/web/src/components/IntegrationHealthPanel.tsx +80 -0
  819. my_crew-0.1.0/web/src/components/Layout.test.tsx +67 -0
  820. my_crew-0.1.0/web/src/components/Layout.tsx +97 -0
  821. my_crew-0.1.0/web/src/components/PendingProposals.tsx +34 -0
  822. my_crew-0.1.0/web/src/components/RunList.tsx +35 -0
  823. my_crew-0.1.0/web/src/components/ScheduleBuilder.test.tsx +24 -0
  824. my_crew-0.1.0/web/src/components/ScheduleBuilder.tsx +82 -0
  825. my_crew-0.1.0/web/src/components/TeamTaskCost.tsx +75 -0
  826. my_crew-0.1.0/web/src/components/ThemeToggle.tsx +31 -0
  827. my_crew-0.1.0/web/src/components/charts/CostChart.tsx +55 -0
  828. my_crew-0.1.0/web/src/components/charts/VerdictChart.tsx +26 -0
  829. my_crew-0.1.0/web/src/components/charts/chart-theme.ts +46 -0
  830. my_crew-0.1.0/web/src/fonts.css +85 -0
  831. my_crew-0.1.0/web/src/hooks/use-agent-data.ts +43 -0
  832. my_crew-0.1.0/web/src/hooks/use-auto-approved.ts +50 -0
  833. my_crew-0.1.0/web/src/hooks/use-office-stream.test.ts +84 -0
  834. my_crew-0.1.0/web/src/hooks/use-office-stream.ts +56 -0
  835. my_crew-0.1.0/web/src/hooks/use-pending-approvals.ts +47 -0
  836. my_crew-0.1.0/web/src/hooks/use-sse.ts +55 -0
  837. my_crew-0.1.0/web/src/hooks/use-team-health.ts +31 -0
  838. my_crew-0.1.0/web/src/index.css +4 -0
  839. my_crew-0.1.0/web/src/labels.test.ts +56 -0
  840. my_crew-0.1.0/web/src/labels.ts +88 -0
  841. my_crew-0.1.0/web/src/main.tsx +17 -0
  842. my_crew-0.1.0/web/src/pending-approvals-context.tsx +34 -0
  843. my_crew-0.1.0/web/src/routes/office-unified-lazy.tsx +57 -0
  844. my_crew-0.1.0/web/src/test-setup.ts +18 -0
  845. my_crew-0.1.0/web/src/test-utils.tsx +19 -0
  846. my_crew-0.1.0/web/src/theme-context.test.tsx +132 -0
  847. my_crew-0.1.0/web/src/theme-context.tsx +84 -0
  848. my_crew-0.1.0/web/src/types.ts +698 -0
  849. my_crew-0.1.0/web/src/ui-mode-context.test.tsx +66 -0
  850. my_crew-0.1.0/web/src/ui-mode-context.tsx +50 -0
  851. my_crew-0.1.0/web/src/views/AgentKnowledgeTab.test.tsx +44 -0
  852. my_crew-0.1.0/web/src/views/AgentKnowledgeTab.tsx +301 -0
  853. my_crew-0.1.0/web/src/views/AgentPage.test.tsx +156 -0
  854. my_crew-0.1.0/web/src/views/AgentPage.tsx +231 -0
  855. my_crew-0.1.0/web/src/views/Approvals.tsx +97 -0
  856. my_crew-0.1.0/web/src/views/Chat.test.tsx +75 -0
  857. my_crew-0.1.0/web/src/views/Chat.tsx +160 -0
  858. my_crew-0.1.0/web/src/views/CompanyActivity.test.tsx +79 -0
  859. my_crew-0.1.0/web/src/views/CompanyActivity.tsx +158 -0
  860. my_crew-0.1.0/web/src/views/CompanyDocs.test.tsx +42 -0
  861. my_crew-0.1.0/web/src/views/CompanyDocs.tsx +144 -0
  862. my_crew-0.1.0/web/src/views/Config.tsx +42 -0
  863. my_crew-0.1.0/web/src/views/Connections.test.tsx +105 -0
  864. my_crew-0.1.0/web/src/views/Connections.tsx +146 -0
  865. my_crew-0.1.0/web/src/views/Cost.tsx +33 -0
  866. my_crew-0.1.0/web/src/views/CreateAgent.test.tsx +126 -0
  867. my_crew-0.1.0/web/src/views/CreateAgent.tsx +90 -0
  868. my_crew-0.1.0/web/src/views/Guardrail.tsx +32 -0
  869. my_crew-0.1.0/web/src/views/Login.test.tsx +35 -0
  870. my_crew-0.1.0/web/src/views/Login.tsx +54 -0
  871. my_crew-0.1.0/web/src/views/MemoryAuto.tsx +37 -0
  872. my_crew-0.1.0/web/src/views/OfficeRoom.test.tsx +145 -0
  873. my_crew-0.1.0/web/src/views/OfficeRoom.tsx +86 -0
  874. my_crew-0.1.0/web/src/views/Outputs.test.tsx +110 -0
  875. my_crew-0.1.0/web/src/views/Outputs.tsx +125 -0
  876. my_crew-0.1.0/web/src/views/Overview.test.tsx +37 -0
  877. my_crew-0.1.0/web/src/views/Overview.tsx +45 -0
  878. my_crew-0.1.0/web/src/views/Settings.tsx +111 -0
  879. my_crew-0.1.0/web/src/views/Setup.test.tsx +100 -0
  880. my_crew-0.1.0/web/src/views/Setup.tsx +284 -0
  881. my_crew-0.1.0/web/src/views/Tasks.test.tsx +52 -0
  882. my_crew-0.1.0/web/src/views/Tasks.tsx +111 -0
  883. my_crew-0.1.0/web/src/views/Team.test.tsx +219 -0
  884. my_crew-0.1.0/web/src/views/Team.tsx +470 -0
  885. my_crew-0.1.0/web/src/views/Timeline.tsx +20 -0
  886. my_crew-0.1.0/web/src/views/Trigger.test.tsx +45 -0
  887. my_crew-0.1.0/web/src/views/Trigger.tsx +107 -0
  888. my_crew-0.1.0/web/src/views/Work.test.tsx +91 -0
  889. my_crew-0.1.0/web/src/views/Work.tsx +120 -0
  890. my_crew-0.1.0/web/src/views/clarify-section.test.tsx +84 -0
  891. my_crew-0.1.0/web/src/views/clarify-section.tsx +97 -0
  892. my_crew-0.1.0/web/src/views/office-3d/agent-desk.tsx +217 -0
  893. my_crew-0.1.0/web/src/views/office-3d/agent-office-state.test.ts +355 -0
  894. my_crew-0.1.0/web/src/views/office-3d/agent-office-state.ts +225 -0
  895. my_crew-0.1.0/web/src/views/office-3d/agent-status-table.tsx +67 -0
  896. my_crew-0.1.0/web/src/views/office-3d/coordinator-desk.tsx +24 -0
  897. my_crew-0.1.0/web/src/views/office-3d/desk-colors.ts +90 -0
  898. my_crew-0.1.0/web/src/views/office-3d/desk-layout.test.ts +34 -0
  899. my_crew-0.1.0/web/src/views/office-3d/desk-layout.ts +38 -0
  900. my_crew-0.1.0/web/src/views/office-3d/office-canvas.tsx +110 -0
  901. my_crew-0.1.0/web/src/views/office-3d/office-floor.tsx +22 -0
  902. my_crew-0.1.0/web/src/views/office-3d/office-props.tsx +49 -0
  903. my_crew-0.1.0/web/src/views/office-3d/speech-bubble.test.ts +23 -0
  904. my_crew-0.1.0/web/src/views/office-3d/speech-bubble.tsx +60 -0
  905. my_crew-0.1.0/web/src/views/office-3d/use-3d-fallback.test.ts +75 -0
  906. my_crew-0.1.0/web/src/views/office-3d/use-3d-fallback.ts +38 -0
  907. my_crew-0.1.0/web/src/views/office-shared/office-message-line.test.ts +38 -0
  908. my_crew-0.1.0/web/src/views/office-shared/office-message-line.ts +60 -0
  909. my_crew-0.1.0/web/src/views/office-unified/activity-feed.tsx +71 -0
  910. my_crew-0.1.0/web/src/views/office-unified/artifact-panel.tsx +88 -0
  911. my_crew-0.1.0/web/src/views/office-unified/artifact-viewer.tsx +92 -0
  912. my_crew-0.1.0/web/src/views/office-unified/assign-composer.test.ts +28 -0
  913. my_crew-0.1.0/web/src/views/office-unified/assign-composer.tsx +224 -0
  914. my_crew-0.1.0/web/src/views/office-unified/coordinator-health-banner.tsx +44 -0
  915. my_crew-0.1.0/web/src/views/office-unified/office-unified.test.tsx +85 -0
  916. my_crew-0.1.0/web/src/views/office-unified/office-unified.tsx +162 -0
  917. my_crew-0.1.0/web/src/views/office-unified/workroom-helpers.test.ts +50 -0
  918. my_crew-0.1.0/web/src/views/office-unified/workroom-list.tsx +43 -0
  919. my_crew-0.1.0/web/src/views/ops.test.tsx +87 -0
  920. my_crew-0.1.0/web/src/views/setup-company-step.tsx +57 -0
  921. my_crew-0.1.0/web/src/views/team-task-kanban.tsx +80 -0
  922. my_crew-0.1.0/web/src/views/views.test.tsx +101 -0
  923. my_crew-0.1.0/web/src/wizard/BindingsStep.tsx +99 -0
  924. my_crew-0.1.0/web/src/wizard/IdentityStep.tsx +132 -0
  925. my_crew-0.1.0/web/src/wizard/ReportsStep.tsx +35 -0
  926. my_crew-0.1.0/web/src/wizard/ReviewStep.tsx +72 -0
  927. my_crew-0.1.0/web/src/wizard/env-template.test.ts +20 -0
  928. my_crew-0.1.0/web/src/wizard/env-template.ts +44 -0
  929. my_crew-0.1.0/web/src/wizard/persona-template.test.ts +15 -0
  930. my_crew-0.1.0/web/src/wizard/persona-template.ts +27 -0
  931. my_crew-0.1.0/web/src/wizard/staff-template-picker.test.tsx +116 -0
  932. my_crew-0.1.0/web/src/wizard/staff-template-picker.tsx +232 -0
  933. my_crew-0.1.0/web/src/wizard/use-create-agent-wizard.test.ts +144 -0
  934. my_crew-0.1.0/web/src/wizard/use-create-agent-wizard.ts +223 -0
  935. my_crew-0.1.0/web/tsconfig.app.json +28 -0
  936. my_crew-0.1.0/web/tsconfig.json +7 -0
  937. my_crew-0.1.0/web/tsconfig.node.json +23 -0
  938. my_crew-0.1.0/web/vite.config.ts +26 -0
@@ -0,0 +1,32 @@
1
+ # Build context = the repo; keep user data, secrets, and heavyweight dev dirs out.
2
+ # NOTE dockerignore semantics: patterns are anchored to the context root (unlike
3
+ # .gitignore) — nested matches need the `**/` prefix. Last matching pattern wins.
4
+ .git
5
+ .venv
6
+ .pytest_cache
7
+ **/__pycache__
8
+ **/*.pyc
9
+ dist
10
+ plans
11
+ .data
12
+ .demo-backup
13
+ .mcp-servers
14
+ node_modules
15
+ web/node_modules
16
+ web/dist
17
+
18
+ # User data / secrets (never bake into an image) — recursive on purpose: the
19
+ # compose flow writes deploy/docker/my-crew.env with REAL secrets next to the
20
+ # Dockerfile, and a rebuild must never copy it in.
21
+ **/.env
22
+ **/.env.*
23
+ **/*.env
24
+ !.env.example
25
+ !deploy/docker/my-crew.env.example
26
+ registry.yaml
27
+ company.yaml
28
+ company-docs
29
+ .setup-complete
30
+ profiles/*
31
+ !profiles/default
32
+ !profiles/templates
@@ -0,0 +1,125 @@
1
+ # Copy to .env and fill in. .env is gitignored — never commit real values.
2
+ # ALL secrets live in THIS ONE agent .env. The agent (MCP client) reads them and
3
+ # injects them into each MCP server's subprocess env when it spawns the server
4
+ # (node dist/index.js). There is no separate per-server .env. GitHub uses `gh auth login`.
5
+
6
+ # --- Paths ---
7
+ # Root for user state (.env, registry.yaml, company.yaml, profiles/, company-docs/,
8
+ # .data/). Default: the repo checkout when running from git, else ~/.my-crew for an
9
+ # installed package. Set to relocate all state explicitly.
10
+ # MY_CREW_HOME=~/.my-crew
11
+
12
+ # --- LLM provider (OpenRouter, OpenAI-compatible) ---
13
+ OPENROUTER_API_KEY=
14
+ OPENROUTER_MODEL=minimax/minimax-m2.7
15
+ # v4 M9 (optional): fallback chain, comma-separated, tried in order on 402/429/5xx/
16
+ # timeout/empty. Unset = single model (pre-v4 behavior). Budget cap still supreme.
17
+ # OPENROUTER_MODEL_CHAIN=minimax/minimax-m2.7,qwen/qwen-3.7
18
+ # Fallback model if the default underperforms: qwen/qwen-3.7
19
+ OPENROUTER_REFERER=https://github.com/local/my-project-manager
20
+ OPENROUTER_TITLE=my-project-manager
21
+
22
+ # --- Guardrails ---
23
+ # DRY_RUN=true -> Action Gateway logs intended writes instead of posting them.
24
+ # Set to false to actually post to Slack.
25
+ DRY_RUN=true
26
+ # Kill switch: true -> gateway refuses ALL mutations (read + log only).
27
+ AGENT_WRITE_DISABLED=false
28
+ # Trust mode (v30): autonomous (default) -> agent actions run immediately with an
29
+ # audit record; guarded -> sensitive (Lớp B) actions queue for human approval.
30
+ # Per-agent override: safety.trust_mode in profile.yaml. Lớp A hard-deny, audit,
31
+ # dry-run and the kill switch apply in BOTH modes.
32
+ TRUST_MODE=autonomous
33
+ # Monthly OpenRouter spend cap (USD). Hard-stop at 100%, warn at the ratio below.
34
+ MONTHLY_BUDGET_USD=50
35
+ BUDGET_WARN_RATIO=0.8
36
+
37
+ # --- Atlassian / Jira (agent injects these into the Jira MCP server subprocess) ---
38
+ ATLASSIAN_SITE_NAME=
39
+ ATLASSIAN_USER_EMAIL=
40
+ ATLASSIAN_API_TOKEN=
41
+
42
+ # --- Slack (agent injects these into the Slack MCP server subprocess) ---
43
+ # Browser-token auth -- BROAD scope, handle with care.
44
+ SLACK_XOXC_TOKEN=
45
+ SLACK_XOXD_TOKEN=
46
+ SLACK_TEAM_DOMAIN=
47
+
48
+ # --- Report targets ---
49
+ JIRA_PROJECT_KEY=
50
+ GITHUB_REPO=
51
+ SLACK_REPORT_CHANNEL=
52
+
53
+ # --- Risk thresholds (defaults shown) ---
54
+ PR_STALE_DAYS=7
55
+ BLOCKER_LABEL_SUBSTRING=block
56
+
57
+ # --- Optional: override MCP server entry paths ---
58
+ # Defaults: ~/workspace/jira-cloud-mcp-server/<entry>, ~/workspace/slack-browser-mcp-server/<entry>
59
+ # JIRA_MCP_DIST=
60
+ # SLACK_MCP_DIST=
61
+
62
+ # --- M3-P11 (C3): optional Linear integration (config-driven extra MCP server) ---
63
+ # Declare `integrations.linear` in profile.yaml; the agent spawns the stdio server
64
+ # (@tacticlaunch/mcp-linear) and reads issues/projects. Writes (createComment) stay
65
+ # behind the Action Gateway (Lop B approval). Token is read here, never in profile.yaml.
66
+ # LINEAR_MCP_DIST=
67
+ # LINEAR_API_TOKEN=
68
+
69
+ # --- M3-P11 (D2): optional Email (SMTP) delivery channel ---
70
+ # Declare `smtp:` in profile.yaml (or set SMTP_HOST). Every email is sent through the
71
+ # Action Gateway and requires Lop B human approval. Password is read here, never in yaml.
72
+ # SMTP_HOST=smtp.gmail.com
73
+ # SMTP_PORT=587
74
+ # SMTP_USER=
75
+ # SMTP_PASSWORD= # app password; env-only, never committed in a profile
76
+ # SMTP_FROM_ADDR=
77
+ # SMTP_USE_TLS=true
78
+ # SMTP_RECIPIENTS= # comma-separated
79
+
80
+ # --- v6 M13: optional per-agent Telegram bot identity ---
81
+ # Each agent = its OWN bot (create via @BotFather). Declare `telegram:` in the agent's
82
+ # profile.yaml with `bot_token_env` naming a var here — one var per agent, value env-only.
83
+ # <AGENT>_TELEGRAM_BOT_TOKEN=
84
+
85
+ # --- Confluence (Slice 2: detail report). Reuses Atlassian token above. ---
86
+ CONFLUENCE_SPACE_KEY=
87
+ CONFLUENCE_SPACE_ID=
88
+
89
+ # --- Phase 2: Lớp B (channels needing human approval before posting) ---
90
+ # Comma-separated channel IDs treated as external/stakeholder. Posting to these
91
+ # is queued for approval (cli approve), not auto-executed. Empty = none external.
92
+ SLACK_EXTERNAL_CHANNELS=
93
+
94
+ # --- Phase 3: OKR / objective tracking ---
95
+ # Confluence page (id) holding the OKR table: columns Objective | Key Result |
96
+ # Epic Key(s) | Weight. Empty = OKR features off (report --okr errors, weekly
97
+ # section omitted). An Objective rolling up below the threshold (fraction 0..1)
98
+ # is flagged "at risk".
99
+ OKR_CONFLUENCE_PAGE_ID=
100
+ OKR_BEHIND_THRESHOLD=0.5
101
+
102
+ # --- Phase 4: Resource (capacity) + Cost reporting ---
103
+ # Overload threshold: an assignee is "overloaded" if their open-issue count
104
+ # exceeds team_mean × this ratio (1.5 ⇒ >150% of the team average).
105
+ RESOURCE_OVERLOAD_RATIO=1.5
106
+ # Average labor cost per open issue, USD, for a rough labor estimate.
107
+ # 0 ⇒ labor estimate omitted from the report (only the real LLM budget shows).
108
+ LABOR_COST_PER_ISSUE=0
109
+
110
+ # --- Phase 5: Audience-split (external/stakeholder reports) ---
111
+ # The single Slack channel external/stakeholder reports post to (--audience external).
112
+ # MUST also be listed in SLACK_EXTERNAL_CHANNELS so the post routes through Lớp B
113
+ # human approval (otherwise it would auto-post to stakeholders without review).
114
+ SLACK_STAKEHOLDER_CHANNEL=
115
+
116
+ # --- v6 M16: web dashboard auth (single-user session) ---
117
+ # Generate the hash: uv run python -m src.entrypoints.mpm web hash-password
118
+ # Generate the secret: uv run python -m src.entrypoints.mpm web gen-secret
119
+ # When WEB_AUTH_PASSWORD_HASH is UNSET, the dashboard runs with NO auth (localhost dev only).
120
+ # Binding a non-loopback BIND_HOST while auth is OFF is REFUSED at startup.
121
+ # WEB_AUTH_USERNAME=admin
122
+ # WEB_AUTH_PASSWORD_HASH=
123
+ # WEB_SESSION_SECRET=
124
+ # BIND_HOST=127.0.0.1 # 0.0.0.0 for LAN — only with auth configured above
125
+ # PORT=8765
@@ -0,0 +1,64 @@
1
+ # CI: the suite is secret-free by design (tests/conftest.py isolates env + tmp dirs),
2
+ # so every job runs on plain PyPI/npm with no credentials.
3
+ name: ci
4
+
5
+ on:
6
+ push:
7
+ branches: [main]
8
+ pull_request:
9
+
10
+ jobs:
11
+ backend:
12
+ strategy:
13
+ matrix:
14
+ os: [ubuntu-latest, macos-latest]
15
+ runs-on: ${{ matrix.os }}
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+ - uses: astral-sh/setup-uv@v5
19
+ with:
20
+ python-version: "3.12"
21
+ - run: uv sync --extra deep
22
+ - run: uv run ruff check .
23
+ - run: uv run pytest -q
24
+
25
+ frontend:
26
+ runs-on: ubuntu-latest
27
+ defaults:
28
+ run:
29
+ working-directory: web
30
+ steps:
31
+ - uses: actions/checkout@v4
32
+ - uses: actions/setup-node@v4
33
+ with:
34
+ node-version: 22
35
+ cache: npm
36
+ cache-dependency-path: web/package-lock.json
37
+ - run: npm ci
38
+ # Build for real, not just --noEmit: a stale committed dist bit us before
39
+ # (v32); tsc -b + vite build is the honest gate. NOTE: this does NOT diff the
40
+ # rebuilt output against the committed dist (vite hash stability across
41
+ # runners is unverified) — docs/releasing.md step 2 is the stale-dist guard.
42
+ - run: npx tsc -b
43
+ - run: npm test
44
+ - run: npm run build
45
+
46
+ wheel:
47
+ runs-on: ubuntu-latest
48
+ steps:
49
+ - uses: actions/checkout@v4
50
+ - uses: astral-sh/setup-uv@v5
51
+ with:
52
+ python-version: "3.12"
53
+ - run: uv build
54
+ # The wheel must carry the shipped resources and the FE bundle — a wheel
55
+ # without them installs a my-crew that cannot seed a fresh home.
56
+ - name: verify wheel contents
57
+ run: |
58
+ test "$(unzip -l dist/*.whl | grep -c _shipped/)" -ge 60
59
+ test "$(unzip -l dist/*.whl | grep -cE 'static/app/')" -ge 10
60
+ - name: smoke-install from the wheel
61
+ run: |
62
+ python -m venv /tmp/v && /tmp/v/bin/pip -q install dist/*.whl
63
+ MY_CREW_HOME=/tmp/crew-home /tmp/v/bin/my-crew --version
64
+ MY_CREW_HOME=/tmp/crew-home /tmp/v/bin/my-crew agent list
@@ -0,0 +1,47 @@
1
+ # Release: build from the tag, publish to PyPI via OIDC trusted publishing (no stored
2
+ # token — register this repo+workflow as a trusted publisher for project `my-crew` on
3
+ # pypi.org first; see docs/releasing.md). workflow_dispatch = build-only rehearsal.
4
+ name: release
5
+
6
+ on:
7
+ push:
8
+ tags: ["v*"]
9
+ workflow_dispatch:
10
+
11
+ jobs:
12
+ build:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+ - uses: astral-sh/setup-uv@v5
17
+ with:
18
+ python-version: "3.12"
19
+ - run: uv build
20
+ - name: verify wheel contents
21
+ run: |
22
+ test "$(unzip -l dist/*.whl | grep -c _shipped/)" -ge 60
23
+ test "$(unzip -l dist/*.whl | grep -cE 'static/app/')" -ge 10
24
+ - uses: actions/upload-artifact@v4
25
+ with:
26
+ name: packages
27
+ path: dist/
28
+
29
+ publish:
30
+ # Tag pushes only — a workflow_dispatch run stops at the build rehearsal.
31
+ if: startsWith(github.ref, 'refs/tags/v')
32
+ needs: build
33
+ runs-on: ubuntu-latest
34
+ environment: pypi
35
+ permissions:
36
+ id-token: write # OIDC — the only credential involved
37
+ contents: write # the GitHub Release below
38
+ steps:
39
+ - uses: actions/download-artifact@v4
40
+ with:
41
+ name: packages
42
+ path: dist/
43
+ - uses: pypa/gh-action-pypi-publish@release/v1
44
+ - uses: softprops/action-gh-release@v2
45
+ with:
46
+ files: dist/*
47
+ generate_release_notes: true
@@ -0,0 +1,63 @@
1
+ # Python
2
+ __pycache__/
3
+ *.pyc
4
+ *.pyo
5
+ .pytest_cache/
6
+ .ruff_cache/
7
+
8
+ # venv (uv-managed)
9
+ .venv/
10
+
11
+ # Secrets — never commit
12
+ .env
13
+ *.env
14
+ !.env.example
15
+
16
+ # Runtime data: audit log, checkpoints, budget (see plan .data/ decision)
17
+ .data/
18
+
19
+ # Company Docs library (v7 M19): CEO-curated documents = local user data, restored
20
+ # from backup (backup.sh covers it), never committed.
21
+ company-docs/
22
+
23
+ # Per-agent profiles: only the `default` template is committed (holds no secrets,
24
+ # only token_env NAMES). Real per-agent profiles stay local.
25
+ profiles/*
26
+ !profiles/default/
27
+ !profiles/default/**
28
+ # Staff templates: shipped prefill source for the CreateAgent wizard, not a per-agent
29
+ # runtime profile — committed like profiles/default/.
30
+ !profiles/templates/
31
+ !profiles/templates/**
32
+
33
+ # Company identity (name + coordinator + team-task cap) — per-install user data like
34
+ # real profiles; load_company() degrades safely when absent on a fresh clone.
35
+ company.yaml
36
+
37
+ # Agent tooling / instructions — not part of the published project
38
+ .claude/
39
+ AGENTS.md
40
+ CLAUDE.md
41
+
42
+ # Internal working artifacts — not part of the published project
43
+ plans/
44
+ docs/references/
45
+ .dandori-agent
46
+
47
+ # Frontend (M4): ignore deps + the in-web build cache, but COMMIT the served dist
48
+ # at my_crew/server/static/app/ (the "FastAPI serves static, zero Node step" property).
49
+ web/node_modules/
50
+ web/dist/
51
+
52
+ # MCP servers installed from npm by the installer (P4) into a repo-local prefix —
53
+ # never committed, re-created by deploy/install.sh.
54
+ .mcp-servers/
55
+
56
+ # OS
57
+ .DS_Store
58
+ .setup-complete
59
+ .env.bak
60
+ # demo-mode swap backup (chứa data THẬT khi demo đang bật — tuyệt đối không commit)
61
+ .demo-backup/
62
+ # v18: registry is user data (the CEO's real team) — template is registry.example.yaml
63
+ /registry.yaml
@@ -0,0 +1 @@
1
+ 3.12
@@ -0,0 +1,38 @@
1
+ # Changelog
2
+
3
+ Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) · Versioning: semver.
4
+ Development history at finer grain lives in [docs/journals/](docs/journals/).
5
+
6
+ ## [0.1.0] — 2026-07-18
7
+
8
+ First installable release. Everything below existed as a clone-and-run system built
9
+ across v1–v50 (see journals); 0.1.0 packages it as a product.
10
+
11
+ ### Added
12
+ - `my-crew` console script (PyPI package `my-crew`): `--help`, `--version`, and the
13
+ full command surface — `quickstart`, `crew init`, `serve`, `doctor`, `upgrade`,
14
+ `agent *`, `web hash-password`, `sandbox prepull`.
15
+ - `my-crew serve`: foreground web + coordinator supervisor for Docker Compose,
16
+ systemd, or a plain terminal. `deploy/docker/` ships a Dockerfile + compose file.
17
+ - `MY_CREW_HOME`: user state (.env, registry, profiles, data) resolves to the env
18
+ var, else the git checkout, else `~/.my-crew`. Shipped starter profiles seed into
19
+ a fresh home on first run.
20
+ - The wheel bundles the web dashboard (no Node needed to install) and the shipped
21
+ resources (starter profiles, templates, domain packs, examples).
22
+ - GitHub Actions CI (secret-free test suite, ubuntu + macos) and an OIDC-based
23
+ PyPI release pipeline.
24
+
25
+ ### Core (pre-0.1.0, summarized)
26
+ - Autonomy-first agent harness on LangGraph: every write flows through the Action
27
+ Gateway — hard-coded red lines (Lớp A), autonomous-vs-guarded trust modes,
28
+ kill-switch, dry-run default, dedup, rate-limit, immutable audit log.
29
+ - Multi-agent virtual office: browser dashboard + 3D office, one-click staff
30
+ templates, chat-ops, team tasks with review steps, per-task cost tracking.
31
+ - Integrations via MCP: Jira, Confluence, Slack (+ GitHub via `gh`), layered
32
+ memory, budget caps, scheduler with per-agent cron.
33
+
34
+ ### Known limitations
35
+ - The `deep` sandbox tier (`pip install my-crew[deep]`) needs a Docker daemon and
36
+ is not available *inside* the provided container image.
37
+ - The 3 MCP servers require Node at runtime (prepulled in the Docker image;
38
+ installed by `deploy/install.sh` on native installs).
@@ -0,0 +1,33 @@
1
+ # Contributing
2
+
3
+ ## Dev setup
4
+
5
+ ```bash
6
+ git clone git@github.com:phuc-nt/my-crew.git && cd my-crew
7
+ uv sync --extra deep # deep = optional Docker-sandbox tier (needs Docker to run, not to test)
8
+ uv run pytest -q # 2364+ BE tests — no secrets, no network, no Docker required
9
+ uv run ruff check .
10
+ cd web && npm install && npm test # 201 FE tests
11
+ ```
12
+
13
+ A git checkout keeps all user state repo-local (`.env`, `registry.yaml`,
14
+ `profiles/`, `.data/`) — `MY_CREW_HOME` docs: see the deployment guide.
15
+
16
+ ## Rules of the road
17
+
18
+ - **The test suite must stay secret-free.** Any test that needs a real key,
19
+ network, or Docker daemon gets a `skipif` gate. CI runs the whole suite on
20
+ clean runners.
21
+ - **The Action Gateway is the invariant.** Changes that add a write path must
22
+ route it through the gateway; changes to Lớp A/Lớp B semantics need an
23
+ explicit maintainer decision, not a drive-by refactor.
24
+ - **Conventional commits** (`feat:`, `fix:`, `refactor:` …), no AI references.
25
+ - Python: ruff-clean, snake_case, type hints on public functions; line length 100.
26
+ - FE: TypeScript strict; build for real (`npm run build`) when the dist matters —
27
+ the served bundle at `my_crew/server/static/app/` is committed.
28
+ - Docs: user-facing behavior changes update `docs/`; development narrative goes
29
+ to `docs/journals/`.
30
+
31
+ ## Releases
32
+
33
+ Maintainer-driven; see [docs/releasing.md](docs/releasing.md).
@@ -0,0 +1,133 @@
1
+ # HANDOVER — my-crew
2
+
3
+ Bạn là agent/đội mới nhận repo này để **refactor + phát triển tiếp**. File này là điểm
4
+ vào DUY NHẤT: đọc xong bạn biết đọc gì tiếp. Không cần biết toàn bộ quá trình xây dựng —
5
+ chỉ cần đủ context để làm tiếp an toàn.
6
+
7
+ ---
8
+
9
+ ## 1. Sản phẩm là gì (30 giây)
10
+
11
+ Một **đội nhân sự ảo AI** cho công ty một-người. CEO (không kỹ thuật) giao việc qua web/
12
+ Telegram; các agent tự làm việc PM/nội dung/nghiên cứu/phân tích/kiểm định, đọc dữ liệu
13
+ thật từ Jira·GitHub·Confluence·Slack, và *tự hành động* (viết báo cáo, tạo trang, cảnh báo).
14
+
15
+ **Triết lý cốt lõi — thuộc nằm lòng:** *tự chủ về TỐC ĐỘ, không bao giờ tự chủ về TRÁCH
16
+ NHIỆM.* Mọi hành động ghi ra ngoài công ty đi qua MỘT cửa kiểm soát (Action Gateway);
17
+ việc mất-dữ-liệu/lộ-bí-mật bị chặn cứng, LLM không vượt được kể cả khi "muốn".
18
+
19
+ ## 2. Tech stack
20
+
21
+ - **Backend**: Python ≥3.12, quản lý bằng **uv**. LangGraph (agent graph). FastAPI + SSE.
22
+ SQLite (WAL) cho state. Không dùng ORM.
23
+ - **Frontend**: React 19 + TypeScript + Vite; react-three-fiber/three cho màn 3D "Văn phòng".
24
+ Build dist commit vào `src/server/static/app/` (server serve tĩnh).
25
+ - **Tích hợp ngoài**: MCP servers (Jira/Confluence/Slack) + `gh` CLI (GitHub) + `gws` CLI
26
+ (Google Sheets, hr-pack). LLM qua OpenRouter.
27
+ - **Test**: `uv run pytest` (~1706 BE) · `cd web && npx vitest run` (~177 FE) · `npx tsc --noEmit`.
28
+
29
+ ## 3. Đọc theo thứ tự này
30
+
31
+ | # | File | Để biết | Ưu tiên |
32
+ |---|------|---------|---------|
33
+ | 1 | **`CLAUDE.md`** | Luật làm việc trong repo (workflow, quy tắc code, commit, hook privacy) | BẮT BUỘC |
34
+ | 2 | **`.claude/rules/*.md`** | Chi tiết: development-rules, primary-workflow, orchestration, review | BẮT BUỘC |
35
+ | 3 | **`docs/project-overview-pdr.md`** | Vision, vấn đề, phạm vi, yêu cầu — VÌ SAO có sản phẩm | BẮT BUỘC |
36
+ | 4 | **`docs/system-architecture.md`** | Kiến trúc as-built v18 (sơ đồ, thành phần, luồng dữ liệu) | BẮT BUỘC |
37
+ | 5 | **`docs/action-gateway-explainer.md`** | Mô hình an toàn (Action Gateway) — trái tim sản phẩm | BẮT BUỘC |
38
+ | 6 | **`docs/codebase-summary.md`** | Bản đồ "cái gì ở file nào" + quyết định theo mốc | BẮT BUỘC |
39
+ | 7 | `docs/uat-theo-user-story.md` | Sản phẩm LÀM ĐƯỢC GÌ (7 epic, 22 story) — spec hành vi | Cao |
40
+ | 8 | `docs/project-roadmap.md` | Đã làm gì + việc nên làm tiếp | Cao |
41
+ | 9 | `docs/deployment-guide.md` | Cài / chạy / backup | Khi deploy |
42
+ | 10 | `docs/code-standards.md`, `docs/design-guidelines.md` | Chuẩn code + UI | Vừa |
43
+ | 11 | `docs/journals/*`, `plans/*` | Lịch sử từng vòng — chỉ tra khi cần "vì sao quyết định X" | Tra cứu |
44
+
45
+ > `README.md` cho người học "cách build agent có guardrail" (vision, không phải map kiến
46
+ > trúc hiện tại). `docs/huong-dan-su-dung.md` là hướng dẫn tiếng Việt cho CEO (người dùng
47
+ > cuối). `docs/archive/` chứa tài liệu cũ (v1/v2, phỏng vấn, so-sánh-kiến-trúc) — CHỈ tra
48
+ > khi cần lịch sử.
49
+
50
+ ## 4. Bản đồ code (nơi bắt đầu khi sửa)
51
+
52
+ ```
53
+ src/
54
+ agent/ LangGraph graphs + nodes. LÕI: coordinator_graph.py (ticker điều phối),
55
+ team_task_graph.py (chạy 1 bước việc), task_decomposition.py (chia việc),
56
+ review_graph.py (soát chéo), ops_*.py (lệnh CEO: giao/chỉnh việc)
57
+ actions/ Action Gateway (action_gateway.py) + hard_block.py (Lớp A chặn cứng) +
58
+ *_write.py (handler ghi ngoài, đều qua gateway)
59
+ runtime/ service.py (daemon điều phối/scheduler), worker.py (chạy 1 agent),
60
+ team_task_store.py (SQLite state đội), office_room_*.py (feed realtime)
61
+ server/ FastAPI app.py + routes_*.py + office_event_projection.py (PII firewall)
62
+ llm/ config/ profile/ skills/ packs/ company_docs/ reporting/ audit/ — hỗ trợ
63
+ web/src/
64
+ views/office-unified/ Màn chính "Văn phòng" (3 cột: phòng việc | hoạt động | kết quả)
65
+ views/office-3d/ Cảnh 3D (r3f), reducer sự kiện → trạng thái bàn
66
+ views/ Team, Work (Duyệt), Settings, Chat…
67
+ ```
68
+
69
+ Entry points: web `python -m src.server.app` (hoặc `main()` trong app.py) · daemon điều
70
+ phối `python -m src.runtime.service` · CLI `python -m src.entrypoints.mpm`.
71
+
72
+ ## 5. BẤT BIẾN — đừng phá khi refactor (đọc kỹ)
73
+
74
+ Đây là các ràng buộc an toàn đã được red-team + E2E bảo vệ qua nhiều vòng. Sửa mà không
75
+ hiểu chúng = tạo lỗ hổng. Chi tiết trong codebase-summary "THE INVARIANT":
76
+
77
+ 1. **Action Gateway = cửa DUY NHẤT ra ngoài.** Mọi ghi external (Slack/Jira/Confluence/
78
+ email) qua gateway → allowlist default-deny + Lớp A hard-block. Thêm handler ghi mới
79
+ PHẢI đi qua đây, không đi tắt.
80
+ 2. **Ghi ra ngoài = Lớp B (chờ CEO duyệt).** Không tự chạy trừ khi trust-ladder bật.
81
+ 3. **PII firewall cho office events** (`office_event_projection.py`): allowlist theo kind
82
+ AT WRITE TIME. Không nhét nội dung tự do (tài liệu, câu trả lời đầy đủ) vào room event.
83
+ 4. **Hash-bind khi giao/chỉnh việc**: CEO xác nhận kế hoạch → hash khóa; `_verify_plan_hash`
84
+ băm lại mỗi tick chống tamper. `room_id`/`pic_id`/`acceptance` là METADATA NGOÀI hash
85
+ (nếu thêm field vào step, hỏi: "nó có va vào hash-check này không?").
86
+ 5. **Cross-process isolation (khóa từ v12)**: KHÔNG chạy orchestration graph xuyên process.
87
+ Điều phối = ticker (poll ngắn/1-hành-động/thoát) + store + lease. Không nhúng ticker
88
+ vào web app.
89
+ 6. **registry.yaml = USER-DATA (gitignored từ v18)** — KHÔNG BAO GIỜ `git checkout
90
+ registry.yaml` / không add. Template committed là `registry.example.yaml`.
91
+
92
+ ## 6. Quy trình làm việc (repo dùng skill-driven workflow)
93
+
94
+ Repo này phát triển theo vòng: **brainstorm → plan → red-team plan → cook (implement) →
95
+ review → E2E thật (browser + LLM thật) → docs/journal → commit**. Bằng chứng: `plans/` +
96
+ `docs/journals/`. Bạn KHÔNG bắt buộc theo hệt, nhưng 2 điều nên giữ:
97
+ - **Red-team plan TRƯỚC khi code** — nhiều Critical được bắt ở tầng plan (rẻ), xem các
98
+ report `plans/*/reports/from-code-reviewer-to-planner-*`.
99
+ - **E2E trên đường thật** — "suite xanh ≠ chạy được" đã xảy ra 2 lần (feature dead dù
100
+ test xanh vì test tự set điều kiện prompt/đường thật không tạo ra). Test bằng browser +
101
+ ticker + LLM thật, soi DB.
102
+
103
+ ## 7. Chạy thử tại chỗ
104
+
105
+ ```bash
106
+ uv sync
107
+ cd web && npm install && npm run build && cd .. # build FE (dist đã commit sẵn)
108
+ PORT=8765 uv run python -c "from src.server.app import main; main()" & # web
109
+ uv run python -m src.runtime.service & # điều phối
110
+ # mở http://127.0.0.1:8765 (auth OFF khi localhost + chưa đặt password)
111
+ ```
112
+
113
+ Cần data + đội mẫu để thử ngay: `scripts/demo-mode.sh on` (tắt: `off` — trả data thật
114
+ nguyên vẹn). Đội thật cần ≥1 coordinator + vài agent office trong `registry.yaml` +
115
+ service chạy, nếu không màn Văn phòng hiện banner đỏ "bộ điều phối chưa chạy".
116
+
117
+ ## 8. Nợ kỹ thuật & việc nên làm tiếp (bàn giao trung thực)
118
+
119
+ - **`docs/codebase-summary.md`** phần thân vẫn dài theo dòng lịch sử v1→v18 — bản đồ
120
+ chính xác nhưng nên gộp phần cũ thành mục ngắn (header đã đồng bộ v18).
121
+ - **Cải thiện đã ghi nhận từ UAT v17/v18** (chưa làm): xem
122
+ `plans/260711-0711-.../reports/uat-260711-0908-*findings*.md` + `docs/project-roadmap.md`
123
+ §"Việc nên làm tiếp" — vd hr/sales-pm là hồ sơ agent mồ côi chưa đăng ký; web_search cần key.
124
+ - Nhật ký/plan rất nhiều (67 journal, 22 plan) — là lịch sử, KHÔNG cần đọc để làm tiếp;
125
+ tra khi cần "vì sao quyết định X".
126
+
127
+ ## 9. Không được làm
128
+
129
+ - Không commit secrets/.env/token/private key/db creds/personal data.
130
+ - Không sửa skills trong `~/.claude/skills` (sửa bản trong repo nếu được yêu cầu).
131
+ - Không dùng prefix `chore`/`docs` cho commit thay đổi thư mục `.claude/`.
132
+ - `company.yaml`, `.data/`, `registry.yaml`, hồ sơ trong `profiles/<id>` = user-data
133
+ (gitignored) — không commit.