@hasna/todos 0.11.44 → 0.11.45

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 (140) hide show
  1. package/README.md +573 -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/knowledge-commands.d.ts +3 -0
  10. package/dist/cli/commands/knowledge-commands.d.ts.map +1 -0
  11. package/dist/cli/commands/local-snapshot-commands.d.ts +3 -0
  12. package/dist/cli/commands/local-snapshot-commands.d.ts.map +1 -0
  13. package/dist/cli/commands/machines.d.ts.map +1 -1
  14. package/dist/cli/commands/mcp-hooks-commands.d.ts.map +1 -1
  15. package/dist/cli/commands/onboarding-commands.d.ts +3 -0
  16. package/dist/cli/commands/onboarding-commands.d.ts.map +1 -0
  17. package/dist/cli/commands/project-commands.d.ts.map +1 -1
  18. package/dist/cli/commands/query-commands.d.ts.map +1 -1
  19. package/dist/cli/commands/release-compatibility-commands.d.ts +3 -0
  20. package/dist/cli/commands/release-compatibility-commands.d.ts.map +1 -0
  21. package/dist/cli/commands/retrospective-commands.d.ts +3 -0
  22. package/dist/cli/commands/retrospective-commands.d.ts.map +1 -0
  23. package/dist/cli/commands/review-queue-commands.d.ts +3 -0
  24. package/dist/cli/commands/review-queue-commands.d.ts.map +1 -0
  25. package/dist/cli/commands/risk-commands.d.ts +3 -0
  26. package/dist/cli/commands/risk-commands.d.ts.map +1 -0
  27. package/dist/cli/commands/roadmap-commands.d.ts +3 -0
  28. package/dist/cli/commands/roadmap-commands.d.ts.map +1 -0
  29. package/dist/cli/commands/sdk-fixture-commands.d.ts +3 -0
  30. package/dist/cli/commands/sdk-fixture-commands.d.ts.map +1 -0
  31. package/dist/cli/commands/task-commands.d.ts.map +1 -1
  32. package/dist/cli/index.js +37378 -20976
  33. package/dist/cli-mcp-parity.d.ts +1 -1
  34. package/dist/cli-mcp-parity.d.ts.map +1 -1
  35. package/dist/contracts.d.ts +19 -0
  36. package/dist/contracts.d.ts.map +1 -1
  37. package/dist/contracts.js +10136 -685
  38. package/dist/db/agent-metrics.d.ts +101 -0
  39. package/dist/db/agent-metrics.d.ts.map +1 -1
  40. package/dist/db/boards.d.ts +56 -0
  41. package/dist/db/boards.d.ts.map +1 -0
  42. package/dist/db/calendar.d.ts +52 -0
  43. package/dist/db/calendar.d.ts.map +1 -0
  44. package/dist/db/comments.d.ts.map +1 -1
  45. package/dist/db/handoffs.d.ts +25 -0
  46. package/dist/db/handoffs.d.ts.map +1 -1
  47. package/dist/db/machines.d.ts +19 -6
  48. package/dist/db/machines.d.ts.map +1 -1
  49. package/dist/db/migrations.d.ts.map +1 -1
  50. package/dist/db/project-knowledge.d.ts +88 -0
  51. package/dist/db/project-knowledge.d.ts.map +1 -0
  52. package/dist/db/project-risks.d.ts +139 -0
  53. package/dist/db/project-risks.d.ts.map +1 -0
  54. package/dist/db/retrospectives.d.ts +98 -0
  55. package/dist/db/retrospectives.d.ts.map +1 -0
  56. package/dist/db/schema.d.ts.map +1 -1
  57. package/dist/db/task-crud.d.ts.map +1 -1
  58. package/dist/db/task-relations.d.ts +69 -9
  59. package/dist/db/task-relations.d.ts.map +1 -1
  60. package/dist/db/tasks.d.ts +6 -2
  61. package/dist/db/tasks.d.ts.map +1 -1
  62. package/dist/index.d.ts +60 -11
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +19879 -9586
  65. package/dist/json-contracts.d.ts.map +1 -1
  66. package/dist/lib/agent-replay-simulator.d.ts +66 -0
  67. package/dist/lib/agent-replay-simulator.d.ts.map +1 -0
  68. package/dist/lib/audit-ledger.d.ts +59 -0
  69. package/dist/lib/audit-ledger.d.ts.map +1 -0
  70. package/dist/lib/branch-work-plans.d.ts +46 -0
  71. package/dist/lib/branch-work-plans.d.ts.map +1 -0
  72. package/dist/lib/capacity-forecasts.d.ts +70 -0
  73. package/dist/lib/capacity-forecasts.d.ts.map +1 -0
  74. package/dist/lib/config.d.ts +179 -0
  75. package/dist/lib/config.d.ts.map +1 -1
  76. package/dist/lib/context-packs.d.ts +26 -3
  77. package/dist/lib/context-packs.d.ts.map +1 -1
  78. package/dist/lib/event-hooks.d.ts +1 -1
  79. package/dist/lib/event-hooks.d.ts.map +1 -1
  80. package/dist/lib/external-issue-importers.d.ts +60 -0
  81. package/dist/lib/external-issue-importers.d.ts.map +1 -0
  82. package/dist/lib/extract.d.ts +57 -0
  83. package/dist/lib/extract.d.ts.map +1 -1
  84. package/dist/lib/local-bridge.d.ts +3 -1
  85. package/dist/lib/local-bridge.d.ts.map +1 -1
  86. package/dist/lib/local-extensions.d.ts +75 -0
  87. package/dist/lib/local-extensions.d.ts.map +1 -0
  88. package/dist/lib/local-notifications.d.ts +55 -0
  89. package/dist/lib/local-notifications.d.ts.map +1 -0
  90. package/dist/lib/local-snapshots.d.ts +66 -0
  91. package/dist/lib/local-snapshots.d.ts.map +1 -0
  92. package/dist/lib/mention-resolver.d.ts +43 -0
  93. package/dist/lib/mention-resolver.d.ts.map +1 -0
  94. package/dist/lib/natural-language-intake.d.ts +56 -0
  95. package/dist/lib/natural-language-intake.d.ts.map +1 -0
  96. package/dist/lib/onboarding-fixtures.d.ts +31 -0
  97. package/dist/lib/onboarding-fixtures.d.ts.map +1 -0
  98. package/dist/lib/public-release-gate.d.ts +7 -0
  99. package/dist/lib/public-release-gate.d.ts.map +1 -1
  100. package/dist/lib/redaction.d.ts +9 -0
  101. package/dist/lib/redaction.d.ts.map +1 -1
  102. package/dist/lib/release-compatibility.d.ts +59 -0
  103. package/dist/lib/release-compatibility.d.ts.map +1 -0
  104. package/dist/lib/release-notes.d.ts +81 -0
  105. package/dist/lib/release-notes.d.ts.map +1 -0
  106. package/dist/lib/retention-cleanup.d.ts +63 -0
  107. package/dist/lib/retention-cleanup.d.ts.map +1 -0
  108. package/dist/lib/review-queues.d.ts +98 -0
  109. package/dist/lib/review-queues.d.ts.map +1 -0
  110. package/dist/lib/roadmaps.d.ts +133 -0
  111. package/dist/lib/roadmaps.d.ts.map +1 -0
  112. package/dist/lib/sdk-integration-fixtures.d.ts +65 -0
  113. package/dist/lib/sdk-integration-fixtures.d.ts.map +1 -0
  114. package/dist/lib/terminal-notifications.d.ts +53 -0
  115. package/dist/lib/terminal-notifications.d.ts.map +1 -0
  116. package/dist/lib/todos-md.d.ts.map +1 -1
  117. package/dist/lib/workflow-prompts.d.ts +38 -0
  118. package/dist/lib/workflow-prompts.d.ts.map +1 -0
  119. package/dist/mcp/index.d.ts.map +1 -1
  120. package/dist/mcp/index.js +20947 -9892
  121. package/dist/mcp/token-utils.d.ts.map +1 -1
  122. package/dist/mcp/tools/code-tools.d.ts.map +1 -1
  123. package/dist/mcp/tools/machines.d.ts.map +1 -1
  124. package/dist/mcp/tools/task-adv-tools.d.ts.map +1 -1
  125. package/dist/mcp/tools/task-auto-tools.d.ts.map +1 -1
  126. package/dist/mcp/tools/task-crud.d.ts.map +1 -1
  127. package/dist/mcp/tools/task-meta-tools.d.ts.map +1 -1
  128. package/dist/mcp/tools/task-project-tools.d.ts.map +1 -1
  129. package/dist/mcp/tools/task-rel-tools.d.ts.map +1 -1
  130. package/dist/mcp/tools/task-resources.d.ts.map +1 -1
  131. package/dist/mcp/tools/workflow-prompts.d.ts +3 -0
  132. package/dist/mcp/tools/workflow-prompts.d.ts.map +1 -0
  133. package/dist/mcp.js +95 -2
  134. package/dist/registry.js +14455 -6049
  135. package/dist/release-provenance.json +3 -3
  136. package/dist/server/index.js +493 -123
  137. package/dist/storage.js +2353 -139
  138. package/dist/types/index.d.ts +214 -0
  139. package/dist/types/index.d.ts.map +1 -1
  140. package/package.json +1 -1
@@ -14,6 +14,97 @@ export interface AgentMetrics {
14
14
  export interface LeaderboardEntry extends AgentMetrics {
15
15
  rank: number;
16
16
  }
17
+ export interface AgentReliabilityScorecardOptions {
18
+ project_id?: string;
19
+ since?: string;
20
+ stale_after_hours?: number;
21
+ }
22
+ export type AgentReliabilityGrade = "excellent" | "good" | "watch" | "at_risk";
23
+ export interface AgentReliabilityScorecard {
24
+ schema_version: 1;
25
+ local_only: true;
26
+ no_network: true;
27
+ generated_at: string;
28
+ agent_id: string;
29
+ agent_name: string;
30
+ scope: {
31
+ project_id: string | null;
32
+ since: string | null;
33
+ stale_after_hours: number;
34
+ };
35
+ score: number;
36
+ grade: AgentReliabilityGrade;
37
+ components: {
38
+ delivery: number;
39
+ verification: number;
40
+ run_reliability: number;
41
+ lock_hygiene: number;
42
+ retry_discipline: number;
43
+ handoff_hygiene: number;
44
+ };
45
+ signals: {
46
+ tasks_completed: number;
47
+ tasks_failed: number;
48
+ tasks_in_progress: number;
49
+ completion_rate: number;
50
+ passed_verifications: number;
51
+ failed_verifications: number;
52
+ unknown_verifications: number;
53
+ completed_tasks_with_passed_verification: number;
54
+ verification_coverage: number;
55
+ runs_completed: number;
56
+ runs_failed: number;
57
+ run_success_rate: number;
58
+ stale_task_locks: number;
59
+ stale_resource_locks: number;
60
+ handoffs_created: number;
61
+ handoffs_with_task_refs: number;
62
+ handoffs_with_blockers: number;
63
+ retry_count: number;
64
+ max_retry_count: number;
65
+ };
66
+ evidence: {
67
+ failed_tasks: Array<{
68
+ id: string;
69
+ short_id: string | null;
70
+ title: string;
71
+ updated_at: string;
72
+ }>;
73
+ failed_verifications: Array<{
74
+ id: string;
75
+ task_id: string;
76
+ command: string;
77
+ run_at: string;
78
+ }>;
79
+ failed_runs: Array<{
80
+ id: string;
81
+ task_id: string;
82
+ title: string | null;
83
+ completed_at: string | null;
84
+ }>;
85
+ stale_locks: Array<{
86
+ kind: "task" | "resource";
87
+ id: string;
88
+ locked_at: string;
89
+ resource_type?: string;
90
+ }>;
91
+ };
92
+ recommendations: string[];
93
+ }
94
+ export interface AgentReliabilityExport {
95
+ schema_version: 1;
96
+ local_only: true;
97
+ no_network: true;
98
+ generated_at: string;
99
+ filters: {
100
+ agent_id: string | null;
101
+ project_id: string | null;
102
+ since: string | null;
103
+ stale_after_hours: number;
104
+ };
105
+ count: number;
106
+ scorecards: AgentReliabilityScorecard[];
107
+ }
17
108
  /**
18
109
  * Compute metrics for a single agent from task data.
19
110
  */
@@ -31,4 +122,14 @@ export declare function getLeaderboard(opts?: {
31
122
  * Score a task completion (store review score in metadata).
32
123
  */
33
124
  export declare function scoreTask(taskId: string, score: number, reviewerId?: string, db?: Database): void;
125
+ export declare function getAgentReliabilityScorecard(agentId: string, options?: AgentReliabilityScorecardOptions, db?: Database): AgentReliabilityScorecard | null;
126
+ export declare function listAgentReliabilityScorecards(options?: AgentReliabilityScorecardOptions & {
127
+ agent_id?: string;
128
+ limit?: number;
129
+ }, db?: Database): AgentReliabilityScorecard[];
130
+ export declare function createAgentReliabilityExport(options?: AgentReliabilityScorecardOptions & {
131
+ agent_id?: string;
132
+ limit?: number;
133
+ }, db?: Database): AgentReliabilityExport;
134
+ export declare function renderAgentReliabilityMarkdown(report: AgentReliabilityExport | AgentReliabilityScorecard): string;
34
135
  //# sourceMappingURL=agent-metrics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-metrics.d.ts","sourceRoot":"","sources":["../../src/db/agent-metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,IAAI,CAgGnH;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,gBAAgB,EAAE,CAmBhH;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,CAajG"}
1
+ {"version":3,"file":"agent-metrics.d.ts","sourceRoot":"","sources":["../../src/db/agent-metrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import type { Database } from "bun:sqlite";
2
+ import type { BoardCard, BoardLane, BoardScope, BoardSnapshot, TaskBoard } from "../types/index.js";
3
+ export interface CreateTaskBoardInput {
4
+ name: string;
5
+ scope?: BoardScope;
6
+ project_id?: string;
7
+ task_list_id?: string;
8
+ plan_id?: string;
9
+ agent_id?: string;
10
+ lanes?: BoardLane[];
11
+ filters?: Record<string, unknown>;
12
+ }
13
+ export interface UpdateTaskBoardInput {
14
+ name?: string;
15
+ project_id?: string | null;
16
+ task_list_id?: string | null;
17
+ plan_id?: string | null;
18
+ agent_id?: string | null;
19
+ lanes?: BoardLane[];
20
+ filters?: Record<string, unknown>;
21
+ }
22
+ export interface TaskBoardQuery {
23
+ scope?: BoardScope;
24
+ project_id?: string;
25
+ task_list_id?: string;
26
+ plan_id?: string;
27
+ agent_id?: string;
28
+ limit?: number;
29
+ }
30
+ export interface MoveBoardCardInput {
31
+ board_id: string;
32
+ card_id: string;
33
+ lane_id?: string;
34
+ status?: string;
35
+ }
36
+ export interface TaskBoardBundle {
37
+ kind: "hasna.todos.task-board";
38
+ schemaVersion: 1;
39
+ exportedAt: string;
40
+ boards: TaskBoard[];
41
+ }
42
+ export declare function createTaskBoard(input: CreateTaskBoardInput, db?: Database): TaskBoard;
43
+ export declare function getTaskBoard(idOrName: string, db?: Database): TaskBoard | null;
44
+ export declare function listTaskBoards(query?: TaskBoardQuery, db?: Database): TaskBoard[];
45
+ export declare function updateTaskBoard(idOrName: string, input: UpdateTaskBoardInput, db?: Database): TaskBoard;
46
+ export declare function deleteTaskBoard(idOrName: string, db?: Database): boolean;
47
+ export declare function buildTaskBoardSnapshot(idOrBoard: string | TaskBoard, db?: Database): BoardSnapshot;
48
+ export declare function moveBoardCard(input: MoveBoardCardInput, db?: Database): BoardCard;
49
+ export declare function renderTaskBoard(snapshot: BoardSnapshot): string;
50
+ export declare function exportTaskBoardBundle(idOrName?: string, db?: Database): TaskBoardBundle;
51
+ export declare function importTaskBoardBundle(bundle: TaskBoardBundle, db?: Database): {
52
+ inserted: number;
53
+ updated: number;
54
+ skipped: number;
55
+ };
56
+ //# sourceMappingURL=boards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boards.d.ts","sourceRoot":"","sources":["../../src/db/boards.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import type { Database } from "bun:sqlite";
2
+ import type { CalendarEvent, CalendarEventKind, LocalCalendarItem } from "../types/index.js";
3
+ export interface CreateCalendarItemInput {
4
+ kind?: CalendarEventKind;
5
+ title: string;
6
+ description?: string;
7
+ starts_at: string;
8
+ ends_at?: string;
9
+ timezone?: string;
10
+ project_id?: string;
11
+ task_id?: string;
12
+ plan_id?: string;
13
+ run_id?: string;
14
+ recurrence_rule?: string;
15
+ metadata?: Record<string, unknown>;
16
+ }
17
+ export interface CalendarQuery {
18
+ project_id?: string;
19
+ task_id?: string;
20
+ plan_id?: string;
21
+ run_id?: string;
22
+ kind?: CalendarEventKind;
23
+ from?: string;
24
+ to?: string;
25
+ include_completed?: boolean;
26
+ include_runs?: boolean;
27
+ include_sla?: boolean;
28
+ include_local?: boolean;
29
+ limit?: number;
30
+ }
31
+ export interface IcsExportOptions extends CalendarQuery {
32
+ calendar_name?: string;
33
+ product_id?: string;
34
+ redact?: boolean;
35
+ generated_at?: string;
36
+ }
37
+ export interface IcsImportResult {
38
+ imported: number;
39
+ skipped: number;
40
+ items: LocalCalendarItem[];
41
+ }
42
+ export declare function createCalendarItem(input: CreateCalendarItemInput, db?: Database): LocalCalendarItem;
43
+ export declare function getCalendarItem(id: string, db?: Database): LocalCalendarItem | null;
44
+ export declare function listCalendarItems(query?: CalendarQuery, db?: Database): LocalCalendarItem[];
45
+ export declare function listCalendarEvents(query?: CalendarQuery, db?: Database): CalendarEvent[];
46
+ export declare function exportCalendarIcs(options?: IcsExportOptions, db?: Database): {
47
+ filename: string;
48
+ content: string;
49
+ events: CalendarEvent[];
50
+ };
51
+ export declare function importCalendarIcs(content: string, db?: Database): IcsImportResult;
52
+ //# sourceMappingURL=calendar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/db/calendar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,iBAAiB,EAA8B,MAAM,mBAAmB,CAAC;AAKzH,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,iBAAiB,EAAE,CAAC;CAC5B;AA6GD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,iBAAiB,CA6BnG;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,iBAAiB,GAAG,IAAI,CASnF;AAED,wBAAgB,iBAAiB,CAAC,KAAK,GAAE,aAAkB,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,iBAAiB,EAAE,CAgB/F;AAED,wBAAgB,kBAAkB,CAAC,KAAK,GAAE,aAAkB,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,aAAa,EAAE,CAgC5F;AAsDD,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,gBAAqB,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,aAAa,EAAE,CAAA;CAAE,CAoC/I;AAmBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,eAAe,CAgCjF"}
@@ -1 +1 @@
1
- {"version":3,"file":"comments.d.ts","sourceRoot":"","sources":["../../src/db/comments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKzE,wBAAgB,UAAU,CACxB,KAAK,EAAE,kBAAkB,EACzB,EAAE,CAAC,EAAE,QAAQ,GACZ,WAAW,CA2Bb;AAED,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,EAChB,EAAE,CAAC,EAAE,QAAQ,GACZ,WAAW,CAEb;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,IAAI,CAKxE;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,WAAW,EAAE,CAOzE;AAED,wBAAgB,aAAa,CAC3B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAC1B,EAAE,CAAC,EAAE,QAAQ,GACZ,WAAW,CAQb;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAIhE"}
1
+ {"version":3,"file":"comments.d.ts","sourceRoot":"","sources":["../../src/db/comments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMzE,wBAAgB,UAAU,CACxB,KAAK,EAAE,kBAAkB,EACzB,EAAE,CAAC,EAAE,QAAQ,GACZ,WAAW,CA2Bb;AAED,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,EAChB,EAAE,CAAC,EAAE,QAAQ,GACZ,WAAW,CAEb;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,IAAI,CAKxE;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,WAAW,EAAE,CAOzE;AAED,wBAAgB,aAAa,CAC3B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAC1B,EAAE,CAAC,EAAE,QAAQ,GACZ,WAAW,CAQb;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAIhE"}
@@ -42,7 +42,32 @@ export interface CreateSessionRecoveryHandoffInput {
42
42
  reason?: string;
43
43
  limit?: number;
44
44
  }
45
+ export interface HandoffBundle {
46
+ schemaVersion: 1;
47
+ kind: "hasna.todos.handoff";
48
+ exported_at: string;
49
+ handoff: Handoff;
50
+ references: {
51
+ tasks: Array<Record<string, unknown>>;
52
+ files: Array<Record<string, unknown>>;
53
+ runs: Array<Record<string, unknown>>;
54
+ verifications: Array<Record<string, unknown>>;
55
+ commits: Array<Record<string, unknown>>;
56
+ };
57
+ }
58
+ export interface ImportHandoffBundleResult {
59
+ applied: boolean;
60
+ created: boolean;
61
+ existing: boolean;
62
+ handoff_id: string;
63
+ summary: string;
64
+ warnings: string[];
65
+ }
45
66
  export declare function createHandoff(input: CreateHandoffInput, db?: Database): Handoff;
67
+ export declare function exportHandoffBundle(id: string, db?: Database, exportedAt?: Date): HandoffBundle;
68
+ export declare function importHandoffBundle(bundle: HandoffBundle, options?: {
69
+ apply?: boolean;
70
+ }, db?: Database): ImportHandoffBundleResult;
46
71
  export declare function listHandoffs(projectIdOrOptions?: string | ListHandoffsOptions, limitOrDb?: number | Database, maybeDb?: Database): Handoff[];
47
72
  export declare function getHandoff(id: string, db?: Database): Handoff | null;
48
73
  export declare function acknowledgeHandoff(id: string, agentId: string, db?: Database): Handoff;
@@ -1 +1 @@
1
- {"version":3,"file":"handoffs.d.ts","sourceRoot":"","sources":["../../src/db/handoffs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,YAAY,CAAC;AAI7D,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAChC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAkC/E;AAoCD,wBAAgB,YAAY,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,mBAAmB,EAAE,SAAS,GAAE,MAAM,GAAG,QAAa,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,EAAE,CAwBhJ;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,CAMpE;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAStF;AAED,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,CASpG;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,iCAAiC,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAyD7G"}
1
+ {"version":3,"file":"handoffs.d.ts","sourceRoot":"","sources":["../../src/db/handoffs.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,17 @@
1
1
  import type { Database } from "bun:sqlite";
2
- import type { Machine } from "../types/index.js";
2
+ import type { Machine, MachineTopologyDiagnostics } from "../types/index.js";
3
+ export interface MachineTopologyOptions {
4
+ hostname?: string;
5
+ platform?: string;
6
+ ssh_address?: string;
7
+ primary?: boolean;
8
+ tailscale_name?: string;
9
+ tailscale_ip?: string;
10
+ lan_address?: string;
11
+ workspace_path?: string;
12
+ git_root?: string;
13
+ arch?: string;
14
+ }
3
15
  /**
4
16
  * Get or create the local machine entry.
5
17
  * Uses TODOS_MACHINE_NAME env var, falls back to OS hostname.
@@ -15,11 +27,12 @@ export declare function listMachines(db?: Database, includeArchived?: boolean):
15
27
  /**
16
28
  * Register a new machine or update an existing one.
17
29
  */
18
- export declare function registerMachine(name: string, opts: {
19
- hostname?: string;
20
- ssh_address?: string;
21
- primary?: boolean;
22
- }, db?: Database): Machine;
30
+ export declare function registerMachine(name: string, opts: MachineTopologyOptions, db?: Database): Machine;
31
+ export declare function updateMachineHeartbeat(idOrName?: string, opts?: MachineTopologyOptions, db?: Database): Machine;
32
+ export declare function getMachineTopologyDiagnostics(opts?: {
33
+ stale_minutes?: number;
34
+ include_archived?: boolean;
35
+ }, db?: Database, at?: Date): MachineTopologyDiagnostics;
23
36
  /**
24
37
  * Set a machine as the primary machine.
25
38
  * Clears is_primary on all other machines.
@@ -1 +1 @@
1
- {"version":3,"file":"machines.d.ts","sourceRoot":"","sources":["../../src/db/machines.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAc,MAAM,mBAAmB,CAAC;AAY7D;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAuB9D;AAMD,wBAAgB,YAAY,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAKlD;AAED,2CAA2C;AAC3C,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,CAIpE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,CAI5E;AAED,wBAAgB,YAAY,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,eAAe,UAAQ,GAAG,OAAO,EAAE,CAO9E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,EACpE,EAAE,CAAC,EAAE,QAAQ,GACZ,OAAO,CA8BT;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAUtE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,CAI/D;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,CAe9D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,CAI1E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAehE;AAaD,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,UAAQ,GAAG,IAAI,CAgBnE"}
1
+ {"version":3,"file":"machines.d.ts","sourceRoot":"","sources":["../../src/db/machines.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EACV,OAAO,EAGP,0BAA0B,EAG3B,MAAM,mBAAmB,CAAC;AAO3B,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAoED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAuB9D;AAMD,wBAAgB,YAAY,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAKlD;AAED,2CAA2C;AAC3C,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,CAIpE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,CAI5E;AAED,wBAAgB,YAAY,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,eAAe,UAAQ,GAAG,OAAO,EAAE,CAO9E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,sBAAsB,EAC5B,EAAE,CAAC,EAAE,QAAQ,GACZ,OAAO,CAsCT;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,CAAC,EAAE,MAAM,EACjB,IAAI,GAAE,sBAA2B,EACjC,EAAE,CAAC,EAAE,QAAQ,GACZ,OAAO,CA2BT;AAED,wBAAgB,6BAA6B,CAC3C,IAAI,GAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAO,EACjE,EAAE,CAAC,EAAE,QAAQ,EACb,EAAE,GAAE,IAAiB,GACpB,0BAA0B,CAoG5B;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAUtE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,CAI/D;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,CAe9D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,CAI1E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAehE;AAaD,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,UAAQ,GAAG,IAAI,CAgBnE"}
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/db/migrations.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,UAk/BtB,CAAC"}
1
+ {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/db/migrations.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,UA0oCtB,CAAC"}
@@ -0,0 +1,88 @@
1
+ import type { Database } from "bun:sqlite";
2
+ import { type SnapshotType } from "./snapshots.js";
3
+ export type KnowledgeRecordType = "decision" | "architecture_note" | "tradeoff" | "context_snapshot";
4
+ export type KnowledgeExportFormat = "json" | "markdown";
5
+ export interface ProjectKnowledgeRecord {
6
+ id: string;
7
+ record_type: KnowledgeRecordType;
8
+ title: string;
9
+ content: string | null;
10
+ decision: string | null;
11
+ rationale: string | null;
12
+ alternatives: string[];
13
+ task_id: string | null;
14
+ project_id: string | null;
15
+ plan_id: string | null;
16
+ agent_id: string | null;
17
+ snapshot_id: string | null;
18
+ tags: string[];
19
+ metadata: Record<string, unknown>;
20
+ created_at: string;
21
+ updated_at: string;
22
+ }
23
+ export interface CreateKnowledgeRecordInput {
24
+ record_type: KnowledgeRecordType;
25
+ title: string;
26
+ content?: string;
27
+ decision?: string;
28
+ rationale?: string;
29
+ alternatives?: string[];
30
+ task_id?: string;
31
+ project_id?: string;
32
+ plan_id?: string;
33
+ agent_id?: string;
34
+ snapshot_id?: string;
35
+ tags?: string[];
36
+ metadata?: Record<string, unknown>;
37
+ }
38
+ export interface ListKnowledgeRecordsOptions {
39
+ record_type?: KnowledgeRecordType;
40
+ task_id?: string;
41
+ project_id?: string;
42
+ plan_id?: string;
43
+ agent_id?: string;
44
+ snapshot_id?: string;
45
+ tag?: string;
46
+ limit?: number;
47
+ }
48
+ export interface SearchKnowledgeRecordsOptions extends ListKnowledgeRecordsOptions {
49
+ query: string;
50
+ }
51
+ export interface CreateKnowledgeSnapshotInput {
52
+ title?: string;
53
+ snapshot_type?: SnapshotType;
54
+ summary: string;
55
+ task_id?: string;
56
+ project_id?: string;
57
+ agent_id?: string;
58
+ files_open?: string[];
59
+ attempts?: string[];
60
+ blockers?: string[];
61
+ next_steps?: string;
62
+ tags?: string[];
63
+ metadata?: Record<string, unknown>;
64
+ }
65
+ export interface KnowledgeExportReport {
66
+ schema_version: 1;
67
+ local_only: true;
68
+ no_network: true;
69
+ generated_at: string;
70
+ filters: Omit<ListKnowledgeRecordsOptions, "limit"> & {
71
+ query?: string | null;
72
+ };
73
+ count: number;
74
+ records: ProjectKnowledgeRecord[];
75
+ }
76
+ export declare function createKnowledgeRecord(input: CreateKnowledgeRecordInput, db?: Database): ProjectKnowledgeRecord;
77
+ export declare function getKnowledgeRecord(id: string, db?: Database): ProjectKnowledgeRecord | null;
78
+ export declare function listKnowledgeRecords(options?: ListKnowledgeRecordsOptions, db?: Database): ProjectKnowledgeRecord[];
79
+ export declare function searchKnowledgeRecords(options: SearchKnowledgeRecordsOptions, db?: Database): ProjectKnowledgeRecord[];
80
+ export declare function createKnowledgeSnapshot(input: CreateKnowledgeSnapshotInput, db?: Database): {
81
+ snapshot_id: string;
82
+ record: ProjectKnowledgeRecord;
83
+ };
84
+ export declare function createKnowledgeExportReport(options: ListKnowledgeRecordsOptions & {
85
+ query?: string;
86
+ }, db?: Database): KnowledgeExportReport;
87
+ export declare function renderKnowledgeExportMarkdown(report: KnowledgeExportReport): string;
88
+ //# sourceMappingURL=project-knowledge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-knowledge.d.ts","sourceRoot":"","sources":["../../src/db/project-knowledge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ import type { Database } from "bun:sqlite";
2
+ export type ProjectRiskStatus = "open" | "mitigating" | "resolved" | "accepted";
3
+ export type ProjectRiskSeverity = "low" | "medium" | "high" | "critical";
4
+ export type ProjectRiskProbability = "low" | "medium" | "high";
5
+ export type ProjectHealthStatus = "healthy" | "watch" | "at_risk" | "critical";
6
+ export type RiskExportFormat = "json" | "markdown";
7
+ export interface ProjectRiskRecord {
8
+ id: string;
9
+ title: string;
10
+ description: string | null;
11
+ status: ProjectRiskStatus;
12
+ severity: ProjectRiskSeverity;
13
+ probability: ProjectRiskProbability;
14
+ owner: string | null;
15
+ mitigation: string | null;
16
+ due_at: string | null;
17
+ project_id: string | null;
18
+ plan_id: string | null;
19
+ task_id: string | null;
20
+ tags: string[];
21
+ metadata: Record<string, unknown>;
22
+ created_at: string;
23
+ updated_at: string;
24
+ closed_at: string | null;
25
+ }
26
+ export interface CreateRiskInput {
27
+ title: string;
28
+ description?: string;
29
+ status?: ProjectRiskStatus;
30
+ severity?: ProjectRiskSeverity;
31
+ probability?: ProjectRiskProbability;
32
+ owner?: string;
33
+ mitigation?: string;
34
+ due_at?: string;
35
+ project_id?: string;
36
+ plan_id?: string;
37
+ task_id?: string;
38
+ tags?: string[];
39
+ metadata?: Record<string, unknown>;
40
+ }
41
+ export interface UpdateRiskInput {
42
+ title?: string;
43
+ description?: string | null;
44
+ status?: ProjectRiskStatus;
45
+ severity?: ProjectRiskSeverity;
46
+ probability?: ProjectRiskProbability;
47
+ owner?: string | null;
48
+ mitigation?: string | null;
49
+ due_at?: string | null;
50
+ project_id?: string | null;
51
+ plan_id?: string | null;
52
+ task_id?: string | null;
53
+ tags?: string[];
54
+ metadata?: Record<string, unknown>;
55
+ }
56
+ export interface ListRisksOptions {
57
+ status?: ProjectRiskStatus;
58
+ severity?: ProjectRiskSeverity;
59
+ probability?: ProjectRiskProbability;
60
+ owner?: string;
61
+ project_id?: string;
62
+ plan_id?: string;
63
+ task_id?: string;
64
+ tag?: string;
65
+ include_closed?: boolean;
66
+ limit?: number;
67
+ }
68
+ export interface ProjectHealthReport {
69
+ schema_version: 1;
70
+ local_only: true;
71
+ no_network: true;
72
+ generated_at: string;
73
+ scope: "plan" | "project";
74
+ scope_id: string;
75
+ score: number;
76
+ status: ProjectHealthStatus;
77
+ components: {
78
+ total_tasks: number;
79
+ blocked_tasks: number;
80
+ overdue_tasks: number;
81
+ failed_checks: number;
82
+ failed_runs: number;
83
+ dependency_depth: number;
84
+ open_risks: number;
85
+ critical_risks: number;
86
+ overdue_risks: number;
87
+ };
88
+ penalties: Record<string, number>;
89
+ blocked: Array<{
90
+ id: string;
91
+ short_id: string | null;
92
+ title: string;
93
+ blockers: Array<{
94
+ id: string;
95
+ short_id: string | null;
96
+ title: string;
97
+ status: string;
98
+ }>;
99
+ }>;
100
+ overdue: Array<{
101
+ id: string;
102
+ short_id: string | null;
103
+ title: string;
104
+ due_at: string;
105
+ }>;
106
+ failed_checks: Array<{
107
+ id: string;
108
+ task_id: string;
109
+ command: string;
110
+ run_at: string;
111
+ }>;
112
+ failed_runs: Array<{
113
+ id: string;
114
+ task_id: string;
115
+ title: string | null;
116
+ completed_at: string | null;
117
+ }>;
118
+ risks: ProjectRiskRecord[];
119
+ recommendations: string[];
120
+ }
121
+ export interface RiskRegisterExport {
122
+ schema_version: 1;
123
+ local_only: true;
124
+ no_network: true;
125
+ generated_at: string;
126
+ filters: Omit<ListRisksOptions, "limit">;
127
+ count: number;
128
+ risks: ProjectRiskRecord[];
129
+ }
130
+ export declare function createRisk(input: CreateRiskInput, db?: Database): ProjectRiskRecord;
131
+ export declare function getRisk(id: string, db?: Database): ProjectRiskRecord | null;
132
+ export declare function updateRisk(id: string, input: UpdateRiskInput, db?: Database): ProjectRiskRecord;
133
+ export declare function closeRisk(id: string, status?: "resolved" | "accepted", db?: Database): ProjectRiskRecord;
134
+ export declare function listRisks(options?: ListRisksOptions, db?: Database): ProjectRiskRecord[];
135
+ export declare function scorePlanHealth(planId: string, db?: Database): ProjectHealthReport;
136
+ export declare function scoreProjectHealth(projectId: string, db?: Database): ProjectHealthReport;
137
+ export declare function createRiskRegisterExport(options?: ListRisksOptions, db?: Database): RiskRegisterExport;
138
+ export declare function renderRiskRegisterMarkdown(report: RiskRegisterExport): string;
139
+ //# sourceMappingURL=project-risks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-risks.d.ts","sourceRoot":"","sources":["../../src/db/project-risks.ts"],"names":[],"mappings":"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"}