@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.
- package/README.md +695 -11
- package/dist/cli/commands/agent-reliability-commands.d.ts +3 -0
- package/dist/cli/commands/agent-reliability-commands.d.ts.map +1 -0
- package/dist/cli/commands/audit-ledger-commands.d.ts +3 -0
- package/dist/cli/commands/audit-ledger-commands.d.ts.map +1 -0
- package/dist/cli/commands/capacity-commands.d.ts +3 -0
- package/dist/cli/commands/capacity-commands.d.ts.map +1 -0
- package/dist/cli/commands/config-serve-commands.d.ts.map +1 -1
- package/dist/cli/commands/help-commands.d.ts +3 -0
- package/dist/cli/commands/help-commands.d.ts.map +1 -0
- package/dist/cli/commands/knowledge-commands.d.ts +3 -0
- package/dist/cli/commands/knowledge-commands.d.ts.map +1 -0
- package/dist/cli/commands/local-backup-commands.d.ts +3 -0
- package/dist/cli/commands/local-backup-commands.d.ts.map +1 -0
- package/dist/cli/commands/local-snapshot-commands.d.ts +3 -0
- package/dist/cli/commands/local-snapshot-commands.d.ts.map +1 -0
- package/dist/cli/commands/machines.d.ts.map +1 -1
- package/dist/cli/commands/mcp-hooks-commands.d.ts.map +1 -1
- package/dist/cli/commands/onboarding-commands.d.ts +3 -0
- package/dist/cli/commands/onboarding-commands.d.ts.map +1 -0
- package/dist/cli/commands/project-commands.d.ts.map +1 -1
- package/dist/cli/commands/query-commands.d.ts.map +1 -1
- package/dist/cli/commands/release-compatibility-commands.d.ts +3 -0
- package/dist/cli/commands/release-compatibility-commands.d.ts.map +1 -0
- package/dist/cli/commands/retrospective-commands.d.ts +3 -0
- package/dist/cli/commands/retrospective-commands.d.ts.map +1 -0
- package/dist/cli/commands/review-queue-commands.d.ts +3 -0
- package/dist/cli/commands/review-queue-commands.d.ts.map +1 -0
- package/dist/cli/commands/risk-commands.d.ts +3 -0
- package/dist/cli/commands/risk-commands.d.ts.map +1 -0
- package/dist/cli/commands/roadmap-commands.d.ts +3 -0
- package/dist/cli/commands/roadmap-commands.d.ts.map +1 -0
- package/dist/cli/commands/scale-hardening-commands.d.ts +3 -0
- package/dist/cli/commands/scale-hardening-commands.d.ts.map +1 -0
- package/dist/cli/commands/sdk-fixture-commands.d.ts +3 -0
- package/dist/cli/commands/sdk-fixture-commands.d.ts.map +1 -0
- package/dist/cli/commands/task-commands.d.ts.map +1 -1
- package/dist/cli/commands/usage-ledger-commands.d.ts +3 -0
- package/dist/cli/commands/usage-ledger-commands.d.ts.map +1 -0
- package/dist/cli/components/Dashboard.d.ts.map +1 -1
- package/dist/cli/index.js +39446 -19769
- package/dist/cli-mcp-parity.d.ts +1 -1
- package/dist/cli-mcp-parity.d.ts.map +1 -1
- package/dist/contracts.d.ts +25 -0
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js +14818 -3885
- package/dist/db/agent-metrics.d.ts +101 -0
- package/dist/db/agent-metrics.d.ts.map +1 -1
- package/dist/db/agent-names.d.ts +2 -1
- package/dist/db/agent-names.d.ts.map +1 -1
- package/dist/db/boards.d.ts +56 -0
- package/dist/db/boards.d.ts.map +1 -0
- package/dist/db/calendar.d.ts +52 -0
- package/dist/db/calendar.d.ts.map +1 -0
- package/dist/db/comments.d.ts.map +1 -1
- package/dist/db/handoffs.d.ts +25 -0
- package/dist/db/handoffs.d.ts.map +1 -1
- package/dist/db/machines.d.ts +19 -6
- package/dist/db/machines.d.ts.map +1 -1
- package/dist/db/migrations.d.ts.map +1 -1
- package/dist/db/project-knowledge.d.ts +88 -0
- package/dist/db/project-knowledge.d.ts.map +1 -0
- package/dist/db/project-risks.d.ts +139 -0
- package/dist/db/project-risks.d.ts.map +1 -0
- package/dist/db/retrospectives.d.ts +98 -0
- package/dist/db/retrospectives.d.ts.map +1 -0
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/task-crud.d.ts.map +1 -1
- package/dist/db/task-relations.d.ts +69 -9
- package/dist/db/task-relations.d.ts.map +1 -1
- package/dist/db/task-runs.d.ts +3 -0
- package/dist/db/task-runs.d.ts.map +1 -1
- package/dist/db/tasks.d.ts +6 -2
- package/dist/db/tasks.d.ts.map +1 -1
- package/dist/index.d.ts +74 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24662 -11829
- package/dist/json-contracts.d.ts.map +1 -1
- package/dist/lib/agent-replay-simulator.d.ts +66 -0
- package/dist/lib/agent-replay-simulator.d.ts.map +1 -0
- package/dist/lib/audit-ledger.d.ts +59 -0
- package/dist/lib/audit-ledger.d.ts.map +1 -0
- package/dist/lib/branch-work-plans.d.ts +46 -0
- package/dist/lib/branch-work-plans.d.ts.map +1 -0
- package/dist/lib/capacity-forecasts.d.ts +70 -0
- package/dist/lib/capacity-forecasts.d.ts.map +1 -0
- package/dist/lib/cli-help.d.ts +38 -0
- package/dist/lib/cli-help.d.ts.map +1 -0
- package/dist/lib/config.d.ts +217 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/context-packs.d.ts +26 -3
- package/dist/lib/context-packs.d.ts.map +1 -1
- package/dist/lib/event-hooks.d.ts +1 -1
- package/dist/lib/event-hooks.d.ts.map +1 -1
- package/dist/lib/external-issue-importers.d.ts +60 -0
- package/dist/lib/external-issue-importers.d.ts.map +1 -0
- package/dist/lib/extract.d.ts +57 -0
- package/dist/lib/extract.d.ts.map +1 -1
- package/dist/lib/local-backups.d.ts +129 -0
- package/dist/lib/local-backups.d.ts.map +1 -0
- package/dist/lib/local-bridge.d.ts +3 -1
- package/dist/lib/local-bridge.d.ts.map +1 -1
- package/dist/lib/local-extensions.d.ts +92 -0
- package/dist/lib/local-extensions.d.ts.map +1 -0
- package/dist/lib/local-notifications.d.ts +55 -0
- package/dist/lib/local-notifications.d.ts.map +1 -0
- package/dist/lib/local-reports.d.ts +149 -0
- package/dist/lib/local-reports.d.ts.map +1 -0
- package/dist/lib/local-snapshots.d.ts +66 -0
- package/dist/lib/local-snapshots.d.ts.map +1 -0
- package/dist/lib/mention-resolver.d.ts +43 -0
- package/dist/lib/mention-resolver.d.ts.map +1 -0
- package/dist/lib/natural-language-intake.d.ts +56 -0
- package/dist/lib/natural-language-intake.d.ts.map +1 -0
- package/dist/lib/onboarding-fixtures.d.ts +31 -0
- package/dist/lib/onboarding-fixtures.d.ts.map +1 -0
- package/dist/lib/public-release-gate.d.ts +7 -0
- package/dist/lib/public-release-gate.d.ts.map +1 -1
- package/dist/lib/redaction.d.ts +9 -0
- package/dist/lib/redaction.d.ts.map +1 -1
- package/dist/lib/release-compatibility.d.ts +59 -0
- package/dist/lib/release-compatibility.d.ts.map +1 -0
- package/dist/lib/release-notes.d.ts +81 -0
- package/dist/lib/release-notes.d.ts.map +1 -0
- package/dist/lib/retention-cleanup.d.ts +63 -0
- package/dist/lib/retention-cleanup.d.ts.map +1 -0
- package/dist/lib/review-queues.d.ts +98 -0
- package/dist/lib/review-queues.d.ts.map +1 -0
- package/dist/lib/roadmaps.d.ts +133 -0
- package/dist/lib/roadmaps.d.ts.map +1 -0
- package/dist/lib/scale-hardening.d.ts +74 -0
- package/dist/lib/scale-hardening.d.ts.map +1 -0
- package/dist/lib/sdk-integration-fixtures.d.ts +65 -0
- package/dist/lib/sdk-integration-fixtures.d.ts.map +1 -0
- package/dist/lib/terminal-notifications.d.ts +53 -0
- package/dist/lib/terminal-notifications.d.ts.map +1 -0
- package/dist/lib/todos-md.d.ts.map +1 -1
- package/dist/lib/tui-dashboard.d.ts +49 -0
- package/dist/lib/tui-dashboard.d.ts.map +1 -0
- package/dist/lib/usage-ledger.d.ts +82 -0
- package/dist/lib/usage-ledger.d.ts.map +1 -0
- package/dist/lib/workflow-prompts.d.ts +38 -0
- package/dist/lib/workflow-prompts.d.ts.map +1 -0
- package/dist/lib/workflow-states.d.ts +70 -0
- package/dist/lib/workflow-states.d.ts.map +1 -0
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +25922 -13067
- package/dist/mcp/token-utils.d.ts.map +1 -1
- package/dist/mcp/tools/code-tools.d.ts.map +1 -1
- package/dist/mcp/tools/machines.d.ts.map +1 -1
- package/dist/mcp/tools/task-adv-tools.d.ts.map +1 -1
- package/dist/mcp/tools/task-auto-tools.d.ts.map +1 -1
- package/dist/mcp/tools/task-crud.d.ts.map +1 -1
- package/dist/mcp/tools/task-meta-tools.d.ts.map +1 -1
- package/dist/mcp/tools/task-project-tools.d.ts.map +1 -1
- package/dist/mcp/tools/task-rel-tools.d.ts.map +1 -1
- package/dist/mcp/tools/task-resources.d.ts.map +1 -1
- package/dist/mcp/tools/workflow-prompts.d.ts +3 -0
- package/dist/mcp/tools/workflow-prompts.d.ts.map +1 -0
- package/dist/mcp.js +107 -2
- package/dist/registry.js +15919 -6050
- package/dist/server/index.js +645 -143
- package/dist/storage.js +2516 -159
- package/dist/types/index.d.ts +214 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
- 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
|
-
|
|
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
|
|
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":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAM3C,OAAO,EAAiB,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAInE,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAQ,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAI1E,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,UAAU,CAAC;
|
|
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
|
|
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"}
|
package/dist/lib/extract.d.ts
CHANGED
|
@@ -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":"
|
|
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"}
|
|
@@ -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":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAM3C,OAAO,EACL,uBAAuB,EACvB,iCAAiC,EAGjC,yBAAyB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,6BAA6B,EAClC,KAAK,sBAAsB,EAC5B,MAAM,mBAAmB,CAAC;AAG3B,eAAO,MAAM,uBAAuB,6BAA6B,CAAC;AAClE,eAAO,MAAM,iCAAiC,IAAI,CAAC;AACnD,eAAO,MAAM,0BAA0B,gCAAgC,CAAC;AACxE,eAAO,MAAM,oCAAoC,IAAI,CAAC;AACtD,eAAO,MAAM,+BAA+B,WAAW,CAAC;AAExD,MAAM,WAAW,wBAAwB;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,EAAE,EAAE,OAAO,CAAC;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,OAAO,iCAAiC,CAAC;IACzD,IAAI,EAAE,OAAO,uBAAuB,CAAC;IACrC,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,6BAA6B,CAAC;IACvC,MAAM,EAAE,sBAAsB,CAAC;IAC/B,MAAM,EAAE;QACN,IAAI,EAAE,OAAO,uBAAuB,CAAC;QACrC,cAAc,EAAE,OAAO,iCAAiC,CAAC;QACzD,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC,MAAM,oBAAoB,EAAE,MAAM,CAAC,CAAC;QAClD,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,0BAA0B,CAAC;KACvC,CAAC;IACF,kBAAkB,EAAE,OAAO,+BAA+B,CAAC;IAC3D,iBAAiB,EAAE,MAAM,CAAC,MAAM,oBAAoB,EAAE,MAAM,CAAC,CAAC;IAC9D,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,OAAO,iCAAiC,CAAC;IACzD,IAAI,EAAE,OAAO,uBAAuB,CAAC;IACrC,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,6BAA6B,CAAC;IACvC,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,MAAM,EAAE,sBAAsB,CAAC;IAC/B,kBAAkB,EAAE,OAAO,+BAA+B,CAAC;IAC3D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,OAAO,iCAAiC,CAAC;IACzD,IAAI,EAAE,uCAAuC,CAAC;IAC9C,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,kBAAkB,EAAE,OAAO,+BAA+B,CAAC;IAC3D,QAAQ,EAAE;QACR,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,EAAE,EAAE,OAAO,CAAC;KACb,CAAC;IACF,eAAe,EAAE;QACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,EAAE,EAAE,OAAO,CAAC;KACb,CAAC;IACF,iBAAiB,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC;IAChE,MAAM,EAAE,0BAA0B,GAAG,IAAI,CAAC;IAC1C,MAAM,EAAE;QACN,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9D,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5D,EAAE,EAAE,OAAO,CAAC;KACb,CAAC;IACF,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iBAAiB,CAAC,EAAE,wBAAwB,CAAC,kBAAkB,CAAC,CAAC;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,OAAO,iCAAiC,CAAC;IACzD,IAAI,EAAE,kCAAkC,CAAC;IACzC,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,EAAE,EAAE,OAAO,CAAC;IACZ,YAAY,EAAE,uBAAuB,CAAC;IACtC,aAAa,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC9C,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,OAAO,oCAAoC,CAAC;IAC5D,IAAI,EAAE,OAAO,0BAA0B,CAAC;IACxC,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,0BAA0B,CAAC;IACnC,iBAAiB,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC;IAChE,MAAM,EAAE,MAAM,CAAC,MAAM,oBAAoB,EAAE,MAAM,CAAC,CAAC;IACnD,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAsDD,wBAAgB,iBAAiB,CAC/B,OAAO,GAAE,wBAA6B,EACtC,EAAE,CAAC,EAAE,QAAQ,GACZ,iBAAiB,CAsDnB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAK1F;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAEnE;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,EACd,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,EAC9D,EAAE,CAAC,EAAE,QAAQ,GACZ,uBAAuB,CA4FzB;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,iBAAiB,EACzB,OAAO,GAAE,yBAA8B,EACvC,EAAE,CAAC,EAAE,QAAQ,GACZ,wBAAwB,CAwB1B;AA6BD,wBAAgB,mBAAmB,CACjC,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,EAC9E,EAAE,CAAC,EAAE,QAAQ,GACZ,oBAAoB,CAgCtB"}
|
|
@@ -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":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,YAAY,CAAC;AAI7D,OAAO,EAA4D,KAAK,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC7H,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"local-bridge.d.ts","sourceRoot":"","sources":["../../src/lib/local-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,YAAY,CAAC;AAI7D,OAAO,EAA4D,KAAK,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC7H,OAAO,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClI,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACjG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAI/D,eAAO,MAAM,uBAAuB,6BAA6B,CAAC;AAClE,eAAO,MAAM,iCAAiC,IAAI,CAAC;AAEnD,MAAM,WAAW,6BAA6B;IAC5C,WAAW,EAAE,cAAc,CAAC;IAC5B,UAAU,EAAE,aAAa,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,EAAE,QAAQ,EAAE,CAAC;IACvB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,iBAAiB,EAAE,cAAc,EAAE,CAAC;IACpC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,aAAa,EAAE,eAAe,EAAE,CAAC;IACjC,UAAU,EAAE,QAAQ,EAAE,CAAC;IACvB,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,aAAa,EAAE,UAAU,EAAE,CAAC;IAC5B,kBAAkB,EAAE,gBAAgB,EAAE,CAAC;IACvC,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,WAAW,EAAE,SAAS,EAAE,CAAC;IACzB,oBAAoB,EAAE,iBAAiB,EAAE,CAAC;CAC3C;AAED,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,OAAO,iCAAiC,CAAC;IACxD,IAAI,EAAE,OAAO,uBAAuB,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,6BAA6B,CAAC;IACvC,MAAM,EAAE,sBAAsB,CAAC;IAC/B,IAAI,EAAE,oBAAoB,CAAC;IAC3B,iBAAiB,CAAC,EAAE,uBAAuB,EAAE,CAAC;IAC9C,KAAK,EAAE,MAAM,CAAC,MAAM,oBAAoB,EAAE,MAAM,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,2BAA2B;IAC1C,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,gBAAgB,GAAG,oBAAoB,GAAG,UAAU,CAAC;IAC7D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE,SAAS,GAAG,aAAa,GAAG,iBAAiB,CAAC;CAC5D;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,oBAAoB,EAAE,MAAM,CAAC,CAAC;IACrD,MAAM,EAAE,MAAM,CAAC,MAAM,oBAAoB,EAAE,MAAM,CAAC,CAAC;IACnD,OAAO,EAAE,MAAM,CAAC,MAAM,oBAAoB,EAAE,MAAM,CAAC,CAAC;IACpD,SAAS,EAAE,yBAAyB,EAAE,CAAC;IACvC,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,MAAM,2BAA2B,GAAG,MAAM,GAAG,YAAY,CAAC;AAEhE,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,2BAA2B,CAAC;CAChD;AA4KD,wBAAgB,uBAAuB,CACrC,OAAO,GAAE,wBAA6B,EACtC,EAAE,CAAC,EAAE,QAAQ,GACZ,sBAAsB,CA2GxB;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,2BAA2B,CA2BrF;AAkMD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,sBAAsB,EAC9B,OAAO,GAAE,wBAA6B,EACtC,EAAE,CAAC,EAAE,QAAQ,GACZ,uBAAuB,CAuEzB"}
|
|
@@ -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"}
|