@context-vault/core 2.17.1 → 3.0.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 (101) hide show
  1. package/dist/capture.d.ts +21 -0
  2. package/dist/capture.d.ts.map +1 -0
  3. package/dist/capture.js +269 -0
  4. package/dist/capture.js.map +1 -0
  5. package/dist/categories.d.ts +6 -0
  6. package/dist/categories.d.ts.map +1 -0
  7. package/dist/categories.js +50 -0
  8. package/dist/categories.js.map +1 -0
  9. package/dist/config.d.ts +4 -0
  10. package/dist/config.d.ts.map +1 -0
  11. package/dist/config.js +190 -0
  12. package/dist/config.js.map +1 -0
  13. package/dist/constants.d.ts +33 -0
  14. package/dist/constants.d.ts.map +1 -0
  15. package/dist/constants.js +23 -0
  16. package/dist/constants.js.map +1 -0
  17. package/dist/db.d.ts +13 -0
  18. package/dist/db.d.ts.map +1 -0
  19. package/dist/db.js +191 -0
  20. package/dist/db.js.map +1 -0
  21. package/dist/embed.d.ts +5 -0
  22. package/dist/embed.d.ts.map +1 -0
  23. package/dist/embed.js +78 -0
  24. package/dist/embed.js.map +1 -0
  25. package/dist/files.d.ts +13 -0
  26. package/dist/files.d.ts.map +1 -0
  27. package/dist/files.js +66 -0
  28. package/dist/files.js.map +1 -0
  29. package/dist/formatters.d.ts +8 -0
  30. package/dist/formatters.d.ts.map +1 -0
  31. package/dist/formatters.js +18 -0
  32. package/dist/formatters.js.map +1 -0
  33. package/dist/frontmatter.d.ts +12 -0
  34. package/dist/frontmatter.d.ts.map +1 -0
  35. package/dist/frontmatter.js +101 -0
  36. package/dist/frontmatter.js.map +1 -0
  37. package/dist/index.d.ts +10 -0
  38. package/dist/index.d.ts.map +1 -0
  39. package/dist/index.js +297 -0
  40. package/dist/index.js.map +1 -0
  41. package/dist/ingest-url.d.ts +20 -0
  42. package/dist/ingest-url.d.ts.map +1 -0
  43. package/dist/ingest-url.js +113 -0
  44. package/dist/ingest-url.js.map +1 -0
  45. package/dist/main.d.ts +14 -0
  46. package/dist/main.d.ts.map +1 -0
  47. package/dist/main.js +25 -0
  48. package/dist/main.js.map +1 -0
  49. package/dist/search.d.ts +18 -0
  50. package/dist/search.d.ts.map +1 -0
  51. package/dist/search.js +238 -0
  52. package/dist/search.js.map +1 -0
  53. package/dist/types.d.ts +176 -0
  54. package/dist/types.d.ts.map +1 -0
  55. package/dist/types.js +2 -0
  56. package/dist/types.js.map +1 -0
  57. package/package.json +66 -16
  58. package/src/capture.ts +308 -0
  59. package/src/categories.ts +54 -0
  60. package/src/{core/config.js → config.ts} +34 -33
  61. package/src/{constants.js → constants.ts} +6 -3
  62. package/src/db.ts +229 -0
  63. package/src/{index/embed.js → embed.ts} +10 -35
  64. package/src/{core/files.js → files.ts} +15 -20
  65. package/src/{capture/formatters.js → formatters.ts} +13 -11
  66. package/src/{core/frontmatter.js → frontmatter.ts} +26 -33
  67. package/src/index.ts +351 -0
  68. package/src/ingest-url.ts +99 -0
  69. package/src/main.ts +111 -0
  70. package/src/{retrieve/index.js → search.ts} +62 -150
  71. package/src/types.ts +166 -0
  72. package/src/capture/file-ops.js +0 -99
  73. package/src/capture/import-pipeline.js +0 -46
  74. package/src/capture/importers.js +0 -387
  75. package/src/capture/index.js +0 -250
  76. package/src/capture/ingest-url.js +0 -252
  77. package/src/consolidation/index.js +0 -112
  78. package/src/core/categories.js +0 -73
  79. package/src/core/error-log.js +0 -54
  80. package/src/core/linking.js +0 -161
  81. package/src/core/migrate-dirs.js +0 -196
  82. package/src/core/status.js +0 -350
  83. package/src/core/telemetry.js +0 -90
  84. package/src/core/temporal.js +0 -146
  85. package/src/index/db.js +0 -586
  86. package/src/index/index.js +0 -583
  87. package/src/index.js +0 -71
  88. package/src/server/helpers.js +0 -44
  89. package/src/server/tools/clear-context.js +0 -47
  90. package/src/server/tools/context-status.js +0 -182
  91. package/src/server/tools/create-snapshot.js +0 -200
  92. package/src/server/tools/delete-context.js +0 -60
  93. package/src/server/tools/get-context.js +0 -765
  94. package/src/server/tools/ingest-project.js +0 -244
  95. package/src/server/tools/ingest-url.js +0 -88
  96. package/src/server/tools/list-buckets.js +0 -116
  97. package/src/server/tools/list-context.js +0 -163
  98. package/src/server/tools/save-context.js +0 -632
  99. package/src/server/tools/session-start.js +0 -285
  100. package/src/server/tools.js +0 -172
  101. package/src/sync/sync.js +0 -235
@@ -1,146 +0,0 @@
1
- /**
2
- * Temporal shortcut resolver.
3
- *
4
- * Converts natural-language time expressions to ISO date strings.
5
- * Fully pure — accepts an explicit `now` Date for deterministic testing.
6
- *
7
- * Supported shortcuts (case-insensitive, spaces or underscores):
8
- * today → start of today (00:00:00 local midnight in UTC)
9
- * yesterday → { since: start of yesterday, until: end of yesterday }
10
- * this_week → start of current ISO week (Monday 00:00)
11
- * last_N_days → N days ago (e.g. last_3_days, last 7 days)
12
- * last_N_weeks → N weeks ago
13
- * last_N_months → N calendar months ago (approximate: N × 30 days)
14
- *
15
- * Anything that doesn't match a shortcut is returned unchanged so that ISO
16
- * date strings pass straight through without modification.
17
- */
18
-
19
- const SHORTCUT_RE = /^last[_ ](\d+)[_ ](day|days|week|weeks|month|months)$/i;
20
-
21
- /**
22
- * Start of today in UTC (i.e. the midnight boundary at which the local date begins,
23
- * expressed as an ISO string). We operate in UTC throughout so tests are portable.
24
- *
25
- * @param {Date} now
26
- * @returns {Date}
27
- */
28
- function startOfToday(now) {
29
- const d = new Date(now);
30
- d.setUTCHours(0, 0, 0, 0);
31
- return d;
32
- }
33
-
34
- /**
35
- * Resolve a single temporal expression to one or two ISO date strings.
36
- *
37
- * @param {"since"|"until"} role - Which parameter we are resolving.
38
- * @param {string} value - Raw parameter value from the caller.
39
- * @param {Date} [now] - Override for "now" (defaults to `new Date()`).
40
- * @returns {string} - Resolved ISO date string (or original value if unrecognised).
41
- */
42
- export function resolveTemporalShortcut(role, value, now = new Date()) {
43
- if (!value || typeof value !== "string") return value;
44
-
45
- const trimmed = value.trim().toLowerCase().replace(/\s+/g, "_");
46
-
47
- if (trimmed === "today") {
48
- const start = startOfToday(now);
49
- if (role === "until") {
50
- // "until today" means up to end-of-today
51
- const end = new Date(start);
52
- end.setUTCDate(end.getUTCDate() + 1);
53
- return end.toISOString();
54
- }
55
- return start.toISOString();
56
- }
57
-
58
- if (trimmed === "yesterday") {
59
- const todayStart = startOfToday(now);
60
- const yesterdayStart = new Date(todayStart);
61
- yesterdayStart.setUTCDate(yesterdayStart.getUTCDate() - 1);
62
- if (role === "since") return yesterdayStart.toISOString();
63
- // role === "until": end of yesterday = start of today
64
- return todayStart.toISOString();
65
- }
66
-
67
- if (trimmed === "this_week") {
68
- // Monday 00:00 UTC of the current week
69
- const todayStart = startOfToday(now);
70
- const dayOfWeek = todayStart.getUTCDay(); // 0=Sun, 1=Mon, ..., 6=Sat
71
- const daysFromMonday = (dayOfWeek + 6) % 7; // 0 on Monday
72
- const monday = new Date(todayStart);
73
- monday.setUTCDate(monday.getUTCDate() - daysFromMonday);
74
- if (role === "since") return monday.toISOString();
75
- // "until this_week" means up to now (end of today)
76
- const endOfToday = new Date(todayStart);
77
- endOfToday.setUTCDate(endOfToday.getUTCDate() + 1);
78
- return endOfToday.toISOString();
79
- }
80
-
81
- if (trimmed === "this_month") {
82
- const d = new Date(Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), 1));
83
- if (role === "since") return d.toISOString();
84
- const endOfMonth = new Date(
85
- Date.UTC(now.getUTCFullYear(), now.getUTCMonth() + 1, 1),
86
- );
87
- return endOfMonth.toISOString();
88
- }
89
-
90
- const m = SHORTCUT_RE.exec(trimmed);
91
- if (m) {
92
- const n = parseInt(m[1], 10);
93
- const unit = m[2].replace(/s$/, ""); // normalise plural → singular
94
- let ms;
95
- if (unit === "day") {
96
- ms = n * 86400000;
97
- } else if (unit === "week") {
98
- ms = n * 7 * 86400000;
99
- } else {
100
- // month → approximate as 30 days
101
- ms = n * 30 * 86400000;
102
- }
103
- const target = new Date(now.getTime() - ms);
104
- target.setUTCHours(0, 0, 0, 0);
105
- return target.toISOString();
106
- }
107
-
108
- // Unrecognised — pass through unchanged (ISO dates, empty strings, etc.)
109
- return value;
110
- }
111
-
112
- /**
113
- * Resolve both `since` and `until` parameters, handling the special case where
114
- * "yesterday" sets both bounds automatically when only `since` is specified.
115
- *
116
- * Returns `{ since, until }` with resolved ISO strings (or originals).
117
- *
118
- * @param {{ since?: string, until?: string }} params
119
- * @param {Date} [now]
120
- * @returns {{ since: string|undefined, until: string|undefined }}
121
- */
122
- export function resolveTemporalParams(params, now = new Date()) {
123
- let { since, until } = params;
124
-
125
- // Special case: "yesterday" on `since` without an explicit `until`
126
- // auto-fills `until` to the end of yesterday.
127
- if (
128
- since?.trim().toLowerCase() === "yesterday" &&
129
- (until === undefined || until === null)
130
- ) {
131
- since = resolveTemporalShortcut("since", since, now);
132
- until = resolveTemporalShortcut("until", "yesterday", now);
133
- return { since, until };
134
- }
135
-
136
- return {
137
- since:
138
- since !== undefined
139
- ? resolveTemporalShortcut("since", since, now)
140
- : since,
141
- until:
142
- until !== undefined
143
- ? resolveTemporalShortcut("until", until, now)
144
- : until,
145
- };
146
- }