@hasna/todos 0.11.44 → 0.11.46

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 (167) hide show
  1. package/README.md +695 -11
  2. package/dist/cli/commands/agent-reliability-commands.d.ts +3 -0
  3. package/dist/cli/commands/agent-reliability-commands.d.ts.map +1 -0
  4. package/dist/cli/commands/audit-ledger-commands.d.ts +3 -0
  5. package/dist/cli/commands/audit-ledger-commands.d.ts.map +1 -0
  6. package/dist/cli/commands/capacity-commands.d.ts +3 -0
  7. package/dist/cli/commands/capacity-commands.d.ts.map +1 -0
  8. package/dist/cli/commands/config-serve-commands.d.ts.map +1 -1
  9. package/dist/cli/commands/help-commands.d.ts +3 -0
  10. package/dist/cli/commands/help-commands.d.ts.map +1 -0
  11. package/dist/cli/commands/knowledge-commands.d.ts +3 -0
  12. package/dist/cli/commands/knowledge-commands.d.ts.map +1 -0
  13. package/dist/cli/commands/local-backup-commands.d.ts +3 -0
  14. package/dist/cli/commands/local-backup-commands.d.ts.map +1 -0
  15. package/dist/cli/commands/local-snapshot-commands.d.ts +3 -0
  16. package/dist/cli/commands/local-snapshot-commands.d.ts.map +1 -0
  17. package/dist/cli/commands/machines.d.ts.map +1 -1
  18. package/dist/cli/commands/mcp-hooks-commands.d.ts.map +1 -1
  19. package/dist/cli/commands/onboarding-commands.d.ts +3 -0
  20. package/dist/cli/commands/onboarding-commands.d.ts.map +1 -0
  21. package/dist/cli/commands/project-commands.d.ts.map +1 -1
  22. package/dist/cli/commands/query-commands.d.ts.map +1 -1
  23. package/dist/cli/commands/release-compatibility-commands.d.ts +3 -0
  24. package/dist/cli/commands/release-compatibility-commands.d.ts.map +1 -0
  25. package/dist/cli/commands/retrospective-commands.d.ts +3 -0
  26. package/dist/cli/commands/retrospective-commands.d.ts.map +1 -0
  27. package/dist/cli/commands/review-queue-commands.d.ts +3 -0
  28. package/dist/cli/commands/review-queue-commands.d.ts.map +1 -0
  29. package/dist/cli/commands/risk-commands.d.ts +3 -0
  30. package/dist/cli/commands/risk-commands.d.ts.map +1 -0
  31. package/dist/cli/commands/roadmap-commands.d.ts +3 -0
  32. package/dist/cli/commands/roadmap-commands.d.ts.map +1 -0
  33. package/dist/cli/commands/scale-hardening-commands.d.ts +3 -0
  34. package/dist/cli/commands/scale-hardening-commands.d.ts.map +1 -0
  35. package/dist/cli/commands/sdk-fixture-commands.d.ts +3 -0
  36. package/dist/cli/commands/sdk-fixture-commands.d.ts.map +1 -0
  37. package/dist/cli/commands/task-commands.d.ts.map +1 -1
  38. package/dist/cli/commands/usage-ledger-commands.d.ts +3 -0
  39. package/dist/cli/commands/usage-ledger-commands.d.ts.map +1 -0
  40. package/dist/cli/components/Dashboard.d.ts.map +1 -1
  41. package/dist/cli/index.js +39446 -19769
  42. package/dist/cli-mcp-parity.d.ts +1 -1
  43. package/dist/cli-mcp-parity.d.ts.map +1 -1
  44. package/dist/contracts.d.ts +25 -0
  45. package/dist/contracts.d.ts.map +1 -1
  46. package/dist/contracts.js +14818 -3885
  47. package/dist/db/agent-metrics.d.ts +101 -0
  48. package/dist/db/agent-metrics.d.ts.map +1 -1
  49. package/dist/db/agent-names.d.ts +2 -1
  50. package/dist/db/agent-names.d.ts.map +1 -1
  51. package/dist/db/boards.d.ts +56 -0
  52. package/dist/db/boards.d.ts.map +1 -0
  53. package/dist/db/calendar.d.ts +52 -0
  54. package/dist/db/calendar.d.ts.map +1 -0
  55. package/dist/db/comments.d.ts.map +1 -1
  56. package/dist/db/handoffs.d.ts +25 -0
  57. package/dist/db/handoffs.d.ts.map +1 -1
  58. package/dist/db/machines.d.ts +19 -6
  59. package/dist/db/machines.d.ts.map +1 -1
  60. package/dist/db/migrations.d.ts.map +1 -1
  61. package/dist/db/project-knowledge.d.ts +88 -0
  62. package/dist/db/project-knowledge.d.ts.map +1 -0
  63. package/dist/db/project-risks.d.ts +139 -0
  64. package/dist/db/project-risks.d.ts.map +1 -0
  65. package/dist/db/retrospectives.d.ts +98 -0
  66. package/dist/db/retrospectives.d.ts.map +1 -0
  67. package/dist/db/schema.d.ts.map +1 -1
  68. package/dist/db/task-crud.d.ts.map +1 -1
  69. package/dist/db/task-relations.d.ts +69 -9
  70. package/dist/db/task-relations.d.ts.map +1 -1
  71. package/dist/db/task-runs.d.ts +3 -0
  72. package/dist/db/task-runs.d.ts.map +1 -1
  73. package/dist/db/tasks.d.ts +6 -2
  74. package/dist/db/tasks.d.ts.map +1 -1
  75. package/dist/index.d.ts +74 -11
  76. package/dist/index.d.ts.map +1 -1
  77. package/dist/index.js +24662 -11829
  78. package/dist/json-contracts.d.ts.map +1 -1
  79. package/dist/lib/agent-replay-simulator.d.ts +66 -0
  80. package/dist/lib/agent-replay-simulator.d.ts.map +1 -0
  81. package/dist/lib/audit-ledger.d.ts +59 -0
  82. package/dist/lib/audit-ledger.d.ts.map +1 -0
  83. package/dist/lib/branch-work-plans.d.ts +46 -0
  84. package/dist/lib/branch-work-plans.d.ts.map +1 -0
  85. package/dist/lib/capacity-forecasts.d.ts +70 -0
  86. package/dist/lib/capacity-forecasts.d.ts.map +1 -0
  87. package/dist/lib/cli-help.d.ts +38 -0
  88. package/dist/lib/cli-help.d.ts.map +1 -0
  89. package/dist/lib/config.d.ts +217 -0
  90. package/dist/lib/config.d.ts.map +1 -1
  91. package/dist/lib/context-packs.d.ts +26 -3
  92. package/dist/lib/context-packs.d.ts.map +1 -1
  93. package/dist/lib/event-hooks.d.ts +1 -1
  94. package/dist/lib/event-hooks.d.ts.map +1 -1
  95. package/dist/lib/external-issue-importers.d.ts +60 -0
  96. package/dist/lib/external-issue-importers.d.ts.map +1 -0
  97. package/dist/lib/extract.d.ts +57 -0
  98. package/dist/lib/extract.d.ts.map +1 -1
  99. package/dist/lib/local-backups.d.ts +129 -0
  100. package/dist/lib/local-backups.d.ts.map +1 -0
  101. package/dist/lib/local-bridge.d.ts +3 -1
  102. package/dist/lib/local-bridge.d.ts.map +1 -1
  103. package/dist/lib/local-extensions.d.ts +92 -0
  104. package/dist/lib/local-extensions.d.ts.map +1 -0
  105. package/dist/lib/local-notifications.d.ts +55 -0
  106. package/dist/lib/local-notifications.d.ts.map +1 -0
  107. package/dist/lib/local-reports.d.ts +149 -0
  108. package/dist/lib/local-reports.d.ts.map +1 -0
  109. package/dist/lib/local-snapshots.d.ts +66 -0
  110. package/dist/lib/local-snapshots.d.ts.map +1 -0
  111. package/dist/lib/mention-resolver.d.ts +43 -0
  112. package/dist/lib/mention-resolver.d.ts.map +1 -0
  113. package/dist/lib/natural-language-intake.d.ts +56 -0
  114. package/dist/lib/natural-language-intake.d.ts.map +1 -0
  115. package/dist/lib/onboarding-fixtures.d.ts +31 -0
  116. package/dist/lib/onboarding-fixtures.d.ts.map +1 -0
  117. package/dist/lib/public-release-gate.d.ts +7 -0
  118. package/dist/lib/public-release-gate.d.ts.map +1 -1
  119. package/dist/lib/redaction.d.ts +9 -0
  120. package/dist/lib/redaction.d.ts.map +1 -1
  121. package/dist/lib/release-compatibility.d.ts +59 -0
  122. package/dist/lib/release-compatibility.d.ts.map +1 -0
  123. package/dist/lib/release-notes.d.ts +81 -0
  124. package/dist/lib/release-notes.d.ts.map +1 -0
  125. package/dist/lib/retention-cleanup.d.ts +63 -0
  126. package/dist/lib/retention-cleanup.d.ts.map +1 -0
  127. package/dist/lib/review-queues.d.ts +98 -0
  128. package/dist/lib/review-queues.d.ts.map +1 -0
  129. package/dist/lib/roadmaps.d.ts +133 -0
  130. package/dist/lib/roadmaps.d.ts.map +1 -0
  131. package/dist/lib/scale-hardening.d.ts +74 -0
  132. package/dist/lib/scale-hardening.d.ts.map +1 -0
  133. package/dist/lib/sdk-integration-fixtures.d.ts +65 -0
  134. package/dist/lib/sdk-integration-fixtures.d.ts.map +1 -0
  135. package/dist/lib/terminal-notifications.d.ts +53 -0
  136. package/dist/lib/terminal-notifications.d.ts.map +1 -0
  137. package/dist/lib/todos-md.d.ts.map +1 -1
  138. package/dist/lib/tui-dashboard.d.ts +49 -0
  139. package/dist/lib/tui-dashboard.d.ts.map +1 -0
  140. package/dist/lib/usage-ledger.d.ts +82 -0
  141. package/dist/lib/usage-ledger.d.ts.map +1 -0
  142. package/dist/lib/workflow-prompts.d.ts +38 -0
  143. package/dist/lib/workflow-prompts.d.ts.map +1 -0
  144. package/dist/lib/workflow-states.d.ts +70 -0
  145. package/dist/lib/workflow-states.d.ts.map +1 -0
  146. package/dist/mcp/index.d.ts.map +1 -1
  147. package/dist/mcp/index.js +25922 -13067
  148. package/dist/mcp/token-utils.d.ts.map +1 -1
  149. package/dist/mcp/tools/code-tools.d.ts.map +1 -1
  150. package/dist/mcp/tools/machines.d.ts.map +1 -1
  151. package/dist/mcp/tools/task-adv-tools.d.ts.map +1 -1
  152. package/dist/mcp/tools/task-auto-tools.d.ts.map +1 -1
  153. package/dist/mcp/tools/task-crud.d.ts.map +1 -1
  154. package/dist/mcp/tools/task-meta-tools.d.ts.map +1 -1
  155. package/dist/mcp/tools/task-project-tools.d.ts.map +1 -1
  156. package/dist/mcp/tools/task-rel-tools.d.ts.map +1 -1
  157. package/dist/mcp/tools/task-resources.d.ts.map +1 -1
  158. package/dist/mcp/tools/workflow-prompts.d.ts +3 -0
  159. package/dist/mcp/tools/workflow-prompts.d.ts.map +1 -0
  160. package/dist/mcp.js +107 -2
  161. package/dist/registry.js +15919 -6050
  162. package/dist/server/index.js +645 -143
  163. package/dist/storage.js +2516 -159
  164. package/dist/types/index.d.ts +214 -0
  165. package/dist/types/index.d.ts.map +1 -1
  166. package/package.json +1 -1
  167. package/dist/release-provenance.json +0 -7
@@ -1,8 +1,9 @@
1
1
  import type { Database } from "bun:sqlite";
2
2
  import { type TaskFile } from "../db/task-files.js";
3
3
  import type { Plan, Project, TaskComment } from "../types/index.js";
4
- export type AgentContextPackFormat = "json" | "markdown";
4
+ export type AgentContextPackFormat = "json" | "markdown" | "compact-json" | "compact-markdown";
5
5
  export type AgentContextPackProfile = "codex" | "claude" | "takumi" | "generic";
6
+ export type AgentContextPackSection = "project" | "plan" | "acceptance_criteria" | "dependencies" | "comments" | "relevant_files" | "traceability" | "runs";
6
7
  export interface CreateAgentContextPackInput {
7
8
  task_id: string;
8
9
  agent_id?: string;
@@ -15,7 +16,12 @@ export interface CreateAgentContextPackInput {
15
16
  dependency_limit?: number;
16
17
  plan_task_limit?: number;
17
18
  max_text_chars?: number;
19
+ summary_char_limit?: number;
18
20
  stale_after_hours?: number;
21
+ token_budget?: number;
22
+ include_sections?: string[];
23
+ exclude_sections?: string[];
24
+ compact?: boolean;
19
25
  now?: string | Date;
20
26
  }
21
27
  export interface AgentContextPackTask {
@@ -131,10 +137,27 @@ export interface AgentContextPack {
131
137
  instructions: string[];
132
138
  suggested_prompt: string;
133
139
  };
134
- limits: Required<Pick<CreateAgentContextPackInput, "comment_limit" | "file_limit" | "verification_limit" | "run_limit" | "dependency_limit" | "plan_task_limit" | "max_text_chars" | "stale_after_hours">>;
140
+ context_budget: {
141
+ estimation: "chars_div_4";
142
+ token_budget: number | null;
143
+ original_estimated_tokens: number;
144
+ estimated_tokens: number;
145
+ compact: boolean;
146
+ included_sections: AgentContextPackSection[];
147
+ excluded_sections: AgentContextPackSection[];
148
+ omitted_sections: AgentContextPackSection[];
149
+ summaries: Array<{
150
+ section: AgentContextPackSection;
151
+ reason: string;
152
+ text: string;
153
+ estimated_tokens_saved: number;
154
+ }>;
155
+ };
156
+ limits: Required<Pick<CreateAgentContextPackInput, "comment_limit" | "file_limit" | "verification_limit" | "run_limit" | "dependency_limit" | "plan_task_limit" | "max_text_chars" | "summary_char_limit" | "stale_after_hours">>;
135
157
  warnings: string[];
136
158
  }
137
159
  export declare function createAgentContextPack(input: CreateAgentContextPackInput, db?: Database): AgentContextPack;
138
160
  export declare function renderAgentContextPackMarkdown(pack: AgentContextPack): string;
139
- export declare function renderAgentContextPack(pack: AgentContextPack, format: AgentContextPackFormat): string;
161
+ export declare function renderAgentContextPackCompactMarkdown(pack: AgentContextPack): string;
162
+ export declare function renderAgentContextPack(pack: AgentContextPack, format: AgentContextPackFormat, compact?: boolean): string;
140
163
  //# sourceMappingURL=context-packs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-packs.d.ts","sourceRoot":"","sources":["../../src/lib/context-packs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-packs.d.ts","sourceRoot":"","sources":["../../src/lib/context-packs.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { type LocalEventHookConfig, type LocalEventHookTarget } from "./config.js";
2
- export declare const LOCAL_EVENT_TYPES: readonly ["task.assigned", "task.blocked", "task.started", "task.completed", "task.failed", "task.unblocked", "task.status_changed", "plan.updated", "run.started", "run.completed", "run.failed", "run.cancelled", "approval.decided", "import.finished", "export.finished"];
2
+ export declare const LOCAL_EVENT_TYPES: readonly ["task.assigned", "task.blocked", "task.started", "task.completed", "task.due", "task.due_soon", "task.failed", "task.sla_breached", "task.stale", "task.unblocked", "task.status_changed", "calendar.reminder", "plan.updated", "run.started", "run.completed", "run.failed", "run.cancelled", "approval.decided", "import.finished", "export.finished"];
3
3
  export type LocalEventType = typeof LOCAL_EVENT_TYPES[number] | string;
4
4
  export interface LocalEventHookInput {
5
5
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"event-hooks.d.ts","sourceRoot":"","sources":["../../src/lib/event-hooks.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EAC1B,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,iBAAiB,+QAgBpB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,OAAO,iBAAiB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAEvE,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACpD;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE;QACN,OAAO,EAAE,cAAc,CAAC;QACxB,UAAU,EAAE,IAAI,CAAC;KAClB,CAAC;IACF,SAAS,EAAE;QACT,SAAS,EAAE,QAAQ,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,cAAc,CAAC;IAC3B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAmLD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB,CAYrF;AAED,wBAAgB,mBAAmB,IAAI,oBAAoB,EAAE,CAE5D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAE3E;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAQ1D;AAED,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,2BAA2B,GAAG,OAAO,CAAC,4BAA4B,EAAE,CAAC,CAKrH;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,2BAA2B,GAAG,IAAI,CAEjF;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,2BAA2B,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,4BAA4B,EAAE,CAAC,CAIjJ"}
1
+ {"version":3,"file":"event-hooks.d.ts","sourceRoot":"","sources":["../../src/lib/event-hooks.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EAC1B,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,iBAAiB,oWAqBpB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,OAAO,iBAAiB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAEvE,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACpD;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE;QACN,OAAO,EAAE,cAAc,CAAC;QACxB,UAAU,EAAE,IAAI,CAAC;KAClB,CAAC;IACF,SAAS,EAAE;QACT,SAAS,EAAE,QAAQ,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,cAAc,CAAC;IAC3B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAmLD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB,CAYrF;AAED,wBAAgB,mBAAmB,IAAI,oBAAoB,EAAE,CAE5D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAE3E;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAQ1D;AAED,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,2BAA2B,GAAG,OAAO,CAAC,4BAA4B,EAAE,CAAC,CAKrH;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,2BAA2B,GAAG,IAAI,CAEjF;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,2BAA2B,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,4BAA4B,EAAE,CAAC,CAIjJ"}
@@ -0,0 +1,60 @@
1
+ import type { Database } from "bun:sqlite";
2
+ import { type InboxItem } from "../db/inbox.js";
3
+ import type { Task, TaskPriority } from "../types/index.js";
4
+ import { type DuplicateTaskCandidate } from "./task-dedupe.js";
5
+ export declare const EXTERNAL_ISSUE_IMPORT_SCHEMA_VERSION = 1;
6
+ export type ExternalIssueProvider = "github" | "linear" | "jira" | "url";
7
+ export interface ExternalIssueRecord {
8
+ provider: ExternalIssueProvider;
9
+ external_id: string;
10
+ key: string | null;
11
+ title: string;
12
+ body: string | null;
13
+ url: string | null;
14
+ state: string | null;
15
+ labels: string[];
16
+ assignee: string | null;
17
+ priority: TaskPriority | null;
18
+ metadata: Record<string, unknown>;
19
+ }
20
+ export interface ExternalIssueImportInput {
21
+ provider?: ExternalIssueProvider;
22
+ text?: string;
23
+ json?: unknown;
24
+ source_url?: string;
25
+ source_name?: string;
26
+ project_id?: string;
27
+ task_list_id?: string;
28
+ agent_id?: string;
29
+ default_priority?: TaskPriority;
30
+ apply?: boolean;
31
+ allow_network?: boolean;
32
+ create_inbox?: boolean;
33
+ dedupe?: boolean;
34
+ }
35
+ export interface ExternalIssueExistingMatch {
36
+ issue: ExternalIssueRecord;
37
+ task: Task;
38
+ reason: string;
39
+ }
40
+ export interface ExternalIssueImportResult {
41
+ schema_version: 1;
42
+ local_only: true;
43
+ network_used: boolean;
44
+ dry_run: boolean;
45
+ imported_at: string;
46
+ source: {
47
+ provider: ExternalIssueProvider | null;
48
+ source_url: string | null;
49
+ source_name: string | null;
50
+ };
51
+ issues: ExternalIssueRecord[];
52
+ created_tasks: Task[];
53
+ inbox_items: InboxItem[];
54
+ existing_matches: ExternalIssueExistingMatch[];
55
+ duplicate_candidates: DuplicateTaskCandidate[];
56
+ warnings: string[];
57
+ commands: string[];
58
+ }
59
+ export declare function importExternalIssues(input: ExternalIssueImportInput, db?: Database): ExternalIssueImportResult;
60
+ //# sourceMappingURL=external-issue-importers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-issue-importers.d.ts","sourceRoot":"","sources":["../../src/lib/external-issue-importers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGjE,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAsB,KAAK,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAGnF,eAAO,MAAM,oCAAoC,IAAI,CAAC;AAEtD,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;AAEzE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,qBAAqB,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,YAAY,CAAC;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,cAAc,EAAE,CAAC,CAAC;IAClB,UAAU,EAAE,IAAI,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE;QACN,QAAQ,EAAE,qBAAqB,GAAG,IAAI,CAAC;QACvC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5B,CAAC;IACF,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,aAAa,EAAE,IAAI,EAAE,CAAC;IACtB,WAAW,EAAE,SAAS,EAAE,CAAC;IACzB,gBAAgB,EAAE,0BAA0B,EAAE,CAAC;IAC/C,oBAAoB,EAAE,sBAAsB,EAAE,CAAC;IAC/C,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAoYD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,wBAAwB,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,yBAAyB,CAsG9G"}
@@ -9,6 +9,34 @@ export interface ExtractedComment {
9
9
  line: number;
10
10
  /** Full line content from the source file */
11
11
  raw: string;
12
+ /** Stable fingerprint used to dedupe across line moves */
13
+ fingerprint: string;
14
+ /** Nearest enclosing or preceding symbol, when recognized locally */
15
+ symbol?: string;
16
+ symbol_kind?: SourceSymbolKind;
17
+ }
18
+ export type SourceSymbolKind = "function" | "class" | "interface" | "type" | "variable" | "method";
19
+ export interface SourceSymbol {
20
+ name: string;
21
+ kind: SourceSymbolKind;
22
+ file: string;
23
+ line: number;
24
+ raw: string;
25
+ }
26
+ export interface SourceIndexFile {
27
+ file: string;
28
+ checksum: string;
29
+ symbols: SourceSymbol[];
30
+ comments: ExtractedComment[];
31
+ }
32
+ export interface CodebaseIndex {
33
+ root: string;
34
+ generated_at: string;
35
+ files: SourceIndexFile[];
36
+ total_comments: number;
37
+ total_symbols: number;
38
+ respects_gitignore: boolean;
39
+ excludes: string[];
12
40
  }
13
41
  export interface ExtractOptions {
14
42
  /** Directory or file to scan */
@@ -29,6 +57,12 @@ export interface ExtractOptions {
29
57
  dry_run?: boolean;
30
58
  /** File extensions to scan (default: common code extensions) */
31
59
  extensions?: string[];
60
+ /** Extra glob-ish path patterns to exclude */
61
+ exclude?: string[];
62
+ /** Respect .gitignore files from the scanned root (default true) */
63
+ respect_gitignore?: boolean;
64
+ /** Include a local codebase index in the result */
65
+ include_index?: boolean;
32
66
  }
33
67
  export interface ExtractResult {
34
68
  /** All comments found */
@@ -37,6 +71,27 @@ export interface ExtractResult {
37
71
  tasks: Task[];
38
72
  /** Number of duplicates skipped */
39
73
  skipped: number;
74
+ /** Local codebase index, when requested */
75
+ index?: CodebaseIndex;
76
+ }
77
+ export interface WatchSourceTodosOptions extends ExtractOptions {
78
+ /** Poll interval for repeated local scans */
79
+ interval_ms?: number;
80
+ /** Run a single scan and return */
81
+ once?: boolean;
82
+ /** Maximum scans before returning. Defaults to 1 when once=true, otherwise Infinity. */
83
+ max_runs?: number;
84
+ }
85
+ export interface SourceTodoWatchRun {
86
+ run: number;
87
+ scanned_at: string;
88
+ changed_files: string[];
89
+ result: ExtractResult;
90
+ }
91
+ export interface SourceTodoWatchResult {
92
+ root: string;
93
+ interval_ms: number;
94
+ runs: SourceTodoWatchRun[];
40
95
  }
41
96
  /** Priority mapping from comment tag */
42
97
  export declare function tagToPriority(tag: ExtractTag): TaskPriority;
@@ -44,8 +99,10 @@ export declare function tagToPriority(tag: ExtractTag): TaskPriority;
44
99
  * Extract TODO-style comments from a single file's contents.
45
100
  */
46
101
  export declare function extractFromSource(source: string, filePath: string, tags?: ExtractTag[]): ExtractedComment[];
102
+ export declare function buildCodebaseIndex(options: ExtractOptions): CodebaseIndex;
47
103
  /**
48
104
  * Scan a directory or file for TODO-style comments and optionally create tasks.
49
105
  */
50
106
  export declare function extractTodos(options: ExtractOptions, db?: Database): ExtractResult;
107
+ export declare function watchSourceTodos(options: WatchSourceTodosOptions, onRun?: (run: SourceTodoWatchRun) => void | Promise<void>): Promise<SourceTodoWatchResult>;
51
108
  //# sourceMappingURL=extract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/lib/extract.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,eAAO,MAAM,YAAY,0DAA2D,CAAC;AACrF,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,UAAU,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,uCAAuC;IACvC,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;CACjB;AAqBD,wCAAwC;AACxC,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,YAAY,CAa3D;AAiBD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,UAAU,EAAsB,GACrC,gBAAgB,EAAE,CA0BpB;AA+BD;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,aAAa,CAuFlF"}
1
+ {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/lib/extract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,129 @@
1
+ import type { Database } from "bun:sqlite";
2
+ import { TODOS_LOCAL_BRIDGE_KIND, TODOS_LOCAL_BRIDGE_SCHEMA_VERSION, validateLocalBridgeBundle, type ImportLocalBridgeOptions, type LocalBridgeImportResult, type TodosLocalBridgeBundle, type TodosLocalBridgeData, type TodosLocalBridgePackageSource, type TodosLocalBridgeSource } from "./local-bridge.js";
3
+ export declare const TODOS_LOCAL_BACKUP_KIND = "hasna.todos.local-backup";
4
+ export declare const TODOS_LOCAL_BACKUP_SCHEMA_VERSION = 1;
5
+ export declare const TODOS_LOCAL_INTEGRITY_KIND = "hasna.todos.local-integrity";
6
+ export declare const TODOS_LOCAL_INTEGRITY_SCHEMA_VERSION = 1;
7
+ export declare const LOCAL_BACKUP_CHECKSUM_ALGORITHM = "sha256";
8
+ export interface CreateLocalBackupOptions {
9
+ project_id?: string;
10
+ generated_at?: string;
11
+ version?: string;
12
+ output_path?: string;
13
+ }
14
+ export interface LocalBackupSqliteIntegrity {
15
+ quick_check: string;
16
+ foreign_key_violations: number;
17
+ ok: boolean;
18
+ }
19
+ export interface LocalBackupManifest {
20
+ schema_version: typeof TODOS_LOCAL_BACKUP_SCHEMA_VERSION;
21
+ kind: typeof TODOS_LOCAL_BACKUP_KIND;
22
+ local_only: true;
23
+ no_network: true;
24
+ created_at: string;
25
+ package: TodosLocalBridgePackageSource;
26
+ source: TodosLocalBridgeSource;
27
+ bridge: {
28
+ kind: typeof TODOS_LOCAL_BRIDGE_KIND;
29
+ schema_version: typeof TODOS_LOCAL_BRIDGE_SCHEMA_VERSION;
30
+ exported_at: string;
31
+ checksum: string;
32
+ stats: Record<keyof TodosLocalBridgeData, number>;
33
+ artifact_contents: number;
34
+ };
35
+ database: {
36
+ path: string;
37
+ integrity: LocalBackupSqliteIntegrity;
38
+ };
39
+ checksum_algorithm: typeof LOCAL_BACKUP_CHECKSUM_ALGORITHM;
40
+ section_checksums: Record<keyof TodosLocalBridgeData, string>;
41
+ warnings: string[];
42
+ }
43
+ export interface LocalBackupBundle {
44
+ schema_version: typeof TODOS_LOCAL_BACKUP_SCHEMA_VERSION;
45
+ kind: typeof TODOS_LOCAL_BACKUP_KIND;
46
+ local_only: true;
47
+ no_network: true;
48
+ created_at: string;
49
+ package: TodosLocalBridgePackageSource;
50
+ manifest: LocalBackupManifest;
51
+ bridge: TodosLocalBridgeBundle;
52
+ checksum_algorithm: typeof LOCAL_BACKUP_CHECKSUM_ALGORITHM;
53
+ checksum: string;
54
+ }
55
+ export interface LocalBackupVerification {
56
+ schema_version: typeof TODOS_LOCAL_BACKUP_SCHEMA_VERSION;
57
+ kind: "hasna.todos.local-backup-verification";
58
+ local_only: true;
59
+ no_network: true;
60
+ verified_at: string;
61
+ ok: boolean;
62
+ checksum_algorithm: typeof LOCAL_BACKUP_CHECKSUM_ALGORITHM;
63
+ checksum: {
64
+ expected: string | null;
65
+ actual: string | null;
66
+ ok: boolean;
67
+ };
68
+ bridge_checksum: {
69
+ expected: string | null;
70
+ actual: string | null;
71
+ ok: boolean;
72
+ };
73
+ bridge_validation: ReturnType<typeof validateLocalBridgeBundle>;
74
+ sqlite: LocalBackupSqliteIntegrity | null;
75
+ counts: {
76
+ expected: Partial<Record<keyof TodosLocalBridgeData, number>>;
77
+ actual: Partial<Record<keyof TodosLocalBridgeData, number>>;
78
+ ok: boolean;
79
+ };
80
+ compatible: boolean;
81
+ issues: string[];
82
+ warnings: string[];
83
+ }
84
+ export interface RestoreLocalBackupOptions {
85
+ apply?: boolean;
86
+ conflict_strategy?: ImportLocalBridgeOptions["conflictStrategy"];
87
+ verified_at?: string;
88
+ }
89
+ export interface LocalBackupRestoreResult {
90
+ schema_version: typeof TODOS_LOCAL_BACKUP_SCHEMA_VERSION;
91
+ kind: "hasna.todos.local-backup-restore";
92
+ local_only: true;
93
+ no_network: true;
94
+ restored_at: string;
95
+ dry_run: boolean;
96
+ ok: boolean;
97
+ verification: LocalBackupVerification;
98
+ import_result: LocalBridgeImportResult | null;
99
+ issues: string[];
100
+ }
101
+ export interface LocalIntegrityReport {
102
+ schema_version: typeof TODOS_LOCAL_INTEGRITY_SCHEMA_VERSION;
103
+ kind: typeof TODOS_LOCAL_INTEGRITY_KIND;
104
+ local_only: true;
105
+ no_network: true;
106
+ generated_at: string;
107
+ database_path: string;
108
+ sqlite: LocalBackupSqliteIntegrity;
109
+ bridge_validation: ReturnType<typeof validateLocalBridgeBundle>;
110
+ counts: Record<keyof TodosLocalBridgeData, number>;
111
+ orphaned_rows: Record<string, number>;
112
+ ok: boolean;
113
+ issues: string[];
114
+ warnings: string[];
115
+ }
116
+ export declare function createLocalBackup(options?: CreateLocalBackupOptions, db?: Database): LocalBackupBundle;
117
+ export declare function writeLocalBackupFile(backup: LocalBackupBundle, outputPath: string): string;
118
+ export declare function readLocalBackupFile(path: string): LocalBackupBundle;
119
+ export declare function verifyLocalBackup(value: unknown, options?: {
120
+ verified_at?: string;
121
+ check_sqlite?: boolean;
122
+ }, db?: Database): LocalBackupVerification;
123
+ export declare function restoreLocalBackup(backup: LocalBackupBundle, options?: RestoreLocalBackupOptions, db?: Database): LocalBackupRestoreResult;
124
+ export declare function checkLocalIntegrity(options?: {
125
+ generated_at?: string;
126
+ project_id?: string;
127
+ version?: string;
128
+ }, db?: Database): LocalIntegrityReport;
129
+ //# sourceMappingURL=local-backups.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-backups.d.ts","sourceRoot":"","sources":["../../src/lib/local-backups.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { Database } from "bun:sqlite";
2
2
  import { type ExportedArtifactContent } from "./artifact-store.js";
3
- import type { Project, Plan, Task, TaskComment, TaskDependency, TaskList } from "../types/index.js";
3
+ import type { LocalCalendarItem, Project, Plan, Task, TaskBoard, TaskComment, TaskDependency, TaskList } from "../types/index.js";
4
4
  import type { TaskCommit, TaskGitRef, TaskVerification } from "../db/task-commits.js";
5
5
  import type { TaskFile } from "../db/task-files.js";
6
6
  import type { TaskRun, TaskRunArtifact, TaskRunCommand, TaskRunEvent } from "../db/task-runs.js";
@@ -32,6 +32,8 @@ export interface TodosLocalBridgeData {
32
32
  task_git_refs: TaskGitRef[];
33
33
  task_verifications: TaskVerification[];
34
34
  saved_views: SavedSearchView[];
35
+ task_boards: TaskBoard[];
36
+ local_calendar_items: LocalCalendarItem[];
35
37
  }
36
38
  export interface TodosLocalBridgeBundle {
37
39
  schemaVersion: typeof TODOS_LOCAL_BRIDGE_SCHEMA_VERSION;
@@ -1 +1 @@
1
- {"version":3,"file":"local-bridge.d.ts","sourceRoot":"","sources":["../../src/lib/local-bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-bridge.d.ts","sourceRoot":"","sources":["../../src/lib/local-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ import { type LocalExtensionManifest, type LocalExtensionRecord } from "./config.js";
2
+ import { type RunnerSandboxCheck } from "./runner-sandbox.js";
3
+ export interface ExtensionSourceInspection {
4
+ source: string;
5
+ source_type: "manifest" | "directory" | "bundle";
6
+ manifest_path: string;
7
+ manifest: LocalExtensionManifest;
8
+ checksum: string;
9
+ validation: ExtensionValidationResult;
10
+ bundle: boolean;
11
+ }
12
+ export interface ExtensionValidationResult {
13
+ ok: boolean;
14
+ errors: string[];
15
+ warnings: string[];
16
+ compatible: boolean;
17
+ todos_version: string;
18
+ compatibility_range: string | null;
19
+ permission_declarations: string[];
20
+ cli_mcp_checks: ExtensionCompatibilityCheck[];
21
+ sandbox_checks: ExtensionSandboxCheck[];
22
+ }
23
+ export interface ExtensionCompatibilityCheck {
24
+ surface: "cli" | "mcp" | "hook" | "template" | "renderer" | "permissions";
25
+ name: string;
26
+ ok: boolean;
27
+ errors: string[];
28
+ warnings: string[];
29
+ }
30
+ export interface ExtensionSandboxCheck {
31
+ command_name: string;
32
+ command: string;
33
+ allowed: boolean;
34
+ requires_approval: boolean;
35
+ reasons: string[];
36
+ audit_evidence: RunnerSandboxCheck["audit_evidence"];
37
+ }
38
+ export interface ExtensionCompatibilityReport {
39
+ source: string | null;
40
+ manifest: LocalExtensionManifest;
41
+ validation: ExtensionValidationResult;
42
+ ok: boolean;
43
+ summary: {
44
+ commands: number;
45
+ mcp_tools: number;
46
+ templates: number;
47
+ renderers: number;
48
+ hooks: number;
49
+ permissions: number;
50
+ sandbox_checks: number;
51
+ failed_sandbox_checks: number;
52
+ };
53
+ errors: string[];
54
+ warnings: string[];
55
+ }
56
+ export interface LocalExtensionDiscoveryReport {
57
+ schema_version: 1;
58
+ local_only: true;
59
+ no_network: true;
60
+ project_path: string | null;
61
+ config_sources: string[];
62
+ discovered: ExtensionSourceInspection[];
63
+ installed: LocalExtensionRecord[];
64
+ warnings: string[];
65
+ }
66
+ export interface DiscoverLocalExtensionsOptions {
67
+ project_path?: string;
68
+ include_installed?: boolean;
69
+ }
70
+ export interface InstallLocalExtensionInput {
71
+ source: string;
72
+ trust?: boolean;
73
+ checksum?: string;
74
+ signature?: string;
75
+ public_key?: string;
76
+ }
77
+ export interface VerifyExtensionSignatureInput {
78
+ checksum: string;
79
+ signature?: string;
80
+ public_key?: string;
81
+ }
82
+ export declare function verifyExtensionSignature(input: VerifyExtensionSignatureInput): boolean;
83
+ export declare function inspectExtensionSource(source: string): ExtensionSourceInspection;
84
+ export declare function validateExtensionManifest(manifest: LocalExtensionManifest): ExtensionValidationResult;
85
+ export declare function testExtensionCompatibility(sourceOrManifest: string | LocalExtensionManifest): ExtensionCompatibilityReport;
86
+ export declare function discoverLocalExtensions(options?: DiscoverLocalExtensionsOptions): LocalExtensionDiscoveryReport;
87
+ export declare function installLocalExtension(input: InstallLocalExtensionInput): LocalExtensionRecord;
88
+ export declare function listLocalExtensions(): LocalExtensionRecord[];
89
+ export declare function getLocalExtension(name: string): LocalExtensionRecord | null;
90
+ export declare function removeLocalExtension(name: string): boolean;
91
+ export declare function renderExtensionSummary(record: LocalExtensionRecord): string;
92
+ //# sourceMappingURL=local-extensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-extensions.d.ts","sourceRoot":"","sources":["../../src/lib/local-extensions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import type { Database } from "bun:sqlite";
2
+ import { type LocalEventHookDispatchResult, type LocalEventType } from "./event-hooks.js";
3
+ import { type TerminalNotificationEvaluation } from "./terminal-notifications.js";
4
+ export declare const LOCAL_NOTIFICATION_SCHEMA_VERSION = 1;
5
+ export type LocalNotificationKind = "task_due" | "task_due_soon" | "task_sla" | "task_stale" | "run_completed" | "run_failed" | "calendar_reminder";
6
+ export type LocalNotificationSeverity = "info" | "warning" | "critical";
7
+ export interface LocalNotificationQuietHours {
8
+ start: string;
9
+ end: string;
10
+ timezone?: "utc" | "local";
11
+ }
12
+ export interface CheckLocalNotificationsInput {
13
+ project_id?: string;
14
+ agent_id?: string;
15
+ now?: string;
16
+ due_within_minutes?: number;
17
+ stale_minutes?: number;
18
+ run_since?: string;
19
+ include_runs?: boolean;
20
+ include_calendar?: boolean;
21
+ emit_hooks?: boolean;
22
+ evaluate_terminal?: boolean;
23
+ quiet_hours?: LocalNotificationQuietHours;
24
+ limit?: number;
25
+ }
26
+ export interface LocalNotificationAlert {
27
+ id: string;
28
+ kind: LocalNotificationKind;
29
+ event_type: LocalEventType;
30
+ severity: LocalNotificationSeverity;
31
+ title: string;
32
+ message: string;
33
+ task_id: string | null;
34
+ run_id: string | null;
35
+ project_id: string | null;
36
+ agent_id: string | null;
37
+ due_at: string | null;
38
+ triggered_at: string;
39
+ quieted: boolean;
40
+ payload: Record<string, unknown>;
41
+ }
42
+ export interface CheckLocalNotificationsResult {
43
+ schema_version: 1;
44
+ local_only: true;
45
+ checked_at: string;
46
+ quiet_hours: LocalNotificationQuietHours | null;
47
+ quiet_active: boolean;
48
+ alerts: LocalNotificationAlert[];
49
+ hook_results: LocalEventHookDispatchResult[];
50
+ terminal_evaluations: TerminalNotificationEvaluation[];
51
+ counts: Record<LocalNotificationKind, number>;
52
+ warnings: string[];
53
+ }
54
+ export declare function checkLocalNotifications(input?: CheckLocalNotificationsInput, db?: Database): Promise<CheckLocalNotificationsResult>;
55
+ //# sourceMappingURL=local-notifications.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-notifications.d.ts","sourceRoot":"","sources":["../../src/lib/local-notifications.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAK3C,OAAO,EAEL,KAAK,4BAA4B,EACjC,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,6BAA6B,CAAC;AAGrC,eAAO,MAAM,iCAAiC,IAAI,CAAC;AAEnD,MAAM,MAAM,qBAAqB,GAC7B,UAAU,GACV,eAAe,GACf,UAAU,GACV,YAAY,GACZ,eAAe,GACf,YAAY,GACZ,mBAAmB,CAAC;AAExB,MAAM,MAAM,yBAAyB,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;AAQxE,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,4BAA4B;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,WAAW,CAAC,EAAE,2BAA2B,CAAC;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,qBAAqB,CAAC;IAC5B,UAAU,EAAE,cAAc,CAAC;IAC3B,QAAQ,EAAE,yBAAyB,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,6BAA6B;IAC5C,cAAc,EAAE,CAAC,CAAC;IAClB,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,2BAA2B,GAAG,IAAI,CAAC;IAChD,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,sBAAsB,EAAE,CAAC;IACjC,YAAY,EAAE,4BAA4B,EAAE,CAAC;IAC7C,oBAAoB,EAAE,8BAA8B,EAAE,CAAC;IACvD,MAAM,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAC9C,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AA6ID,wBAAsB,uBAAuB,CAAC,KAAK,GAAE,4BAAiC,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAkF7I"}