@contextgit/store 0.1.10 → 0.2.0

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 (37) hide show
  1. package/dist/interface.d.ts +26 -1
  2. package/dist/interface.d.ts.map +1 -1
  3. package/dist/local/index.d.ts +26 -1
  4. package/dist/local/index.d.ts.map +1 -1
  5. package/dist/local/index.js +216 -6
  6. package/dist/local/index.js.map +1 -1
  7. package/dist/local/local-store.test.js +642 -2
  8. package/dist/local/local-store.test.js.map +1 -1
  9. package/dist/local/migrations.d.ts +11 -0
  10. package/dist/local/migrations.d.ts.map +1 -1
  11. package/dist/local/migrations.js +118 -1
  12. package/dist/local/migrations.js.map +1 -1
  13. package/dist/local/plan-nodes.test.d.ts +2 -0
  14. package/dist/local/plan-nodes.test.d.ts.map +1 -0
  15. package/dist/local/plan-nodes.test.js +291 -0
  16. package/dist/local/plan-nodes.test.js.map +1 -0
  17. package/dist/local/queries.d.ts +103 -2
  18. package/dist/local/queries.d.ts.map +1 -1
  19. package/dist/local/queries.js +506 -16
  20. package/dist/local/queries.js.map +1 -1
  21. package/dist/local/schema.d.ts +8 -0
  22. package/dist/local/schema.d.ts.map +1 -1
  23. package/dist/local/schema.js +88 -0
  24. package/dist/local/schema.js.map +1 -1
  25. package/dist/local/thread-archive.test.d.ts +2 -0
  26. package/dist/local/thread-archive.test.d.ts.map +1 -0
  27. package/dist/local/thread-archive.test.js +203 -0
  28. package/dist/local/thread-archive.test.js.map +1 -0
  29. package/dist/remote/index.d.ts +15 -0
  30. package/dist/remote/index.d.ts.map +1 -1
  31. package/dist/remote/index.js +44 -0
  32. package/dist/remote/index.js.map +1 -1
  33. package/dist/supabase/index.d.ts +15 -0
  34. package/dist/supabase/index.d.ts.map +1 -1
  35. package/dist/supabase/index.js +45 -2
  36. package/dist/supabase/index.js.map +1 -1
  37. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  import type { Database } from 'better-sqlite3';
2
- import type { Agent, AgentInput, Branch, BranchInput, Claim, ClaimInput, Commit, CommitInput, Pagination, Project, ProjectInput, SearchResult, SessionSnapshot, Thread } from '@contextgit/core';
2
+ import type { Agent, AgentInput, ArchivedThread, Branch, BranchInput, Claim, ClaimInput, Commit, CommitInput, Pagination, PlanNode, PlanNodeInput, PlanNodeStatus, Project, ProjectInput, SearchResult, SessionSnapshot, Thread, TraceEntry } from '@contextgit/core';
3
3
  export declare class Queries {
4
4
  private readonly db;
5
5
  private readonly stmts;
@@ -20,13 +20,72 @@ export declare class Queries {
20
20
  getCommit(id: string): Commit | null;
21
21
  listCommits(branchId: string, pagination: Pagination): Commit[];
22
22
  getLastCommit(branchId: string): Commit | null;
23
- insertThread(id: string, description: string, projectId: string, branchId: string, openedInCommit: string, workflowType: string | null): Thread;
23
+ insertThread(id: string, description: string, projectId: string, branchId: string, openedInCommit: string, workflowType: string | null, kind?: Thread['kind']): Thread;
24
24
  syncThread(thread: Thread): Thread;
25
25
  closeThread(threadId: string, closedInCommit: string, note: string): void;
26
+ /**
27
+ * Move an open thread from `threads` to `thread_archive`. Single transaction.
28
+ * `closedInCommit` is the commit triggering the archive (the save's new commit
29
+ * for manual closes; the last-touched commit for sweep-based archival).
30
+ */
31
+ archiveThread(threadId: string, reason: ArchivedThread['archivedReason'], closedInCommit: string | null): ArchivedThread;
32
+ /**
33
+ * Move a row from `thread_archive` back to `threads` with `status='open'`,
34
+ * clearing closed_in_commit and closed_note (the restore semantically reopens it).
35
+ */
36
+ restoreThread(threadId: string): Thread;
37
+ listArchivedThreads(projectId: string): ArchivedThread[];
38
+ /**
39
+ * Bulk restore: move every archived row matching one of the given reasons back
40
+ * to `threads`. Returns the number of rows moved. Used to recover from a wrong
41
+ * one-time-sweep (e.g. the 0.2.1 calibration bug that archived live threads on
42
+ * long-lived branches via the old OR-of-distance rule).
43
+ */
44
+ restoreAllArchivedByReason(projectId: string, reasons: ArchivedThread['archivedReason'][]): number;
45
+ /**
46
+ * Find an open thread on this project whose normalized description matches.
47
+ * Used by dedupe-on-save (02 DELTA spec §A) — open-thread count per project is
48
+ * bounded by the decay system being built, so a JS-side scan is acceptable.
49
+ */
50
+ findOpenThreadByNormalizedDescription(projectId: string, normalized: string): Thread | undefined;
51
+ /**
52
+ * Resolve a 6-char handle to an open thread on the project.
53
+ * Returns undefined if no match; throws if multiple match (collision).
54
+ */
55
+ findOpenThreadByHandle(projectId: string, handle: string): Thread | undefined;
56
+ findArchivedThreadByHandle(projectId: string, handle: string): ArchivedThread | undefined;
57
+ /**
58
+ * Project-scoped sweep run by createCommit at the end of every save: any open
59
+ * thread on this project that classifies as `stale` or `expired` is moved to
60
+ * `thread_archive`. Returns counts by reason for the save response.
61
+ */
62
+ sweepStaleThreads(projectId: string, now: number): {
63
+ archived: number;
64
+ byReason: {
65
+ 'stale-age': number;
66
+ 'stale-distance': number;
67
+ 'watch-expired': number;
68
+ };
69
+ };
70
+ updateThreadLastTouched(threadId: string, commitId: string): void;
26
71
  listOpenThreads(projectId: string): Thread[];
27
72
  listOpenThreadsByBranch(branchId: string): Thread[];
73
+ /**
74
+ * Set the derived `stale` (open) or `expired` (watch) flag on a thread by
75
+ * looking up the touched commit's timestamp and counting project/branch
76
+ * commits since. Returns a new Thread — never mutates the input.
77
+ */
78
+ private attachDecayFlags;
28
79
  /** Move open threads from source branch to target (called during merge). */
29
80
  reassignOpenThreads(fromBranchId: string, toBranchId: string): void;
81
+ insertTraceEntry(input: {
82
+ id: string;
83
+ projectId: string;
84
+ branchId: string;
85
+ note: string;
86
+ gitCommitSha?: string;
87
+ }): TraceEntry;
88
+ listTraceEntries(projectId: string, pagination: Pagination): TraceEntry[];
30
89
  upsertAgent(input: AgentInput): Agent;
31
90
  incrementAgentCommits(agentId: string): void;
32
91
  listAgents(projectId: string): Agent[];
@@ -38,9 +97,51 @@ export declare class Queries {
38
97
  listThreadChangesSince(projectId: string, since: number): Thread[];
39
98
  getSessionSnapshot(projectId: string, branchId: string, options?: {
40
99
  agentRole?: string;
100
+ commitWindow?: number;
41
101
  }): SessionSnapshot;
42
102
  semanticSearch(db: Database, embeddingVector: Float32Array, projectId: string, limit: number): SearchResult[];
43
103
  fullTextSearch(db: Database, query: string, projectId: string): SearchResult[];
44
104
  insertEmbedding(db: Database, commitId: string, embedding: Float32Array): void;
105
+ /**
106
+ * Insert a plan tree of arbitrary depth atomically. `level` is semantic:
107
+ * - root (parent_id IS NULL) → 'plan'
108
+ * - has children at insert time → 'step' (container)
109
+ * - no children at insert time → 'task' (leaf)
110
+ *
111
+ * Hierarchy is determined by parent_id, not by depth. The depth-based
112
+ * mapping from earlier 04 DELTA versions was wrong on trees deeper than 3
113
+ * (Slice at depth 2 would get labeled 'task' but actually had children).
114
+ * Content-based labeling is correct at any depth.
115
+ */
116
+ insertPlanTree(projectId: string, input: PlanNodeInput): PlanNode;
117
+ /**
118
+ * Read the active plan tree for a project. Top-level plans with full child
119
+ * trees and derived `progress = { done, total }` per node — DIRECT-CHILD
120
+ * semantics: progress.total = number of direct children; progress.done =
121
+ * number of direct children that are effectively-done. Effectively-done
122
+ * propagates recursively: a node is effectively-done if (it has no children
123
+ * AND status='done') OR (it has children AND every child is effectively-done).
124
+ *
125
+ * Plans that are effectively-done are excluded from the active view — they
126
+ * belong in listCompletedPlans.
127
+ */
128
+ getPlanTree(projectId: string): PlanNode[];
129
+ /**
130
+ * List plans (parent_id IS NULL) that are effectively-done. The completed
131
+ * delivery record — kept indefinitely, never archived.
132
+ */
133
+ listCompletedPlans(projectId: string): PlanNode[];
134
+ /** Shared tree builder for getPlanTree / listCompletedPlans. */
135
+ private buildPlanTrees;
136
+ /**
137
+ * Set a plan node's status. When transitioning to 'done', stamps completed_at
138
+ * and optionally git_commit_sha (the commit that completed it).
139
+ */
140
+ updatePlanNodeStatus(id: string, status: PlanNodeStatus, gitCommitSha: string | null): void;
141
+ updatePlanNodeTitle(id: string, title: string): void;
142
+ /** Resolve a 6-char handle to a plan node. Throws on prefix collision. */
143
+ findPlanNodeByHandle(projectId: string, handle: string): PlanNode | undefined;
144
+ /** Resolve an exact title match. Throws when the title is ambiguous across nodes. */
145
+ findPlanNodeByTitle(projectId: string, title: string): PlanNode | undefined;
45
146
  }
46
147
  //# sourceMappingURL=queries.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/local/queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/local/queries.ts"],"names":[],"mappings":"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"}