@stravica-ai/digital-operator-pa 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +170 -0
  3. package/bin/desk +9 -0
  4. package/bin/distill +2 -0
  5. package/bin/estate-sync +2 -0
  6. package/bin/launch +2 -0
  7. package/bin/memory-sync +2 -0
  8. package/bin/migrate-inspect +2 -0
  9. package/bin/pa +2 -0
  10. package/bin/pa-coordinator-hook +2 -0
  11. package/bin/pa-init +2 -0
  12. package/bin/research +2 -0
  13. package/bin/scheduler +2 -0
  14. package/bin/secrets +2 -0
  15. package/bin/slice +2 -0
  16. package/bin/smoke +9 -0
  17. package/bin/sync +2 -0
  18. package/dist/engineering-pa-cli/README.md +205 -0
  19. package/dist/engineering-pa-cli/bin/estate-sync +2 -0
  20. package/dist/engineering-pa-cli/bin/launch +2 -0
  21. package/dist/engineering-pa-cli/bin/pa +2 -0
  22. package/dist/engineering-pa-cli/bin/pa-coordinator-hook +12 -0
  23. package/dist/engineering-pa-cli/bin/research +2 -0
  24. package/dist/engineering-pa-cli/bin/scheduler +2 -0
  25. package/dist/engineering-pa-cli/bin/secrets +2 -0
  26. package/dist/engineering-pa-cli/bin/smoke +9 -0
  27. package/dist/engineering-pa-cli/bin/sync +2 -0
  28. package/dist/engineering-pa-cli/config/coordinator-allowlist.json +118 -0
  29. package/dist/engineering-pa-cli/docs/coordinator-hook.md +211 -0
  30. package/dist/engineering-pa-cli/docs/estate-sync.md +412 -0
  31. package/dist/engineering-pa-cli/docs/gsc.md +175 -0
  32. package/dist/engineering-pa-cli/docs/lint-linkedin.md +139 -0
  33. package/dist/engineering-pa-cli/docs/secrets.md +221 -0
  34. package/dist/engineering-pa-cli/docs/smoke.md +113 -0
  35. package/dist/engineering-pa-cli/docs/staging-alias.md +114 -0
  36. package/dist/engineering-pa-cli/index.mjs +17 -0
  37. package/dist/engineering-pa-cli/package.json +37 -0
  38. package/dist/engineering-pa-cli/src/autonomy/cli.mjs +329 -0
  39. package/dist/engineering-pa-cli/src/autonomy/envelope.mjs +301 -0
  40. package/dist/engineering-pa-cli/src/coordinator-hook/cli.mjs +140 -0
  41. package/dist/engineering-pa-cli/src/coordinator-hook/config.mjs +134 -0
  42. package/dist/engineering-pa-cli/src/coordinator-hook/message.mjs +47 -0
  43. package/dist/engineering-pa-cli/src/coordinator-hook/policy.mjs +211 -0
  44. package/dist/engineering-pa-cli/src/coordinator-hook/repo-root.mjs +44 -0
  45. package/dist/engineering-pa-cli/src/coordinator-hook/self.mjs +30 -0
  46. package/dist/engineering-pa-cli/src/environment/cli.mjs +287 -0
  47. package/dist/engineering-pa-cli/src/environment/probes.mjs +302 -0
  48. package/dist/engineering-pa-cli/src/gsc/auth.mjs +148 -0
  49. package/dist/engineering-pa-cli/src/gsc/cli.mjs +93 -0
  50. package/dist/engineering-pa-cli/src/gsc/cloudflare.mjs +318 -0
  51. package/dist/engineering-pa-cli/src/gsc/commands/add-property.mjs +70 -0
  52. package/dist/engineering-pa-cli/src/gsc/commands/list-properties.mjs +33 -0
  53. package/dist/engineering-pa-cli/src/gsc/commands/pull-analytics.mjs +130 -0
  54. package/dist/engineering-pa-cli/src/gsc/commands/submit-sitemap.mjs +41 -0
  55. package/dist/engineering-pa-cli/src/gsc/commands/verify-via-cf-dns.mjs +189 -0
  56. package/dist/engineering-pa-cli/src/knowledge/call-log.mjs +59 -0
  57. package/dist/engineering-pa-cli/src/knowledge/cli.mjs +242 -0
  58. package/dist/engineering-pa-cli/src/knowledge/eval.mjs +446 -0
  59. package/dist/engineering-pa-cli/src/knowledge/formatters.mjs +331 -0
  60. package/dist/engineering-pa-cli/src/knowledge/graph.mjs +710 -0
  61. package/dist/engineering-pa-cli/src/launch/README.md +214 -0
  62. package/dist/engineering-pa-cli/src/launch/cli.mjs +51 -0
  63. package/dist/engineering-pa-cli/src/launch/commands/launch.mjs +106 -0
  64. package/dist/engineering-pa-cli/src/launch/identity.mjs +43 -0
  65. package/dist/engineering-pa-cli/src/launch/planner.mjs +44 -0
  66. package/dist/engineering-pa-cli/src/launch/repo-root.mjs +53 -0
  67. package/dist/engineering-pa-cli/src/launch/runner.mjs +147 -0
  68. package/dist/engineering-pa-cli/src/launch/task-loader.mjs +85 -0
  69. package/dist/engineering-pa-cli/src/lint/cli.mjs +61 -0
  70. package/dist/engineering-pa-cli/src/lint/commands/linkedin.mjs +133 -0
  71. package/dist/engineering-pa-cli/src/lint/detectors.mjs +90 -0
  72. package/dist/engineering-pa-cli/src/lint/linter.mjs +69 -0
  73. package/dist/engineering-pa-cli/src/lint/reporter.mjs +32 -0
  74. package/dist/engineering-pa-cli/src/lint/rules.mjs +132 -0
  75. package/dist/engineering-pa-cli/src/pa/cli.mjs +369 -0
  76. package/dist/engineering-pa-cli/src/pa/doc-groups.mjs +164 -0
  77. package/dist/engineering-pa-cli/src/pa/io.mjs +80 -0
  78. package/dist/engineering-pa-cli/src/pa/project-cli.mjs +385 -0
  79. package/dist/engineering-pa-cli/src/pa/projects.mjs +352 -0
  80. package/dist/engineering-pa-cli/src/pa/repo-root.mjs +64 -0
  81. package/dist/engineering-pa-cli/src/pa/session.mjs +254 -0
  82. package/dist/engineering-pa-cli/src/pa/work-cli.mjs +164 -0
  83. package/dist/engineering-pa-cli/src/pa/work.mjs +196 -0
  84. package/dist/engineering-pa-cli/src/pa/workstreams.mjs +201 -0
  85. package/dist/engineering-pa-cli/src/research/README.md +360 -0
  86. package/dist/engineering-pa-cli/src/research/briefs/extractor.md +103 -0
  87. package/dist/engineering-pa-cli/src/research/briefs/searcher.md +113 -0
  88. package/dist/engineering-pa-cli/src/research/briefs/synthesizer.md +124 -0
  89. package/dist/engineering-pa-cli/src/research/briefs/verifier.md +86 -0
  90. package/dist/engineering-pa-cli/src/research/cli.mjs +141 -0
  91. package/dist/engineering-pa-cli/src/research/commands/gates.mjs +176 -0
  92. package/dist/engineering-pa-cli/src/research/commands/list.mjs +56 -0
  93. package/dist/engineering-pa-cli/src/research/commands/mark.mjs +97 -0
  94. package/dist/engineering-pa-cli/src/research/commands/paths.mjs +69 -0
  95. package/dist/engineering-pa-cli/src/research/commands/prune.mjs +86 -0
  96. package/dist/engineering-pa-cli/src/research/commands/run.mjs +94 -0
  97. package/dist/engineering-pa-cli/src/research/commands/show.mjs +43 -0
  98. package/dist/engineering-pa-cli/src/research/docs/operator-present-flow.md +120 -0
  99. package/dist/engineering-pa-cli/src/research/format.mjs +59 -0
  100. package/dist/engineering-pa-cli/src/research/promote.mjs +260 -0
  101. package/dist/engineering-pa-cli/src/research/schema/finding.schema.json +55 -0
  102. package/dist/engineering-pa-cli/src/research/schema/gates.schema.json +34 -0
  103. package/dist/engineering-pa-cli/src/research/schema/manifest.schema.json +59 -0
  104. package/dist/engineering-pa-cli/src/research/schema/plan.schema.json +41 -0
  105. package/dist/engineering-pa-cli/src/research/schema/sources.schema.json +31 -0
  106. package/dist/engineering-pa-cli/src/research/store/findings.mjs +61 -0
  107. package/dist/engineering-pa-cli/src/research/store/gates.mjs +73 -0
  108. package/dist/engineering-pa-cli/src/research/store/index.mjs +312 -0
  109. package/dist/engineering-pa-cli/src/research/store/manifest.mjs +56 -0
  110. package/dist/engineering-pa-cli/src/research/store/plan.mjs +59 -0
  111. package/dist/engineering-pa-cli/src/research/store/sources.mjs +44 -0
  112. package/dist/engineering-pa-cli/src/research/store/validate.mjs +92 -0
  113. package/dist/engineering-pa-cli/src/research/workflows/research-normal.js +573 -0
  114. package/dist/engineering-pa-cli/src/scheduler/cli.mjs +197 -0
  115. package/dist/engineering-pa-cli/src/secrets/cli.mjs +254 -0
  116. package/dist/engineering-pa-cli/src/secrets/commands/backup-template.mjs +67 -0
  117. package/dist/engineering-pa-cli/src/secrets/commands/backup.mjs +85 -0
  118. package/dist/engineering-pa-cli/src/secrets/commands/delete.mjs +58 -0
  119. package/dist/engineering-pa-cli/src/secrets/commands/find.mjs +36 -0
  120. package/dist/engineering-pa-cli/src/secrets/commands/get.mjs +49 -0
  121. package/dist/engineering-pa-cli/src/secrets/commands/init.mjs +69 -0
  122. package/dist/engineering-pa-cli/src/secrets/commands/list.mjs +37 -0
  123. package/dist/engineering-pa-cli/src/secrets/commands/rotate.mjs +46 -0
  124. package/dist/engineering-pa-cli/src/secrets/commands/set.mjs +123 -0
  125. package/dist/engineering-pa-cli/src/secrets/commands/status.mjs +146 -0
  126. package/dist/engineering-pa-cli/src/secrets/commands/vaults.mjs +57 -0
  127. package/dist/engineering-pa-cli/src/secrets/commands/verify.mjs +143 -0
  128. package/dist/engineering-pa-cli/src/secrets/vault.mjs +766 -0
  129. package/dist/engineering-pa-cli/src/smoke/checks.mjs +199 -0
  130. package/dist/engineering-pa-cli/src/smoke/cli.mjs +108 -0
  131. package/dist/engineering-pa-cli/src/smoke/commands/run.mjs +237 -0
  132. package/dist/engineering-pa-cli/src/smoke/runner.mjs +191 -0
  133. package/dist/engineering-pa-cli/src/staging-alias/cli.mjs +91 -0
  134. package/dist/engineering-pa-cli/src/staging-alias/cloudflare.mjs +380 -0
  135. package/dist/engineering-pa-cli/src/staging-alias/commands/list.mjs +36 -0
  136. package/dist/engineering-pa-cli/src/staging-alias/commands/set.mjs +188 -0
  137. package/dist/engineering-pa-cli/src/staging-alias/commands/status.mjs +113 -0
  138. package/dist/engineering-pa-cli/src/staging-alias/commands/unset.mjs +95 -0
  139. package/dist/engineering-pa-cli/src/staging-alias/sites.mjs +105 -0
  140. package/dist/engineering-pa-cli/src/sync/cli.mjs +151 -0
  141. package/dist/engineering-pa-cli/src/sync/git.mjs +149 -0
  142. package/dist/engineering-pa-cli/src/sync/lock.mjs +30 -0
  143. package/dist/engineering-pa-cli/src/sync/regenerated-artifacts.mjs +114 -0
  144. package/dist/engineering-pa-cli/src/sync/registry-scope.mjs +260 -0
  145. package/dist/engineering-pa-cli/src/sync/run.mjs +531 -0
  146. package/dist/engineering-pa-cli/src/sync/runner.mjs +62 -0
  147. package/dist/engineering-pa-cli/src/sync/runs-digest.mjs +138 -0
  148. package/dist/engineering-pa-core/README.md +60 -0
  149. package/dist/engineering-pa-core/bin/desk +9 -0
  150. package/dist/engineering-pa-core/bin/distill +2 -0
  151. package/dist/engineering-pa-core/bin/memory-sync +2 -0
  152. package/dist/engineering-pa-core/bin/slice +2 -0
  153. package/dist/engineering-pa-core/docs/autonomy-envelope-tracker.md +111 -0
  154. package/dist/engineering-pa-core/docs/blueprints/README.md +45 -0
  155. package/dist/engineering-pa-core/docs/blueprints/docker-services/blueprint.md +168 -0
  156. package/dist/engineering-pa-core/docs/blueprints/git-identity/blueprint.md +116 -0
  157. package/dist/engineering-pa-core/docs/blueprints/ideas/custom-workspace-views.md +9 -0
  158. package/dist/engineering-pa-core/docs/blueprints/ideas/knowledge-domain-patterns.md +15 -0
  159. package/dist/engineering-pa-core/docs/blueprints/ideas/office-integration.md +11 -0
  160. package/dist/engineering-pa-core/docs/blueprints/ideas/team-scaling.md +9 -0
  161. package/dist/engineering-pa-core/docs/blueprints/ideas/work-personal-separation.md +9 -0
  162. package/dist/engineering-pa-core/docs/blueprints/scheduled-distillation/blueprint.md +129 -0
  163. package/dist/engineering-pa-core/docs/blueprints/tool-integration/blueprint.md +110 -0
  164. package/dist/engineering-pa-core/docs/commands/init.md +159 -0
  165. package/dist/engineering-pa-core/docs/commands/schedule.md +98 -0
  166. package/dist/engineering-pa-core/docs/commands/upgrade.md +67 -0
  167. package/dist/engineering-pa-core/docs/entity-location-map.md +93 -0
  168. package/dist/engineering-pa-core/docs/knowledge-scaffold.md +121 -0
  169. package/dist/engineering-pa-core/docs/lock.md +155 -0
  170. package/dist/engineering-pa-core/docs/memory-sync.md +28 -0
  171. package/dist/engineering-pa-core/docs/pa-operating-model.md +457 -0
  172. package/dist/engineering-pa-core/docs/scheduling.md +35 -0
  173. package/dist/engineering-pa-core/docs/standards/README.md +24 -0
  174. package/dist/engineering-pa-core/docs/standards/briefing-contract.md +161 -0
  175. package/dist/engineering-pa-core/docs/standards/tooling.md +240 -0
  176. package/dist/engineering-pa-core/docs/tools/distill.md +230 -0
  177. package/dist/engineering-pa-core/docs/tools/memory-sync.md +98 -0
  178. package/dist/engineering-pa-core/docs/tools/scheduler.md +243 -0
  179. package/dist/engineering-pa-core/docs/tools/slice.md +150 -0
  180. package/dist/engineering-pa-core/docs/upstream-issue-filing.md +88 -0
  181. package/dist/engineering-pa-core/docs/working-directory.md +29 -0
  182. package/dist/engineering-pa-core/docs/workspace-operations.md +46 -0
  183. package/dist/engineering-pa-core/index.mjs +21 -0
  184. package/dist/engineering-pa-core/knowledge/README.md +53 -0
  185. package/dist/engineering-pa-core/knowledge/canonical/.gitkeep +0 -0
  186. package/dist/engineering-pa-core/knowledge/content-voice/README.md +64 -0
  187. package/dist/engineering-pa-core/knowledge/content-voice/banned-ai-tells-baseline.md +133 -0
  188. package/dist/engineering-pa-core/knowledge/content-voice/banned-ai-tells-shape.md +58 -0
  189. package/dist/engineering-pa-core/knowledge/content-voice/banned-ai-tells-taxonomy.md +33 -0
  190. package/dist/engineering-pa-core/knowledge/content-voice/content-pipeline-routing.md +58 -0
  191. package/dist/engineering-pa-core/knowledge/content-voice/new-tell-capture-procedure.md +40 -0
  192. package/dist/engineering-pa-core/knowledge/content-voice/voice-guide-shape.md +43 -0
  193. package/dist/engineering-pa-core/knowledge/delegation-dispatch/README.md +34 -0
  194. package/dist/engineering-pa-core/knowledge/delegation-dispatch/briefing-contract.md +77 -0
  195. package/dist/engineering-pa-core/knowledge/delegation-dispatch/delegation-modes.md +84 -0
  196. package/dist/engineering-pa-core/knowledge/delegation-dispatch/dispatch-envelope.md +238 -0
  197. package/dist/engineering-pa-core/knowledge/delegation-dispatch/task-groups-and-orchestrators.md +62 -0
  198. package/dist/engineering-pa-core/knowledge/delegation-dispatch/team-improvement-loop.md +48 -0
  199. package/dist/engineering-pa-core/knowledge/delegation-dispatch/tool-development-policy.md +48 -0
  200. package/dist/engineering-pa-core/knowledge/engineering-discipline/README.md +33 -0
  201. package/dist/engineering-pa-core/knowledge/engineering-discipline/blast-radius-and-safety.md +50 -0
  202. package/dist/engineering-pa-core/knowledge/engineering-discipline/investigate-root-causes.md +48 -0
  203. package/dist/engineering-pa-core/knowledge/engineering-discipline/role-ladder.md +57 -0
  204. package/dist/engineering-pa-core/knowledge/engineering-discipline/verify-runtime-behaviour.md +53 -0
  205. package/dist/engineering-pa-core/knowledge/engineering-discipline/worktree-isolation.md +50 -0
  206. package/dist/engineering-pa-core/knowledge/knowledge-memory/README.md +33 -0
  207. package/dist/engineering-pa-core/knowledge/knowledge-memory/claude-md-hygiene.md +47 -0
  208. package/dist/engineering-pa-core/knowledge/knowledge-memory/journal-and-self-improvement.md +53 -0
  209. package/dist/engineering-pa-core/knowledge/knowledge-memory/knowledge-retrieval-discipline.md +62 -0
  210. package/dist/engineering-pa-core/knowledge/knowledge-memory/librarian-synthesis-mandate.md +56 -0
  211. package/dist/engineering-pa-core/knowledge/knowledge-memory/staging-and-observations.md +58 -0
  212. package/dist/engineering-pa-core/knowledge/operator-interface/README.md +32 -0
  213. package/dist/engineering-pa-core/knowledge/operator-interface/communication-style.md +33 -0
  214. package/dist/engineering-pa-core/knowledge/operator-interface/escalation-and-correction.md +45 -0
  215. package/dist/engineering-pa-core/knowledge/operator-interface/push-back-discipline.md +42 -0
  216. package/dist/engineering-pa-core/knowledge/operator-interface/session-boot-and-end.md +56 -0
  217. package/dist/engineering-pa-core/knowledge/platform-tooling/README.md +37 -0
  218. package/dist/engineering-pa-core/knowledge/platform-tooling/desk-cli-reference.md +52 -0
  219. package/dist/engineering-pa-core/knowledge/platform-tooling/environment-awareness.md +91 -0
  220. package/dist/engineering-pa-core/knowledge/platform-tooling/mcp-servers-catalogue.md +52 -0
  221. package/dist/engineering-pa-core/knowledge/platform-tooling/pa-cli-reference.md +55 -0
  222. package/dist/engineering-pa-core/knowledge/platform-tooling/scheduling-and-launchd.md +56 -0
  223. package/dist/engineering-pa-core/knowledge/platform-tooling/tool-discovery-discipline.md +49 -0
  224. package/dist/engineering-pa-core/knowledge/platform-tooling/working-directory-vs-project-root.md +43 -0
  225. package/dist/engineering-pa-core/knowledge/platform-tooling/workspace-server.md +51 -0
  226. package/dist/engineering-pa-core/knowledge/raw/.gitkeep +0 -0
  227. package/dist/engineering-pa-core/knowledge/scaffold/domains.json +5 -0
  228. package/dist/engineering-pa-core/knowledge/schema/.gitkeep +0 -0
  229. package/dist/engineering-pa-core/knowledge/work-management/README.md +33 -0
  230. package/dist/engineering-pa-core/knowledge/work-management/desk-cli.md +84 -0
  231. package/dist/engineering-pa-core/knowledge/work-management/progress-md.md +48 -0
  232. package/dist/engineering-pa-core/knowledge/work-management/projects.md +64 -0
  233. package/dist/engineering-pa-core/knowledge/work-management/spawn-log.md +48 -0
  234. package/dist/engineering-pa-core/knowledge/work-management/work-items.md +67 -0
  235. package/dist/engineering-pa-core/package.json +26 -0
  236. package/dist/engineering-pa-core/roles/agent-ops/definition.md +79 -0
  237. package/dist/engineering-pa-core/roles/dispatch-briefer/definition.md +195 -0
  238. package/dist/engineering-pa-core/roles/librarian/definition.md +176 -0
  239. package/dist/engineering-pa-core/roles/pa/definition.md +93 -0
  240. package/dist/engineering-pa-core/roles/system-admin/definition.md +106 -0
  241. package/dist/engineering-pa-core/roles/tool-developer/definition.md +116 -0
  242. package/dist/engineering-pa-core/roles/writer/definition.md +130 -0
  243. package/dist/engineering-pa-core/schema/autonomy-envelope.schema.json +61 -0
  244. package/dist/engineering-pa-core/schema/project.json +114 -0
  245. package/dist/engineering-pa-core/schema/schedule.json +63 -0
  246. package/dist/engineering-pa-core/schema/work-item.json +92 -0
  247. package/dist/engineering-pa-core/src/config/pa-package-name.mjs +30 -0
  248. package/dist/engineering-pa-core/src/desk/cli.mjs +95 -0
  249. package/dist/engineering-pa-core/src/desk/commands.mjs +398 -0
  250. package/dist/engineering-pa-core/src/desk/format.mjs +84 -0
  251. package/dist/engineering-pa-core/src/desk/repo.mjs +172 -0
  252. package/dist/engineering-pa-core/src/desk/team-scope.mjs +142 -0
  253. package/dist/engineering-pa-core/src/distill/cli.mjs +112 -0
  254. package/dist/engineering-pa-core/src/distill/prereqs.mjs +171 -0
  255. package/dist/engineering-pa-core/src/distill/prompt.mjs +74 -0
  256. package/dist/engineering-pa-core/src/distill/run.mjs +230 -0
  257. package/dist/engineering-pa-core/src/distill/runner.mjs +86 -0
  258. package/dist/engineering-pa-core/src/distill/staging.mjs +59 -0
  259. package/dist/engineering-pa-core/src/knowledge/retrieval/backlink-indexer.mjs +154 -0
  260. package/dist/engineering-pa-core/src/knowledge/retrieval/graph-builder.mjs +186 -0
  261. package/dist/engineering-pa-core/src/knowledge/retrieval/index-builder.mjs +225 -0
  262. package/dist/engineering-pa-core/src/knowledge/retrieval/query.mjs +263 -0
  263. package/dist/engineering-pa-core/src/lock/lock.mjs +202 -0
  264. package/dist/engineering-pa-core/src/memory-sync/cli-support.mjs +12 -0
  265. package/dist/engineering-pa-core/src/memory-sync/cli.mjs +56 -0
  266. package/dist/engineering-pa-core/src/memory-sync/commands/pull.mjs +44 -0
  267. package/dist/engineering-pa-core/src/memory-sync/commands/push.mjs +46 -0
  268. package/dist/engineering-pa-core/src/memory-sync/mirror.mjs +114 -0
  269. package/dist/engineering-pa-core/src/memory-sync/repo.mjs +65 -0
  270. package/dist/engineering-pa-core/src/scheduler/detect.mjs +111 -0
  271. package/dist/engineering-pa-core/src/scheduler/host.mjs +38 -0
  272. package/dist/engineering-pa-core/src/scheduler/index.mjs +13 -0
  273. package/dist/engineering-pa-core/src/scheduler/install.mjs +854 -0
  274. package/dist/engineering-pa-core/src/scheduler/list.mjs +168 -0
  275. package/dist/engineering-pa-core/src/scheduler/remove.mjs +176 -0
  276. package/dist/engineering-pa-core/src/scheduler/verify.mjs +435 -0
  277. package/dist/engineering-pa-core/src/session-boot/autonomy-injection.mjs +84 -0
  278. package/dist/engineering-pa-core/src/slice/cli.mjs +139 -0
  279. package/dist/engineering-pa-core/src/slice/inputs.mjs +174 -0
  280. package/dist/engineering-pa-core/src/slice/prompt.mjs +94 -0
  281. package/dist/engineering-pa-core/src/slice/prompts/dave-boot.md +91 -0
  282. package/dist/engineering-pa-core/src/slice/run.mjs +334 -0
  283. package/dist/engineering-pa-core-extensions-atlassian/README.md +31 -0
  284. package/dist/engineering-pa-core-extensions-atlassian/index.mjs +9 -0
  285. package/dist/engineering-pa-core-extensions-atlassian/package.json +19 -0
  286. package/dist/engineering-pa-core-extensions-n8n/README.md +29 -0
  287. package/dist/engineering-pa-core-extensions-n8n/index.mjs +8 -0
  288. package/dist/engineering-pa-core-extensions-n8n/package.json +19 -0
  289. package/dist/engineering-pa-librarian/README.md +38 -0
  290. package/dist/engineering-pa-librarian/index.mjs +12 -0
  291. package/dist/engineering-pa-librarian/package.json +19 -0
  292. package/dist/engineering-pa-migrate-inspect/README.md +131 -0
  293. package/dist/engineering-pa-migrate-inspect/bin/migrate-inspect +2 -0
  294. package/dist/engineering-pa-migrate-inspect/package.json +21 -0
  295. package/dist/engineering-pa-migrate-inspect/src/age-key-migrate.mjs +83 -0
  296. package/dist/engineering-pa-migrate-inspect/src/cli.mjs +97 -0
  297. package/dist/engineering-pa-migrate-inspect/src/inspector.mjs +237 -0
  298. package/dist/engineering-pa-migrate-inspect/src/platforms/linux.mjs +87 -0
  299. package/dist/engineering-pa-migrate-inspect/src/platforms/macos.mjs +105 -0
  300. package/dist/engineering-pa-migrate-inspect/src/runner.mjs +87 -0
  301. package/dist/engineering-pa-runbook/README.md +103 -0
  302. package/dist/engineering-pa-runbook/package.json +18 -0
  303. package/dist/engineering-pa-runbook/reference/dex-template.runbook.json +66 -0
  304. package/dist/engineering-pa-runbook/reference/hq-dave.runbook.json +69 -0
  305. package/dist/engineering-pa-runbook/reference/smarthome01.runbook.json +92 -0
  306. package/dist/engineering-pa-runbook/schema/inspection.schema.json +113 -0
  307. package/dist/engineering-pa-runbook/schema/runbook.schema.json +67 -0
  308. package/dist/engineering-pa-runbook/src/validator.mjs +167 -0
  309. package/dist/engineering-pa-scaffold/README.md +164 -0
  310. package/dist/engineering-pa-scaffold/bin/pa-init +2 -0
  311. package/dist/engineering-pa-scaffold/index.mjs +42 -0
  312. package/dist/engineering-pa-scaffold/package.json +22 -0
  313. package/dist/engineering-pa-scaffold/src/cli.mjs +115 -0
  314. package/dist/engineering-pa-scaffold/src/commands/init.mjs +169 -0
  315. package/dist/engineering-pa-scaffold/src/generator.mjs +354 -0
  316. package/dist/engineering-pa-scaffold/src/prompts.mjs +125 -0
  317. package/dist/engineering-pa-scaffold/src/runner.mjs +142 -0
  318. package/dist/engineering-pa-scaffold/templates/CLAUDE.md.template +196 -0
  319. package/dist/engineering-pa-scaffold/templates/operator-README.md.template +44 -0
  320. package/dist/engineering-pa-types-engineering/README.md +35 -0
  321. package/dist/engineering-pa-types-engineering/docs/commands/product-build.md +120 -0
  322. package/dist/engineering-pa-types-engineering/index.mjs +9 -0
  323. package/dist/engineering-pa-types-engineering/package.json +19 -0
  324. package/dist/engineering-pa-types-engineering/roles/product-engineer/definition.md +650 -0
  325. package/dist/engineering-pa-types-engineering/roles/product-engineer/templates/build-spec.md +82 -0
  326. package/dist/engineering-pa-types-engineering/roles/product-engineer/templates/preflight-checklist.md +158 -0
  327. package/dist/engineering-pa-types-engineering/roles/product-engineer/templates/worker-brief.md +130 -0
  328. package/dist/engineering-pa-workspace/README.md +197 -0
  329. package/dist/engineering-pa-workspace/app/assets/md.js +187 -0
  330. package/dist/engineering-pa-workspace/app/assets/modal.js +120 -0
  331. package/dist/engineering-pa-workspace/app/assets/theme.css +132 -0
  332. package/dist/engineering-pa-workspace/app/assets/theme.js +159 -0
  333. package/dist/engineering-pa-workspace/app/banner.js +320 -0
  334. package/dist/engineering-pa-workspace/app/delegations.html +345 -0
  335. package/dist/engineering-pa-workspace/app/home.html +1060 -0
  336. package/dist/engineering-pa-workspace/app/index.html +361 -0
  337. package/dist/engineering-pa-workspace/app/knowledge-map.html +163 -0
  338. package/dist/engineering-pa-workspace/app/knowledge.html +304 -0
  339. package/dist/engineering-pa-workspace/app/nav.json +75 -0
  340. package/dist/engineering-pa-workspace/app/notes.html +199 -0
  341. package/dist/engineering-pa-workspace/app/onboarding.html +592 -0
  342. package/dist/engineering-pa-workspace/app/profile.html +243 -0
  343. package/dist/engineering-pa-workspace/app/project-detail.html +432 -0
  344. package/dist/engineering-pa-workspace/app/projects.html +297 -0
  345. package/dist/engineering-pa-workspace/app/repos.html +598 -0
  346. package/dist/engineering-pa-workspace/app/schedules.html +486 -0
  347. package/dist/engineering-pa-workspace/app/secrets.html +164 -0
  348. package/dist/engineering-pa-workspace/app/staging.html +319 -0
  349. package/dist/engineering-pa-workspace/app/tasks.html +465 -0
  350. package/dist/engineering-pa-workspace/app/vendor/chart.umd.min.js +21 -0
  351. package/dist/engineering-pa-workspace/app/viewer.html +116 -0
  352. package/dist/engineering-pa-workspace/docs/DAEMON.md +104 -0
  353. package/dist/engineering-pa-workspace/docs/page-blueprint.md +286 -0
  354. package/dist/engineering-pa-workspace/docs/status-mon.md +168 -0
  355. package/dist/engineering-pa-workspace/index.mjs +12 -0
  356. package/dist/engineering-pa-workspace/nav.json.example +8 -0
  357. package/dist/engineering-pa-workspace/package.json +27 -0
  358. package/dist/engineering-pa-workspace/src/api.mjs +2086 -0
  359. package/dist/engineering-pa-workspace/src/install-daemon.mjs +573 -0
  360. package/dist/engineering-pa-workspace/src/nav.mjs +190 -0
  361. package/dist/engineering-pa-workspace/src/secrets-api.mjs +175 -0
  362. package/dist/engineering-pa-workspace/src/server.mjs +516 -0
  363. package/dist/engineering-pa-workspace/src/status-mon/poll.mjs +220 -0
  364. package/dist/engineering-pa-workspace/src/status-mon/poller.mjs +113 -0
  365. package/dist/engineering-pa-workspace/src/status-mon/run.mjs +133 -0
  366. package/dist/engineering-pa-workspace/src/supervisor.mjs +264 -0
  367. package/dist/engineering-pa-workspace/src/ws.mjs +633 -0
  368. package/index.mjs +60 -0
  369. package/package.json +58 -0
  370. package/templates/banned-ai-tells.md +102 -0
  371. package/templates/purpose.md +105 -0
  372. package/templates/voice-guide.md +98 -0
@@ -0,0 +1,61 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "autonomy-envelope.json",
4
+ "title": "Autonomy Envelope",
5
+ "description": "Per-agent per-task-type approval-state record. Frontmatter section of `agents/<paName>/autonomy-envelope.md`. Body is markdown table + history log.",
6
+ "type": "object",
7
+ "required": ["agent", "owner", "updated", "taskTypes"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "agent": {
11
+ "type": "string",
12
+ "minLength": 1,
13
+ "description": "The agent's short name (matches agents/<name>/ directory)."
14
+ },
15
+ "owner": {
16
+ "type": "string",
17
+ "minLength": 1,
18
+ "description": "The operator name (informational; the operator whose PA this envelope belongs to)."
19
+ },
20
+ "updated": {
21
+ "type": "string",
22
+ "format": "date-time",
23
+ "description": "ISO 8601 timestamp of last change."
24
+ },
25
+ "taskTypes": {
26
+ "type": "array",
27
+ "description": "One entry per task type. Order is operator-facing; the CLI preserves it.",
28
+ "items": {
29
+ "type": "object",
30
+ "required": ["id", "label", "state"],
31
+ "additionalProperties": false,
32
+ "properties": {
33
+ "id": {
34
+ "type": "string",
35
+ "pattern": "^[a-z0-9][a-z0-9-]*$",
36
+ "description": "Task-type slug (e.g. li-comment-draft, code-dispatch, git-commit-push)."
37
+ },
38
+ "label": {
39
+ "type": "string",
40
+ "minLength": 1,
41
+ "description": "Human-readable name."
42
+ },
43
+ "state": {
44
+ "type": "string",
45
+ "enum": ["fullyApproved", "checkBeforeCommitting", "needsFullSupervision"],
46
+ "description": "Approval state for this task type."
47
+ },
48
+ "stateSince": {
49
+ "type": "string",
50
+ "format": "date-time",
51
+ "description": "ISO 8601 timestamp of when this state was set."
52
+ },
53
+ "operatorNote": {
54
+ "type": "string",
55
+ "description": "Free-text reason from the operator."
56
+ }
57
+ }
58
+ }
59
+ }
60
+ }
61
+ }
@@ -0,0 +1,114 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "project.json",
4
+ "title": "Project Manifest",
5
+ "description": "A project manifest describing a tracked project.",
6
+ "type": "object",
7
+ "required": ["id", "name", "status", "created"],
8
+ "additionalProperties": false,
9
+ "definitions": {
10
+ "docEntry": {
11
+ "type": "object",
12
+ "required": ["label", "path"],
13
+ "additionalProperties": false,
14
+ "properties": {
15
+ "label": {
16
+ "type": "string",
17
+ "description": "Display label for the document"
18
+ },
19
+ "path": {
20
+ "type": "string",
21
+ "pattern": "^[^/]",
22
+ "description": "Repo-root-relative path to the document. Must NOT start with a leading slash — the file API resolves paths relative to repo root and rejects absolute paths."
23
+ }
24
+ }
25
+ }
26
+ },
27
+ "properties": {
28
+ "id": {
29
+ "type": "string",
30
+ "minLength": 1,
31
+ "description": "Unique project identifier (slug)"
32
+ },
33
+ "number": {
34
+ "type": "integer",
35
+ "minimum": 1,
36
+ "description": "Sequential project number for display"
37
+ },
38
+ "name": {
39
+ "type": "string",
40
+ "minLength": 1,
41
+ "description": "Human-readable project name"
42
+ },
43
+ "category": {
44
+ "type": "string",
45
+ "description": "Project category"
46
+ },
47
+ "status": {
48
+ "type": "string",
49
+ "enum": ["draft", "planned", "in-progress", "blocked", "done", "archived"],
50
+ "description": "Current project status"
51
+ },
52
+ "priority": {
53
+ "type": "integer",
54
+ "minimum": 0,
55
+ "maximum": 3,
56
+ "description": "Priority level: 0 (critical) to 3 (low)"
57
+ },
58
+ "lead": {
59
+ "type": "string",
60
+ "description": "Project lead"
61
+ },
62
+ "owner": {
63
+ "type": "string",
64
+ "description": "Long-term project owner"
65
+ },
66
+ "assignee": {
67
+ "type": "string",
68
+ "description": "Whose move it is right now"
69
+ },
70
+ "executor": {
71
+ "type": "string",
72
+ "description": "Who is executing the project"
73
+ },
74
+ "created": {
75
+ "type": "string",
76
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
77
+ "description": "Creation date in YYYY-MM-DD format"
78
+ },
79
+ "updated": {
80
+ "type": "string",
81
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
82
+ "description": "Last-update date in YYYY-MM-DD format"
83
+ },
84
+ "shipped": {
85
+ "type": ["string", "null"],
86
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
87
+ "description": "Ship date in YYYY-MM-DD format, or null"
88
+ },
89
+ "path": {
90
+ "type": "string",
91
+ "description": "Relative path to the project directory"
92
+ },
93
+ "summary": {
94
+ "type": "string",
95
+ "description": "Brief project summary"
96
+ },
97
+ "docs": {
98
+ "description": "Related documentation. Two shapes are accepted: a flat array of {label, path} entries (legacy), or an object keyed by group name → array of entries (current). The pa CLI writes the grouped shape; the workspace UI renders both.",
99
+ "oneOf": [
100
+ {
101
+ "type": "array",
102
+ "items": { "$ref": "#/definitions/docEntry" }
103
+ },
104
+ {
105
+ "type": "object",
106
+ "additionalProperties": {
107
+ "type": "array",
108
+ "items": { "$ref": "#/definitions/docEntry" }
109
+ }
110
+ }
111
+ ]
112
+ }
113
+ }
114
+ }
@@ -0,0 +1,63 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "Dave Schedule Definition",
4
+ "description": "Defines a recurring scheduled task managed by the Dave scheduler",
5
+ "type": "object",
6
+ "required": ["id", "schedule", "command"],
7
+ "properties": {
8
+ "id": {
9
+ "type": "string",
10
+ "pattern": "^[a-z0-9][a-z0-9-]*[a-z0-9]$",
11
+ "description": "Unique identifier for the schedule. Used in backend naming (com.{agent}.{id}, dave-{id}). Lowercase alphanumeric with hyphens."
12
+ },
13
+ "agent": {
14
+ "type": "string",
15
+ "pattern": "^[a-z0-9][a-z0-9-]*[a-z0-9]$",
16
+ "default": "dave",
17
+ "description": "Agent that owns this schedule. Drives the launchd label prefix (com.{agent}.{id}); other backends are unaffected. Omit for the pre-existing default agent 'dave' — every schedule file without this field keeps producing exactly com.dave.{id}, unchanged."
18
+ },
19
+ "name": {
20
+ "type": "string",
21
+ "description": "Human-readable display name"
22
+ },
23
+ "schedule": {
24
+ "type": "string",
25
+ "pattern": "^[0-9*,/-]+ [0-9*,/-]+ [0-9*,/-]+ [0-9*,/-]+ [0-9*,/-]+$",
26
+ "description": "Cron expression: minute hour day-of-month month day-of-week. This is the universal format -- install.mjs translates to the native backend format."
27
+ },
28
+ "command": {
29
+ "type": "string",
30
+ "description": "Shell command to execute. Runs via bash."
31
+ },
32
+ "workingDirectory": {
33
+ "type": "string",
34
+ "default": "${DAVE_ROOT}",
35
+ "description": "Working directory for the command. Supports ${DAVE_ROOT} variable substitution."
36
+ },
37
+ "enabled": {
38
+ "type": "boolean",
39
+ "default": true,
40
+ "description": "Whether the schedule is active. Disabled schedules are skipped by install.mjs."
41
+ },
42
+ "backend": {
43
+ "type": ["string", "null"],
44
+ "enum": ["cron", "launchd", "systemd", "schtasks", null],
45
+ "default": null,
46
+ "description": "Override the backend for this schedule. Null uses the deployment default from .dave/config.json."
47
+ },
48
+ "description": {
49
+ "type": "string",
50
+ "description": "Human-readable description of what this schedule does"
51
+ },
52
+ "host": {
53
+ "type": "string",
54
+ "description": "Device id or hostname this schedule is pinned to run on, matched against the current machine's hostname (exact, then short-name-before-first-dot) by `scheduler install` and `launch`. A mismatch refuses (exit 2) unless overridden (--force-host for install; DAVE_FORCE_HOST=1 for launch). Omit to skip host verification (data backfill onto existing schedule files is estate-side)."
55
+ },
56
+ "environment": {
57
+ "type": "object",
58
+ "description": "Environment variables to set for the scheduled process. Keys are variable names, values are strings supporting ${DAVE_ROOT}/${HOME}/${USER} substitution. On launchd, injected as EnvironmentVariables (merged over auto-injected PATH/HOME/DAVE_ROOT defaults; explicit keys win). On systemd, emitted as Environment= lines in [Service]. On cron, prepended as VAR='val' inline assignments before the command. On schtasks, emitted as `set VAR=val &&` pairs inside the cmd /c wrapper. WARNING: do NOT set PATH, HOME, or DAVE_ROOT here unless you genuinely need to override the installer's auto-injected values. On launchd in particular, an explicit PATH wins over withLaunchdDefaults() and almost always omits /opt/homebrew/bin, silently breaking brew-installed binaries on Apple Silicon. Use this block only for operator-meaningful keys (API_KEY, LOG_LEVEL, feature flags); leave PATH/HOME/DAVE_ROOT to the installer.",
59
+ "additionalProperties": { "type": "string" }
60
+ }
61
+ },
62
+ "additionalProperties": false
63
+ }
@@ -0,0 +1,92 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "work-item.json",
4
+ "title": "Work Item",
5
+ "description": "A trackable unit of work in the task management system.",
6
+ "type": "object",
7
+ "required": ["id", "title", "status", "owner", "created"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "id": {
11
+ "type": "string",
12
+ "pattern": "^w-\\d{4}-\\d{2}-\\d{2}-\\d{3}$",
13
+ "description": "Work item identifier in the format w-YYYY-MM-DD-NNN"
14
+ },
15
+ "projectId": {
16
+ "type": ["string", "null"],
17
+ "description": "Associated project identifier, or null if standalone"
18
+ },
19
+ "title": {
20
+ "type": "string",
21
+ "minLength": 1,
22
+ "description": "Short descriptive title"
23
+ },
24
+ "category": {
25
+ "type": "string",
26
+ "enum": ["feature", "bug", "chore", "discussion", "research"],
27
+ "description": "Work item category"
28
+ },
29
+ "status": {
30
+ "type": "string",
31
+ "enum": ["draft", "planned", "in-progress", "blocked", "done", "archived"],
32
+ "description": "Current workflow status"
33
+ },
34
+ "priority": {
35
+ "type": "integer",
36
+ "minimum": 0,
37
+ "maximum": 3,
38
+ "description": "Priority level: 0 (critical) to 3 (low)"
39
+ },
40
+ "owner": {
41
+ "type": "string",
42
+ "minLength": 1,
43
+ "description": "Long-term accountability — who owns the outcome"
44
+ },
45
+ "assignee": {
46
+ "type": "string",
47
+ "description": "Whose move it is right now"
48
+ },
49
+ "created": {
50
+ "type": "string",
51
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
52
+ "description": "Creation date in YYYY-MM-DD format"
53
+ },
54
+ "updated": {
55
+ "type": "string",
56
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
57
+ "description": "Last update date in YYYY-MM-DD format"
58
+ },
59
+ "completedAt": {
60
+ "type": ["string", "null"],
61
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
62
+ "description": "Completion date in YYYY-MM-DD format, or null"
63
+ },
64
+ "summary": {
65
+ "type": "string",
66
+ "description": "Longer description of the work item"
67
+ },
68
+ "blocked": {
69
+ "type": ["string", "null"],
70
+ "description": "Description of what is blocking this item, or null"
71
+ },
72
+ "links": {
73
+ "type": "array",
74
+ "items": {
75
+ "type": "object",
76
+ "required": ["label", "path"],
77
+ "additionalProperties": false,
78
+ "properties": {
79
+ "label": {
80
+ "type": "string",
81
+ "description": "Display label for the link"
82
+ },
83
+ "path": {
84
+ "type": "string",
85
+ "description": "Relative path or URL"
86
+ }
87
+ }
88
+ },
89
+ "description": "Related links (docs, specs, PRs, etc.)"
90
+ }
91
+ }
92
+ }
@@ -0,0 +1,30 @@
1
+ // pa-package-name.mjs — canonical name of the published operator-facing bundle.
2
+ //
3
+ // Single source of indirection for runtime references to the package name
4
+ // in user-facing output and in runtime path constructions that resolve
5
+ // inside the installed bundle. Introduced in the `digital-operator-pa-rename`
6
+ // project's Phase 1 (config-constant indirection) so that Phase 2's
7
+ // wholesale rename to `@stravica-ai/digital-operator-pa` is a one-line
8
+ // value flip here rather than a scattered string edit across the CLI
9
+ // surface.
10
+ //
11
+ // Scope of use:
12
+ // - Runtime-printed strings in CLIs (help text, version banners, error
13
+ // messages, log lines) that mention the package by name.
14
+ // - Runtime path constructions that resolve inside the installed bundle
15
+ // (e.g. `node_modules/${PA_PACKAGE_NAME}/bin/<cmd>`,
16
+ // `node_modules/${PA_PACKAGE_NAME}/package.json`).
17
+ //
18
+ // Deliberately NOT sourced from here (each stays literal until Phase 2's
19
+ // wholesale codemod flips them together):
20
+ // - `package.json:name` — canonical self-declaration; changes literally.
21
+ // - `import` / `require` module specifiers — module identifiers change
22
+ // literally in the Phase 2 codemod.
23
+ // - Sub-package identifiers (`@stravica-ai/engineering-pa-cli`,
24
+ // `-core`, `-workspace`, etc.) — separately owned; all flip together.
25
+ // - Markdown docs / READMEs — can't participate in JS indirection;
26
+ // folded into Phase 2's codemod PR.
27
+ // - Historical narrative comments and test assertions — not runtime
28
+ // surfaces; the tests test known-name-is-known-name.
29
+
30
+ export const PA_PACKAGE_NAME = '@stravica-ai/digital-operator-pa';
@@ -0,0 +1,95 @@
1
+ // desk — CLI router
2
+ //
3
+ // Read-only view over the workflow. Walks projects/*/project.json
4
+ // and work/*.json on every invocation. No caching, no state files of
5
+ // its own — source of truth is the repo.
6
+
7
+ import { projectsList, projectShow, workList, workShow, overview, today } from './commands.mjs';
8
+
9
+ const USAGE = `
10
+ desk — task management CLI
11
+
12
+ desk Show overview (default)
13
+ desk overview Show overview
14
+ desk overview --all-teams Include other-team projects
15
+ desk overview --team <identity> Show only one team's projects
16
+ desk today Show everything created/updated today
17
+ desk today --all-teams Include other-team projects
18
+ desk today --team <identity> Show only one team's projects
19
+
20
+ desk projects List active projects
21
+ desk projects --all Include done and archived
22
+ desk projects --all-teams Include other-team projects
23
+ desk projects --team <identity> Show only one team's projects
24
+ desk projects --json Raw JSON output
25
+ desk projects show <id> Show one project
26
+
27
+ desk work List active work items
28
+ desk work --all Include done and archived
29
+ desk work --mine Items assigned to the PA
30
+ desk work --theirs Items assigned to the operator
31
+ desk work --assignee <role> Filter by assignee role (or 'unassigned')
32
+ desk work --status <s> Filter by status
33
+ desk work --project <id> Filter by project
34
+ desk work --category <c> Filter by category
35
+ desk work --owner <role> Filter by owner role
36
+ desk work --json Raw JSON output
37
+ desk work show <id> Show one work item
38
+
39
+ desk -h, --help Show this help
40
+
41
+ States: draft, planned, in-progress, blocked, done, archived
42
+ Categories: feature, bug, chore, discussion, research
43
+ Assignee semantics: owner = long-term accountability; assignee = whose
44
+ move it is right now. "on me" = PA, "on you" = operator.
45
+
46
+ Team scoping: projects are scoped by executor (falling back to assignee)
47
+ against the team-identity set when operator/config/preferences.json sets
48
+ "scopeProjectsToTeam": true. The set is "teamIdentities" (string[], mixed
49
+ agent names and role names, e.g. ["dave", "system-architect"]) when
50
+ present, else [paName]; paName is always a member regardless. With no
51
+ config, every view shows all projects (unchanged pre-scoping behaviour).
52
+ Projects with neither field set are always shown (fail open). --all-teams
53
+ and --team <identity> bypass/override the default on every view that
54
+ lists projects.
55
+
56
+ Source of truth:
57
+ projects/{id}/project.json
58
+ work/{id}.json
59
+
60
+ Exit codes: 0 ok, 1 usage/not-found, 2 internal error.
61
+ `;
62
+
63
+ export async function run(argv) {
64
+ if (!argv.length) return overview([]);
65
+ const cmd = argv[0];
66
+ const rest = argv.slice(1);
67
+
68
+ if (cmd === '-h' || cmd === '--help') {
69
+ console.log(USAGE.trim());
70
+ return 0;
71
+ }
72
+
73
+ if (cmd === 'overview') return overview(rest);
74
+ if (cmd === 'today') return today(rest);
75
+
76
+ if (cmd === 'projects') {
77
+ const sub = rest[0];
78
+ if (sub === 'show') return projectShow(rest.slice(1));
79
+ if (sub === 'list' || sub == null || sub.startsWith('-')) return projectsList(rest[0]?.startsWith('-') ? rest : rest.slice(1));
80
+ console.error(`unknown projects subcommand: ${sub}`);
81
+ return 1;
82
+ }
83
+
84
+ if (cmd === 'work') {
85
+ const sub = rest[0];
86
+ if (sub === 'show') return workShow(rest.slice(1));
87
+ if (sub === 'list' || sub == null || sub.startsWith('-')) return workList(rest[0]?.startsWith('-') ? rest : rest.slice(1));
88
+ console.error(`unknown work subcommand: ${sub}`);
89
+ return 1;
90
+ }
91
+
92
+ console.error(`unknown command: ${cmd}`);
93
+ console.error('Run `desk --help` for usage.');
94
+ return 1;
95
+ }