@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
@@ -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":"AAKA,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;IACZ,0DAA0D;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,OAAO,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEnG,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;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;IACtB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,oEAAoE;IACpE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mDAAmD;IACnD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;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;IAChB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,uBAAwB,SAAQ,cAAc;IAC7D,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,wFAAwF;IACxF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,kBAAkB,EAAE,CAAC;CAC5B;AAqGD,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,CA+BpB;AAkCD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,aAAa,CAoCzE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,aAAa,CA0GlF;AAsBD,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,EAChC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACxD,OAAO,CAAC,qBAAqB,CAAC,CA4BhC"}
@@ -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,75 @@
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" | "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
+ hooks: number;
47
+ permissions: number;
48
+ sandbox_checks: number;
49
+ failed_sandbox_checks: number;
50
+ };
51
+ errors: string[];
52
+ warnings: string[];
53
+ }
54
+ export interface InstallLocalExtensionInput {
55
+ source: string;
56
+ trust?: boolean;
57
+ checksum?: string;
58
+ signature?: string;
59
+ public_key?: string;
60
+ }
61
+ export interface VerifyExtensionSignatureInput {
62
+ checksum: string;
63
+ signature?: string;
64
+ public_key?: string;
65
+ }
66
+ export declare function verifyExtensionSignature(input: VerifyExtensionSignatureInput): boolean;
67
+ export declare function inspectExtensionSource(source: string): ExtensionSourceInspection;
68
+ export declare function validateExtensionManifest(manifest: LocalExtensionManifest): ExtensionValidationResult;
69
+ export declare function testExtensionCompatibility(sourceOrManifest: string | LocalExtensionManifest): ExtensionCompatibilityReport;
70
+ export declare function installLocalExtension(input: InstallLocalExtensionInput): LocalExtensionRecord;
71
+ export declare function listLocalExtensions(): LocalExtensionRecord[];
72
+ export declare function getLocalExtension(name: string): LocalExtensionRecord | null;
73
+ export declare function removeLocalExtension(name: string): boolean;
74
+ export declare function renderExtensionSummary(record: LocalExtensionRecord): string;
75
+ //# 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":"AAGA,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EAC1B,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAsB,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAElF,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;IACjD,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,sBAAsB,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,yBAAyB,CAAC;IACtC,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,cAAc,EAAE,2BAA2B,EAAE,CAAC;IAC9C,cAAc,EAAE,qBAAqB,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,aAAa,CAAC;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;CACtD;AAED,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,sBAAsB,CAAC;IACjC,UAAU,EAAE,yBAAyB,CAAC;IACtC,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,qBAAqB,EAAE,MAAM,CAAC;KAC/B,CAAC;IACF,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAkND,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,GAAG,OAAO,CAMtF;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,yBAAyB,CAuBhF;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,yBAAyB,CA0CrG;AAED,wBAAgB,0BAA0B,CAAC,gBAAgB,EAAE,MAAM,GAAG,sBAAsB,GAAG,4BAA4B,CAuB1H;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,GAAG,oBAAoB,CA0C7F;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,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAE3E"}
@@ -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"}
@@ -0,0 +1,66 @@
1
+ import type { Database } from "bun:sqlite";
2
+ export declare const TODOS_LOCAL_SNAPSHOT_SCHEMA_VERSION = 1;
3
+ export type LocalSnapshotType = "projects" | "tasks" | "plans" | "runs" | "dependencies" | "events" | "evidence";
4
+ export interface LocalSnapshotCatalogEntry {
5
+ type: LocalSnapshotType;
6
+ uri: string;
7
+ title: string;
8
+ description: string;
9
+ json_contract: "local_snapshot";
10
+ }
11
+ export interface LocalSnapshotOptions {
12
+ type: LocalSnapshotType;
13
+ project_id?: string;
14
+ generatedAt?: string;
15
+ limit?: number;
16
+ since?: string;
17
+ }
18
+ export interface LocalSnapshot {
19
+ schema_version: typeof TODOS_LOCAL_SNAPSHOT_SCHEMA_VERSION;
20
+ kind: "hasna.todos.local-snapshot";
21
+ type: LocalSnapshotType;
22
+ local_only: true;
23
+ no_network: true;
24
+ redacted: true;
25
+ generated_at: string;
26
+ package: {
27
+ packageName: "@hasna/todos";
28
+ repository: "hasna/todos";
29
+ version: string;
30
+ };
31
+ filters: {
32
+ project_id: string | null;
33
+ since: string | null;
34
+ limit: number;
35
+ };
36
+ cursor: string;
37
+ fingerprint: string;
38
+ count: number;
39
+ items: unknown[];
40
+ resources: {
41
+ self: string;
42
+ poll_tool: "poll_local_snapshots";
43
+ markdown_tool: "get_local_snapshot";
44
+ };
45
+ }
46
+ export interface LocalSnapshotPollResult {
47
+ schema_version: 1;
48
+ local_only: true;
49
+ no_network: true;
50
+ generated_at: string;
51
+ since: string | null;
52
+ cursor: string;
53
+ changed: boolean;
54
+ snapshots: LocalSnapshot[];
55
+ }
56
+ export declare function listLocalSnapshotResources(): LocalSnapshotCatalogEntry[];
57
+ export declare function getLocalSnapshot(options: LocalSnapshotOptions, db?: Database): LocalSnapshot;
58
+ export declare function pollLocalSnapshots(options?: {
59
+ types?: LocalSnapshotType[];
60
+ project_id?: string;
61
+ since?: string;
62
+ generatedAt?: string;
63
+ limit?: number;
64
+ }, db?: Database): LocalSnapshotPollResult;
65
+ export declare function renderLocalSnapshotMarkdown(snapshot: LocalSnapshot): string;
66
+ //# sourceMappingURL=local-snapshots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-snapshots.d.ts","sourceRoot":"","sources":["../../src/lib/local-snapshots.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAM3C,eAAO,MAAM,mCAAmC,IAAI,CAAC;AAErD,MAAM,MAAM,iBAAiB,GACzB,UAAU,GACV,OAAO,GACP,OAAO,GACP,MAAM,GACN,cAAc,GACd,QAAQ,GACR,UAAU,CAAC;AAEf,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,iBAAiB,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,gBAAgB,CAAC;CACjC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,iBAAiB,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,OAAO,mCAAmC,CAAC;IAC3D,IAAI,EAAE,4BAA4B,CAAC;IACnC,IAAI,EAAE,iBAAiB,CAAC;IACxB,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;IACjB,QAAQ,EAAE,IAAI,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE;QACP,WAAW,EAAE,cAAc,CAAC;QAC5B,UAAU,EAAE,aAAa,CAAC;QAC1B,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,SAAS,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,sBAAsB,CAAC;QAClC,aAAa,EAAE,oBAAoB,CAAC;KACrC,CAAC;CACH;AAED,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,CAAC,CAAC;IAClB,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,aAAa,EAAE,CAAC;CAC5B;AA6OD,wBAAgB,0BAA0B,IAAI,yBAAyB,EAAE,CAExE;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,oBAAoB,EAC7B,EAAE,CAAC,EAAE,QAAQ,GACZ,aAAa,CAsCf;AAED,wBAAgB,kBAAkB,CAChC,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CACX,EACN,EAAE,CAAC,EAAE,QAAQ,GACZ,uBAAuB,CAsBzB;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAqB3E"}
@@ -0,0 +1,43 @@
1
+ import type { Database } from "bun:sqlite";
2
+ export type MentionReferenceKind = "file" | "symbol" | "commit" | "branch" | "pull_request" | "plan" | "run" | "agent" | "task" | "unknown";
3
+ export interface MentionResolverInput {
4
+ mentions: string[];
5
+ workspace?: string;
6
+ include_symbol_context?: boolean;
7
+ max_symbol_matches?: number;
8
+ now?: string;
9
+ }
10
+ export interface MentionBacklink {
11
+ kind: MentionReferenceKind;
12
+ key: string;
13
+ label: string;
14
+ target: string;
15
+ }
16
+ export interface MentionResolution {
17
+ input: string;
18
+ kind: MentionReferenceKind;
19
+ target: string;
20
+ resolved: boolean;
21
+ canonical: string | null;
22
+ title: string | null;
23
+ path: string | null;
24
+ line: number | null;
25
+ column: number | null;
26
+ symbol: string | null;
27
+ id: string | null;
28
+ sha: string | null;
29
+ backlinks: MentionBacklink[];
30
+ warnings: string[];
31
+ }
32
+ export interface MentionResolutionReport {
33
+ schema_version: 1;
34
+ local_only: true;
35
+ no_network: true;
36
+ generated_at: string;
37
+ workspace: string;
38
+ references: MentionResolution[];
39
+ backlinks: MentionBacklink[];
40
+ warnings: string[];
41
+ }
42
+ export declare function resolveMentions(input: MentionResolverInput, db?: Database): MentionResolutionReport;
43
+ //# sourceMappingURL=mention-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mention-resolver.d.ts","sourceRoot":"","sources":["../../src/lib/mention-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAS3C,MAAM,MAAM,oBAAoB,GAC5B,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,cAAc,GACd,MAAM,GACN,KAAK,GACL,OAAO,GACP,MAAM,GACN,SAAS,CAAC;AAEd,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,oBAAoB,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,oBAAoB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,CAAC,CAAC;IAClB,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAiZD,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,uBAAuB,CAkCnG"}
@@ -0,0 +1,56 @@
1
+ import type { Database } from "bun:sqlite";
2
+ import type { Plan, Project, Task, TaskPriority } from "../types/index.js";
3
+ export interface NaturalLanguageProjectPreview {
4
+ name: string;
5
+ description: string | null;
6
+ path: string;
7
+ }
8
+ export interface NaturalLanguagePlanPreview {
9
+ name: string;
10
+ description: string | null;
11
+ }
12
+ export interface NaturalLanguageDependencyPreview {
13
+ task_title: string;
14
+ depends_on_title: string;
15
+ resolved: boolean;
16
+ }
17
+ export interface NaturalLanguageTaskPreview {
18
+ title: string;
19
+ description: string | null;
20
+ priority: TaskPriority;
21
+ tags: string[];
22
+ assigned_to: string | null;
23
+ due_at: string | null;
24
+ depends_on: string[];
25
+ acceptance_criteria: string[];
26
+ }
27
+ export interface NaturalLanguageIntakeInput {
28
+ text: string;
29
+ project_id?: string;
30
+ task_list_id?: string;
31
+ default_priority?: TaskPriority;
32
+ reference_date?: string;
33
+ apply?: boolean;
34
+ }
35
+ export interface NaturalLanguageIntakePreview {
36
+ schema_version: 1;
37
+ local_only: true;
38
+ dry_run: boolean;
39
+ source_text: string;
40
+ project_id: string | null;
41
+ task_list_id: string | null;
42
+ detected_project_name: string | null;
43
+ detected_plan_name: string | null;
44
+ project: NaturalLanguageProjectPreview | null;
45
+ plan: NaturalLanguagePlanPreview | null;
46
+ tasks: NaturalLanguageTaskPreview[];
47
+ dependencies: NaturalLanguageDependencyPreview[];
48
+ acceptance_criteria: string[];
49
+ created_project: Project | null;
50
+ created_plan: Plan | null;
51
+ created_tasks: Task[];
52
+ warnings: string[];
53
+ commands: string[];
54
+ }
55
+ export declare function previewNaturalLanguageIntake(input: NaturalLanguageIntakeInput, db?: Database): NaturalLanguageIntakePreview;
56
+ //# sourceMappingURL=natural-language-intake.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"natural-language-intake.d.ts","sourceRoot":"","sources":["../../src/lib/natural-language-intake.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAK3C,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAI3E,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,gCAAgC;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,YAAY,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,4BAA4B;IAC3C,cAAc,EAAE,CAAC,CAAC;IAClB,UAAU,EAAE,IAAI,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,OAAO,EAAE,6BAA6B,GAAG,IAAI,CAAC;IAC9C,IAAI,EAAE,0BAA0B,GAAG,IAAI,CAAC;IACxC,KAAK,EAAE,0BAA0B,EAAE,CAAC;IACpC,YAAY,EAAE,gCAAgC,EAAE,CAAC;IACjD,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,IAAI,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAmHD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,0BAA0B,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,4BAA4B,CA6G3H"}
@@ -0,0 +1,31 @@
1
+ import { type ImportLocalBridgeOptions, type LocalBridgeImportResult, type TodosLocalBridgeBundle, type TodosLocalBridgeData } from "./local-bridge.js";
2
+ export declare const TODOS_ONBOARDING_FIXTURE_LIBRARY_VERSION = "2026-05-22";
3
+ export declare const TODOS_ONBOARDING_FIXTURE_SOURCE = "bundled-local-onboarding-fixtures";
4
+ export interface OnboardingFixtureSummary {
5
+ name: string;
6
+ description: string;
7
+ version: string;
8
+ local_only: true;
9
+ no_network: true;
10
+ redacted: true;
11
+ workflow: string[];
12
+ stats: Record<keyof TodosLocalBridgeData, number>;
13
+ }
14
+ export interface OnboardingFixture {
15
+ summary: Omit<OnboardingFixtureSummary, "stats">;
16
+ bundle: TodosLocalBridgeBundle;
17
+ }
18
+ export interface WriteOnboardingFixtureResult {
19
+ directory: string;
20
+ written: number;
21
+ files: string[];
22
+ }
23
+ export interface ImportOnboardingFixtureOptions extends ImportLocalBridgeOptions {
24
+ name?: string;
25
+ }
26
+ export declare function listOnboardingFixtures(): OnboardingFixtureSummary[];
27
+ export declare function getOnboardingFixture(name?: string): OnboardingFixture;
28
+ export declare function getOnboardingFixtureBundle(name?: string): TodosLocalBridgeBundle;
29
+ export declare function writeOnboardingFixtureFiles(directory: string): WriteOnboardingFixtureResult;
30
+ export declare function importOnboardingFixture(options?: ImportOnboardingFixtureOptions): LocalBridgeImportResult;
31
+ //# sourceMappingURL=onboarding-fixtures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding-fixtures.d.ts","sourceRoot":"","sources":["../../src/lib/onboarding-fixtures.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EAC1B,MAAM,mBAAmB,CAAC;AAE3B,eAAO,MAAM,wCAAwC,eAAe,CAAC;AACrE,eAAO,MAAM,+BAA+B,sCAAsC,CAAC;AAEnF,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;IACjB,QAAQ,EAAE,IAAI,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC,MAAM,oBAAoB,EAAE,MAAM,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,IAAI,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,EAAE,sBAAsB,CAAC;CAChC;AAED,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,8BAA+B,SAAQ,wBAAwB;IAC9E,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAmXD,wBAAgB,sBAAsB,IAAI,wBAAwB,EAAE,CAMnE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,SAAuB,GAAG,iBAAiB,CAUnF;AAED,wBAAgB,0BAA0B,CAAC,IAAI,SAAuB,GAAG,sBAAsB,CAE9F;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,4BAA4B,CAS3F;AAED,wBAAgB,uBAAuB,CACrC,OAAO,GAAE,8BAAmC,GAC3C,uBAAuB,CAMzB"}
@@ -40,6 +40,11 @@ export type ReleaseProvenance = {
40
40
  gitCommit?: string;
41
41
  generatedAt?: string;
42
42
  };
43
+ export type InstallSmokeCommand = {
44
+ command: string;
45
+ args: string[];
46
+ required?: boolean;
47
+ };
43
48
  export declare function validateRootPackageMetadata(packageJson: PackageJson): ReleaseGateFailure[];
44
49
  export declare function validateSdkPackageMetadata(packageJson: PackageJson): ReleaseGateFailure[];
45
50
  export declare function validatePublicTextSurfaces(files: TextFile[]): ReleaseGateFailure[];
@@ -47,4 +52,6 @@ export declare function validatePackedPackageFiles(paths: string[]): ReleaseGate
47
52
  export declare function validatePackedProvenanceMetadata(packageJson: PackageJson): ReleaseGateFailure[];
48
53
  export declare function validateReleaseProvenanceMetadata(provenance: ReleaseProvenance, packageJson: PackageJson): ReleaseGateFailure[];
49
54
  export declare function validateNpmView(packageName: string, rawJson: string): ReleaseGateFailure[];
55
+ export declare function getInstallSmokeCommands(tarball?: string, port?: string): InstallSmokeCommand[];
56
+ export declare function validateInstallSmokeCommands(commands: InstallSmokeCommand[]): ReleaseGateFailure[];
50
57
  //# sourceMappingURL=public-release-gate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"public-release-gate.d.ts","sourceRoot":"","sources":["../../src/lib/public-release-gate.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,CAAC,EAAE;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE;QACL,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAwCF,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,WAAW,GAAG,kBAAkB,EAAE,CAgD1F;AAED,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,WAAW,GAAG,kBAAkB,EAAE,CAQzF;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,kBAAkB,EAAE,CAoBlF;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,kBAAkB,EAAE,CAyBhF;AAED,wBAAgB,gCAAgC,CAAC,WAAW,EAAE,WAAW,GAAG,kBAAkB,EAAE,CAE/F;AAED,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,iBAAiB,EAC7B,WAAW,EAAE,WAAW,GACvB,kBAAkB,EAAE,CAiCtB;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAiB1F"}
1
+ {"version":3,"file":"public-release-gate.d.ts","sourceRoot":"","sources":["../../src/lib/public-release-gate.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,CAAC,EAAE;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE;QACL,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAkDF,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,WAAW,GAAG,kBAAkB,EAAE,CAgD1F;AAED,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,WAAW,GAAG,kBAAkB,EAAE,CAQzF;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,kBAAkB,EAAE,CAoBlF;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,kBAAkB,EAAE,CAyBhF;AAED,wBAAgB,gCAAgC,CAAC,WAAW,EAAE,WAAW,GAAG,kBAAkB,EAAE,CAE/F;AAED,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,iBAAiB,EAC7B,WAAW,EAAE,WAAW,GACvB,kBAAkB,EAAE,CAiCtB;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAiB1F;AAED,wBAAgB,uBAAuB,CAAC,OAAO,SAAc,EAAE,IAAI,SAAW,GAAG,mBAAmB,EAAE,CAKrG;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,kBAAkB,EAAE,CA2BlG"}
@@ -1,3 +1,12 @@
1
+ import { type SecretSafetyConfig } from "./config.js";
2
+ export interface SecretFinding {
3
+ pattern: string;
4
+ count: number;
5
+ }
1
6
  export declare function redactEvidenceText(value: string): string;
2
7
  export declare function redactValue<T>(value: T): T;
8
+ export declare function listSecretFindings(value: string): SecretFinding[];
9
+ export declare function hasSecretFindings(value: string): boolean;
10
+ export declare function getSecretSafetyConfig(): SecretSafetyConfig;
11
+ export declare function upsertSecretSafetyConfig(input: SecretSafetyConfig): SecretSafetyConfig;
3
12
  //# sourceMappingURL=redaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"redaction.d.ts","sourceRoot":"","sources":["../../src/lib/redaction.ts"],"names":[],"mappings":"AAAA,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOxD;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAe1C"}
1
+ {"version":3,"file":"redaction.d.ts","sourceRoot":"","sources":["../../src/lib/redaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE9E,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AA6CD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUxD;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAe1C;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,CAOjE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,wBAAgB,qBAAqB,IAAI,kBAAkB,CAK1D;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,kBAAkB,GAAG,kBAAkB,CAQtF"}