@hasna/todos 0.11.48 → 0.11.50

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 (581) hide show
  1. package/dist/capabilities.d.ts +32 -0
  2. package/dist/capabilities.d.ts.map +1 -0
  3. package/dist/cli/brains.d.ts +3 -0
  4. package/dist/cli/brains.d.ts.map +1 -0
  5. package/dist/cli/commands/agent-commands.d.ts +3 -0
  6. package/dist/cli/commands/agent-commands.d.ts.map +1 -0
  7. package/dist/cli/commands/agent-reliability-commands.d.ts +3 -0
  8. package/dist/cli/commands/agent-reliability-commands.d.ts.map +1 -0
  9. package/dist/cli/commands/api-key-commands.d.ts +3 -0
  10. package/dist/cli/commands/api-key-commands.d.ts.map +1 -0
  11. package/dist/cli/commands/audit-ledger-commands.d.ts +3 -0
  12. package/dist/cli/commands/audit-ledger-commands.d.ts.map +1 -0
  13. package/dist/cli/commands/capacity-commands.d.ts +3 -0
  14. package/dist/cli/commands/capacity-commands.d.ts.map +1 -0
  15. package/dist/cli/commands/config-serve-commands.d.ts +3 -0
  16. package/dist/cli/commands/config-serve-commands.d.ts.map +1 -0
  17. package/dist/cli/commands/dispatch.d.ts +3 -0
  18. package/dist/cli/commands/dispatch.d.ts.map +1 -0
  19. package/dist/cli/commands/environment-snapshots.d.ts +3 -0
  20. package/dist/cli/commands/environment-snapshots.d.ts.map +1 -0
  21. package/dist/cli/commands/help-commands.d.ts +3 -0
  22. package/dist/cli/commands/help-commands.d.ts.map +1 -0
  23. package/dist/cli/commands/knowledge-commands.d.ts +3 -0
  24. package/dist/cli/commands/knowledge-commands.d.ts.map +1 -0
  25. package/dist/cli/commands/local-backup-commands.d.ts +3 -0
  26. package/dist/cli/commands/local-backup-commands.d.ts.map +1 -0
  27. package/dist/cli/commands/local-snapshot-commands.d.ts +3 -0
  28. package/dist/cli/commands/local-snapshot-commands.d.ts.map +1 -0
  29. package/dist/cli/commands/machines.d.ts +3 -0
  30. package/dist/cli/commands/machines.d.ts.map +1 -0
  31. package/dist/cli/commands/mcp-hooks-commands.d.ts +3 -0
  32. package/dist/cli/commands/mcp-hooks-commands.d.ts.map +1 -0
  33. package/dist/cli/commands/onboarding-commands.d.ts +3 -0
  34. package/dist/cli/commands/onboarding-commands.d.ts.map +1 -0
  35. package/dist/cli/commands/plan-template-commands.d.ts +3 -0
  36. package/dist/cli/commands/plan-template-commands.d.ts.map +1 -0
  37. package/dist/cli/commands/project-commands.d.ts +3 -0
  38. package/dist/cli/commands/project-commands.d.ts.map +1 -0
  39. package/dist/cli/commands/query-commands.d.ts +3 -0
  40. package/dist/cli/commands/query-commands.d.ts.map +1 -0
  41. package/dist/cli/commands/release-compatibility-commands.d.ts +3 -0
  42. package/dist/cli/commands/release-compatibility-commands.d.ts.map +1 -0
  43. package/dist/cli/commands/retrospective-commands.d.ts +3 -0
  44. package/dist/cli/commands/retrospective-commands.d.ts.map +1 -0
  45. package/dist/cli/commands/review-queue-commands.d.ts +3 -0
  46. package/dist/cli/commands/review-queue-commands.d.ts.map +1 -0
  47. package/dist/cli/commands/risk-commands.d.ts +3 -0
  48. package/dist/cli/commands/risk-commands.d.ts.map +1 -0
  49. package/dist/cli/commands/roadmap-commands.d.ts +3 -0
  50. package/dist/cli/commands/roadmap-commands.d.ts.map +1 -0
  51. package/dist/cli/commands/scale-hardening-commands.d.ts +3 -0
  52. package/dist/cli/commands/scale-hardening-commands.d.ts.map +1 -0
  53. package/dist/cli/commands/sdk-fixture-commands.d.ts +3 -0
  54. package/dist/cli/commands/sdk-fixture-commands.d.ts.map +1 -0
  55. package/dist/cli/commands/task-commands.d.ts +3 -0
  56. package/dist/cli/commands/task-commands.d.ts.map +1 -0
  57. package/dist/cli/commands/usage-ledger-commands.d.ts +3 -0
  58. package/dist/cli/commands/usage-ledger-commands.d.ts.map +1 -0
  59. package/dist/cli/components/App.d.ts +2 -0
  60. package/dist/cli/components/App.d.ts.map +1 -0
  61. package/dist/cli/components/Dashboard.d.ts +9 -0
  62. package/dist/cli/components/Dashboard.d.ts.map +1 -0
  63. package/dist/cli/components/Header.d.ts +8 -0
  64. package/dist/cli/components/Header.d.ts.map +1 -0
  65. package/dist/cli/components/ProjectList.d.ts +8 -0
  66. package/dist/cli/components/ProjectList.d.ts.map +1 -0
  67. package/dist/cli/components/SearchView.d.ts +10 -0
  68. package/dist/cli/components/SearchView.d.ts.map +1 -0
  69. package/dist/cli/components/TaskDetail.d.ts +7 -0
  70. package/dist/cli/components/TaskDetail.d.ts.map +1 -0
  71. package/dist/cli/components/TaskForm.d.ts +15 -0
  72. package/dist/cli/components/TaskForm.d.ts.map +1 -0
  73. package/dist/cli/components/TaskList.d.ts +8 -0
  74. package/dist/cli/components/TaskList.d.ts.map +1 -0
  75. package/dist/cli/helpers.d.ts +22 -0
  76. package/dist/cli/helpers.d.ts.map +1 -0
  77. package/dist/cli/index.d.ts +3 -0
  78. package/dist/cli/index.d.ts.map +1 -0
  79. package/dist/cli/index.js +252 -28
  80. package/dist/cli-mcp-parity.d.ts +41 -0
  81. package/dist/cli-mcp-parity.d.ts.map +1 -0
  82. package/dist/contracts.d.ts +87 -0
  83. package/dist/contracts.d.ts.map +1 -0
  84. package/dist/contracts.js +18702 -0
  85. package/dist/db/agent-metrics.d.ts +135 -0
  86. package/dist/db/agent-metrics.d.ts.map +1 -0
  87. package/dist/db/agent-names.d.ts +24 -0
  88. package/dist/db/agent-names.d.ts.map +1 -0
  89. package/dist/db/agents.d.ts +84 -0
  90. package/dist/db/agents.d.ts.map +1 -0
  91. package/dist/db/api-keys.d.ts +28 -0
  92. package/dist/db/api-keys.d.ts.map +1 -0
  93. package/dist/db/artifacts.d.ts +60 -0
  94. package/dist/db/artifacts.d.ts.map +1 -0
  95. package/dist/db/audit.d.ts +52 -0
  96. package/dist/db/audit.d.ts.map +1 -0
  97. package/dist/db/boards.d.ts +56 -0
  98. package/dist/db/boards.d.ts.map +1 -0
  99. package/dist/db/budgets.d.ts +27 -0
  100. package/dist/db/budgets.d.ts.map +1 -0
  101. package/dist/db/builtin-templates.d.ts +41 -0
  102. package/dist/db/builtin-templates.d.ts.map +1 -0
  103. package/dist/db/calendar.d.ts +52 -0
  104. package/dist/db/calendar.d.ts.map +1 -0
  105. package/dist/db/checklists.d.ts +13 -0
  106. package/dist/db/checklists.d.ts.map +1 -0
  107. package/dist/db/checkpoints.d.ts +55 -0
  108. package/dist/db/checkpoints.d.ts.map +1 -0
  109. package/dist/db/comments.d.ts +11 -0
  110. package/dist/db/comments.d.ts.map +1 -0
  111. package/dist/db/custom-fields.d.ts +43 -0
  112. package/dist/db/custom-fields.d.ts.map +1 -0
  113. package/dist/db/cycles.d.ts +78 -0
  114. package/dist/db/cycles.d.ts.map +1 -0
  115. package/dist/db/database.d.ts +13 -0
  116. package/dist/db/database.d.ts.map +1 -0
  117. package/dist/db/dispatches.d.ts +15 -0
  118. package/dist/db/dispatches.d.ts.map +1 -0
  119. package/dist/db/file-locks.d.ts +43 -0
  120. package/dist/db/file-locks.d.ts.map +1 -0
  121. package/dist/db/handoffs.d.ts +76 -0
  122. package/dist/db/handoffs.d.ts.map +1 -0
  123. package/dist/db/inbox.d.ts +47 -0
  124. package/dist/db/inbox.d.ts.map +1 -0
  125. package/dist/db/kg.d.ts +70 -0
  126. package/dist/db/kg.d.ts.map +1 -0
  127. package/dist/db/labels.d.ts +30 -0
  128. package/dist/db/labels.d.ts.map +1 -0
  129. package/dist/db/locks.d.ts +14 -0
  130. package/dist/db/locks.d.ts.map +1 -0
  131. package/dist/db/machines.d.ts +59 -0
  132. package/dist/db/machines.d.ts.map +1 -0
  133. package/dist/db/migrations.d.ts +2 -0
  134. package/dist/db/migrations.d.ts.map +1 -0
  135. package/dist/db/orgs.d.ts +13 -0
  136. package/dist/db/orgs.d.ts.map +1 -0
  137. package/dist/db/patrol.d.ts +35 -0
  138. package/dist/db/patrol.d.ts.map +1 -0
  139. package/dist/db/plans.d.ts +8 -0
  140. package/dist/db/plans.d.ts.map +1 -0
  141. package/dist/db/project-agent-roles.d.ts +34 -0
  142. package/dist/db/project-agent-roles.d.ts.map +1 -0
  143. package/dist/db/project-knowledge.d.ts +88 -0
  144. package/dist/db/project-knowledge.d.ts.map +1 -0
  145. package/dist/db/project-risks.d.ts +139 -0
  146. package/dist/db/project-risks.d.ts.map +1 -0
  147. package/dist/db/projects.d.ts +54 -0
  148. package/dist/db/projects.d.ts.map +1 -0
  149. package/dist/db/retrospectives.d.ts +98 -0
  150. package/dist/db/retrospectives.d.ts.map +1 -0
  151. package/dist/db/schema.d.ts +5 -0
  152. package/dist/db/schema.d.ts.map +1 -0
  153. package/dist/db/sessions.d.ts +8 -0
  154. package/dist/db/sessions.d.ts.map +1 -0
  155. package/dist/db/snapshots.d.ts +37 -0
  156. package/dist/db/snapshots.d.ts.map +1 -0
  157. package/dist/db/task-claim.d.ts +7 -0
  158. package/dist/db/task-claim.d.ts.map +1 -0
  159. package/dist/db/task-commits.d.ts +106 -0
  160. package/dist/db/task-commits.d.ts.map +1 -0
  161. package/dist/db/task-crud.d.ts +13 -0
  162. package/dist/db/task-crud.d.ts.map +1 -0
  163. package/dist/db/task-files.d.ts +74 -0
  164. package/dist/db/task-files.d.ts.map +1 -0
  165. package/dist/db/task-graph.d.ts +27 -0
  166. package/dist/db/task-graph.d.ts.map +1 -0
  167. package/dist/db/task-lifecycle.d.ts +96 -0
  168. package/dist/db/task-lifecycle.d.ts.map +1 -0
  169. package/dist/db/task-lists.d.ts +10 -0
  170. package/dist/db/task-lists.d.ts.map +1 -0
  171. package/dist/db/task-relations.d.ts +170 -0
  172. package/dist/db/task-relations.d.ts.map +1 -0
  173. package/dist/db/task-relationships.d.ts +36 -0
  174. package/dist/db/task-relationships.d.ts.map +1 -0
  175. package/dist/db/task-runs.d.ts +133 -0
  176. package/dist/db/task-runs.d.ts.map +1 -0
  177. package/dist/db/task-status.d.ts +65 -0
  178. package/dist/db/task-status.d.ts.map +1 -0
  179. package/dist/db/task-workflow.d.ts +7 -0
  180. package/dist/db/task-workflow.d.ts.map +1 -0
  181. package/dist/db/tasks.d.ts +15 -0
  182. package/dist/db/tasks.d.ts.map +1 -0
  183. package/dist/db/templates.d.ts +98 -0
  184. package/dist/db/templates.d.ts.map +1 -0
  185. package/dist/db/traces.d.ts +38 -0
  186. package/dist/db/traces.d.ts.map +1 -0
  187. package/dist/db/webhooks.d.ts +29 -0
  188. package/dist/db/webhooks.d.ts.map +1 -0
  189. package/dist/index.d.ts +312 -0
  190. package/dist/index.d.ts.map +1 -0
  191. package/dist/index.js +40510 -0
  192. package/dist/json-contracts.d.ts +56 -0
  193. package/dist/json-contracts.d.ts.map +1 -0
  194. package/dist/lib/access-profiles.d.ts +27 -0
  195. package/dist/lib/access-profiles.d.ts.map +1 -0
  196. package/dist/lib/activity-audit.d.ts +67 -0
  197. package/dist/lib/activity-audit.d.ts.map +1 -0
  198. package/dist/lib/activity-timeline.d.ts +43 -0
  199. package/dist/lib/activity-timeline.d.ts.map +1 -0
  200. package/dist/lib/agent-adapter-docs.d.ts +71 -0
  201. package/dist/lib/agent-adapter-docs.d.ts.map +1 -0
  202. package/dist/lib/agent-coordination.d.ts +52 -0
  203. package/dist/lib/agent-coordination.d.ts.map +1 -0
  204. package/dist/lib/agent-replay-simulator.d.ts +66 -0
  205. package/dist/lib/agent-replay-simulator.d.ts.map +1 -0
  206. package/dist/lib/agent-run-dispatcher.d.ts +114 -0
  207. package/dist/lib/agent-run-dispatcher.d.ts.map +1 -0
  208. package/dist/lib/agent-tasks.d.ts +11 -0
  209. package/dist/lib/agent-tasks.d.ts.map +1 -0
  210. package/dist/lib/agent-workflow-demo.d.ts +87 -0
  211. package/dist/lib/agent-workflow-demo.d.ts.map +1 -0
  212. package/dist/lib/approval-gates.d.ts +52 -0
  213. package/dist/lib/approval-gates.d.ts.map +1 -0
  214. package/dist/lib/artifact-store.d.ts +125 -0
  215. package/dist/lib/artifact-store.d.ts.map +1 -0
  216. package/dist/lib/audit-ledger.d.ts +59 -0
  217. package/dist/lib/audit-ledger.d.ts.map +1 -0
  218. package/dist/lib/auto-assign.d.ts +23 -0
  219. package/dist/lib/auto-assign.d.ts.map +1 -0
  220. package/dist/lib/branch-work-plans.d.ts +46 -0
  221. package/dist/lib/branch-work-plans.d.ts.map +1 -0
  222. package/dist/lib/burndown.d.ts +18 -0
  223. package/dist/lib/burndown.d.ts.map +1 -0
  224. package/dist/lib/capacity-forecasts.d.ts +70 -0
  225. package/dist/lib/capacity-forecasts.d.ts.map +1 -0
  226. package/dist/lib/claude-tasks.d.ts +20 -0
  227. package/dist/lib/claude-tasks.d.ts.map +1 -0
  228. package/dist/lib/cli-completions.d.ts +9 -0
  229. package/dist/lib/cli-completions.d.ts.map +1 -0
  230. package/dist/lib/cli-help.d.ts +38 -0
  231. package/dist/lib/cli-help.d.ts.map +1 -0
  232. package/dist/lib/cli-manpage.d.ts +7 -0
  233. package/dist/lib/cli-manpage.d.ts.map +1 -0
  234. package/dist/lib/cli-mcp-parity.d.ts +40 -0
  235. package/dist/lib/cli-mcp-parity.d.ts.map +1 -0
  236. package/dist/lib/cli-reference.d.ts +46 -0
  237. package/dist/lib/cli-reference.d.ts.map +1 -0
  238. package/dist/lib/command-aliases.d.ts +60 -0
  239. package/dist/lib/command-aliases.d.ts.map +1 -0
  240. package/dist/lib/completion-guard.d.ts +17 -0
  241. package/dist/lib/completion-guard.d.ts.map +1 -0
  242. package/dist/lib/config.d.ts +410 -0
  243. package/dist/lib/config.d.ts.map +1 -0
  244. package/dist/lib/context-packs.d.ts +163 -0
  245. package/dist/lib/context-packs.d.ts.map +1 -0
  246. package/dist/lib/db-backup.d.ts +40 -0
  247. package/dist/lib/db-backup.d.ts.map +1 -0
  248. package/dist/lib/decision-records.d.ts +153 -0
  249. package/dist/lib/decision-records.d.ts.map +1 -0
  250. package/dist/lib/dependency-graph.d.ts +73 -0
  251. package/dist/lib/dependency-graph.d.ts.map +1 -0
  252. package/dist/lib/dispatch-formatter.d.ts +21 -0
  253. package/dist/lib/dispatch-formatter.d.ts.map +1 -0
  254. package/dist/lib/dispatch.d.ts +28 -0
  255. package/dist/lib/dispatch.d.ts.map +1 -0
  256. package/dist/lib/doctor.d.ts +46 -0
  257. package/dist/lib/doctor.d.ts.map +1 -0
  258. package/dist/lib/environment-snapshots.d.ts +111 -0
  259. package/dist/lib/environment-snapshots.d.ts.map +1 -0
  260. package/dist/lib/event-hooks.d.ts +58 -0
  261. package/dist/lib/event-hooks.d.ts.map +1 -0
  262. package/dist/lib/external-issue-importers.d.ts +60 -0
  263. package/dist/lib/external-issue-importers.d.ts.map +1 -0
  264. package/dist/lib/extract.d.ts +108 -0
  265. package/dist/lib/extract.d.ts.map +1 -0
  266. package/dist/lib/failure-triage.d.ts +64 -0
  267. package/dist/lib/failure-triage.d.ts.map +1 -0
  268. package/dist/lib/feature-manifest.d.ts +100 -0
  269. package/dist/lib/feature-manifest.d.ts.map +1 -0
  270. package/dist/lib/gatherer.d.ts +16 -0
  271. package/dist/lib/gatherer.d.ts.map +1 -0
  272. package/dist/lib/git-traceability.d.ts +43 -0
  273. package/dist/lib/git-traceability.d.ts.map +1 -0
  274. package/dist/lib/github.d.ts +25 -0
  275. package/dist/lib/github.d.ts.map +1 -0
  276. package/dist/lib/goal-workflow.d.ts +86 -0
  277. package/dist/lib/goal-workflow.d.ts.map +1 -0
  278. package/dist/lib/handoff-packets.d.ts +74 -0
  279. package/dist/lib/handoff-packets.d.ts.map +1 -0
  280. package/dist/lib/headless-boundaries.d.ts +30 -0
  281. package/dist/lib/headless-boundaries.d.ts.map +1 -0
  282. package/dist/lib/import-export-bridge.d.ts +91 -0
  283. package/dist/lib/import-export-bridge.d.ts.map +1 -0
  284. package/dist/lib/inbox-intake.d.ts +73 -0
  285. package/dist/lib/inbox-intake.d.ts.map +1 -0
  286. package/dist/lib/issue-importers.d.ts +78 -0
  287. package/dist/lib/issue-importers.d.ts.map +1 -0
  288. package/dist/lib/json-schemas.d.ts +66 -0
  289. package/dist/lib/json-schemas.d.ts.map +1 -0
  290. package/dist/lib/local-backups.d.ts +129 -0
  291. package/dist/lib/local-backups.d.ts.map +1 -0
  292. package/dist/lib/local-bridge.d.ts +81 -0
  293. package/dist/lib/local-bridge.d.ts.map +1 -0
  294. package/dist/lib/local-encryption.d.ts +105 -0
  295. package/dist/lib/local-encryption.d.ts.map +1 -0
  296. package/dist/lib/local-extensions.d.ts +92 -0
  297. package/dist/lib/local-extensions.d.ts.map +1 -0
  298. package/dist/lib/local-fields.d.ts +33 -0
  299. package/dist/lib/local-fields.d.ts.map +1 -0
  300. package/dist/lib/local-notifications.d.ts +55 -0
  301. package/dist/lib/local-notifications.d.ts.map +1 -0
  302. package/dist/lib/local-reports.d.ts +149 -0
  303. package/dist/lib/local-reports.d.ts.map +1 -0
  304. package/dist/lib/local-snapshots.d.ts +66 -0
  305. package/dist/lib/local-snapshots.d.ts.map +1 -0
  306. package/dist/lib/logger.d.ts +11 -0
  307. package/dist/lib/logger.d.ts.map +1 -0
  308. package/dist/lib/machine-topology.d.ts +59 -0
  309. package/dist/lib/machine-topology.d.ts.map +1 -0
  310. package/dist/lib/mention-resolver.d.ts +43 -0
  311. package/dist/lib/mention-resolver.d.ts.map +1 -0
  312. package/dist/lib/model-config.d.ts +14 -0
  313. package/dist/lib/model-config.d.ts.map +1 -0
  314. package/dist/lib/natural-language-intake.d.ts +56 -0
  315. package/dist/lib/natural-language-intake.d.ts.map +1 -0
  316. package/dist/lib/nl-intake.d.ts +61 -0
  317. package/dist/lib/nl-intake.d.ts.map +1 -0
  318. package/dist/lib/north-star.d.ts +33 -0
  319. package/dist/lib/north-star.d.ts.map +1 -0
  320. package/dist/lib/notification-reminders.d.ts +107 -0
  321. package/dist/lib/notification-reminders.d.ts.map +1 -0
  322. package/dist/lib/onboarding-fixtures.d.ts +31 -0
  323. package/dist/lib/onboarding-fixtures.d.ts.map +1 -0
  324. package/dist/lib/package-version.d.ts +2 -0
  325. package/dist/lib/package-version.d.ts.map +1 -0
  326. package/dist/lib/plan-execution.d.ts +71 -0
  327. package/dist/lib/plan-execution.d.ts.map +1 -0
  328. package/dist/lib/policy-packs.d.ts +87 -0
  329. package/dist/lib/policy-packs.d.ts.map +1 -0
  330. package/dist/lib/project-bootstrap.d.ts +35 -0
  331. package/dist/lib/project-bootstrap.d.ts.map +1 -0
  332. package/dist/lib/public-release-gate.d.ts +57 -0
  333. package/dist/lib/public-release-gate.d.ts.map +1 -0
  334. package/dist/lib/recurrence.d.ts +10 -0
  335. package/dist/lib/recurrence.d.ts.map +1 -0
  336. package/dist/lib/redaction.d.ts +12 -0
  337. package/dist/lib/redaction.d.ts.map +1 -0
  338. package/dist/lib/release-checks.d.ts +34 -0
  339. package/dist/lib/release-checks.d.ts.map +1 -0
  340. package/dist/lib/release-compatibility.d.ts +59 -0
  341. package/dist/lib/release-compatibility.d.ts.map +1 -0
  342. package/dist/lib/release-notes.d.ts +81 -0
  343. package/dist/lib/release-notes.d.ts.map +1 -0
  344. package/dist/lib/report-exports.d.ts +49 -0
  345. package/dist/lib/report-exports.d.ts.map +1 -0
  346. package/dist/lib/resource-snapshots.d.ts +37 -0
  347. package/dist/lib/resource-snapshots.d.ts.map +1 -0
  348. package/dist/lib/retention-cleanup.d.ts +63 -0
  349. package/dist/lib/retention-cleanup.d.ts.map +1 -0
  350. package/dist/lib/review-queues.d.ts +98 -0
  351. package/dist/lib/review-queues.d.ts.map +1 -0
  352. package/dist/lib/roadmaps.d.ts +133 -0
  353. package/dist/lib/roadmaps.d.ts.map +1 -0
  354. package/dist/lib/run-records.d.ts +94 -0
  355. package/dist/lib/run-records.d.ts.map +1 -0
  356. package/dist/lib/runner-sandbox.d.ts +50 -0
  357. package/dist/lib/runner-sandbox.d.ts.map +1 -0
  358. package/dist/lib/sandbox-profiles.d.ts +33 -0
  359. package/dist/lib/sandbox-profiles.d.ts.map +1 -0
  360. package/dist/lib/saved-search-views.d.ts +60 -0
  361. package/dist/lib/saved-search-views.d.ts.map +1 -0
  362. package/dist/lib/saved-views.d.ts +53 -0
  363. package/dist/lib/saved-views.d.ts.map +1 -0
  364. package/dist/lib/scale-hardening.d.ts +74 -0
  365. package/dist/lib/scale-hardening.d.ts.map +1 -0
  366. package/dist/lib/sdk-integration-fixtures.d.ts +65 -0
  367. package/dist/lib/sdk-integration-fixtures.d.ts.map +1 -0
  368. package/dist/lib/search.d.ts +17 -0
  369. package/dist/lib/search.d.ts.map +1 -0
  370. package/dist/lib/secret-redaction.d.ts +45 -0
  371. package/dist/lib/secret-redaction.d.ts.map +1 -0
  372. package/dist/lib/sync-types.d.ts +16 -0
  373. package/dist/lib/sync-types.d.ts.map +1 -0
  374. package/dist/lib/sync-utils.d.ts +14 -0
  375. package/dist/lib/sync-utils.d.ts.map +1 -0
  376. package/dist/lib/sync.d.ts +9 -0
  377. package/dist/lib/sync.d.ts.map +1 -0
  378. package/dist/lib/task-contracts.d.ts +75 -0
  379. package/dist/lib/task-contracts.d.ts.map +1 -0
  380. package/dist/lib/task-dedupe.d.ts +46 -0
  381. package/dist/lib/task-dedupe.d.ts.map +1 -0
  382. package/dist/lib/task-runner.d.ts +101 -0
  383. package/dist/lib/task-runner.d.ts.map +1 -0
  384. package/dist/lib/task-scheduling.d.ts +69 -0
  385. package/dist/lib/task-scheduling.d.ts.map +1 -0
  386. package/dist/lib/template-library.d.ts +47 -0
  387. package/dist/lib/template-library.d.ts.map +1 -0
  388. package/dist/lib/terminal-notifications.d.ts +53 -0
  389. package/dist/lib/terminal-notifications.d.ts.map +1 -0
  390. package/dist/lib/tmux.d.ts +28 -0
  391. package/dist/lib/tmux.d.ts.map +1 -0
  392. package/dist/lib/todos-md.d.ts +21 -0
  393. package/dist/lib/todos-md.d.ts.map +1 -0
  394. package/dist/lib/tui-dashboard.d.ts +49 -0
  395. package/dist/lib/tui-dashboard.d.ts.map +1 -0
  396. package/dist/lib/usage-ledger.d.ts +82 -0
  397. package/dist/lib/usage-ledger.d.ts.map +1 -0
  398. package/dist/lib/user-scaffolds.d.ts +73 -0
  399. package/dist/lib/user-scaffolds.d.ts.map +1 -0
  400. package/dist/lib/verification-evidence.d.ts +93 -0
  401. package/dist/lib/verification-evidence.d.ts.map +1 -0
  402. package/dist/lib/verification-providers.d.ts +76 -0
  403. package/dist/lib/verification-providers.d.ts.map +1 -0
  404. package/dist/lib/workflow-prompts.d.ts +38 -0
  405. package/dist/lib/workflow-prompts.d.ts.map +1 -0
  406. package/dist/lib/workflow-states.d.ts +70 -0
  407. package/dist/lib/workflow-states.d.ts.map +1 -0
  408. package/dist/lib/workspace-trust.d.ts +38 -0
  409. package/dist/lib/workspace-trust.d.ts.map +1 -0
  410. package/dist/mcp/http.d.ts +13 -0
  411. package/dist/mcp/http.d.ts.map +1 -0
  412. package/dist/mcp/index.d.ts +5 -0
  413. package/dist/mcp/index.d.ts.map +1 -0
  414. package/dist/mcp/index.js +48 -22
  415. package/dist/mcp/token-utils.d.ts +15 -0
  416. package/dist/mcp/token-utils.d.ts.map +1 -0
  417. package/dist/mcp/tools/access-profiles.d.ts +8 -0
  418. package/dist/mcp/tools/access-profiles.d.ts.map +1 -0
  419. package/dist/mcp/tools/activity-audit.d.ts +9 -0
  420. package/dist/mcp/tools/activity-audit.d.ts.map +1 -0
  421. package/dist/mcp/tools/agent-adapter-docs.d.ts +8 -0
  422. package/dist/mcp/tools/agent-adapter-docs.d.ts.map +1 -0
  423. package/dist/mcp/tools/agent-coordination.d.ts +9 -0
  424. package/dist/mcp/tools/agent-coordination.d.ts.map +1 -0
  425. package/dist/mcp/tools/agent-runs.d.ts +9 -0
  426. package/dist/mcp/tools/agent-runs.d.ts.map +1 -0
  427. package/dist/mcp/tools/agent-workflow-demo.d.ts +8 -0
  428. package/dist/mcp/tools/agent-workflow-demo.d.ts.map +1 -0
  429. package/dist/mcp/tools/agents.d.ts +16 -0
  430. package/dist/mcp/tools/agents.d.ts.map +1 -0
  431. package/dist/mcp/tools/approval-gates.d.ts +9 -0
  432. package/dist/mcp/tools/approval-gates.d.ts.map +1 -0
  433. package/dist/mcp/tools/artifacts.d.ts +9 -0
  434. package/dist/mcp/tools/artifacts.d.ts.map +1 -0
  435. package/dist/mcp/tools/branch-work-plans.d.ts +8 -0
  436. package/dist/mcp/tools/branch-work-plans.d.ts.map +1 -0
  437. package/dist/mcp/tools/cli-docs.d.ts +8 -0
  438. package/dist/mcp/tools/cli-docs.d.ts.map +1 -0
  439. package/dist/mcp/tools/code-tools.d.ts +15 -0
  440. package/dist/mcp/tools/code-tools.d.ts.map +1 -0
  441. package/dist/mcp/tools/command-aliases.d.ts +8 -0
  442. package/dist/mcp/tools/command-aliases.d.ts.map +1 -0
  443. package/dist/mcp/tools/context-packs.d.ts +9 -0
  444. package/dist/mcp/tools/context-packs.d.ts.map +1 -0
  445. package/dist/mcp/tools/crypto.d.ts +8 -0
  446. package/dist/mcp/tools/crypto.d.ts.map +1 -0
  447. package/dist/mcp/tools/db-backup.d.ts +8 -0
  448. package/dist/mcp/tools/db-backup.d.ts.map +1 -0
  449. package/dist/mcp/tools/decision-records.d.ts +9 -0
  450. package/dist/mcp/tools/decision-records.d.ts.map +1 -0
  451. package/dist/mcp/tools/dependency-graph.d.ts +9 -0
  452. package/dist/mcp/tools/dependency-graph.d.ts.map +1 -0
  453. package/dist/mcp/tools/dispatch.d.ts +9 -0
  454. package/dist/mcp/tools/dispatch.d.ts.map +1 -0
  455. package/dist/mcp/tools/environment-snapshots.d.ts +8 -0
  456. package/dist/mcp/tools/environment-snapshots.d.ts.map +1 -0
  457. package/dist/mcp/tools/failure-triage.d.ts +9 -0
  458. package/dist/mcp/tools/failure-triage.d.ts.map +1 -0
  459. package/dist/mcp/tools/feature-manifest.d.ts +8 -0
  460. package/dist/mcp/tools/feature-manifest.d.ts.map +1 -0
  461. package/dist/mcp/tools/git-traceability.d.ts +9 -0
  462. package/dist/mcp/tools/git-traceability.d.ts.map +1 -0
  463. package/dist/mcp/tools/goal.d.ts +9 -0
  464. package/dist/mcp/tools/goal.d.ts.map +1 -0
  465. package/dist/mcp/tools/handoff-packets.d.ts +9 -0
  466. package/dist/mcp/tools/handoff-packets.d.ts.map +1 -0
  467. package/dist/mcp/tools/import-export-bridge.d.ts +9 -0
  468. package/dist/mcp/tools/import-export-bridge.d.ts.map +1 -0
  469. package/dist/mcp/tools/inbox-intake.d.ts +9 -0
  470. package/dist/mcp/tools/inbox-intake.d.ts.map +1 -0
  471. package/dist/mcp/tools/issue-importers.d.ts +9 -0
  472. package/dist/mcp/tools/issue-importers.d.ts.map +1 -0
  473. package/dist/mcp/tools/json-schemas.d.ts +8 -0
  474. package/dist/mcp/tools/json-schemas.d.ts.map +1 -0
  475. package/dist/mcp/tools/machine-topology.d.ts +8 -0
  476. package/dist/mcp/tools/machine-topology.d.ts.map +1 -0
  477. package/dist/mcp/tools/machines.d.ts +8 -0
  478. package/dist/mcp/tools/machines.d.ts.map +1 -0
  479. package/dist/mcp/tools/mention-resolver.d.ts +9 -0
  480. package/dist/mcp/tools/mention-resolver.d.ts.map +1 -0
  481. package/dist/mcp/tools/nl-intake.d.ts +9 -0
  482. package/dist/mcp/tools/nl-intake.d.ts.map +1 -0
  483. package/dist/mcp/tools/notification-reminders.d.ts +9 -0
  484. package/dist/mcp/tools/notification-reminders.d.ts.map +1 -0
  485. package/dist/mcp/tools/parity.d.ts +8 -0
  486. package/dist/mcp/tools/parity.d.ts.map +1 -0
  487. package/dist/mcp/tools/plan-execution.d.ts +9 -0
  488. package/dist/mcp/tools/plan-execution.d.ts.map +1 -0
  489. package/dist/mcp/tools/policy-packs.d.ts +9 -0
  490. package/dist/mcp/tools/policy-packs.d.ts.map +1 -0
  491. package/dist/mcp/tools/project-bootstrap.d.ts +8 -0
  492. package/dist/mcp/tools/project-bootstrap.d.ts.map +1 -0
  493. package/dist/mcp/tools/release-checks.d.ts +8 -0
  494. package/dist/mcp/tools/release-checks.d.ts.map +1 -0
  495. package/dist/mcp/tools/release-notes.d.ts +9 -0
  496. package/dist/mcp/tools/release-notes.d.ts.map +1 -0
  497. package/dist/mcp/tools/report-exports.d.ts +9 -0
  498. package/dist/mcp/tools/report-exports.d.ts.map +1 -0
  499. package/dist/mcp/tools/resource-subscriptions.d.ts +8 -0
  500. package/dist/mcp/tools/resource-subscriptions.d.ts.map +1 -0
  501. package/dist/mcp/tools/run-records.d.ts +9 -0
  502. package/dist/mcp/tools/run-records.d.ts.map +1 -0
  503. package/dist/mcp/tools/sandbox.d.ts +8 -0
  504. package/dist/mcp/tools/sandbox.d.ts.map +1 -0
  505. package/dist/mcp/tools/saved-views.d.ts +9 -0
  506. package/dist/mcp/tools/saved-views.d.ts.map +1 -0
  507. package/dist/mcp/tools/secret-redaction.d.ts +8 -0
  508. package/dist/mcp/tools/secret-redaction.d.ts.map +1 -0
  509. package/dist/mcp/tools/task-adv-tools.d.ts +20 -0
  510. package/dist/mcp/tools/task-adv-tools.d.ts.map +1 -0
  511. package/dist/mcp/tools/task-auto-tools.d.ts +20 -0
  512. package/dist/mcp/tools/task-auto-tools.d.ts.map +1 -0
  513. package/dist/mcp/tools/task-crud.d.ts +20 -0
  514. package/dist/mcp/tools/task-crud.d.ts.map +1 -0
  515. package/dist/mcp/tools/task-dedupe.d.ts +9 -0
  516. package/dist/mcp/tools/task-dedupe.d.ts.map +1 -0
  517. package/dist/mcp/tools/task-meta-tools.d.ts +12 -0
  518. package/dist/mcp/tools/task-meta-tools.d.ts.map +1 -0
  519. package/dist/mcp/tools/task-project-tools.d.ts +20 -0
  520. package/dist/mcp/tools/task-project-tools.d.ts.map +1 -0
  521. package/dist/mcp/tools/task-rel-tools.d.ts +19 -0
  522. package/dist/mcp/tools/task-rel-tools.d.ts.map +1 -0
  523. package/dist/mcp/tools/task-resources.d.ts +13 -0
  524. package/dist/mcp/tools/task-resources.d.ts.map +1 -0
  525. package/dist/mcp/tools/task-scheduling.d.ts +9 -0
  526. package/dist/mcp/tools/task-scheduling.d.ts.map +1 -0
  527. package/dist/mcp/tools/task-workflow-tools.d.ts +20 -0
  528. package/dist/mcp/tools/task-workflow-tools.d.ts.map +1 -0
  529. package/dist/mcp/tools/template-library.d.ts +8 -0
  530. package/dist/mcp/tools/template-library.d.ts.map +1 -0
  531. package/dist/mcp/tools/templates.d.ts +9 -0
  532. package/dist/mcp/tools/templates.d.ts.map +1 -0
  533. package/dist/mcp/tools/terminal-notifications.d.ts +9 -0
  534. package/dist/mcp/tools/terminal-notifications.d.ts.map +1 -0
  535. package/dist/mcp/tools/todos-md.d.ts +8 -0
  536. package/dist/mcp/tools/todos-md.d.ts.map +1 -0
  537. package/dist/mcp/tools/user-scaffolds.d.ts +8 -0
  538. package/dist/mcp/tools/user-scaffolds.d.ts.map +1 -0
  539. package/dist/mcp/tools/verification.d.ts +9 -0
  540. package/dist/mcp/tools/verification.d.ts.map +1 -0
  541. package/dist/mcp/tools/webhooks.d.ts +8 -0
  542. package/dist/mcp/tools/webhooks.d.ts.map +1 -0
  543. package/dist/mcp/tools/workflow-prompts.d.ts +3 -0
  544. package/dist/mcp/tools/workflow-prompts.d.ts.map +1 -0
  545. package/dist/mcp/tools/workspace-trust.d.ts +8 -0
  546. package/dist/mcp/tools/workspace-trust.d.ts.map +1 -0
  547. package/dist/mcp.d.ts +42 -0
  548. package/dist/mcp.d.ts.map +1 -0
  549. package/dist/mcp.js +555 -0
  550. package/dist/registry.d.ts +35 -0
  551. package/dist/registry.d.ts.map +1 -0
  552. package/dist/registry.js +18875 -0
  553. package/dist/sdk/client.d.ts +383 -0
  554. package/dist/sdk/client.d.ts.map +1 -0
  555. package/dist/sdk/index.d.ts +14 -0
  556. package/dist/sdk/index.d.ts.map +1 -0
  557. package/dist/sdk/types.d.ts +198 -0
  558. package/dist/sdk/types.d.ts.map +1 -0
  559. package/dist/sdk.d.ts +19 -0
  560. package/dist/sdk.d.ts.map +1 -0
  561. package/dist/server/index.d.ts +9 -0
  562. package/dist/server/index.d.ts.map +1 -0
  563. package/dist/server/index.js +48 -22
  564. package/dist/server/routes.d.ts +86 -0
  565. package/dist/server/routes.d.ts.map +1 -0
  566. package/dist/server/serve.d.ts +39 -0
  567. package/dist/server/serve.d.ts.map +1 -0
  568. package/dist/storage/index.d.ts +4 -0
  569. package/dist/storage/index.d.ts.map +1 -0
  570. package/dist/storage/interfaces.d.ts +185 -0
  571. package/dist/storage/interfaces.d.ts.map +1 -0
  572. package/dist/storage/local-sqlite.d.ts +7 -0
  573. package/dist/storage/local-sqlite.d.ts.map +1 -0
  574. package/dist/storage.d.ts +4 -0
  575. package/dist/storage.d.ts.map +1 -0
  576. package/dist/storage.js +8876 -0
  577. package/dist/test/no-network.d.ts +7 -0
  578. package/dist/test/no-network.d.ts.map +1 -0
  579. package/dist/types/index.d.ts +1032 -0
  580. package/dist/types/index.d.ts.map +1 -0
  581. package/package.json +1 -1
package/dist/cli/index.js CHANGED
@@ -3553,6 +3553,26 @@ function ensureSchema(db) {
3553
3553
  )`);
3554
3554
  ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_verifications_task ON task_verifications(task_id)");
3555
3555
  ensureIndex("CREATE INDEX IF NOT EXISTS idx_task_verifications_status ON task_verifications(status)");
3556
+ ensureTable("artifacts", `
3557
+ CREATE TABLE artifacts (
3558
+ id TEXT PRIMARY KEY,
3559
+ entity_type TEXT NOT NULL,
3560
+ entity_id TEXT NOT NULL,
3561
+ name TEXT,
3562
+ storage_mode TEXT NOT NULL DEFAULT 'copy',
3563
+ source_path TEXT,
3564
+ local_path TEXT,
3565
+ content_hash TEXT,
3566
+ mime_type TEXT,
3567
+ size_bytes INTEGER,
3568
+ redaction_status TEXT NOT NULL DEFAULT 'none',
3569
+ metadata TEXT DEFAULT '{}',
3570
+ created_at TEXT NOT NULL DEFAULT (datetime('now')),
3571
+ updated_at TEXT NOT NULL DEFAULT (datetime('now')),
3572
+ deleted_at TEXT
3573
+ )`);
3574
+ ensureIndex("CREATE INDEX IF NOT EXISTS idx_artifacts_entity ON artifacts(entity_type, entity_id)");
3575
+ ensureIndex("CREATE INDEX IF NOT EXISTS idx_artifacts_deleted ON artifacts(deleted_at)");
3556
3576
  ensureTable("task_runs", `
3557
3577
  CREATE TABLE task_runs (
3558
3578
  id TEXT PRIMARY KEY,
@@ -9239,8 +9259,8 @@ var init_boards = __esm(() => {
9239
9259
 
9240
9260
  // src/lib/artifact-store.ts
9241
9261
  import { createHash as createHash2 } from "crypto";
9242
- import { existsSync as existsSync6, mkdirSync as mkdirSync4, readFileSync as readFileSync3, statSync as statSync2, writeFileSync as writeFileSync2 } from "fs";
9243
- import { dirname as dirname5, join as join5, resolve as resolve6 } from "path";
9262
+ import { existsSync as existsSync6, mkdirSync as mkdirSync4, readFileSync as readFileSync3, rmSync, statSync as statSync2, writeFileSync as writeFileSync2 } from "fs";
9263
+ import { basename, dirname as dirname5, join as join5, resolve as resolve6 } from "path";
9244
9264
  import { tmpdir } from "os";
9245
9265
  function isInMemoryDb2(path) {
9246
9266
  return path === ":memory:" || path.startsWith("file::memory:");
@@ -10680,11 +10700,11 @@ function autoDetectProject(opts) {
10680
10700
  return;
10681
10701
  const gitRoot = detectGitRoot();
10682
10702
  if (gitRoot) {
10683
- return ensureProject(basename(gitRoot), gitRoot);
10703
+ return ensureProject(basename2(gitRoot), gitRoot);
10684
10704
  }
10685
10705
  return;
10686
10706
  }
10687
- function basename(p) {
10707
+ function basename2(p) {
10688
10708
  return p.replace(/.*[/\\]/, "");
10689
10709
  }
10690
10710
  function autoProject(opts) {
@@ -10776,7 +10796,8 @@ function resolvePlanId(input) {
10776
10796
  function registerTaskCommands(program2) {
10777
10797
  program2.command("add <title>").description("Create a new task").option("-d, --description <text>", "Task description").option("-p, --priority <level>", "Priority: low, medium, high, critical").option("--parent <id>", "Parent task ID").option("-t, --tags <tags>", "Comma-separated tags").option("--tag <tags>", "Comma-separated tags (alias for --tags)").option("--plan <id>", "Assign to a plan").option("--assign <agent>", "Assign to agent").option("--status <status>", "Initial status").option("--list <id>", "Task list ID").option("--task-list <id>", "Task list ID (alias for --list)").option("--estimated <minutes>", "Estimated time in minutes").option("--sla-minutes <minutes>", "SLA minutes before unfinished work is escalated").option("--sla <minutes>", "Alias for --sla-minutes").option("--approval", "Require approval before completion").option("--recurrence <rule>", "Recurrence rule, e.g. 'every day', 'every weekday', 'every 2 weeks'").option("--due <date>", "Due date (ISO string or YYYY-MM-DD)").option("--reason <text>", "Why this task exists").option("--project <id>", "Assign to project by ID or slug (overrides auto-detect)").action((title, opts) => {
10778
10798
  const globalOpts = program2.opts();
10779
- const projectId = opts.project ? resolveProjectIdOrSlug(opts.project) : autoProject(globalOpts);
10799
+ const explicitProject = opts.project || globalOpts.project;
10800
+ const projectId = explicitProject ? resolveProjectIdOrSlug(explicitProject) : autoProject(globalOpts);
10780
10801
  opts.tags = opts.tags || opts.tag;
10781
10802
  opts.list = opts.list || opts.taskList;
10782
10803
  const taskListId = opts.list ? (() => {
@@ -13387,7 +13408,7 @@ __export(exports_project_bootstrap, {
13387
13408
  bootstrapProject: () => bootstrapProject
13388
13409
  });
13389
13410
  import { existsSync as existsSync9, readFileSync as readFileSync5, statSync as statSync3 } from "fs";
13390
- import { basename as basename2, dirname as dirname6, resolve as resolve8 } from "path";
13411
+ import { basename as basename3, dirname as dirname6, resolve as resolve8 } from "path";
13391
13412
  function safeStat(path) {
13392
13413
  try {
13393
13414
  return statSync3(path);
@@ -13428,9 +13449,9 @@ function readPackageJson(path) {
13428
13449
  }
13429
13450
  function packageDisplayName(name, fallbackPath) {
13430
13451
  if (!name)
13431
- return basename2(fallbackPath);
13452
+ return basename3(fallbackPath);
13432
13453
  const withoutScope = name.startsWith("@") ? name.split("/")[1] : name;
13433
- return withoutScope || basename2(fallbackPath);
13454
+ return withoutScope || basename3(fallbackPath);
13434
13455
  }
13435
13456
  function workspaceMarker(root, rootPackage) {
13436
13457
  if (!root)
@@ -14476,6 +14497,8 @@ __export(exports_local_encryption, {
14476
14497
  decryptString: () => decryptString,
14477
14498
  decryptBridgeBundle: () => decryptBridgeBundle,
14478
14499
  createEncryptedBridgeBundle: () => createEncryptedBridgeBundle,
14500
+ assertExportProfileAllowed: () => assertExportProfileAllowed,
14501
+ applyExportProfile: () => applyExportProfile,
14479
14502
  TODOS_ENCRYPTION_SCHEMA_VERSION: () => TODOS_ENCRYPTION_SCHEMA_VERSION,
14480
14503
  TODOS_ENCRYPTED_VALUE_KIND: () => TODOS_ENCRYPTED_VALUE_KIND,
14481
14504
  TODOS_ENCRYPTED_BRIDGE_KIND: () => TODOS_ENCRYPTED_BRIDGE_KIND,
@@ -14697,6 +14720,25 @@ function decryptBridgeBundle(bundle, env = process.env) {
14697
14720
  }, env);
14698
14721
  return JSON.parse(plaintext);
14699
14722
  }
14723
+ function assertExportProfileAllowed(profile) {
14724
+ if (profile === "plaintext" || profile === "redacted" || profile === "encrypted")
14725
+ return profile;
14726
+ throw new Error(`Unknown export profile: ${profile}. Allowed: plaintext, redacted, encrypted.`);
14727
+ }
14728
+ function applyExportProfile(data2, options = {}) {
14729
+ const profile = assertExportProfileAllowed(options.profile ?? "redacted");
14730
+ const warnings = [];
14731
+ if (profile === "plaintext") {
14732
+ if (!options.acknowledge_plaintext) {
14733
+ warnings.push("Export profile 'plaintext' includes unredacted data; pass acknowledge_plaintext=true to confirm.");
14734
+ }
14735
+ return { profile, data: data2, warnings };
14736
+ }
14737
+ if (profile === "encrypted") {
14738
+ return { profile, data: encryptSensitiveFields(data2, { profile: DEFAULT_ENCRYPTION_PROFILE, env: options.env }), warnings };
14739
+ }
14740
+ return { profile, data: redactValue(data2), warnings };
14741
+ }
14700
14742
  var TODOS_ENCRYPTED_VALUE_KIND = "hasna.todos.encrypted-value", TODOS_ENCRYPTED_BRIDGE_KIND = "hasna.todos.encrypted-bridge", TODOS_ENCRYPTION_SCHEMA_VERSION = 1, DEFAULT_ENCRYPTION_PROFILE = "default", DEFAULT_ENCRYPTION_KEY_ENV = "TODOS_ENCRYPTION_KEY", EncryptionKeyUnavailableError, EncryptedPayloadError;
14701
14743
  var init_local_encryption = __esm(() => {
14702
14744
  init_config();
@@ -14993,7 +15035,7 @@ __export(exports_project_commands, {
14993
15035
  registerProjectCommands: () => registerProjectCommands
14994
15036
  });
14995
15037
  import chalk4 from "chalk";
14996
- import { basename as basename3, resolve as resolve10 } from "path";
15038
+ import { basename as basename4, resolve as resolve10 } from "path";
14997
15039
  function collectOption(value, previous = []) {
14998
15040
  return [...previous, value];
14999
15041
  }
@@ -15297,7 +15339,7 @@ function registerProjectCommands(program2) {
15297
15339
  const globalOpts = program2.opts();
15298
15340
  if (opts.add) {
15299
15341
  const projectPath = resolve10(opts.add);
15300
- const name = opts.name || basename3(projectPath);
15342
+ const name = opts.name || basename4(projectPath);
15301
15343
  const existing = getProjectByPath(projectPath);
15302
15344
  let project;
15303
15345
  if (existing) {
@@ -17616,7 +17658,7 @@ __export(exports_local_extensions, {
17616
17658
  });
17617
17659
  import { createHash as createHash5, createVerify } from "crypto";
17618
17660
  import { existsSync as existsSync12, readdirSync as readdirSync3, readFileSync as readFileSync7, statSync as statSync5 } from "fs";
17619
- import { basename as basename4, join as join10, resolve as resolve11 } from "path";
17661
+ import { basename as basename5, join as join10, resolve as resolve11 } from "path";
17620
17662
  function isObject(value) {
17621
17663
  return Boolean(value && typeof value === "object" && !Array.isArray(value));
17622
17664
  }
@@ -18081,7 +18123,7 @@ function removeLocalExtension(name) {
18081
18123
  return true;
18082
18124
  }
18083
18125
  function renderExtensionSummary(record) {
18084
- return `${record.name}@${record.version} ${record.status} ${basename4(record.source)} ${record.signature_verified ? "signed" : "unsigned"}`;
18126
+ return `${record.name}@${record.version} ${record.status} ${basename5(record.source)} ${record.signature_verified ? "signed" : "unsigned"}`;
18085
18127
  }
18086
18128
  var BUILTIN_CLI_COMMANDS;
18087
18129
  var init_local_extensions = __esm(() => {
@@ -19276,7 +19318,7 @@ __export(exports_doctor, {
19276
19318
  runTodosDoctor: () => runTodosDoctor
19277
19319
  });
19278
19320
  import { chmodSync, copyFileSync, existsSync as existsSync13, mkdirSync as mkdirSync6, statSync as statSync6 } from "fs";
19279
- import { basename as basename5, dirname as dirname7, join as join11 } from "path";
19321
+ import { basename as basename6, dirname as dirname7, join as join11 } from "path";
19280
19322
  function tableExists(db, table) {
19281
19323
  return Boolean(db.query("SELECT name FROM sqlite_master WHERE type='table' AND name=?").get(table));
19282
19324
  }
@@ -19433,13 +19475,13 @@ function createBackup(dbPath) {
19433
19475
  if (!existsSync13(dbPath))
19434
19476
  return;
19435
19477
  const stamp = now().replace(/[:.]/g, "-");
19436
- const backupDir = join11(dirname7(dbPath), `${basename5(dbPath)}.backup-${stamp}`);
19478
+ const backupDir = join11(dirname7(dbPath), `${basename6(dbPath)}.backup-${stamp}`);
19437
19479
  const files = [];
19438
19480
  mkdirSync6(backupDir, { recursive: true });
19439
19481
  for (const source2 of [dbPath, `${dbPath}-wal`, `${dbPath}-shm`]) {
19440
19482
  if (!existsSync13(source2))
19441
19483
  continue;
19442
- const target = join11(backupDir, basename5(source2));
19484
+ const target = join11(backupDir, basename6(source2));
19443
19485
  copyFileSync(source2, target);
19444
19486
  files.push(target);
19445
19487
  }
@@ -25045,7 +25087,7 @@ __export(exports_mention_resolver, {
25045
25087
  resolveMentions: () => resolveMentions
25046
25088
  });
25047
25089
  import { existsSync as existsSync14, readdirSync as readdirSync4, readFileSync as readFileSync8, statSync as statSync7 } from "fs";
25048
- import { basename as basename6, isAbsolute, join as join13, relative as relative5, resolve as resolve14, sep as sep2 } from "path";
25090
+ import { basename as basename7, isAbsolute, join as join13, relative as relative5, resolve as resolve14, sep as sep2 } from "path";
25049
25091
  function blankResolution(parsed) {
25050
25092
  return {
25051
25093
  input: parsed.input,
@@ -25184,7 +25226,7 @@ function walkSourceFiles(root, current = root, files = []) {
25184
25226
  }
25185
25227
  if (!entry.isFile())
25186
25228
  continue;
25187
- const extension = `.${basename6(entry.name).split(".").pop() || ""}`;
25229
+ const extension = `.${basename7(entry.name).split(".").pop() || ""}`;
25188
25230
  if (SOURCE_EXTENSIONS.has(extension) && statSync7(absolutePath).size <= 512 * 1024) {
25189
25231
  files.push(absolutePath);
25190
25232
  }
@@ -32921,13 +32963,27 @@ var init_task_meta_tools = __esm(() => {
32921
32963
  var exports_agent_run_dispatcher = {};
32922
32964
  __export(exports_agent_run_dispatcher, {
32923
32965
  upsertAgentRunAdapter: () => upsertAgentRunAdapter,
32966
+ saveAgentAdapters: () => saveAgentAdapters,
32924
32967
  runNextAgentDispatch: () => runNextAgentDispatch,
32925
32968
  retryAgentRunDispatch: () => retryAgentRunDispatch,
32969
+ retryAgentRun: () => retryAgentRun,
32970
+ resetAgentAdapterCache: () => resetAgentAdapterCache,
32926
32971
  removeAgentRunAdapter: () => removeAgentRunAdapter,
32927
32972
  queueAgentRun: () => queueAgentRun,
32973
+ loadAgentAdapters: () => loadAgentAdapters,
32974
+ listAgentRuns: () => listAgentRuns,
32928
32975
  listAgentRunQueue: () => listAgentRunQueue,
32929
32976
  listAgentRunAdapters: () => listAgentRunAdapters,
32930
- cancelAgentRunDispatch: () => cancelAgentRunDispatch
32977
+ getDefaultAgentAdapters: () => getDefaultAgentAdapters,
32978
+ getAgentRun: () => getAgentRun,
32979
+ getAgentAdapter: () => getAgentAdapter,
32980
+ failAgentRun: () => failAgentRun,
32981
+ enqueueAgentRun: () => enqueueAgentRun,
32982
+ completeAgentRun: () => completeAgentRun,
32983
+ claimNextAgentRun: () => claimNextAgentRun,
32984
+ cancelAgentRunDispatch: () => cancelAgentRunDispatch,
32985
+ cancelAgentRun: () => cancelAgentRun,
32986
+ AGENT_RUN_SCHEMA_VERSION: () => AGENT_RUN_SCHEMA_VERSION
32931
32987
  });
32932
32988
  function dispatcherFromRun(run) {
32933
32989
  const value = run.metadata["agent_run_dispatcher"];
@@ -33115,6 +33171,119 @@ async function runNextAgentDispatch(input = {}, db) {
33115
33171
  }, d);
33116
33172
  return { run_id: next.run.id, task_id: next.run.task_id, command, dry_run: false, status, exit_code: exitCode, output_summary: outputSummary };
33117
33173
  }
33174
+ function listAgentRuns(filter = {}, db) {
33175
+ let runs = listAgentRunQueue(db);
33176
+ if (filter.task_id)
33177
+ runs = runs.filter((r) => r.task_id === filter.task_id);
33178
+ if (filter.status)
33179
+ runs = runs.filter((r) => r.status === filter.status);
33180
+ if (filter.agent_id)
33181
+ runs = runs.filter((r) => r.agent_id === filter.agent_id);
33182
+ if (filter.limit && filter.limit > 0)
33183
+ runs = runs.slice(0, filter.limit);
33184
+ return runs;
33185
+ }
33186
+ function retryAgentRun(runId, db) {
33187
+ return retryAgentRunDispatch(runId, db);
33188
+ }
33189
+ function toAgentRun(item) {
33190
+ const md = item.run.metadata || {};
33191
+ return {
33192
+ id: item.run.id,
33193
+ task_id: item.run.task_id,
33194
+ agent_id: item.run.agent_id,
33195
+ adapter: item.dispatcher.adapter ?? null,
33196
+ status: item.dispatcher.state,
33197
+ command: item.dispatcher.command ?? null,
33198
+ evidence: md["agent_run_evidence"] ?? {},
33199
+ queued_at: item.dispatcher.queued_at,
33200
+ started_at: item.dispatcher.started_at ?? null,
33201
+ completed_at: item.dispatcher.completed_at ?? null,
33202
+ metadata: md
33203
+ };
33204
+ }
33205
+ function queuedRunById(runId, db) {
33206
+ const d = db || getDatabase();
33207
+ const run = getTaskRun(resolveTaskRunId(runId, d), d);
33208
+ if (!run)
33209
+ return null;
33210
+ const item = { run, dispatcher: dispatcherFromRun(run) };
33211
+ return item.dispatcher ? item : null;
33212
+ }
33213
+ function enqueueAgentRun(input, db) {
33214
+ const command = input.command || resolveAdapter(input.adapter)?.command || `agent-run:${input.adapter ?? "custom"}`;
33215
+ const queued = queueAgentRun({
33216
+ task_id: input.task_id,
33217
+ agent_id: input.agent_id,
33218
+ adapter: input.adapter,
33219
+ command,
33220
+ metadata: {
33221
+ ...input.metadata,
33222
+ ...input.plan_id ? { plan_id: input.plan_id } : {},
33223
+ ...input.evidence ? { agent_run_evidence: input.evidence } : {}
33224
+ }
33225
+ }, db);
33226
+ return toAgentRun(queued);
33227
+ }
33228
+ function claimNextAgentRun(agentId, options = {}, db) {
33229
+ const d = db || getDatabase();
33230
+ const next = listAgentRunQueue(d).find((item) => item.dispatcher.state === "queued" && (!options.adapter || item.dispatcher.adapter === options.adapter));
33231
+ if (!next)
33232
+ return null;
33233
+ const dispatcher = { ...next.dispatcher, state: "running", started_at: new Date().toISOString() };
33234
+ const updated = updateDispatcherMetadata(next.run.id, dispatcher, d);
33235
+ if (agentId)
33236
+ d.run("UPDATE task_runs SET agent_id = ?, updated_at = ? WHERE id = ?", [agentId, now(), next.run.id]);
33237
+ const reread = getTaskRun(next.run.id, d) ?? updated;
33238
+ return toAgentRun({ run: reread, dispatcher });
33239
+ }
33240
+ function completeAgentRun(runId, evidence = {}, db) {
33241
+ const d = db || getDatabase();
33242
+ const item = queuedRunById(runId, d);
33243
+ if (!item)
33244
+ throw new Error(`Agent run not found: ${runId}`);
33245
+ const dispatcher = { ...item.dispatcher, state: "completed", completed_at: new Date().toISOString() };
33246
+ updateDispatcherMetadata(item.run.id, dispatcher, d);
33247
+ const md = { ...item.run.metadata || {}, agent_run_evidence: { ...item.run.metadata?.["agent_run_evidence"], ...evidence } };
33248
+ d.run("UPDATE task_runs SET metadata = ? WHERE id = ?", [JSON.stringify(md), item.run.id]);
33249
+ finishTaskRun({ run_id: item.run.id, status: "completed", summary: "agent run completed", agent_id: item.run.agent_id ?? undefined }, d);
33250
+ return toAgentRun({ run: getTaskRun(item.run.id, d), dispatcher });
33251
+ }
33252
+ function failAgentRun(runId, error, db) {
33253
+ const d = db || getDatabase();
33254
+ const item = queuedRunById(runId, d);
33255
+ if (!item)
33256
+ throw new Error(`Agent run not found: ${runId}`);
33257
+ const dispatcher = { ...item.dispatcher, state: "failed", completed_at: new Date().toISOString(), last_error: error };
33258
+ updateDispatcherMetadata(item.run.id, dispatcher, d);
33259
+ finishTaskRun({ run_id: item.run.id, status: "failed", summary: error || "agent run failed", agent_id: item.run.agent_id ?? undefined }, d);
33260
+ return toAgentRun({ run: getTaskRun(item.run.id, d), dispatcher });
33261
+ }
33262
+ function cancelAgentRun(runId, db) {
33263
+ return toAgentRun(cancelAgentRunDispatch(runId, db));
33264
+ }
33265
+ function getAgentRun(runId, db) {
33266
+ const item = queuedRunById(runId, db);
33267
+ return item ? toAgentRun(item) : null;
33268
+ }
33269
+ function loadAgentAdapters() {
33270
+ return listAgentRunAdapters();
33271
+ }
33272
+ function saveAgentAdapters(adapters) {
33273
+ const config = loadConfig();
33274
+ const map = {};
33275
+ for (const a of adapters)
33276
+ map[a.name] = a;
33277
+ saveConfig({ ...config, agent_run_adapters: map });
33278
+ }
33279
+ function getAgentAdapter(name) {
33280
+ return loadConfig().agent_run_adapters?.[name] ?? null;
33281
+ }
33282
+ function getDefaultAgentAdapters() {
33283
+ return listAgentRunAdapters();
33284
+ }
33285
+ function resetAgentAdapterCache() {}
33286
+ var AGENT_RUN_SCHEMA_VERSION = "todos.agent_run.v1";
33118
33287
  var init_agent_run_dispatcher = __esm(() => {
33119
33288
  init_task_runs();
33120
33289
  init_database();
@@ -33129,7 +33298,9 @@ __export(exports_verification_providers, {
33129
33298
  upsertVerificationProvider: () => upsertVerificationProvider,
33130
33299
  runVerificationProvider: () => runVerificationProvider,
33131
33300
  removeVerificationProvider: () => removeVerificationProvider,
33301
+ listVerificationRecords: () => listVerificationRecords,
33132
33302
  listVerificationProviders: () => listVerificationProviders,
33303
+ getVerificationRecord: () => getVerificationRecord,
33133
33304
  discoverVerificationProviderCapabilities: () => discoverVerificationProviderCapabilities
33134
33305
  });
33135
33306
  import { existsSync as existsSync15, readFileSync as readFileSync10 } from "fs";
@@ -33347,6 +33518,53 @@ async function runVerificationProvider(input, db) {
33347
33518
  }
33348
33519
  return result;
33349
33520
  }
33521
+ function verificationRowToRecord(row) {
33522
+ return {
33523
+ id: String(row["id"]),
33524
+ task_id: String(row["task_id"]),
33525
+ command: String(row["command"] ?? ""),
33526
+ status: row["status"] ?? "unknown",
33527
+ output_summary: row["output_summary"] ?? null,
33528
+ artifact_path: row["artifact_path"] ?? null,
33529
+ agent_id: row["agent_id"] ?? null,
33530
+ run_at: String(row["run_at"] ?? ""),
33531
+ created_at: String(row["created_at"] ?? ""),
33532
+ evidence: {
33533
+ command: row["command"] ?? null,
33534
+ status: row["status"] ?? "unknown",
33535
+ output_summary: row["output_summary"] ?? null,
33536
+ artifact_path: row["artifact_path"] ?? null,
33537
+ agent_id: row["agent_id"] ?? null,
33538
+ run_record_id: null
33539
+ }
33540
+ };
33541
+ }
33542
+ function getVerificationRecord(id, db) {
33543
+ const d = db || getDatabase();
33544
+ const row = d.query("SELECT * FROM task_verifications WHERE id = ?").get(id);
33545
+ return row ? verificationRowToRecord(row) : null;
33546
+ }
33547
+ function listVerificationRecords(filter = {}, db) {
33548
+ const d = db || getDatabase();
33549
+ const conditions = [];
33550
+ const params = [];
33551
+ if (filter.task_id) {
33552
+ conditions.push("task_id = ?");
33553
+ params.push(filter.task_id);
33554
+ }
33555
+ if (filter.agent_id) {
33556
+ conditions.push("agent_id = ?");
33557
+ params.push(filter.agent_id);
33558
+ }
33559
+ if (filter.status) {
33560
+ conditions.push("status = ?");
33561
+ params.push(filter.status);
33562
+ }
33563
+ const where = conditions.length > 0 ? `WHERE ${conditions.join(" AND ")}` : "";
33564
+ const limitClause = filter.limit && filter.limit > 0 ? ` LIMIT ${Math.floor(filter.limit)}` : "";
33565
+ const rows = d.query(`SELECT * FROM task_verifications ${where} ORDER BY run_at DESC, created_at DESC${limitClause}`).all(...params);
33566
+ return rows.map(verificationRowToRecord);
33567
+ }
33350
33568
  var DEFAULT_RETRY, DEFAULT_CAPABILITIES;
33351
33569
  var init_verification_providers = __esm(() => {
33352
33570
  init_task_commits();
@@ -42663,17 +42881,17 @@ function buildServer() {
42663
42881
  return server;
42664
42882
  }
42665
42883
  async function main() {
42666
- const { isHttpMode, resolveHttpPort } = await Promise.resolve().then(() => (init_http(), exports_http));
42667
- if (isHttpMode()) {
42668
- const { startServer } = await Promise.resolve().then(() => (init_serve(), exports_serve));
42669
- const port = resolveHttpPort();
42670
- await startServer(port, { open: false, host: "127.0.0.1" });
42671
- console.error(`todos MCP HTTP mounted at http://127.0.0.1:${port}/mcp`);
42884
+ const { isStdioMode, resolveHttpPort } = await Promise.resolve().then(() => (init_http(), exports_http));
42885
+ if (isStdioMode()) {
42886
+ const server = buildServer();
42887
+ const transport = new StdioServerTransport;
42888
+ await server.connect(transport);
42672
42889
  return;
42673
42890
  }
42674
- const server = buildServer();
42675
- const transport = new StdioServerTransport;
42676
- await server.connect(transport);
42891
+ const { startServer } = await Promise.resolve().then(() => (init_serve(), exports_serve));
42892
+ const port = resolveHttpPort();
42893
+ await startServer(port, { open: false, host: "127.0.0.1" });
42894
+ console.error(`todos MCP HTTP mounted at http://127.0.0.1:${port}/mcp`);
42677
42895
  }
42678
42896
  var agentFocusMap, isDirectRun;
42679
42897
  var init_mcp2 = __esm(() => {
@@ -42720,6 +42938,7 @@ var exports_http = {};
42720
42938
  __export(exports_http, {
42721
42939
  startHttpServer: () => startHttpServer,
42722
42940
  resolveHttpPort: () => resolveHttpPort,
42941
+ isStdioMode: () => isStdioMode,
42723
42942
  isHttpMode: () => isHttpMode,
42724
42943
  healthResponse: () => healthResponse,
42725
42944
  handleMcpHttpRequest: () => handleMcpHttpRequest,
@@ -42730,6 +42949,9 @@ import { WebStandardStreamableHTTPServerTransport } from "@modelcontextprotocol/
42730
42949
  function isHttpMode() {
42731
42950
  return process.argv.includes("--http") || process.env["MCP_HTTP"] === "1";
42732
42951
  }
42952
+ function isStdioMode() {
42953
+ return process.argv.includes("--stdio") || process.env["MCP_STDIO"] === "1";
42954
+ }
42733
42955
  function resolveHttpPort(defaultPort = DEFAULT_MCP_HTTP_PORT) {
42734
42956
  const portFlag = process.argv.find((arg) => arg === "--port" || arg.startsWith("--port="));
42735
42957
  if (portFlag) {
@@ -42781,7 +43003,7 @@ async function startHttpServer(port, options) {
42781
43003
  console.error(`todos-mcp HTTP listening on http://127.0.0.1:${port}/mcp`);
42782
43004
  return server;
42783
43005
  }
42784
- var DEFAULT_MCP_HTTP_PORT = 8842, MCP_HTTP_NAME = "todos";
43006
+ var DEFAULT_MCP_HTTP_PORT = 8881, MCP_HTTP_NAME = "todos";
42785
43007
  var init_http = __esm(() => {
42786
43008
  init_mcp2();
42787
43009
  });
@@ -42989,6 +43211,8 @@ Dashboard not found at: ${dashboardDir}`);
42989
43211
  return handleMcpHttpRequest2(req, buildServer2);
42990
43212
  }
42991
43213
  if (method === "OPTIONS") {
43214
+ const reqOrigin2 = req.headers.get("origin") || undefined;
43215
+ const allowed = reqOrigin2 && (reqOrigin2 === `http://localhost:${port}` || reqOrigin2 === "http://localhost:0");
42992
43216
  return new Response(null, {
42993
43217
  headers: corsHeaders || {
42994
43218
  Vary: "Origin"
@@ -0,0 +1,41 @@
1
+ export type TodosCliMcpParityDomain = "tasks" | "references" | "knowledge" | "risks" | "retrospectives" | "agent-reliability" | "local-reports" | "local-backups" | "local-fields" | "workflow-states" | "dedupe" | "verification-providers" | "projects" | "plans" | "roadmaps" | "capacity" | "audit-ledger" | "release-compatibility" | "usage-ledger" | "terminal-dashboard" | "scale-hardening" | "templates" | "workspace-trust" | "secret-safety" | "retention-cleanup" | "runner-sandbox" | "extensions" | "workflow-prompts" | "policy-packs" | "approval-gates" | "review-queues" | "local-event-hooks" | "terminal-notifications" | "branch-work-plans" | "natural-language-intake" | "encryption" | "agent-runs" | "source-index" | "calendar" | "kanban-boards" | "time-tracking" | "handoffs" | "runs" | "comments" | "search" | "context-packs" | "release-notes" | "environment-snapshots" | "onboarding" | "local-snapshots" | "imports" | "exports";
2
+ export type TodosCliMcpParityStatus = "matched" | "intentional-gap";
3
+ export interface CreateCliMcpParityManifestOptions {
4
+ version?: string;
5
+ generatedAt?: string;
6
+ }
7
+ export interface TodosCliMcpParityPackageSource {
8
+ packageName: "@hasna/todos";
9
+ repository: "hasna/todos";
10
+ version: string;
11
+ }
12
+ export interface TodosCliMcpParityEntry {
13
+ domain: TodosCliMcpParityDomain;
14
+ cliCommands: string[];
15
+ mcpTools: string[];
16
+ jsonContracts: string[];
17
+ errorContracts: string[];
18
+ status: TodosCliMcpParityStatus;
19
+ intentionalGaps?: TodosCliMcpParityGap[];
20
+ gapReason?: string;
21
+ example: {
22
+ cli: string;
23
+ mcpTool?: string;
24
+ };
25
+ }
26
+ export interface TodosCliMcpParityGap {
27
+ cliCommand: string;
28
+ reason: string;
29
+ }
30
+ export interface TodosCliMcpParityManifest {
31
+ schemaVersion: 1;
32
+ generatedAt: string;
33
+ package: TodosCliMcpParityPackageSource;
34
+ localOnly: true;
35
+ noNetworkRequired: true;
36
+ parity: TodosCliMcpParityEntry[];
37
+ }
38
+ export declare const TODOS_CLI_MCP_PARITY: TodosCliMcpParityEntry[];
39
+ export declare function createCliMcpParityManifest(options?: CreateCliMcpParityManifestOptions): TodosCliMcpParityManifest;
40
+ export declare const TODOS_CLI_MCP_PARITY_MANIFEST: TodosCliMcpParityManifest;
41
+ //# sourceMappingURL=cli-mcp-parity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-mcp-parity.d.ts","sourceRoot":"","sources":["../src/cli-mcp-parity.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,uBAAuB,GAC/B,OAAO,GACP,YAAY,GACZ,WAAW,GACX,OAAO,GACP,gBAAgB,GAChB,mBAAmB,GACnB,eAAe,GACf,eAAe,GACf,cAAc,GACd,iBAAiB,GACjB,QAAQ,GACR,wBAAwB,GACxB,UAAU,GACV,OAAO,GACP,UAAU,GACV,UAAU,GACV,cAAc,GACd,uBAAuB,GACvB,cAAc,GACd,oBAAoB,GACpB,iBAAiB,GACjB,WAAW,GACX,iBAAiB,GACjB,eAAe,GACf,mBAAmB,GACnB,gBAAgB,GAChB,YAAY,GACZ,kBAAkB,GAClB,cAAc,GACd,gBAAgB,GAChB,eAAe,GACf,mBAAmB,GACnB,wBAAwB,GACxB,mBAAmB,GACnB,yBAAyB,GACzB,YAAY,GACZ,YAAY,GACZ,cAAc,GACd,UAAU,GACV,eAAe,GACf,eAAe,GACf,UAAU,GACV,MAAM,GACN,UAAU,GACV,QAAQ,GACR,eAAe,GACf,eAAe,GACf,uBAAuB,GACvB,YAAY,GACZ,iBAAiB,GACjB,SAAS,GACT,SAAS,CAAC;AAEd,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,iBAAiB,CAAC;AAEpE,MAAM,WAAW,iCAAiC;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,8BAA8B;IAC7C,WAAW,EAAE,cAAc,CAAC;IAC5B,UAAU,EAAE,aAAa,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,uBAAuB,CAAC;IAChC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,uBAAuB,CAAC;IAChC,eAAe,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE;QACP,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,aAAa,EAAE,CAAC,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,8BAA8B,CAAC;IACxC,SAAS,EAAE,IAAI,CAAC;IAChB,iBAAiB,EAAE,IAAI,CAAC;IACxB,MAAM,EAAE,sBAAsB,EAAE,CAAC;CAClC;AAUD,eAAO,MAAM,oBAAoB,EAAE,sBAAsB,EAusCxD,CAAC;AAYF,wBAAgB,0BAA0B,CACxC,OAAO,GAAE,iCAAsC,GAC9C,yBAAyB,CAW3B;AAED,eAAO,MAAM,6BAA6B,2BAExC,CAAC"}
@@ -0,0 +1,87 @@
1
+ export { TODOS_JSON_CONTRACTS, TODOS_JSON_CONTRACTS_MANIFEST, createJsonContractsManifest, getJsonContract, validateJsonContract, } from "./json-contracts.js";
2
+ export { TODOS_ONBOARDING_FIXTURE_LIBRARY_VERSION, TODOS_ONBOARDING_FIXTURE_SOURCE, getOnboardingFixture, getOnboardingFixtureBundle, importOnboardingFixture, listOnboardingFixtures, writeOnboardingFixtureFiles, } from "./lib/onboarding-fixtures.js";
3
+ export { LOCAL_BACKUP_CHECKSUM_ALGORITHM, TODOS_LOCAL_BACKUP_KIND, TODOS_LOCAL_BACKUP_SCHEMA_VERSION, TODOS_LOCAL_INTEGRITY_KIND, TODOS_LOCAL_INTEGRITY_SCHEMA_VERSION, checkLocalIntegrity, createLocalBackup, readLocalBackupFile, restoreLocalBackup, verifyLocalBackup, writeLocalBackupFile, } from "./lib/local-backups.js";
4
+ export { TODOS_LOCAL_BRIDGE_KIND, TODOS_LOCAL_BRIDGE_SCHEMA_VERSION, createLocalBridgeBundle, importLocalBridgeBundle, validateLocalBridgeBundle, } from "./lib/local-bridge.js";
5
+ export { TODOS_LOCAL_SNAPSHOT_SCHEMA_VERSION, getLocalSnapshot, listLocalSnapshotResources, pollLocalSnapshots, renderLocalSnapshotMarkdown, } from "./lib/local-snapshots.js";
6
+ export { TODOS_SDK_INTEGRATION_FIXTURE_GENERATED_AT, TODOS_SDK_INTEGRATION_FIXTURE_SCHEMA_VERSION, createSdkIntegrationFixturePack, listSdkIntegrationExamples, writeSdkIntegrationFixtures, } from "./lib/sdk-integration-fixtures.js";
7
+ export { approveReviewItem, claimReviewItem, listReviewQueue, listReviewRoutingRules, removeReviewRoutingRule, reopenReviewItem, requestReviewQueue, returnReviewItem, upsertReviewRoutingRule, } from "./lib/review-queues.js";
8
+ export { LOCAL_ROADMAP_SCHEMA_VERSION, createMilestone, createRoadmap, deleteMilestone, deleteRoadmap, exportRoadmapBundle, getRoadmap, importRoadmapBundle, listMilestones, listReleaseGroups, listRoadmaps, renderRoadmapMarkdown, summarizeMilestone, summarizeRoadmap, updateMilestone, updateRoadmap, upsertReleaseGroup, } from "./lib/roadmaps.js";
9
+ export { LOCAL_AUDIT_LEDGER_HASH_ALGORITHM, LOCAL_AUDIT_LEDGER_SCHEMA_VERSION, getLocalAuditLedger, listLocalAuditLedgerCheckpoints, renderLocalAuditLedgerMarkdown, sealLocalAuditLedger, verifyLocalAuditLedger, } from "./lib/audit-ledger.js";
10
+ export { LOCAL_RELEASE_COMPATIBILITY_SCHEMA_VERSION, createReleaseCompatibilityReport, renderReleaseCompatibilityMarkdown, } from "./lib/release-compatibility.js";
11
+ export { EXTERNAL_ISSUE_IMPORT_SCHEMA_VERSION, importExternalIssues, } from "./lib/external-issue-importers.js";
12
+ export { LOCAL_NOTIFICATION_SCHEMA_VERSION, checkLocalNotifications, } from "./lib/local-notifications.js";
13
+ export { LOCAL_USAGE_LEDGER_SCHEMA_VERSION, createLocalUsageLedger, renderLocalUsageLedgerMarkdown, } from "./lib/usage-ledger.js";
14
+ export { LOCAL_REPORT_SCHEMA_VERSION, LOCAL_REPORT_TYPES, createLocalReport, listLocalReportTypes, renderLocalReportMarkdown, } from "./lib/local-reports.js";
15
+ export { DEFAULT_ENCRYPTION_KEY_ENV, DEFAULT_ENCRYPTION_PROFILE, TODOS_ENCRYPTED_BRIDGE_KIND, TODOS_ENCRYPTED_VALUE_KIND, TODOS_ENCRYPTION_SCHEMA_VERSION, createEncryptedBridgeBundle, decryptBridgeBundle, decryptString, decryptValue, encryptSensitiveFields, encryptString, encryptValue, encryptionProfileStatus, isEncryptedBridgeBundle, isEncryptedValue, listEncryptionProfiles, removeEncryptionProfile, upsertEncryptionProfile, } from "./lib/local-encryption.js";
16
+ export type { CreateJsonContractsManifestOptions, JsonContractValidationIssue, JsonContractValidationResult, TodosJsonContractPackageSource, TodosJsonContractsManifest, TodosJsonFieldContract, TodosJsonFieldType, TodosJsonObjectContract, TodosJsonStability, TodosJsonSurface, } from "./json-contracts.js";
17
+ export type { LocalAuditLedger, LocalAuditLedgerEntry, LocalAuditLedgerInput, LocalAuditLedgerScope, LocalAuditLedgerSource, LocalAuditLedgerVerifyResult, SealLocalAuditLedgerInput, } from "./lib/audit-ledger.js";
18
+ export type { CreateReleaseCompatibilityReportOptions, ReleaseCompatibilityCheck, ReleaseCompatibilityReport, ReleaseCompatibilityStatus, } from "./lib/release-compatibility.js";
19
+ export type { ExternalIssueExistingMatch, ExternalIssueImportInput, ExternalIssueImportResult, ExternalIssueProvider, ExternalIssueRecord, } from "./lib/external-issue-importers.js";
20
+ export type { CheckLocalNotificationsInput, CheckLocalNotificationsResult, LocalNotificationAlert, LocalNotificationKind, LocalNotificationQuietHours, LocalNotificationSeverity, } from "./lib/local-notifications.js";
21
+ export type { UsageLedgerOptions, UsageLedgerQuotaInput, UsageLedgerQuotaResult, UsageLedgerReport, } from "./lib/usage-ledger.js";
22
+ export type { LocalReport, LocalReportAgentSummary, LocalReportBlockedTask, LocalReportOptions, LocalReportPlanSummary, LocalReportRunSummary, LocalReportTaskSummary, LocalReportTaskView, LocalReportType, LocalReportVerificationSummary, } from "./lib/local-reports.js";
23
+ export type { ImportOnboardingFixtureOptions, OnboardingFixture, OnboardingFixtureSummary, WriteOnboardingFixtureResult, } from "./lib/onboarding-fixtures.js";
24
+ export type { CreateLocalBackupOptions, LocalBackupBundle, LocalBackupManifest, LocalBackupRestoreResult, LocalBackupSqliteIntegrity, LocalBackupVerification, LocalIntegrityReport, RestoreLocalBackupOptions, } from "./lib/local-backups.js";
25
+ export type { ExportLocalBridgeOptions, LocalBridgeImportConflict, LocalBridgeImportResult, LocalBridgeValidationResult, TodosLocalBridgeBundle, TodosLocalBridgeData, TodosLocalBridgePackageSource, TodosLocalBridgeSource, } from "./lib/local-bridge.js";
26
+ export type { LocalSnapshot, LocalSnapshotCatalogEntry, LocalSnapshotOptions, LocalSnapshotPollResult, LocalSnapshotType, } from "./lib/local-snapshots.js";
27
+ export type { SdkIntegrationExample, SdkIntegrationExampleSurface, SdkIntegrationFixtureDatabase, SdkIntegrationFixturePack, WriteSdkIntegrationFixturesResult, } from "./lib/sdk-integration-fixtures.js";
28
+ export type { ClaimReviewInput, DecideReviewInput, RequestReviewQueueInput, ReviewQueueHistoryEntry, ReviewQueueItem, ReviewQueueListOptions, ReviewQueueMetadata, ReviewQueueState, UpsertReviewRoutingRuleInput, } from "./lib/review-queues.js";
29
+ export type { CreateMilestoneInput, CreateRoadmapInput, ImportRoadmapBundleResult, LocalMilestoneConfig, LocalMilestoneStatus, LocalReleaseGroupConfig, LocalRoadmapConfig, LocalRoadmapStatus, LocalRoadmapStoreConfig, MilestoneSummary, RoadmapBundle, RoadmapProgressSummary, RoadmapSummary, UpdateMilestoneInput, UpdateRoadmapInput, UpsertReleaseGroupInput, } from "./lib/roadmaps.js";
30
+ export type { CapacityProfileQuery, ForecastRiskFlag, LocalCapacityProfileConfig, LocalCapacityStoreConfig, PlanningForecast, PlanningForecastInput, PlanningForecastTask, UpsertCapacityProfileInput, } from "./lib/capacity-forecasts.js";
31
+ export type { EncryptedLocalBridgeBundle, LocalEncryptionEnvelope, UpsertEncryptionProfileInput, } from "./lib/local-encryption.js";
32
+ import type { DispatchStatus, PlanStatus, TaskPriority, TaskStatus } from "./types/index.js";
33
+ import type { TodosJsonContractsManifest } from "./json-contracts.js";
34
+ export type TodosHttpMethod = "GET" | "POST" | "PATCH" | "DELETE";
35
+ export type TodosContractStability = "stable" | "experimental";
36
+ export interface CreateContractsManifestOptions {
37
+ version?: string;
38
+ generatedAt?: string;
39
+ }
40
+ export interface TodosContractPackageSource {
41
+ packageName: "@hasna/todos";
42
+ repository: "hasna/todos";
43
+ version: string;
44
+ }
45
+ export interface TodosJsonSchema {
46
+ type: string;
47
+ properties?: Record<string, unknown>;
48
+ required?: string[];
49
+ additionalProperties?: boolean;
50
+ items?: TodosJsonSchema;
51
+ }
52
+ export interface TodosApiRouteContract {
53
+ id: string;
54
+ method: TodosHttpMethod;
55
+ path: string;
56
+ description: string;
57
+ auth: "optional-api-key" | "api-key";
58
+ requestSchema: TodosJsonSchema | null;
59
+ responseSchema: TodosJsonSchema;
60
+ tags: string[];
61
+ stability: TodosContractStability;
62
+ }
63
+ export interface TodosErrorContract {
64
+ code: string;
65
+ name: string;
66
+ suggestion: string;
67
+ httpStatus: number | null;
68
+ }
69
+ export interface TodosContractsManifest {
70
+ schemaVersion: 1;
71
+ generatedAt: string;
72
+ package: TodosContractPackageSource;
73
+ values: {
74
+ taskStatuses: readonly TaskStatus[];
75
+ taskPriorities: readonly TaskPriority[];
76
+ planStatuses: readonly PlanStatus[];
77
+ dispatchStatuses: readonly DispatchStatus[];
78
+ };
79
+ apiRoutes: TodosApiRouteContract[];
80
+ errorCodes: TodosErrorContract[];
81
+ jsonOutputs: TodosJsonContractsManifest;
82
+ }
83
+ export declare const TODOS_API_ROUTES: TodosApiRouteContract[];
84
+ export declare const TODOS_ERROR_CODES: TodosErrorContract[];
85
+ export declare function createContractsManifest(options?: CreateContractsManifestOptions): TodosContractsManifest;
86
+ export declare const TODOS_CONTRACTS: TodosContractsManifest;
87
+ //# sourceMappingURL=contracts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"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"}