code-coordinator 0.5.46__py3-none-any.whl
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.
- code_coordinator-0.5.46.dist-info/METADATA +625 -0
- code_coordinator-0.5.46.dist-info/RECORD +295 -0
- code_coordinator-0.5.46.dist-info/WHEEL +5 -0
- code_coordinator-0.5.46.dist-info/entry_points.txt +2 -0
- code_coordinator-0.5.46.dist-info/licenses/LICENSE +110 -0
- code_coordinator-0.5.46.dist-info/top_level.txt +1 -0
- coord/__init__.py +176 -0
- coord/_board_mapping.py +229 -0
- coord/acceptance.py +468 -0
- coord/acceptance_drivers.py +632 -0
- coord/agent.py +7517 -0
- coord/agent_app.py +1555 -0
- coord/agent_update.py +417 -0
- coord/agents/opencode/.gitignore +13 -0
- coord/agents/opencode/agents/work.md +129 -0
- coord/agents/opencode/routing.jsonc +49 -0
- coord/audit.py +301 -0
- coord/auto_loop.py +1440 -0
- coord/board_bool_guard.py +72 -0
- coord/board_service.py +141 -0
- coord/board_wire.py +309 -0
- coord/brain.py +581 -0
- coord/branch_model.py +214 -0
- coord/cargo_cache.py +258 -0
- coord/ci_github.py +386 -0
- coord/ci_store.py +560 -0
- coord/claim.py +353 -0
- coord/cli.py +454 -0
- coord/client.py +610 -0
- coord/commands/__init__.py +1 -0
- coord/commands/_common.py +329 -0
- coord/commands/acceptance.py +916 -0
- coord/commands/agent_ops.py +1339 -0
- coord/commands/audit.py +131 -0
- coord/commands/chat.py +320 -0
- coord/commands/dispatch.py +1780 -0
- coord/commands/dispatch_workers.py +4894 -0
- coord/commands/drive.py +616 -0
- coord/commands/drive_queue.py +1203 -0
- coord/commands/gate_a.py +217 -0
- coord/commands/gates.py +89 -0
- coord/commands/issues.py +681 -0
- coord/commands/lifecycle.py +513 -0
- coord/commands/merge.py +1900 -0
- coord/commands/milestone.py +2081 -0
- coord/commands/plan_followup.py +1243 -0
- coord/commands/plans.py +156 -0
- coord/commands/release.py +2232 -0
- coord/commands/report.py +341 -0
- coord/commands/review.py +1523 -0
- coord/commands/scorecard.py +252 -0
- coord/commands/sessions.py +1930 -0
- coord/commands/setup.py +576 -0
- coord/commands/status.py +2089 -0
- coord/commands/terminal.py +385 -0
- coord/commands/test_gate.py +775 -0
- coord/commands/tui.py +288 -0
- coord/comments.py +718 -0
- coord/config.py +3032 -0
- coord/conflict_fix.py +633 -0
- coord/dao.py +483 -0
- coord/dashboard/__init__.py +0 -0
- coord/dashboard/fixture.py +376 -0
- coord/dashboard/index.html +658 -0
- coord/dashboard/server.py +1894 -0
- coord/dashboard/terminal.py +382 -0
- coord/dashboard/webapp/.gitignore +9 -0
- coord/dashboard/webapp/components.json +17 -0
- coord/dashboard/webapp/dist/assets/Gallery-da3qNiIw.js +71 -0
- coord/dashboard/webapp/dist/assets/Terminal-9CEnUXvW.css +32 -0
- coord/dashboard/webapp/dist/assets/Terminal-skVFCxPU.js +63 -0
- coord/dashboard/webapp/dist/assets/index-DltfZR5f.js +184 -0
- coord/dashboard/webapp/dist/assets/index-Dq4kwTdw.css +1 -0
- coord/dashboard/webapp/dist/assets/workbox-window.prod.es5-BqEJf4Xk.js +2 -0
- coord/dashboard/webapp/dist/icons/icon-192.png +0 -0
- coord/dashboard/webapp/dist/icons/icon-512.png +0 -0
- coord/dashboard/webapp/dist/icons/icon.svg +5 -0
- coord/dashboard/webapp/dist/index.html +38 -0
- coord/dashboard/webapp/dist/manifest.webmanifest +1 -0
- coord/dashboard/webapp/dist/sw.js +1 -0
- coord/dashboard/webapp/dist/workbox-e4022e15.js +1 -0
- coord/dashboard/webapp/e2e/available-gates-terminal.spec.ts +75 -0
- coord/dashboard/webapp/e2e/deep-link.spec.ts +172 -0
- coord/dashboard/webapp/e2e/fixtureServer.ts +155 -0
- coord/dashboard/webapp/e2e/live-update-fixture.spec.ts +113 -0
- coord/dashboard/webapp/e2e/realtime.spec.ts +238 -0
- coord/dashboard/webapp/e2e/shell.spec.ts +309 -0
- coord/dashboard/webapp/e2e/smoke.spec.ts +191 -0
- coord/dashboard/webapp/e2e/terminal.spec.ts +420 -0
- coord/dashboard/webapp/e2e/theme.spec.ts +138 -0
- coord/dashboard/webapp/eslint.config.js +20 -0
- coord/dashboard/webapp/index.html +37 -0
- coord/dashboard/webapp/node_modules/flatted/python/flatted.py +144 -0
- coord/dashboard/webapp/package-lock.json +10584 -0
- coord/dashboard/webapp/package.json +63 -0
- coord/dashboard/webapp/playwright.acceptance.config.ts +166 -0
- coord/dashboard/webapp/playwright.config.ts +93 -0
- coord/dashboard/webapp/postcss.config.js +6 -0
- coord/dashboard/webapp/public/icons/icon-192.png +0 -0
- coord/dashboard/webapp/public/icons/icon-512.png +0 -0
- coord/dashboard/webapp/public/icons/icon.svg +5 -0
- coord/dashboard/webapp/src/App.tsx +140 -0
- coord/dashboard/webapp/src/api/client.ts +199 -0
- coord/dashboard/webapp/src/api/generated.ts +176 -0
- coord/dashboard/webapp/src/components/ConnectionBadge.tsx +52 -0
- coord/dashboard/webapp/src/components/Detail.tsx +800 -0
- coord/dashboard/webapp/src/components/Gallery.tsx +341 -0
- coord/dashboard/webapp/src/components/Home.tsx +435 -0
- coord/dashboard/webapp/src/components/MobileKeyBar.tsx +280 -0
- coord/dashboard/webapp/src/components/PanelHeader.tsx +59 -0
- coord/dashboard/webapp/src/components/PipelineCard.tsx +168 -0
- coord/dashboard/webapp/src/components/SessionCard.tsx +99 -0
- coord/dashboard/webapp/src/components/SessionDetail.tsx +140 -0
- coord/dashboard/webapp/src/components/SessionsList.tsx +81 -0
- coord/dashboard/webapp/src/components/Terminal.tsx +376 -0
- coord/dashboard/webapp/src/components/__tests__/ConnectionBadge.test.tsx +81 -0
- coord/dashboard/webapp/src/components/__tests__/Detail.test.tsx +680 -0
- coord/dashboard/webapp/src/components/__tests__/Gallery.test.tsx +83 -0
- coord/dashboard/webapp/src/components/__tests__/Home.test.tsx +271 -0
- coord/dashboard/webapp/src/components/__tests__/MobileKeyBar.test.tsx +197 -0
- coord/dashboard/webapp/src/components/__tests__/PipelineCard.test.tsx +143 -0
- coord/dashboard/webapp/src/components/__tests__/SessionCard.test.tsx +106 -0
- coord/dashboard/webapp/src/components/__tests__/Terminal.test.tsx +504 -0
- coord/dashboard/webapp/src/components/ui/badge.tsx +41 -0
- coord/dashboard/webapp/src/components/ui/button.tsx +54 -0
- coord/dashboard/webapp/src/components/ui/card.tsx +55 -0
- coord/dashboard/webapp/src/components/ui/dialog.tsx +99 -0
- coord/dashboard/webapp/src/components/ui/dropdown-menu.tsx +189 -0
- coord/dashboard/webapp/src/components/ui/empty-state.tsx +35 -0
- coord/dashboard/webapp/src/components/ui/sheet.tsx +123 -0
- coord/dashboard/webapp/src/components/ui/skeleton.tsx +9 -0
- coord/dashboard/webapp/src/components/ui/tabs.tsx +55 -0
- coord/dashboard/webapp/src/components/ui/theme-provider.tsx +78 -0
- coord/dashboard/webapp/src/components/ui/theme-toggle.tsx +20 -0
- coord/dashboard/webapp/src/components/ui/toast.tsx +123 -0
- coord/dashboard/webapp/src/components/ui/toaster.tsx +30 -0
- coord/dashboard/webapp/src/components/ui/tooltip.tsx +26 -0
- coord/dashboard/webapp/src/components/ui/use-toast.ts +134 -0
- coord/dashboard/webapp/src/index.css +210 -0
- coord/dashboard/webapp/src/lib/pipeline.ts +29 -0
- coord/dashboard/webapp/src/lib/utils.ts +6 -0
- coord/dashboard/webapp/src/main.tsx +46 -0
- coord/dashboard/webapp/src/realtime/RealtimeProvider.tsx +112 -0
- coord/dashboard/webapp/src/realtime/__tests__/RealtimeProvider.test.tsx +189 -0
- coord/dashboard/webapp/src/realtime/__tests__/connection.test.ts +255 -0
- coord/dashboard/webapp/src/realtime/connection.ts +227 -0
- coord/dashboard/webapp/src/realtime/events.ts +100 -0
- coord/dashboard/webapp/src/routes/__tests__/paths.test.ts +92 -0
- coord/dashboard/webapp/src/routes/paths.ts +92 -0
- coord/dashboard/webapp/src/shell/ActivityRail.tsx +335 -0
- coord/dashboard/webapp/src/shell/AppShell.tsx +276 -0
- coord/dashboard/webapp/src/shell/ComingSoon.tsx +33 -0
- coord/dashboard/webapp/src/shell/EmptyDetail.tsx +26 -0
- coord/dashboard/webapp/src/shell/RouteNotFound.tsx +33 -0
- coord/dashboard/webapp/src/shell/ShellLayout.tsx +147 -0
- coord/dashboard/webapp/src/shell/StatusBar.tsx +46 -0
- coord/dashboard/webapp/src/shell/__tests__/ShellLayout.test.tsx +520 -0
- coord/dashboard/webapp/src/shell/__tests__/shellState.test.ts +95 -0
- coord/dashboard/webapp/src/shell/__tests__/stubViewport.ts +40 -0
- coord/dashboard/webapp/src/shell/breakpoints.ts +87 -0
- coord/dashboard/webapp/src/shell/railItems.ts +105 -0
- coord/dashboard/webapp/src/shell/shellState.ts +174 -0
- coord/dashboard/webapp/src/shell/useRegionFocus.ts +95 -0
- coord/dashboard/webapp/src/test-setup.ts +41 -0
- coord/dashboard/webapp/src/vite-env.d.ts +2 -0
- coord/dashboard/webapp/tailwind.config.js +140 -0
- coord/dashboard/webapp/tsconfig.json +25 -0
- coord/dashboard/webapp/tsconfig.node.json +11 -0
- coord/dashboard/webapp/vite.config.ts +71 -0
- coord/db.py +1076 -0
- coord/dead_end.py +332 -0
- coord/deploy/README.md +33 -0
- coord/deploy/coord-agent.service +89 -0
- coord/deploy/coord-db-backup.service +60 -0
- coord/deploy/coord-db-backup.sh +74 -0
- coord/deploy/coord-db-backup.timer +18 -0
- coord/deploy/coord-drive-queue.service +117 -0
- coord/deploy/coord-drive-queue.timer +39 -0
- coord/deploy/coord-notify.service +48 -0
- coord/deploy/coord-notify.timer +24 -0
- coord/deploy/coord-release-propagate.service +83 -0
- coord/deploy/coord-release-propagate.timer +38 -0
- coord/deploy/coord-release-window.service +119 -0
- coord/deploy/coord-release-window.timer +36 -0
- coord/deploy/coord-serve.service +82 -0
- coord/deploy/coord-web-dist-build.service +43 -0
- coord/deploy/coord-web-dist-build.timer +36 -0
- coord/deploy/coord-web.service +125 -0
- coord/deploy_manifest.py +80 -0
- coord/deploy_units.py +384 -0
- coord/deps.py +115 -0
- coord/diagnose.py +1623 -0
- coord/dispatch.py +1009 -0
- coord/dist_name.py +123 -0
- coord/drive.py +3101 -0
- coord/drive_queue.py +2298 -0
- coord/drive_state.py +870 -0
- coord/events.py +381 -0
- coord/failure_class.py +914 -0
- coord/filelock.py +168 -0
- coord/fleet_config_health.py +300 -0
- coord/freshness.py +206 -0
- coord/gate_a.py +469 -0
- coord/gate_b.py +411 -0
- coord/gate_snapshot.py +385 -0
- coord/gates.py +582 -0
- coord/github_ops.py +1954 -0
- coord/goal.py +125 -0
- coord/graph_health.py +348 -0
- coord/health/__init__.py +69 -0
- coord/health/aggregate.py +129 -0
- coord/health/checks/__init__.py +13 -0
- coord/health/checks/agent_install.py +280 -0
- coord/health/checks/cargo_targets.py +171 -0
- coord/health/checks/claude_binary.py +65 -0
- coord/health/checks/deploy_lane_facts.py +458 -0
- coord/health/checks/disk.py +99 -0
- coord/health/checks/fleet_board.py +89 -0
- coord/health/checks/fleet_deploy_lanes.py +469 -0
- coord/health/checks/fleet_phantom.py +69 -0
- coord/health/checks/fleet_unit_drift.py +151 -0
- coord/health/checks/graph.py +192 -0
- coord/health/checks/plan_usage.py +88 -0
- coord/health/checks/repo_state.py +161 -0
- coord/health/checks/spawned_coord.py +465 -0
- coord/health/checks/timer_active.py +254 -0
- coord/health/checks/toolchain.py +547 -0
- coord/health/checks/unit_drift.py +648 -0
- coord/health/checks/unit_enablement.py +171 -0
- coord/health/checks/worktrees.py +96 -0
- coord/health/cli.py +121 -0
- coord/health/context.py +106 -0
- coord/health/fleet_snapshot.py +477 -0
- coord/health/models.py +250 -0
- coord/health/pypi.py +231 -0
- coord/health/registry.py +240 -0
- coord/health/render.py +82 -0
- coord/health/units.py +60 -0
- coord/hooks.py +106 -0
- coord/housekeeping.py +204 -0
- coord/interactive.py +4286 -0
- coord/issue_store.py +1496 -0
- coord/liveness_auditor.py +293 -0
- coord/machine_pause.py +755 -0
- coord/merge_queue.py +4681 -0
- coord/milestone_chat.py +600 -0
- coord/milestone_dispatch.py +943 -0
- coord/milestone_gate.py +709 -0
- coord/milestone_order.py +840 -0
- coord/mock_author.py +334 -0
- coord/models.py +891 -0
- coord/network.py +269 -0
- coord/new_issue_chat.py +229 -0
- coord/notify.py +3226 -0
- coord/openapi.py +404 -0
- coord/overlap_fence.py +133 -0
- coord/parentage.py +200 -0
- coord/parentage_github.py +58 -0
- coord/pipeline.py +481 -0
- coord/plan_parser.py +266 -0
- coord/plans.py +543 -0
- coord/platform_paths.py +43 -0
- coord/pr_body_lint.py +67 -0
- coord/prereqs.py +533 -0
- coord/progress.py +425 -0
- coord/providers/__init__.py +683 -0
- coord/providers/base.py +218 -0
- coord/providers/claude.py +284 -0
- coord/providers/claude_pty.py +610 -0
- coord/providers/opencode.py +896 -0
- coord/reconcile.py +2233 -0
- coord/refine_chat.py +485 -0
- coord/release_cordon.py +525 -0
- coord/release_propagate.py +1176 -0
- coord/release_verify.py +777 -0
- coord/release_window.py +322 -0
- coord/reports.py +1643 -0
- coord/revalidate.py +1101 -0
- coord/review.py +3317 -0
- coord/scorecard.py +484 -0
- coord/serve_app.py +7192 -0
- coord/skills/update-issue/SKILL.md +93 -0
- coord/smoke.py +1030 -0
- coord/split_work.py +210 -0
- coord/stage_projection.py +650 -0
- coord/state.py +5720 -0
- coord/test_author.py +1064 -0
- coord/test_chat.py +352 -0
- coord/test_orchestrator.py +494 -0
- coord/test_report.py +178 -0
- coord/tui_release.py +271 -0
- coord/usage.py +753 -0
- coord/usage_limits.py +358 -0
- coord/usage_rollup.py +709 -0
- coord/worker_events.py +954 -0
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
code_coordinator-0.5.46.dist-info/licenses/LICENSE,sha256=851BVZZwf_pEv2ydSlMmcZrwnwSS5YJ98wdLze7lyL8,4212
|
|
2
|
+
coord/__init__.py,sha256=cseffdTZHDI6x3QyqLx3jAIir-rVUJ_k42l_FUHlegw,8629
|
|
3
|
+
coord/_board_mapping.py,sha256=jvY_A97JSbUA_HnuqoZIOZQNd__xeZb1Y4KLEMy-c3U,10191
|
|
4
|
+
coord/acceptance.py,sha256=lbRNFkmb__LLMsStUqM2CqSuRPtOTTCTffKGV_UBwMk,19697
|
|
5
|
+
coord/acceptance_drivers.py,sha256=X04RYnpGO9XOaf4cQYb2QGcI7-hdnbkeQadMeT7nDYg,28171
|
|
6
|
+
coord/agent.py,sha256=77e0Rl5p5oBWptBQxTFtdSvG4G2L3oqbcGRHE6mknM0,365090
|
|
7
|
+
coord/agent_app.py,sha256=7fuZw9eUL1Ysf18SyLFt2RSuyU1mUn5v634ntW-lNcw,68791
|
|
8
|
+
coord/agent_update.py,sha256=wTyVO8hd4LsTZN7pBgqcCmlO1aorOvF74DDSELvMakc,18023
|
|
9
|
+
coord/audit.py,sha256=Ib9T_mnmbzwFSOqtKvOjBKTsZMa7_posZtbHbl3ev04,10911
|
|
10
|
+
coord/auto_loop.py,sha256=GmxMnEJQ2nd_871JTgtIEgXSw9FZ3NG299_Cw9KsdfY,61709
|
|
11
|
+
coord/board_bool_guard.py,sha256=Jna1W2KLCLLfRA9tw93bcaDuqFq_zqFSfZS6Gp7DVq8,3230
|
|
12
|
+
coord/board_service.py,sha256=k15xqpsSylTy7avEy7z92RSkjjO_4HpVsG03AhAzpbg,5722
|
|
13
|
+
coord/board_wire.py,sha256=p3TeW9OvS4ge0V-ZpNM7CSAJO9J8wKhpzZOpzrBA4aw,13858
|
|
14
|
+
coord/brain.py,sha256=JHlduepWhBOZEF0rYZehlSe015lVbjXhl3Q8vl-IZWo,23797
|
|
15
|
+
coord/branch_model.py,sha256=ecjmzgpdbpUdGgSNABeXFUpuB9G78pDC4OBrwRqQPgA,10522
|
|
16
|
+
coord/cargo_cache.py,sha256=tAJtwH7bO9Eqgge2p2bpKl6mMIiC8iUOLL9gfdO_Rjs,9267
|
|
17
|
+
coord/ci_github.py,sha256=tWIwqVGiTOhPbV6XlcTpMktz8v2u_AOSfNM0fhp2wJQ,18158
|
|
18
|
+
coord/ci_store.py,sha256=CLHsGrFHaXUFUDlocGrrM4YNlJi9Lht53AUBhP-_RS0,25255
|
|
19
|
+
coord/claim.py,sha256=vglXiQQ79busZe943lh19j0qgEHuTsbhVE-wpZj9xgo,14084
|
|
20
|
+
coord/cli.py,sha256=sEpdl4Zbj64kZm1xnGmGvTQGwKiPN3U937Xx05i-tCE,17275
|
|
21
|
+
coord/client.py,sha256=BGHRYT9YFmEmj1xj8vInXf5Vt60PMjziaTv5Pd0fR1Q,22942
|
|
22
|
+
coord/comments.py,sha256=WhukM5hQDrwrCcUhH7p4GgU0EAjsSls433YEGgaNzXg,24573
|
|
23
|
+
coord/config.py,sha256=XWJWvRutrWA2ebQkbGptzDXJj6feC6xzumZozHfD9Mw,137384
|
|
24
|
+
coord/conflict_fix.py,sha256=jkiL9SDkmOEixNQoiyzVp7w67bVzwQNhEG_17eRQkYc,26685
|
|
25
|
+
coord/dao.py,sha256=Hi4W0uzlnEBcPZg6LjLctGsVipi07YgAqABCYICrVNo,21631
|
|
26
|
+
coord/db.py,sha256=IX4pw_u3RmLjb9YCFuIz-r2zEs-xUR64g-hyZXgDMz0,55556
|
|
27
|
+
coord/dead_end.py,sha256=tKKo6iComhf1QUiOdX6aHevyCTM47oVzB_6OxQGs_2Q,17895
|
|
28
|
+
coord/deploy_manifest.py,sha256=CeoiwAisTq959Ex4jBJISWngxhIIAHkcSrUbYVktibs,3315
|
|
29
|
+
coord/deploy_units.py,sha256=2KHy5dI8fqM5qKqQrMlE8RdWUoTxo5P9QbQGuvn-Wd8,14883
|
|
30
|
+
coord/deps.py,sha256=WnV5u_zYw_f3oMr88Qy7EUVeb3vBj5cTq8Ts1oGAR2s,3770
|
|
31
|
+
coord/diagnose.py,sha256=z6q1IMCFsy7Z1MVD9hKXrdKUJ3khmNhj9i9ehm-Y4m8,72583
|
|
32
|
+
coord/dispatch.py,sha256=n8OyALn32RGbW5jS35y1snHmiV9oADcNUZgX3dwBHsg,47413
|
|
33
|
+
coord/dist_name.py,sha256=Zlpwg4Um36TsgVo7KiW7LxMf5_qfiJthPED-1lT5jho,5889
|
|
34
|
+
coord/drive.py,sha256=n-wfmcYBODfTaD9wq_JHYPbPW_kxB_I22cgFcu8tPjU,150216
|
|
35
|
+
coord/drive_queue.py,sha256=trnqpySd8b2LoOV6wn_YERmAUq65o0lTuwZAfiNI65s,106623
|
|
36
|
+
coord/drive_state.py,sha256=d42XqmFEx70Ttop5YMy_RT2_vkS6MMXzfaCmHskIOPw,39091
|
|
37
|
+
coord/events.py,sha256=EJroWy2kahye59nRyIhAgyciO-Qe2eU0ktkqqDPkWx0,13565
|
|
38
|
+
coord/failure_class.py,sha256=PQM53NvNBs-kFPsIOgpgx6m5qdBh_9qzfTYn_oBJniw,36697
|
|
39
|
+
coord/filelock.py,sha256=UQ1l4JJsfcGRYRsNev3SD7YBxAsnJKOGjnNWnmwmMOI,7124
|
|
40
|
+
coord/fleet_config_health.py,sha256=QJvZr1HdwimwyCXDnSn9iNyZsuvZmHjFKvPetdg5cYY,12537
|
|
41
|
+
coord/freshness.py,sha256=Hc7h8rCGyQ7KxbME6BrBM8HanjpMiKzYIt2UtW6atbw,6972
|
|
42
|
+
coord/gate_a.py,sha256=CYG3UbEgJgu371Xi9ojhvBwb8F4EXBTdCTKM3xxn2SQ,18434
|
|
43
|
+
coord/gate_b.py,sha256=mYwzFJrXw19uK2usNLBnZOq1yP_gfXaG5Kg3kloXy-Y,16566
|
|
44
|
+
coord/gate_snapshot.py,sha256=HpK9EVAtm_9RmRrGoF8aOEjK3qnBAwahfLfqNO203VQ,20735
|
|
45
|
+
coord/gates.py,sha256=nKaWTI-2y3GYfpwZzmZkQneYEWkp8UPoAg21TFtcKOs,27416
|
|
46
|
+
coord/github_ops.py,sha256=yJKBRF6IRxrCm3GTT3CzsgU3VyUkXQIm1l-54rfUy6I,83607
|
|
47
|
+
coord/goal.py,sha256=URYTwPHFU2zpCjrDYoKoItZiNCb8EMaOzMTOfY51dSs,5198
|
|
48
|
+
coord/graph_health.py,sha256=MSr8JQIlEO6gO7TY8MaZYNq0BHY9wdBPrMSv_TbIi4w,14455
|
|
49
|
+
coord/hooks.py,sha256=fdEwUf1zGF7xFm9TqlTda94EmtH2Tl8NNVeD-JfpkvA,3968
|
|
50
|
+
coord/housekeeping.py,sha256=vnO0rIOvxIuIePLFk-QxUZZLb76TzHKYRWK3pjjAXS4,7313
|
|
51
|
+
coord/interactive.py,sha256=98CbV41LWA2do1WFKkTgcfipVEEwquJs14x463yYeSs,191234
|
|
52
|
+
coord/issue_store.py,sha256=32noO5xbglLa_fu9bRDpi6RHcYHx83ZDZ_bh_d5pQi8,67638
|
|
53
|
+
coord/liveness_auditor.py,sha256=sf_xBklt37DUnrIEeD4fVp4_gWPDaXbydZgfuWAPFRE,12478
|
|
54
|
+
coord/machine_pause.py,sha256=qkQI2EoRI8sf93AJPKOCeIdjoA273ZI8HR9OG_QTOqY,30781
|
|
55
|
+
coord/merge_queue.py,sha256=koPkh91bopfICDeNTlfBp552wXfEqUTe1K7_wEzhYp8,231721
|
|
56
|
+
coord/milestone_chat.py,sha256=LQ53gBOk1p3an-LNHgVd99ixsetbe9YqzBK3NT5CYT4,24686
|
|
57
|
+
coord/milestone_dispatch.py,sha256=W6yPomW3CC4q4h32jFNBrkmcv2Eya7Tm9IjC26KrRR4,38615
|
|
58
|
+
coord/milestone_gate.py,sha256=TYS1d1nmqJfTE8oso-Tkhaj9Tp5EhBkxtwt6nkcgBZ4,29831
|
|
59
|
+
coord/milestone_order.py,sha256=vncfm77RbumUIDY6opOiSGva2nWBg_-L-kwrq7dCPCw,35973
|
|
60
|
+
coord/mock_author.py,sha256=KHB1AK21jSL5wvkcid3hXd7xttWZRbTaczTEYbFpA6I,14695
|
|
61
|
+
coord/models.py,sha256=qwYwsu-6yPbOaDokUj0ODafy8ttKAyUnn91AB4dI7YU,47179
|
|
62
|
+
coord/network.py,sha256=7H4OTbGZhnY4heIxuE9IlCniXl7F0cDaQDddEZWA-Ko,9460
|
|
63
|
+
coord/new_issue_chat.py,sha256=uQnS7YelSYI_VTHEDGutmM0pNiKydnG7uoEuH7qjP8c,7674
|
|
64
|
+
coord/notify.py,sha256=FWFTKtRDv_9ecTCRrs2ZYw-UXcuF4WGEnjr3te6vEQs,145830
|
|
65
|
+
coord/openapi.py,sha256=oatQUn-5I1EwlwJrCIFsTNTyfTYG463L7MSrFvP0iWA,16225
|
|
66
|
+
coord/overlap_fence.py,sha256=eAhyYMQu-AQrJymjQCE7Uw2AWX4mLJcXHgb3f-JcC88,5761
|
|
67
|
+
coord/parentage.py,sha256=VhP4q0w9p97SfjXQT8uXihwkiyzNO0Lz1ifBrMrs9To,8155
|
|
68
|
+
coord/parentage_github.py,sha256=7BbPQ-XSRWcd7pvDFczDTRECaVRKzy6chHWG0x5uwTU,2204
|
|
69
|
+
coord/pipeline.py,sha256=XkW0WlViMi4nJtTsixErm1X5ypeBymJkPNvStqa7U_Y,23107
|
|
70
|
+
coord/plan_parser.py,sha256=zCLG7M4AmVe2KssKvGANDwxVvPbl5Ni0ETKB3Kqlnpo,9990
|
|
71
|
+
coord/plans.py,sha256=5ZBtqBZ3YooJuOIMKZiBqAhKtZPdQwa5sRqIiWP6Blk,21499
|
|
72
|
+
coord/platform_paths.py,sha256=pbMFlKFDzDGP9LfWbws2qlMsx1A9KXegMkDRrprSEyU,1997
|
|
73
|
+
coord/pr_body_lint.py,sha256=hD1tB2Z9xPCnNsHd6tdrPtBVDJ0Ixuyyxtl6xJeMUVo,2828
|
|
74
|
+
coord/prereqs.py,sha256=TU9NB6f0JLIlh7i2VK6SX8Ry_SUAOu4Am2IKNLmwdlU,23178
|
|
75
|
+
coord/progress.py,sha256=GnbFFpNPJAdHaf15YoU2KUYMK00fLIecEzjCI3IYhvM,15555
|
|
76
|
+
coord/reconcile.py,sha256=ECSJ2K3JedNa5tiQswwshYZYFB1wI6ZaKcHBiibjf_E,105147
|
|
77
|
+
coord/refine_chat.py,sha256=tg1SYrYirfzATz-NB_Kc61xMRY1eDtRy80K0aGtnksQ,17234
|
|
78
|
+
coord/release_cordon.py,sha256=jR3RBRTdHk-JYbT-vh9ync5xSpYfCKMCJR4aIZy7_o4,21578
|
|
79
|
+
coord/release_propagate.py,sha256=W5jxZhe3wN7eLN54L8fj1SrqjZfkPXNXgIhzDYTxqVw,52383
|
|
80
|
+
coord/release_verify.py,sha256=yi91NSvBUoUFlewNGcGwK1qjmKxsdSRGob2IyuZ8jHY,32975
|
|
81
|
+
coord/release_window.py,sha256=CTMvh58sebGGOy0ZOlGktPHE1mYdwdI3jyuVLeuRo1I,13803
|
|
82
|
+
coord/reports.py,sha256=LeSSCqJoLd1bpxVBZoPxRis-tZB-AwDojAsEef0BD9c,64682
|
|
83
|
+
coord/revalidate.py,sha256=hJjkJPqTrePUkCEuOPaotBxedASgu-MlFu1zHOubhgs,48408
|
|
84
|
+
coord/review.py,sha256=B8IF55KXlWgr-35pHz3QP0axyP0-wRAd3DB-FX6HsXk,154039
|
|
85
|
+
coord/scorecard.py,sha256=axe_doBJBBFWtN21JZDRSijwDI0xaZrt2oVYbwJPW7U,20211
|
|
86
|
+
coord/serve_app.py,sha256=RAQmiquEk8w9TdeznyYMBBPAFRncCuh6C9kQdYfUP4E,348513
|
|
87
|
+
coord/smoke.py,sha256=34Qoqfg_FIRsphXQ_d7bPo8Tz4VJcg2mVSBGJLj0_kk,45170
|
|
88
|
+
coord/split_work.py,sha256=OVwAEkNmflnApfgzZci_5Y9ju56ugQ_xuf-XCKPg1fE,7750
|
|
89
|
+
coord/stage_projection.py,sha256=mVH0caI-1GS0Jfoy8F8oNaBVF0xfx0bGgsISYYgcyRY,27829
|
|
90
|
+
coord/state.py,sha256=erJH80wvfdDhu5zJgr0_nGAss6eqO6dVAtZ1vycgoRM,231934
|
|
91
|
+
coord/test_author.py,sha256=zHzAQKSG6F7Zol_N4-bPE29HB2auxonPIWMTi8-aZZc,48774
|
|
92
|
+
coord/test_chat.py,sha256=EY7DEII3xFQaielNspndGbksVsuISX_0BcFqTvYpTHg,12540
|
|
93
|
+
coord/test_orchestrator.py,sha256=VcIuCqd-L3wmeHpMZdlm-HonDQLDHcn739yv7zNabfE,20168
|
|
94
|
+
coord/test_report.py,sha256=Wxt85t5zd5EBIaCcGsQELCwpUhMxeZ3tle6YCXe_9i0,8547
|
|
95
|
+
coord/tui_release.py,sha256=9QC5KIoreCza5FgEwuufbelJyCHBij5qNUHxMEillWI,11969
|
|
96
|
+
coord/usage.py,sha256=3-DFKj4npOCKRjjdXstdPKUozghwXDAaqtCBBa1JGHQ,30875
|
|
97
|
+
coord/usage_limits.py,sha256=gxr-ABTVEiVN0oqV2m8KSHxfMRGcTnyCxanVp3RHUcU,14157
|
|
98
|
+
coord/usage_rollup.py,sha256=3xgQMOp2VJdG2EIR4ea23OwnvK_3d4s0qDwIolX01R4,27788
|
|
99
|
+
coord/worker_events.py,sha256=_UhNKJwz8Gfgn7wgsfgElcGsIFYG4d80A7rFYApOIVI,38728
|
|
100
|
+
coord/agents/opencode/.gitignore,sha256=ILxVS75q0F95TKz1WTf-kIzd9uN3M5zoJHzQkUuwbIc,687
|
|
101
|
+
coord/agents/opencode/routing.jsonc,sha256=853ltOkE3T0wBKBNXIPiHg-hVoyeQ21QnA8S8L_yU4Q,2596
|
|
102
|
+
coord/agents/opencode/agents/work.md,sha256=oLYGu82NYDO2iNukgeAm-PXakaaSYe2I0YQdaevSpwM,6376
|
|
103
|
+
coord/commands/__init__.py,sha256=VqpqriVqQZMtBdFMIcsKR5Z-oDyNUONcghycTJFRSjw,53
|
|
104
|
+
coord/commands/_common.py,sha256=Wad-2TD3WtsNHCUvZ6BoS78Pa8W-K8My13DGy8jQVnU,14301
|
|
105
|
+
coord/commands/acceptance.py,sha256=IxQHZnY_WfD5A5AG4LfwQvMvNUdgabKdOv67DfMyAAY,37137
|
|
106
|
+
coord/commands/agent_ops.py,sha256=_Sh1l1UonkeTjxucKT8muvxGILBlzRk1LaRfri4Ff-o,51674
|
|
107
|
+
coord/commands/audit.py,sha256=r8MzMM4XZX_upQOIOHkksjIo6bv0jT7CuTlm96ACVS0,5283
|
|
108
|
+
coord/commands/chat.py,sha256=rHgkGW3ciuH-qFcuhS3sBTH3jih4l9obulY9uKZIMMY,11024
|
|
109
|
+
coord/commands/dispatch.py,sha256=xGCxoyjIQgRXSkN-5t74pmeaX6ZFxp_uXEx8s1qLEU0,77554
|
|
110
|
+
coord/commands/dispatch_workers.py,sha256=LaI8CiAV6-w2e8Cj8gp_yJ1Uh8Iqjksg00nb70UtDrY,209948
|
|
111
|
+
coord/commands/drive.py,sha256=jbgsB9XHdBehCIPExjEaKgfisDRjvPfUtDbIeKTIgVo,21779
|
|
112
|
+
coord/commands/drive_queue.py,sha256=qvW4T3Khti-lMae-J4RAbc4KoikP8jiBTd2TK8JsDZM,51408
|
|
113
|
+
coord/commands/gate_a.py,sha256=Pqyo6C9n9QrBOMvW5liHJq3am4_XHZJsVYHAeKKMBQ0,7325
|
|
114
|
+
coord/commands/gates.py,sha256=928rRgFN6GME3gCbvgufHB6z6RSHz2d_IorRYigUTus,3515
|
|
115
|
+
coord/commands/issues.py,sha256=qBYHnAlLHJTgBvK_r98rVWeKmKVdryVxFspdg3fNeX4,25465
|
|
116
|
+
coord/commands/lifecycle.py,sha256=5kHIs4Ho6GKmpXdVB1aPdWbqHaUR-gT7Zs9bgCut6Nc,20479
|
|
117
|
+
coord/commands/merge.py,sha256=SwLBpfF6xjVxedpH21dLEQes0pmy7_g7CVkXkV5aFcA,86950
|
|
118
|
+
coord/commands/milestone.py,sha256=bZnlyj1DJZnNd_v9ZM2fnTHp0hapNljm50RbVFhraJ8,78704
|
|
119
|
+
coord/commands/plan_followup.py,sha256=sYj8J9Pa5_AaQKjBE6QvNq-OK4IP_Pq9voSiNVaJZTM,51093
|
|
120
|
+
coord/commands/plans.py,sha256=OxcMyDWIhFFiA13lbxOGOscLXckgZqEy6FfzRSRrm00,5408
|
|
121
|
+
coord/commands/release.py,sha256=1Ur6jDxbU5-GYG5J-JeOkmgozR3SLGEwUqBPf-FOyXg,101528
|
|
122
|
+
coord/commands/report.py,sha256=AHUxJf7kRBoS2XZlRbd93QTu7yXBcTm0E73ZCNNHhds,13508
|
|
123
|
+
coord/commands/review.py,sha256=F4iuitXstg-Dx6u1ANXb5GQkJ-Wj3q-IWCXZUwlaXck,68305
|
|
124
|
+
coord/commands/scorecard.py,sha256=3IUKuUApkHfS6Yszr8ynuOZuBMSXFVEAUIjHeXoEJ7U,10860
|
|
125
|
+
coord/commands/sessions.py,sha256=UvacIsO_qXqTk5dK7odeBLydTu8YVJFttZOxsafVACM,79873
|
|
126
|
+
coord/commands/setup.py,sha256=sGaLdDSTP2cGjHpOlcih_EM7-jTF-oHa-9cTZFZAUf4,20884
|
|
127
|
+
coord/commands/status.py,sha256=4W6GzIiKLseBNyQSMEb3pA6SUHVhoC_R78WFIDzJLyk,90215
|
|
128
|
+
coord/commands/terminal.py,sha256=62dgo7Te3lwQe8oVzPVpjkWdgGS0oOhpCpXINRcboHA,13712
|
|
129
|
+
coord/commands/test_gate.py,sha256=aezDY8CwqcSuwbLus02sL7a0jmx94HK1GQ6GNpVKlnA,32650
|
|
130
|
+
coord/commands/tui.py,sha256=izKlJ3_KMpU__VMyvhvDW3Of-2aeej3fDcm-X9bgKW8,10333
|
|
131
|
+
coord/dashboard/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
132
|
+
coord/dashboard/fixture.py,sha256=rmEKIsY_lA4e9QaQlfx_21xsY0qonnNVbYFBVinrPlE,14629
|
|
133
|
+
coord/dashboard/index.html,sha256=bN5-JFQKQWeFpFAZTUBZ1wg4LRDmIr0InPttSE2MTgY,31376
|
|
134
|
+
coord/dashboard/server.py,sha256=grqjfXCmhuRC6yBHxhRxHDdwDhwCZDQNsJ2k5WdIb0A,86005
|
|
135
|
+
coord/dashboard/terminal.py,sha256=wR5rfWQCZ0yO5bXCkqa0t-a1g5YAQ-20LC6icZdGWHM,14647
|
|
136
|
+
coord/dashboard/webapp/.gitignore,sha256=y4GlaAGegzsffrF-_7Jy7RSF_hROBHgV0SB3FsgNT3I,137
|
|
137
|
+
coord/dashboard/webapp/components.json,sha256=Y1zlLPCOVTUv6N0CDu_U3-L7ssvsOLmacQgh5eTV7c0,341
|
|
138
|
+
coord/dashboard/webapp/eslint.config.js,sha256=0GX2ZOtOMzHcZJDntyIyGY8DnZSrgYPobd989KLfZqI,578
|
|
139
|
+
coord/dashboard/webapp/index.html,sha256=lX5yrvawdPSdnWUJv_6D8uX6bl6DxPa6TkRlgqIomUw,1513
|
|
140
|
+
coord/dashboard/webapp/package-lock.json,sha256=l8orDp-8qkgfrishC3cmTTolNTi1EqpmgZOD9EFBVTQ,379991
|
|
141
|
+
coord/dashboard/webapp/package.json,sha256=mrSzS0eDs0Lv_G_EtEOyAX8T85Od8pNvAsuhiINHdRM,2088
|
|
142
|
+
coord/dashboard/webapp/playwright.acceptance.config.ts,sha256=yt7myNyZiKvR0uH9XNXnCueOuwKyhiypAZtPU_UiRnI,7824
|
|
143
|
+
coord/dashboard/webapp/playwright.config.ts,sha256=7TcJ8Qklq3SItWaa6ad9JbXgFyMseH_2rsSBzkE9y3w,3306
|
|
144
|
+
coord/dashboard/webapp/postcss.config.js,sha256=GQyHfbRmmVvxSC9KFqvQbgSont4xGTQeKob_luFzeyc,80
|
|
145
|
+
coord/dashboard/webapp/tailwind.config.js,sha256=KJjxXjUZSUaYA5HFgyJkApgvm-l6yuEEc3BC00rDCE8,4618
|
|
146
|
+
coord/dashboard/webapp/tsconfig.json,sha256=4Zt4RkqPpy6ZUNEHX1Oa87QJzVJAlt05iCbZAIxdNNk,629
|
|
147
|
+
coord/dashboard/webapp/tsconfig.node.json,sha256=u5_YWSqeNkZBRBIZ8Q2E2q6bospcyF23mO-taRO7glc,233
|
|
148
|
+
coord/dashboard/webapp/vite.config.ts,sha256=htU2DzbygBX3-hld7eTRvlG-TlYSPLEBUSWYzelY28k,2076
|
|
149
|
+
coord/dashboard/webapp/dist/index.html,sha256=AQzUDDUb36BmKDYKO0rgVbkn3XVPJMW1qAWmF9H6mOQ,1661
|
|
150
|
+
coord/dashboard/webapp/dist/manifest.webmanifest,sha256=wc7jEi46RCS1wCZzD9KkJXg7ckiDCtHqu5uCC4EXinw,447
|
|
151
|
+
coord/dashboard/webapp/dist/sw.js,sha256=88pPmuR6hkdExTRz-PtVnCR9tmR75rEKCAscGUCHWls,1816
|
|
152
|
+
coord/dashboard/webapp/dist/workbox-e4022e15.js,sha256=2M0GSFBJoElNIuusXDVAlCneze0uKZw8SdhbJj0Tfng,22128
|
|
153
|
+
coord/dashboard/webapp/dist/assets/Gallery-da3qNiIw.js,sha256=-BOH6D98EHMqy1Ds_gPpfsEuhiDi_osvGZnRihRYxVo,100358
|
|
154
|
+
coord/dashboard/webapp/dist/assets/Terminal-9CEnUXvW.css,sha256=q_1zlNrlDLWJyHCLTTSvcq06rGUYIrciJei9H3SRMAk,5752
|
|
155
|
+
coord/dashboard/webapp/dist/assets/Terminal-skVFCxPU.js,sha256=EgZDgEEIMoc0dDmoBaji2B6_Z2ZL0IFJabx324XBieg,343025
|
|
156
|
+
coord/dashboard/webapp/dist/assets/index-DltfZR5f.js,sha256=73yWcjml_SmmhXggvrL-AeydHu4u7f4KcGIhwNBiXz8,328167
|
|
157
|
+
coord/dashboard/webapp/dist/assets/index-Dq4kwTdw.css,sha256=dE5MwXNw4PckH3ycNdZKdD1pJq9ngwzFz9qKF0I69cM,31128
|
|
158
|
+
coord/dashboard/webapp/dist/assets/workbox-window.prod.es5-BqEJf4Xk.js,sha256=pedTSYra6vWqKutqozzItHf22uhiHxlgq44S1M6_nHA,5706
|
|
159
|
+
coord/dashboard/webapp/dist/icons/icon-192.png,sha256=ejmOA-_bOO1DrfpvH0TU8pcB32dO3BXDjb2OQIgFBqk,413
|
|
160
|
+
coord/dashboard/webapp/dist/icons/icon-512.png,sha256=PwZnjR6CQIB1trAiFeEYZ4fDOdeb1ibDgO4mknmo92g,1496
|
|
161
|
+
coord/dashboard/webapp/dist/icons/icon.svg,sha256=518KDsyoeMM-kE86SIe7I_81CW1yY3ob929W8zDZqyM,300
|
|
162
|
+
coord/dashboard/webapp/e2e/available-gates-terminal.spec.ts,sha256=IPFJhtNPlGCz0FxSXm1DYP1BgaHnNL-r3o-O_SpneWc,3626
|
|
163
|
+
coord/dashboard/webapp/e2e/deep-link.spec.ts,sha256=IPJhd280nGHc2Q1mc5o7YIhSQSFv1_7r1wRihZQGG5o,6561
|
|
164
|
+
coord/dashboard/webapp/e2e/fixtureServer.ts,sha256=YO-wYbrxd9FsCNuquQ4QjdGZv4-xVm3Tzb-f9WSHI6U,6040
|
|
165
|
+
coord/dashboard/webapp/e2e/live-update-fixture.spec.ts,sha256=_Hnibk5JTrZhNyLxOIteLhiGrFAuD0J-aK3JRoZGJb8,5313
|
|
166
|
+
coord/dashboard/webapp/e2e/realtime.spec.ts,sha256=YbdNswKYolpdQ_0HC9vl1sU7BxW1KTZb_La_tFsEe3Y,8922
|
|
167
|
+
coord/dashboard/webapp/e2e/shell.spec.ts,sha256=7Z1Cz1fcgfgJ3aO5A55Cc2WbH4mImMMCbQ76arfoR_I,11890
|
|
168
|
+
coord/dashboard/webapp/e2e/smoke.spec.ts,sha256=otRUujdcnTUE-3CA1hLJH082IqoxW7a76emj8K0ggxc,7350
|
|
169
|
+
coord/dashboard/webapp/e2e/terminal.spec.ts,sha256=TFUeXQsvjT-4dBKUj_Y0IMTL4Bl8th9kDA2kk6b30yg,17792
|
|
170
|
+
coord/dashboard/webapp/e2e/theme.spec.ts,sha256=iyva2Amc0JDD2IhW5fwvRfXU5dJ6pthhJFDefA6lAXc,5658
|
|
171
|
+
coord/dashboard/webapp/node_modules/flatted/python/flatted.py,sha256=94TCVN52olQ166phxylCByczrktCYZuUO_N7CfpF5kQ,3773
|
|
172
|
+
coord/dashboard/webapp/public/icons/icon-192.png,sha256=ejmOA-_bOO1DrfpvH0TU8pcB32dO3BXDjb2OQIgFBqk,413
|
|
173
|
+
coord/dashboard/webapp/public/icons/icon-512.png,sha256=PwZnjR6CQIB1trAiFeEYZ4fDOdeb1ibDgO4mknmo92g,1496
|
|
174
|
+
coord/dashboard/webapp/public/icons/icon.svg,sha256=518KDsyoeMM-kE86SIe7I_81CW1yY3ob929W8zDZqyM,300
|
|
175
|
+
coord/dashboard/webapp/src/App.tsx,sha256=-seu2DzhPSwabw9ETa8G4Ug8pAbpghDjI_TVcWkJnKc,7149
|
|
176
|
+
coord/dashboard/webapp/src/index.css,sha256=8jhNgto7wZ7V8vnkhF3-GCJuRU8o1deckXsSko9vMTU,7988
|
|
177
|
+
coord/dashboard/webapp/src/main.tsx,sha256=ZGgCUs157TPZuL1HuIfurT29OEQP2vrE6_Uo6HdP--g,1917
|
|
178
|
+
coord/dashboard/webapp/src/test-setup.ts,sha256=lwi-JGyV_e5qGugJUqCePtTtjxpNX3NA2LJnbk0eDQw,1803
|
|
179
|
+
coord/dashboard/webapp/src/vite-env.d.ts,sha256=Y0AutFkx7ZJc7E8qm8i9pxR1PT-5rvSLsJ6gVJP-j6g,87
|
|
180
|
+
coord/dashboard/webapp/src/api/client.ts,sha256=J8R1EBau70Ikw9iG7p_MpG6H4HxVYc-O0ste8s4z4u4,7661
|
|
181
|
+
coord/dashboard/webapp/src/api/generated.ts,sha256=0Q6hDgxMP8uDNIBwveW8Rpa2zVBTAHZb73R2z28GcO8,5586
|
|
182
|
+
coord/dashboard/webapp/src/components/ConnectionBadge.tsx,sha256=gccsRUG61SxnVEYVhoxeYzUDUVYROoCsphjxYH4qwlU,1636
|
|
183
|
+
coord/dashboard/webapp/src/components/Detail.tsx,sha256=OVPQENOKTDxdTuv1j7ok-lHt-JwFxdeXA1CkY89Rcjc,32219
|
|
184
|
+
coord/dashboard/webapp/src/components/Gallery.tsx,sha256=-O_URKWB3LipKYjwsqHn1R4rlv8c3GBo617NP9MbRo0,12514
|
|
185
|
+
coord/dashboard/webapp/src/components/Home.tsx,sha256=vl7NWfABa2VvQAHSftMwa9TJ61mhIFA8JBePEJnIKZM,16759
|
|
186
|
+
coord/dashboard/webapp/src/components/MobileKeyBar.tsx,sha256=N5U274J9Z3ykgKK-4Th4p_QWOUmy0lbBjoBlHAH75As,10218
|
|
187
|
+
coord/dashboard/webapp/src/components/PanelHeader.tsx,sha256=giw6u5kGmJsf-GAVFMc4KJsvs72lzM1cvmPHC5RCmN8,2589
|
|
188
|
+
coord/dashboard/webapp/src/components/PipelineCard.tsx,sha256=nCrrKV74TUk7d85wUg6rAJmTFarVXyhWKn1W98omSeg,6039
|
|
189
|
+
coord/dashboard/webapp/src/components/SessionCard.tsx,sha256=Znl0aqyaasYvs_ig9oWsBAuXL_y8UNbvRHrz-u50AUQ,3597
|
|
190
|
+
coord/dashboard/webapp/src/components/SessionDetail.tsx,sha256=4BcCbg93W5AJhzHA6D3Ux8iPWCfn_LUqqO1uLNG7Qcs,4984
|
|
191
|
+
coord/dashboard/webapp/src/components/SessionsList.tsx,sha256=7J9gAI2ySkOlFcKPFhlrwhS9QYSHF1YkukHka3usfBA,3024
|
|
192
|
+
coord/dashboard/webapp/src/components/Terminal.tsx,sha256=0IG3oiOCHwz9CdRZgzJGivBrgy8AasSwIimBz-SVDyc,17436
|
|
193
|
+
coord/dashboard/webapp/src/components/__tests__/ConnectionBadge.test.tsx,sha256=P53qI9IGQ9CJ37nvJpwk9WgsmrLkQffC5mKW7U1LJF8,2947
|
|
194
|
+
coord/dashboard/webapp/src/components/__tests__/Detail.test.tsx,sha256=cro8oDLLyfbdwNJ2Fb6FwUmLlvKiqWjs3EM7ziU-t9w,24338
|
|
195
|
+
coord/dashboard/webapp/src/components/__tests__/Gallery.test.tsx,sha256=YmUL-sXBWxjQR4mJJdr9rDIW-vL_5d_lHqQdcCZDE3U,3628
|
|
196
|
+
coord/dashboard/webapp/src/components/__tests__/Home.test.tsx,sha256=oe1ccUeMtdKRbaCpuJe1y-ndM_3OHpQzEcClGIXbLOw,9711
|
|
197
|
+
coord/dashboard/webapp/src/components/__tests__/MobileKeyBar.test.tsx,sha256=jv5snRoqBYsObt29btmYAs1ph8j9Cmtxi4aKGKN9w9o,7236
|
|
198
|
+
coord/dashboard/webapp/src/components/__tests__/PipelineCard.test.tsx,sha256=D7sFY-waYJRizDz3268ZR3z81YQF5L0pWYe_Kbe4ktc,5736
|
|
199
|
+
coord/dashboard/webapp/src/components/__tests__/SessionCard.test.tsx,sha256=y86UU6Hk-jWyLzHynqthAHR_NPIWlAMGsH9gd9riuCI,4328
|
|
200
|
+
coord/dashboard/webapp/src/components/__tests__/Terminal.test.tsx,sha256=TBfHBAVvuY3BsWv9zzrm3sROEP73ie1RvypNUGMgXOk,20221
|
|
201
|
+
coord/dashboard/webapp/src/components/ui/badge.tsx,sha256=rSJwED3rVaOZOwD0se0aB9MyyFDcyV789rK3kPzo_Lg,1922
|
|
202
|
+
coord/dashboard/webapp/src/components/ui/button.tsx,sha256=miD4RTIZRc62pNM--F7rdWQqo6Sy-a51gd05rA79hLM,2373
|
|
203
|
+
coord/dashboard/webapp/src/components/ui/card.tsx,sha256=pF37wudefVQFlfQ8d5JusUwsoI-JWyPapDTwW9pkvAo,1818
|
|
204
|
+
coord/dashboard/webapp/src/components/ui/dialog.tsx,sha256=Z1PQR0Tz5s6egdn9-ddTxPiL28yBq6VTS6U6LZysRwM,3553
|
|
205
|
+
coord/dashboard/webapp/src/components/ui/dropdown-menu.tsx,sha256=nSHx9qIKk5IhSozXl6baoH4nD1IUIvPNQ_cabsrx2sM,7884
|
|
206
|
+
coord/dashboard/webapp/src/components/ui/empty-state.tsx,sha256=Tz9Q3IMYAomzJuVUOXHUwDQJCVAoXKla0BOanwmU7uo,1140
|
|
207
|
+
coord/dashboard/webapp/src/components/ui/sheet.tsx,sha256=GKpBFUA3XJ-mCoa5RqpFiJx6RDYFmNUKeLdn7h6Gosk,4556
|
|
208
|
+
coord/dashboard/webapp/src/components/ui/skeleton.tsx,sha256=59dmoWMj2v1guHEflikDP3SIc0J--U_kbmwF3V9bnAk,362
|
|
209
|
+
coord/dashboard/webapp/src/components/ui/tabs.tsx,sha256=zfwRsCi7khkiEmCGKDDWhCx0VgnsJJByIpQUqIys-no,2004
|
|
210
|
+
coord/dashboard/webapp/src/components/ui/theme-provider.tsx,sha256=OlrVSb1uSHaMG2gH0oWxCIw017Kt6tDfvCrqFMxphf0,2847
|
|
211
|
+
coord/dashboard/webapp/src/components/ui/theme-toggle.tsx,sha256=y5m_QFasCjACUb5wcEDI55aaWHM0yBbl5HtP3iljGGA,596
|
|
212
|
+
coord/dashboard/webapp/src/components/ui/toast.tsx,sha256=Gx7EnyFyXiv_nr7AwA1loo_TNOH3xgi0EBvInU_KiyM,4518
|
|
213
|
+
coord/dashboard/webapp/src/components/ui/toaster.tsx,sha256=imBtwRZIhjNdYfi6k4jJh3FVZ2wtUbg1QdgCaGeRGm8,798
|
|
214
|
+
coord/dashboard/webapp/src/components/ui/tooltip.tsx,sha256=kn5za1pZipfhDEMTFXSZm6PEbp_cD78jH2OtzV3qLAY,1102
|
|
215
|
+
coord/dashboard/webapp/src/components/ui/use-toast.ts,sha256=PfkHsuo2365KOf4ZWZxRRirNB-3XScXkMxZ0UyoeEZc,3454
|
|
216
|
+
coord/dashboard/webapp/src/lib/pipeline.ts,sha256=HJzfXjePVcMRUdr1x2mRyZTXhm3QzeOqb_J8_xs2BeU,1097
|
|
217
|
+
coord/dashboard/webapp/src/lib/utils.ts,sha256=dG5Nm-saW28OBH7BnV8cVCyfgRf06nyA17m9D-ISjpE,166
|
|
218
|
+
coord/dashboard/webapp/src/realtime/RealtimeProvider.tsx,sha256=KhjtYzFCYLRA7zfIztH7VeilUZMsJA6DfGMHXcj5LpY,4464
|
|
219
|
+
coord/dashboard/webapp/src/realtime/connection.ts,sha256=f3anYXeUHQ8ETmduF-b_E1bGviY_22ACgcpwPPdEqy4,8506
|
|
220
|
+
coord/dashboard/webapp/src/realtime/events.ts,sha256=priUv_0Uh8c6OP2wh4faIOmxOEuvzXn7yu-FIMn7T8M,4755
|
|
221
|
+
coord/dashboard/webapp/src/realtime/__tests__/RealtimeProvider.test.tsx,sha256=t9ZVEEGoZ_EP3K0v1EIpJAu1j25VShdlT5EBGIOzeUE,6757
|
|
222
|
+
coord/dashboard/webapp/src/realtime/__tests__/connection.test.ts,sha256=j-BpNBPA3dd-8usmWyx7LWSxUR5DQCbemYUPfi3RJIM,8702
|
|
223
|
+
coord/dashboard/webapp/src/routes/paths.ts,sha256=EozFoxp9Fuilv1SF-etbwqUIgwNgLGo5tJwbVYejgXw,4367
|
|
224
|
+
coord/dashboard/webapp/src/routes/__tests__/paths.test.ts,sha256=2VLSEnz9CgfS748nDyWyBi85ZDt_v_eXoktBp9GGLOE,3720
|
|
225
|
+
coord/dashboard/webapp/src/shell/ActivityRail.tsx,sha256=5aNsuR9jnuLZndxdlzjjx35odJWJaU9ZzHWrJ7_jWaU,12535
|
|
226
|
+
coord/dashboard/webapp/src/shell/AppShell.tsx,sha256=7E8rY8ObOKugtBrxy-mTQRxvhDgu1TrHTTh0mDNX3aU,10181
|
|
227
|
+
coord/dashboard/webapp/src/shell/ComingSoon.tsx,sha256=G6ZL2jarpd2GApXQz30XdWDOid-mANFz6gWD3wtI9SY,1377
|
|
228
|
+
coord/dashboard/webapp/src/shell/EmptyDetail.tsx,sha256=oCdVqB8mnj6DUPhx2BjmjJ_pOnxwwgqtP_sbxCU2brw,1113
|
|
229
|
+
coord/dashboard/webapp/src/shell/RouteNotFound.tsx,sha256=sc3A2fbmmZaa1k-hI_B4EIi7P2QNQ_mfP0X3NuAu7H0,1421
|
|
230
|
+
coord/dashboard/webapp/src/shell/ShellLayout.tsx,sha256=rB1cW0ItexyAxaZjWEiUZRHSrbqZtvydeUZv1G_qTQ0,6433
|
|
231
|
+
coord/dashboard/webapp/src/shell/StatusBar.tsx,sha256=8oPRTb9VkeKt61lSmnLCysPKUXc0kHZorANHPnERgYY,1789
|
|
232
|
+
coord/dashboard/webapp/src/shell/breakpoints.ts,sha256=3zc7T887MY_5MqvSdm0OpEpEa5-65Vm5fvYqjHlrx0M,3541
|
|
233
|
+
coord/dashboard/webapp/src/shell/railItems.ts,sha256=Qreja8vgshLH3hTsQxMriE9PJqSOp3TZ83ceF7ioKi8,3109
|
|
234
|
+
coord/dashboard/webapp/src/shell/shellState.ts,sha256=6nBDVSDqfnwW1om-9hPIXHyytTmSRfmt2MrFmPKRkZs,5600
|
|
235
|
+
coord/dashboard/webapp/src/shell/useRegionFocus.ts,sha256=P1EzyyJ4ZchCTUQZigwyV6pVZMMDZULkbETrxgHfKsc,3963
|
|
236
|
+
coord/dashboard/webapp/src/shell/__tests__/ShellLayout.test.tsx,sha256=llHbMShSs414YUz8i9BUAeAjTohf7YJRGX0OKZCbC5k,21661
|
|
237
|
+
coord/dashboard/webapp/src/shell/__tests__/shellState.test.ts,sha256=Z_nAcyO1uRrt7kSo67za9G8L_Yiyoiq1sCQyppMLrts,3069
|
|
238
|
+
coord/dashboard/webapp/src/shell/__tests__/stubViewport.ts,sha256=4mDqTRcf2-XUBcHpLs3CT1j3ghhrwOKHbQNWXndgdM4,1432
|
|
239
|
+
coord/deploy/README.md,sha256=DG_q36KeW0LQ32ElU11wjfjULO7xGUoiPIFEGPW41k0,1391
|
|
240
|
+
coord/deploy/coord-agent.service,sha256=WZPbOh5xMPACaOTMCTQO97-tnKlXTRP5ySeOER_OC4w,4717
|
|
241
|
+
coord/deploy/coord-db-backup.service,sha256=qVEFksiA6Q30CdkB2d8PywzGDOjQtk-Fh3S8WM2VVDo,3182
|
|
242
|
+
coord/deploy/coord-db-backup.sh,sha256=aU2KTnESonkvMdm9OpG_ei3S2GqXch_q8P1AZyBQxPY,3281
|
|
243
|
+
coord/deploy/coord-db-backup.timer,sha256=uIOVQgC_EfoUgEsjISgTdpX9KFWmZYSF4JPpFYF6WVM,515
|
|
244
|
+
coord/deploy/coord-drive-queue.service,sha256=i5xh20cTdpK1hpXdvVGoN1_uZRwAIGSzSN8yOfX-v3c,6426
|
|
245
|
+
coord/deploy/coord-drive-queue.timer,sha256=Gep9t7NmE95HaJWcDwEv0EwMRrWBCBARlDEB6jEQL_s,1711
|
|
246
|
+
coord/deploy/coord-notify.service,sha256=dk1MXb129ny9qNrBctptEHNvwumKn9sBTur7YciH30U,2389
|
|
247
|
+
coord/deploy/coord-notify.timer,sha256=8KLuAm5aFPfXi5sfAiHji1RcuyBh3it_wsT7GfKs5fs,911
|
|
248
|
+
coord/deploy/coord-release-propagate.service,sha256=arTHkjRLeBgelQMc_owaUQ9udJI3UCQVzEby5NVFugM,4265
|
|
249
|
+
coord/deploy/coord-release-propagate.timer,sha256=paoAnPkR8h5yRxjYgtQ1E7eJ5nJvjIVXzlO9GqiwBD8,1735
|
|
250
|
+
coord/deploy/coord-release-window.service,sha256=moTAm-QQZPRksIAfYvvbnnzySJxzyS91lKH_YUrm4yE,6825
|
|
251
|
+
coord/deploy/coord-release-window.timer,sha256=vreTqwC8gzKyXTbb4WUSaIP8WaJLz9R6b4ur_FQMKVU,1592
|
|
252
|
+
coord/deploy/coord-serve.service,sha256=NFa4YdCZpISWKVG-m8ObEfZDjMLGMF5xEORPyODDCfo,4512
|
|
253
|
+
coord/deploy/coord-web-dist-build.service,sha256=7ELZ6K7omsXtJHcawaiQ7hHWS2fK7xK_jLbCxjGjU7A,2133
|
|
254
|
+
coord/deploy/coord-web-dist-build.timer,sha256=HD_-v36UvguAQ2IinbBNpC33ytyCZqhbHEvbRM5aA38,1498
|
|
255
|
+
coord/deploy/coord-web.service,sha256=WQo1m85TCPtvRq6-tBI0eLDS-I_GIkUCmJT1KDYFiJo,7210
|
|
256
|
+
coord/health/__init__.py,sha256=fvda5KAAaycBk7kXcNm_7wkLm28BTU3_TjyF6Nr3DnA,1990
|
|
257
|
+
coord/health/aggregate.py,sha256=MFPEe5JiS5gRsD0uc4zXAg86YhqnKFvEeSa1e9RAUnY,5694
|
|
258
|
+
coord/health/cli.py,sha256=opsrcsPIkCvXoVg-dnRMSvoKJfw7XB1FiyOwQMEOydM,4276
|
|
259
|
+
coord/health/context.py,sha256=pbc5qq-1DMbgjsFKTR52hg-igHtK7HazGLq-LTgzwuU,4060
|
|
260
|
+
coord/health/fleet_snapshot.py,sha256=peAAd93KvQZJgB7djHnaiAfO_X9joLyH1OhB3VkfPxY,21741
|
|
261
|
+
coord/health/models.py,sha256=niQx4UFjrzcP8fjSWsyKmEA1p1ENKVqAuvFNc52vz0g,9538
|
|
262
|
+
coord/health/pypi.py,sha256=u4OUnMPV9xiwjKHSQ8jKp586JJbmCVz_mNCBQqJWPE0,9270
|
|
263
|
+
coord/health/registry.py,sha256=s2XxiGeHh2ANY6pCVkIs94fB82HcSyq7QJztpj05Lp0,7959
|
|
264
|
+
coord/health/render.py,sha256=xMY8Vji6gIja4hKduGwByj1oUwK4wsBz2ap--w0aecg,3482
|
|
265
|
+
coord/health/units.py,sha256=GltG7GzebwjQeF-rztmkP7HnE87u5609fEIVrwpnYj4,1988
|
|
266
|
+
coord/health/checks/__init__.py,sha256=HzV55ESKSzj5WsSVDYF6zmQYBrp1EqvUqUhDygORssY,683
|
|
267
|
+
coord/health/checks/agent_install.py,sha256=ZyUDG29MDPVx1hFWLxxL0LK09xZ3K5kcO0CjN5GeCd8,10030
|
|
268
|
+
coord/health/checks/cargo_targets.py,sha256=rTPahn93w1xP8YitldPZyrDybrzYa8Tlp9sXm4mytEo,6143
|
|
269
|
+
coord/health/checks/claude_binary.py,sha256=8IUmbPH9lvlDrn2k9CmN4ll9fAWcnLJHcnQIsW_cviA,2220
|
|
270
|
+
coord/health/checks/deploy_lane_facts.py,sha256=tATDy8f66gFDI820MCNVHuw3m2bA3tTHx0SnR4mYJsc,17607
|
|
271
|
+
coord/health/checks/disk.py,sha256=666u9ZIwT8X7Z77GtUhGBf-4za1J338xQ7TD7ssupNc,3453
|
|
272
|
+
coord/health/checks/fleet_board.py,sha256=drIiwzbp7HaReh3raxOy697_R0LpO9QEtzaA3gJlCDI,3339
|
|
273
|
+
coord/health/checks/fleet_deploy_lanes.py,sha256=WpKBXQY3s1WrtARITtjgHtDJLi_F9PhrIlmMJ1nZtTM,20061
|
|
274
|
+
coord/health/checks/fleet_phantom.py,sha256=pPab8SkYzzKOelxAFxJXqZDAyl_GbFx5ZyKvKhJ9JII,2483
|
|
275
|
+
coord/health/checks/fleet_unit_drift.py,sha256=yOpvle9yjKqw16V5R3dYkHuoxytc-6bI9JmTKyZzt1c,5943
|
|
276
|
+
coord/health/checks/graph.py,sha256=pKMBDOQlbok6uLHFJ8PKKiZnFkDqlUhrCJoHh_jfx7o,8225
|
|
277
|
+
coord/health/checks/plan_usage.py,sha256=s48588N_Tc-G-MFfcPYqUNkHpiwsdXs0PzpGfH6mMfk,3150
|
|
278
|
+
coord/health/checks/repo_state.py,sha256=nrbApJ_6lSWNGZUFitua9PY-0KKszeEoOGu--v20z-8,5992
|
|
279
|
+
coord/health/checks/spawned_coord.py,sha256=b7vgyeh1oVABKH1bNT8W7UDkc7r6h7SHZIsiG5kRmYA,19348
|
|
280
|
+
coord/health/checks/timer_active.py,sha256=AMNA4QXxy-rfu1prqYovo_XonkAOesOMXtTyBRYZvNQ,9973
|
|
281
|
+
coord/health/checks/toolchain.py,sha256=Uayxnb0agbPEcVemLl_Gj3xpWWaoFUqSrzxCNVrCiUs,22200
|
|
282
|
+
coord/health/checks/unit_drift.py,sha256=5-_yFucG-8oUq8uaP6YJQ2aQ4dYbrCJpGsPgkxStGLE,28134
|
|
283
|
+
coord/health/checks/unit_enablement.py,sha256=hSNNRp86kU48-s9bnTPbywMsOltHIO4sinKMZZRXv_M,7233
|
|
284
|
+
coord/health/checks/worktrees.py,sha256=dL7nwH2Ne5dB8r-c3OjTSuMQFd8L4TXlobhM1hR87Vg,3427
|
|
285
|
+
coord/providers/__init__.py,sha256=aUUqHYa4-rPVIYSYa2i-ZWHUJxQ-tFLMj6Q4UVot2aM,31545
|
|
286
|
+
coord/providers/base.py,sha256=oehMg9v84hJ0kWMmMLsSkcqlvolZu4n-m5sZSXr21Eg,9017
|
|
287
|
+
coord/providers/claude.py,sha256=q-2HbxRIVMtZiUgNinNXXdIMt6VCJE-J8SBRRZelOYY,13143
|
|
288
|
+
coord/providers/claude_pty.py,sha256=5fCSAFyxHhm6thdRVQ0_AjQpGlYhD7KQ2GBICDaMYtg,29304
|
|
289
|
+
coord/providers/opencode.py,sha256=jl8O0ydb1CzKVXNzJKari4UNKIaD7mBs-x1EXgNfZ_0,46435
|
|
290
|
+
coord/skills/update-issue/SKILL.md,sha256=5cwR8XBJqkJnNMWNr6RXnCm09tIAhiGGzpZzTAuks7w,3373
|
|
291
|
+
code_coordinator-0.5.46.dist-info/METADATA,sha256=2jHwqoprV06E3VVwCcMl-AYdajPA38kzGXJdobeReDA,40690
|
|
292
|
+
code_coordinator-0.5.46.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
|
|
293
|
+
code_coordinator-0.5.46.dist-info/entry_points.txt,sha256=o-Hq8pvG7ReGePvN_4iOKjLNqiq-MJ43HbPurqjNPZo,41
|
|
294
|
+
code_coordinator-0.5.46.dist-info/top_level.txt,sha256=w5sTrXesTCebhXyYv2qufOZGo0PoD1Lxgn0Q3MAXjh4,6
|
|
295
|
+
code_coordinator-0.5.46.dist-info/RECORD,,
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Functional Source License, Version 1.1, MIT Future License
|
|
2
|
+
|
|
3
|
+
## Abbreviation
|
|
4
|
+
|
|
5
|
+
FSL-1.1-MIT
|
|
6
|
+
|
|
7
|
+
## Notice
|
|
8
|
+
|
|
9
|
+
Copyright 2026 John Donaghy
|
|
10
|
+
|
|
11
|
+
## Terms and Conditions
|
|
12
|
+
|
|
13
|
+
### Licensor ("We")
|
|
14
|
+
|
|
15
|
+
The party offering the Software under these Terms and Conditions.
|
|
16
|
+
|
|
17
|
+
### The Software
|
|
18
|
+
|
|
19
|
+
The "Software" is each version of the software that we make available under
|
|
20
|
+
these Terms and Conditions, as indicated by our inclusion of these Terms and
|
|
21
|
+
Conditions with the Software.
|
|
22
|
+
|
|
23
|
+
### License Grant
|
|
24
|
+
|
|
25
|
+
Subject to your compliance with this License Grant and the Patents,
|
|
26
|
+
Redistribution and Trademark clauses below, we hereby grant you the right to
|
|
27
|
+
use, copy, modify, create derivative works, publicly perform, publicly display
|
|
28
|
+
and redistribute the Software for any Permitted Purpose identified below.
|
|
29
|
+
|
|
30
|
+
### Permitted Purpose
|
|
31
|
+
|
|
32
|
+
A Permitted Purpose is any purpose other than a Competing Use. A Competing Use
|
|
33
|
+
means making the Software available to others in a commercial product or
|
|
34
|
+
service that:
|
|
35
|
+
|
|
36
|
+
1. substitutes for the Software;
|
|
37
|
+
|
|
38
|
+
2. substitutes for any other product or service we offer using the Software
|
|
39
|
+
that exists as of the date we make the Software available; or
|
|
40
|
+
|
|
41
|
+
3. offers the same or substantially similar functionality as the Software.
|
|
42
|
+
|
|
43
|
+
Permitted Purposes specifically include using the Software:
|
|
44
|
+
|
|
45
|
+
1. for your internal use and access;
|
|
46
|
+
|
|
47
|
+
2. for non-commercial education;
|
|
48
|
+
|
|
49
|
+
3. for non-commercial research; and
|
|
50
|
+
|
|
51
|
+
4. in connection with professional services that you provide to a licensee
|
|
52
|
+
using the Software in accordance with these Terms and Conditions.
|
|
53
|
+
|
|
54
|
+
### Patents
|
|
55
|
+
|
|
56
|
+
To the extent your use for a Permitted Purpose would necessarily infringe our
|
|
57
|
+
patents, the license grant above includes a license under our patents. If you
|
|
58
|
+
make a claim against any party that the Software infringes or contributes to
|
|
59
|
+
the infringement of any patent, then your patent license to the Software ends
|
|
60
|
+
immediately.
|
|
61
|
+
|
|
62
|
+
### Redistribution
|
|
63
|
+
|
|
64
|
+
The Terms and Conditions apply to all copies, modifications and derivatives of
|
|
65
|
+
the Software.
|
|
66
|
+
|
|
67
|
+
If you redistribute any copies, modifications or derivatives of the Software,
|
|
68
|
+
you must include a copy of or a link to these Terms and Conditions and not
|
|
69
|
+
remove any copyright notices provided in or with the Software.
|
|
70
|
+
|
|
71
|
+
### Disclaimer
|
|
72
|
+
|
|
73
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTIES OF ANY KIND, EXPRESS OR
|
|
74
|
+
IMPLIED, INCLUDING WITHOUT LIMITATION WARRANTIES OF FITNESS FOR A PARTICULAR
|
|
75
|
+
PURPOSE, MERCHANTABILITY, TITLE OR NON-INFRINGEMENT.
|
|
76
|
+
|
|
77
|
+
IN NO EVENT WILL WE HAVE ANY LIABILITY TO YOU ARISING OUT OF OR RELATED TO THE
|
|
78
|
+
SOFTWARE, INCLUDING INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES,
|
|
79
|
+
EVEN IF WE HAVE BEEN INFORMED OF THEIR POSSIBILITY IN ADVANCE.
|
|
80
|
+
|
|
81
|
+
### Trademarks
|
|
82
|
+
|
|
83
|
+
Except for displaying the License Details and identifying us as the origin of
|
|
84
|
+
the Software, you have no right under these Terms and Conditions to use our
|
|
85
|
+
trademarks, trade names, service marks or product names.
|
|
86
|
+
|
|
87
|
+
## Grant of Future License
|
|
88
|
+
|
|
89
|
+
We hereby irrevocably grant you an additional license to use the Software under
|
|
90
|
+
the MIT license that is effective on the second anniversary of the date we make
|
|
91
|
+
the Software available. On or after that date, you may use the Software under
|
|
92
|
+
the MIT license, in which case the following will apply:
|
|
93
|
+
|
|
94
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
95
|
+
this software and associated documentation files (the "Software"), to deal in
|
|
96
|
+
the Software without restriction, including without limitation the rights to
|
|
97
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
|
98
|
+
of the Software, and to permit persons to whom the Software is furnished to do
|
|
99
|
+
so, subject to the following conditions:
|
|
100
|
+
|
|
101
|
+
The above copyright notice and this permission notice shall be included in all
|
|
102
|
+
copies or substantial portions of the Software.
|
|
103
|
+
|
|
104
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
105
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
106
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
107
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
108
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
109
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
110
|
+
SOFTWARE.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
coord
|
coord/__init__.py
ADDED
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
"""code-coordinator: multi-agent coordinator for Claude Code workers."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from importlib.metadata import Distribution
|
|
6
|
+
from typing import TYPE_CHECKING
|
|
7
|
+
|
|
8
|
+
from coord.dist_name import CANDIDATE_NAMES, DistributionNotFoundError, resolve_installed
|
|
9
|
+
|
|
10
|
+
if TYPE_CHECKING:
|
|
11
|
+
from pathlib import Path
|
|
12
|
+
|
|
13
|
+
# NOTE on the `# noqa: PLC0415` (import-outside-toplevel) markers below:
|
|
14
|
+
# `json`/`pathlib.Path`/`urllib.parse`/`subprocess`/`setuptools_scm` are all
|
|
15
|
+
# deferred into the function bodies that use them rather than imported at
|
|
16
|
+
# module scope, so the common (non-editable-install) path through
|
|
17
|
+
# `_resolve_version` — every `coord` invocation except a developer/operator
|
|
18
|
+
# checkout — pays zero import cost for machinery it never touches. Each
|
|
19
|
+
# import is module-level-safe on its own; this is purely to keep the hot
|
|
20
|
+
# path cheap, not a cycle-avoidance workaround. The `TYPE_CHECKING`-only
|
|
21
|
+
# import above gives `_editable_source_root`'s return annotation a real
|
|
22
|
+
# name for type checkers without paying that cost at runtime either (`from
|
|
23
|
+
# __future__ import annotations` already defers evaluating the annotation
|
|
24
|
+
# itself).
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def _editable_source_root(dist_name: str) -> Path | None:
|
|
28
|
+
"""Return the source checkout root when *dist_name* is installed
|
|
29
|
+
editable (PEP 660, ``pip install -e .``), else ``None``.
|
|
30
|
+
|
|
31
|
+
#2010: an editable install's ``.dist-info`` is written once at install
|
|
32
|
+
time and never refreshed — reading ``__version__`` straight off it goes
|
|
33
|
+
stale the moment ``git pull`` moves the checkout's HEAD past whatever
|
|
34
|
+
tag was current at install time, misreporting the *operator's own* CLI
|
|
35
|
+
as drifted rather than the fleet it's inspecting.
|
|
36
|
+
|
|
37
|
+
pip records editable installs via a ``direct_url.json`` with
|
|
38
|
+
``dir_info.editable: true`` and a ``file://`` URL pointing at the live
|
|
39
|
+
source tree — that's the reliable signal, not a ``site-packages``
|
|
40
|
+
substring match on ``__file__`` (a non-editable install into a venv
|
|
41
|
+
satisfies that too, and its metadata IS trustworthy since it's a
|
|
42
|
+
frozen snapshot rather than a claim about live source).
|
|
43
|
+
"""
|
|
44
|
+
import json # noqa: PLC0415
|
|
45
|
+
from pathlib import Path # noqa: PLC0415
|
|
46
|
+
from urllib.parse import unquote, urlparse # noqa: PLC0415
|
|
47
|
+
|
|
48
|
+
try:
|
|
49
|
+
raw = Distribution.from_name(dist_name).read_text("direct_url.json")
|
|
50
|
+
info = json.loads(raw) if raw else None
|
|
51
|
+
except Exception: # noqa: BLE001 — best-effort, never break __version__
|
|
52
|
+
return None
|
|
53
|
+
if not isinstance(info, dict) or not info.get("dir_info", {}).get("editable"):
|
|
54
|
+
return None
|
|
55
|
+
parsed = urlparse(info.get("url", ""))
|
|
56
|
+
if parsed.scheme != "file" or not parsed.path:
|
|
57
|
+
return None
|
|
58
|
+
root = Path(unquote(parsed.path))
|
|
59
|
+
return root if root.is_dir() else None
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def _live_scm_version(root: Path) -> str | None:
|
|
63
|
+
"""Best-effort live version for an editable checkout at *root*, so
|
|
64
|
+
``__version__`` doesn't trust a ``.dist-info`` stamp frozen at ``pip
|
|
65
|
+
install -e .`` time (#2010). Two tiers, most-accurate first:
|
|
66
|
+
|
|
67
|
+
1. ``setuptools_scm.get_version()`` — the exact scheme a wheel build
|
|
68
|
+
would stamp from the same commit. Only importable when the
|
|
69
|
+
environment kept the build-system requirement around (e.g. ``pip
|
|
70
|
+
install -e ".[dev]"``); a plain ``pip install -e .`` discards it
|
|
71
|
+
once PEP 517 build isolation tears down its throwaway venv.
|
|
72
|
+
2. ``git describe --tags --dirty --always`` — always available
|
|
73
|
+
wherever git is, and identical to the wheel's version string on a
|
|
74
|
+
clean tagged commit (the common case); slightly less precise
|
|
75
|
+
(raw git-describe form, not PEP 440) when HEAD has moved past the
|
|
76
|
+
last tag, but still honest and never a stale number.
|
|
77
|
+
|
|
78
|
+
KNOWN TRADE-OFF: this tier's output (e.g. ``3.4.5-dirty``, hyphen
|
|
79
|
+
separated) is not the same string ``setuptools_scm`` or a wheel
|
|
80
|
+
build would produce for that same commit (PEP 440,
|
|
81
|
+
``3.4.5.dev0+g<sha>``-style). If ``coord status``'s drift check
|
|
82
|
+
ever does plain string equality between an operator's and an
|
|
83
|
+
agent's version, an operator that falls all the way to this tier
|
|
84
|
+
can show spurious drift against an otherwise-matching agent — a
|
|
85
|
+
strict improvement over pre-#2010 (never a *stale* number) but not
|
|
86
|
+
a guarantee of an *exact-format* match. Every real agent/daemon
|
|
87
|
+
install is a wheel, never editable (see the INVARIANT in
|
|
88
|
+
CLAUDE.md's release section), so this only affects
|
|
89
|
+
operator-vs-operator comparisons, and only when tier 1
|
|
90
|
+
(``setuptools_scm``) is unavailable.
|
|
91
|
+
|
|
92
|
+
Returns ``None`` — never raises — when neither works; callers fall
|
|
93
|
+
back to the (possibly stale) package metadata.
|
|
94
|
+
"""
|
|
95
|
+
try:
|
|
96
|
+
from setuptools_scm import get_version # noqa: PLC0415
|
|
97
|
+
|
|
98
|
+
return get_version(root=str(root), fallback_version="0.0.0.dev0")
|
|
99
|
+
except Exception: # noqa: BLE001 — setuptools-scm may not be importable
|
|
100
|
+
pass
|
|
101
|
+
|
|
102
|
+
import subprocess # noqa: PLC0415
|
|
103
|
+
|
|
104
|
+
try:
|
|
105
|
+
result = subprocess.run(
|
|
106
|
+
["git", "-C", str(root), "describe", "--tags", "--dirty", "--always"],
|
|
107
|
+
capture_output=True, text=True, timeout=5,
|
|
108
|
+
)
|
|
109
|
+
if result.returncode != 0:
|
|
110
|
+
return None
|
|
111
|
+
described = result.stdout.strip()
|
|
112
|
+
if not described:
|
|
113
|
+
return None
|
|
114
|
+
return described[1:] if described.startswith("v") else described
|
|
115
|
+
except Exception: # noqa: BLE001 — best-effort, never break __version__
|
|
116
|
+
return None
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
def _resolve_version(names: tuple[str, ...] = CANDIDATE_NAMES) -> str:
|
|
120
|
+
"""#1238: single-sourced from the installed package's metadata, which
|
|
121
|
+
setuptools-scm stamps from the git tag at build time (see
|
|
122
|
+
``[tool.setuptools_scm]`` in pyproject.toml) — this is the ONLY place
|
|
123
|
+
``__version__`` is computed. No other source file may hardcode a
|
|
124
|
+
version literal; a release is just ``git tag vX.Y.Z && git push origin
|
|
125
|
+
vX.Y.Z``.
|
|
126
|
+
|
|
127
|
+
#2103: resolves through :func:`coord.dist_name.resolve_installed` rather
|
|
128
|
+
than a single hardcoded distribution name — ``__version__`` is what
|
|
129
|
+
``/health``'s ``"version"`` field reports, which is the *only* field
|
|
130
|
+
``coord agent update``'s polling loop keys off of to decide a machine
|
|
131
|
+
"came back". A bare ``claude-coordinator``-only lookup would degrade to
|
|
132
|
+
``"0+unknown"`` forever on any machine that has ``code-coordinator``
|
|
133
|
+
installed instead, faking a fleet-wide "did not come back".
|
|
134
|
+
|
|
135
|
+
#2010: for a wheel install that metadata is always correct — it's a
|
|
136
|
+
frozen snapshot of a build that just happened. For an *editable*
|
|
137
|
+
install it is a snapshot written once at ``pip install -e .`` time and
|
|
138
|
+
never refreshed; ``git pull`` can move the checkout well past it with
|
|
139
|
+
nothing updating ``.dist-info``, so the operator's own CLI ends up
|
|
140
|
+
reporting itself as ancient. When the install is editable, prefer a
|
|
141
|
+
live git-derived version over the frozen metadata so ``coord
|
|
142
|
+
--version`` (and the ``coord status`` drift check that compares agent
|
|
143
|
+
versions against it) reflects the code actually running, rather than
|
|
144
|
+
accusing every agent of drift from a number that was wrong about the
|
|
145
|
+
operator, not them.
|
|
146
|
+
|
|
147
|
+
COST: this runs once at module-import time — i.e. for every ``coord``
|
|
148
|
+
invocation, not just ``--version``/``status``. On a non-editable
|
|
149
|
+
install (every agent/daemon; see the wheel-only INVARIANT in
|
|
150
|
+
CLAUDE.md's release section) it's just the one ``importlib.metadata``
|
|
151
|
+
lookup already required by #1238. On an editable install without
|
|
152
|
+
``setuptools_scm`` importable, it additionally spawns one ``git
|
|
153
|
+
describe`` subprocess (bounded by a 5s timeout — see
|
|
154
|
+
``_live_scm_version``) per invocation. That's an operator/developer
|
|
155
|
+
checkout only, and negligible next to a `claude -p` subprocess launch
|
|
156
|
+
or a board read; revisit only if something starts shelling out to
|
|
157
|
+
``coord`` in a tight loop from such a checkout.
|
|
158
|
+
"""
|
|
159
|
+
try:
|
|
160
|
+
resolved = resolve_installed(names)
|
|
161
|
+
except DistributionNotFoundError:
|
|
162
|
+
# Neither candidate name is an installed package at all (e.g.
|
|
163
|
+
# `python -c "import coord"` run directly against a source
|
|
164
|
+
# checkout that was never `pip install`'d) — degrade to an
|
|
165
|
+
# obviously-not-a-release string rather than raising.
|
|
166
|
+
return "0+unknown"
|
|
167
|
+
|
|
168
|
+
root = _editable_source_root(resolved.name)
|
|
169
|
+
if root is not None:
|
|
170
|
+
scm_version = _live_scm_version(root)
|
|
171
|
+
if scm_version is not None:
|
|
172
|
+
return scm_version
|
|
173
|
+
return resolved.version
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
__version__ = _resolve_version()
|