@aitne/daemon 0.1.2 → 0.1.4

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 (253) hide show
  1. package/LICENSE +21 -0
  2. package/dist/adapters/whatsapp-adapter.d.ts.map +1 -1
  3. package/dist/adapters/whatsapp-adapter.js +0 -1
  4. package/dist/adapters/whatsapp-adapter.js.map +1 -1
  5. package/dist/api/integration-route-gate.d.ts +15 -11
  6. package/dist/api/integration-route-gate.d.ts.map +1 -1
  7. package/dist/api/integration-route-gate.js +60 -23
  8. package/dist/api/integration-route-gate.js.map +1 -1
  9. package/dist/api/json-body.d.ts +22 -7
  10. package/dist/api/json-body.d.ts.map +1 -1
  11. package/dist/api/json-body.js +27 -8
  12. package/dist/api/json-body.js.map +1 -1
  13. package/dist/api/routes/agent.d.ts.map +1 -1
  14. package/dist/api/routes/agent.js +18 -0
  15. package/dist/api/routes/agent.js.map +1 -1
  16. package/dist/api/routes/backends.d.ts.map +1 -1
  17. package/dist/api/routes/backends.js +96 -1
  18. package/dist/api/routes/backends.js.map +1 -1
  19. package/dist/api/routes/books.js +1 -1
  20. package/dist/api/routes/books.js.map +1 -1
  21. package/dist/api/routes/context.d.ts.map +1 -1
  22. package/dist/api/routes/context.js +13 -1
  23. package/dist/api/routes/context.js.map +1 -1
  24. package/dist/api/routes/dashboard.d.ts.map +1 -1
  25. package/dist/api/routes/dashboard.js +75 -5
  26. package/dist/api/routes/dashboard.js.map +1 -1
  27. package/dist/api/routes/github.d.ts.map +1 -1
  28. package/dist/api/routes/github.js +38 -5
  29. package/dist/api/routes/github.js.map +1 -1
  30. package/dist/api/routes/integrations.d.ts +35 -6
  31. package/dist/api/routes/integrations.d.ts.map +1 -1
  32. package/dist/api/routes/integrations.js +191 -16
  33. package/dist/api/routes/integrations.js.map +1 -1
  34. package/dist/api/routes/mail.d.ts.map +1 -1
  35. package/dist/api/routes/mail.js +112 -46
  36. package/dist/api/routes/mail.js.map +1 -1
  37. package/dist/api/routes/observations.d.ts.map +1 -1
  38. package/dist/api/routes/observations.js +161 -8
  39. package/dist/api/routes/observations.js.map +1 -1
  40. package/dist/api/routes/setup-migrate.d.ts +9 -1
  41. package/dist/api/routes/setup-migrate.d.ts.map +1 -1
  42. package/dist/api/routes/setup-migrate.js +4 -2
  43. package/dist/api/routes/setup-migrate.js.map +1 -1
  44. package/dist/api/routes/skills.d.ts.map +1 -1
  45. package/dist/api/routes/skills.js +39 -1
  46. package/dist/api/routes/skills.js.map +1 -1
  47. package/dist/api/routes/voice.d.ts.map +1 -1
  48. package/dist/api/routes/voice.js +154 -14
  49. package/dist/api/routes/voice.js.map +1 -1
  50. package/dist/bootstrap/adapters.d.ts +109 -0
  51. package/dist/bootstrap/adapters.d.ts.map +1 -0
  52. package/dist/bootstrap/adapters.js +237 -0
  53. package/dist/bootstrap/adapters.js.map +1 -0
  54. package/dist/bootstrap/catchup.d.ts +23 -0
  55. package/dist/bootstrap/catchup.d.ts.map +1 -0
  56. package/dist/bootstrap/catchup.js +124 -0
  57. package/dist/bootstrap/catchup.js.map +1 -0
  58. package/dist/bootstrap/schedule-helpers.d.ts +18 -0
  59. package/dist/bootstrap/schedule-helpers.d.ts.map +1 -0
  60. package/dist/bootstrap/schedule-helpers.js +96 -0
  61. package/dist/bootstrap/schedule-helpers.js.map +1 -0
  62. package/dist/bootstrap/services.d.ts +60 -0
  63. package/dist/bootstrap/services.d.ts.map +1 -0
  64. package/dist/bootstrap/services.js +209 -0
  65. package/dist/bootstrap/services.js.map +1 -0
  66. package/dist/core/backends/backend-router.d.ts +23 -0
  67. package/dist/core/backends/backend-router.d.ts.map +1 -1
  68. package/dist/core/backends/backend-router.js +48 -3
  69. package/dist/core/backends/backend-router.js.map +1 -1
  70. package/dist/core/backends/claude-auth.d.ts +70 -0
  71. package/dist/core/backends/claude-auth.d.ts.map +1 -0
  72. package/dist/core/backends/claude-auth.js +198 -0
  73. package/dist/core/backends/claude-auth.js.map +1 -0
  74. package/dist/core/backends/claude-code-core.d.ts +47 -119
  75. package/dist/core/backends/claude-code-core.d.ts.map +1 -1
  76. package/dist/core/backends/claude-code-core.js +112 -1565
  77. package/dist/core/backends/claude-code-core.js.map +1 -1
  78. package/dist/core/backends/claude-delegated.d.ts +86 -0
  79. package/dist/core/backends/claude-delegated.d.ts.map +1 -0
  80. package/dist/core/backends/claude-delegated.js +801 -0
  81. package/dist/core/backends/claude-delegated.js.map +1 -0
  82. package/dist/core/backends/claude-errors.d.ts +39 -0
  83. package/dist/core/backends/claude-errors.d.ts.map +1 -0
  84. package/dist/core/backends/claude-errors.js +71 -0
  85. package/dist/core/backends/claude-errors.js.map +1 -0
  86. package/dist/core/backends/claude-probe.d.ts +103 -0
  87. package/dist/core/backends/claude-probe.d.ts.map +1 -0
  88. package/dist/core/backends/claude-probe.js +336 -0
  89. package/dist/core/backends/claude-probe.js.map +1 -0
  90. package/dist/core/backends/claude-tool-collection.d.ts +135 -0
  91. package/dist/core/backends/claude-tool-collection.d.ts.map +1 -0
  92. package/dist/core/backends/claude-tool-collection.js +831 -0
  93. package/dist/core/backends/claude-tool-collection.js.map +1 -0
  94. package/dist/core/backends/gemini-cli-core.d.ts +21 -0
  95. package/dist/core/backends/gemini-cli-core.d.ts.map +1 -1
  96. package/dist/core/backends/gemini-cli-core.js +84 -6
  97. package/dist/core/backends/gemini-cli-core.js.map +1 -1
  98. package/dist/core/backends/prompt-utils.d.ts +1 -0
  99. package/dist/core/backends/prompt-utils.d.ts.map +1 -1
  100. package/dist/core/backends/prompt-utils.js +60 -3
  101. package/dist/core/backends/prompt-utils.js.map +1 -1
  102. package/dist/core/context-builder.d.ts +36 -12
  103. package/dist/core/context-builder.d.ts.map +1 -1
  104. package/dist/core/context-builder.js +179 -89
  105. package/dist/core/context-builder.js.map +1 -1
  106. package/dist/core/dispatcher-date-utils.d.ts +49 -0
  107. package/dist/core/dispatcher-date-utils.d.ts.map +1 -0
  108. package/dist/core/dispatcher-date-utils.js +132 -0
  109. package/dist/core/dispatcher-date-utils.js.map +1 -0
  110. package/dist/core/dispatcher-error-handling.d.ts +159 -0
  111. package/dist/core/dispatcher-error-handling.d.ts.map +1 -0
  112. package/dist/core/dispatcher-error-handling.js +393 -0
  113. package/dist/core/dispatcher-error-handling.js.map +1 -0
  114. package/dist/core/dispatcher-hourly-check.d.ts +150 -0
  115. package/dist/core/dispatcher-hourly-check.d.ts.map +1 -0
  116. package/dist/core/dispatcher-hourly-check.js +665 -0
  117. package/dist/core/dispatcher-hourly-check.js.map +1 -0
  118. package/dist/core/dispatcher-message-handler.d.ts +170 -0
  119. package/dist/core/dispatcher-message-handler.d.ts.map +1 -0
  120. package/dist/core/dispatcher-message-handler.js +1054 -0
  121. package/dist/core/dispatcher-message-handler.js.map +1 -0
  122. package/dist/core/dispatcher-morning-routine.d.ts +169 -0
  123. package/dist/core/dispatcher-morning-routine.d.ts.map +1 -0
  124. package/dist/core/dispatcher-morning-routine.js +434 -0
  125. package/dist/core/dispatcher-morning-routine.js.map +1 -0
  126. package/dist/core/dispatcher-prompt.d.ts +107 -0
  127. package/dist/core/dispatcher-prompt.d.ts.map +1 -0
  128. package/dist/core/dispatcher-prompt.js +227 -0
  129. package/dist/core/dispatcher-prompt.js.map +1 -0
  130. package/dist/core/dispatcher-repository-helpers.d.ts +39 -0
  131. package/dist/core/dispatcher-repository-helpers.d.ts.map +1 -0
  132. package/dist/core/dispatcher-repository-helpers.js +86 -0
  133. package/dist/core/dispatcher-repository-helpers.js.map +1 -0
  134. package/dist/core/dispatcher-result-processor.d.ts +145 -0
  135. package/dist/core/dispatcher-result-processor.d.ts.map +1 -0
  136. package/dist/core/dispatcher-result-processor.js +414 -0
  137. package/dist/core/dispatcher-result-processor.js.map +1 -0
  138. package/dist/core/dispatcher-scheduled-tasks.d.ts +406 -0
  139. package/dist/core/dispatcher-scheduled-tasks.d.ts.map +1 -0
  140. package/dist/core/dispatcher-scheduled-tasks.js +998 -0
  141. package/dist/core/dispatcher-scheduled-tasks.js.map +1 -0
  142. package/dist/core/dispatcher-types.d.ts +296 -0
  143. package/dist/core/dispatcher-types.d.ts.map +1 -0
  144. package/dist/core/dispatcher-types.js +106 -0
  145. package/dist/core/dispatcher-types.js.map +1 -0
  146. package/dist/core/dispatcher.d.ts +86 -610
  147. package/dist/core/dispatcher.d.ts.map +1 -1
  148. package/dist/core/dispatcher.js +293 -3542
  149. package/dist/core/dispatcher.js.map +1 -1
  150. package/dist/core/integration-health.d.ts +18 -10
  151. package/dist/core/integration-health.d.ts.map +1 -1
  152. package/dist/core/integration-health.js +31 -1
  153. package/dist/core/integration-health.js.map +1 -1
  154. package/dist/core/integration-lifecycle.d.ts +65 -0
  155. package/dist/core/integration-lifecycle.d.ts.map +1 -1
  156. package/dist/core/integration-lifecycle.js +167 -16
  157. package/dist/core/integration-lifecycle.js.map +1 -1
  158. package/dist/core/integration-main-backend.d.ts +40 -0
  159. package/dist/core/integration-main-backend.d.ts.map +1 -1
  160. package/dist/core/integration-main-backend.js +89 -2
  161. package/dist/core/integration-main-backend.js.map +1 -1
  162. package/dist/core/management-md.d.ts +51 -17
  163. package/dist/core/management-md.d.ts.map +1 -1
  164. package/dist/core/management-md.js +233 -56
  165. package/dist/core/management-md.js.map +1 -1
  166. package/dist/core/output-language-policy.d.ts +74 -0
  167. package/dist/core/output-language-policy.d.ts.map +1 -0
  168. package/dist/core/output-language-policy.js +194 -0
  169. package/dist/core/output-language-policy.js.map +1 -0
  170. package/dist/core/prompts.d.ts +1 -0
  171. package/dist/core/prompts.d.ts.map +1 -1
  172. package/dist/core/prompts.js +121 -3
  173. package/dist/core/prompts.js.map +1 -1
  174. package/dist/core/repository-management-docs.d.ts +24 -0
  175. package/dist/core/repository-management-docs.d.ts.map +1 -1
  176. package/dist/core/repository-management-docs.js +210 -26
  177. package/dist/core/repository-management-docs.js.map +1 -1
  178. package/dist/core/routine-acquisition-plan.d.ts +131 -0
  179. package/dist/core/routine-acquisition-plan.d.ts.map +1 -0
  180. package/dist/core/routine-acquisition-plan.js +268 -0
  181. package/dist/core/routine-acquisition-plan.js.map +1 -0
  182. package/dist/core/routine-fetch-window-runner.d.ts +201 -0
  183. package/dist/core/routine-fetch-window-runner.d.ts.map +1 -0
  184. package/dist/core/routine-fetch-window-runner.js +661 -0
  185. package/dist/core/routine-fetch-window-runner.js.map +1 -0
  186. package/dist/core/routine-windows.d.ts +156 -0
  187. package/dist/core/routine-windows.d.ts.map +1 -0
  188. package/dist/core/routine-windows.js +330 -0
  189. package/dist/core/routine-windows.js.map +1 -0
  190. package/dist/core/skills-compiler.d.ts +11 -0
  191. package/dist/core/skills-compiler.d.ts.map +1 -1
  192. package/dist/core/skills-compiler.js +102 -13
  193. package/dist/core/skills-compiler.js.map +1 -1
  194. package/dist/core/skills-manifest.d.ts.map +1 -1
  195. package/dist/core/skills-manifest.js +26 -0
  196. package/dist/core/skills-manifest.js.map +1 -1
  197. package/dist/core/system-reset.d.ts.map +1 -1
  198. package/dist/core/system-reset.js +25 -2
  199. package/dist/core/system-reset.js.map +1 -1
  200. package/dist/db/observations.d.ts +45 -2
  201. package/dist/db/observations.d.ts.map +1 -1
  202. package/dist/db/observations.js +112 -14
  203. package/dist/db/observations.js.map +1 -1
  204. package/dist/db/schema.d.ts.map +1 -1
  205. package/dist/db/schema.js +13 -25
  206. package/dist/db/schema.js.map +1 -1
  207. package/dist/index.js +83 -610
  208. package/dist/index.js.map +1 -1
  209. package/dist/observers/delegated-sync-worker.d.ts +45 -2
  210. package/dist/observers/delegated-sync-worker.d.ts.map +1 -1
  211. package/dist/observers/delegated-sync-worker.js +71 -21
  212. package/dist/observers/delegated-sync-worker.js.map +1 -1
  213. package/dist/observers/mail-poller.d.ts +12 -5
  214. package/dist/observers/mail-poller.d.ts.map +1 -1
  215. package/dist/observers/mail-poller.js +36 -14
  216. package/dist/observers/mail-poller.js.map +1 -1
  217. package/dist/observers/manager.d.ts +37 -5
  218. package/dist/observers/manager.d.ts.map +1 -1
  219. package/dist/observers/manager.js +28 -10
  220. package/dist/observers/manager.js.map +1 -1
  221. package/dist/safety/risk-classifier.d.ts.map +1 -1
  222. package/dist/safety/risk-classifier.js +5 -0
  223. package/dist/safety/risk-classifier.js.map +1 -1
  224. package/dist/services/delegated-backend-invoker.d.ts +1 -51
  225. package/dist/services/delegated-backend-invoker.d.ts.map +1 -1
  226. package/dist/services/delegated-backend-invoker.js +41 -480
  227. package/dist/services/delegated-backend-invoker.js.map +1 -1
  228. package/dist/services/delegated-invoker-audit.d.ts +94 -0
  229. package/dist/services/delegated-invoker-audit.d.ts.map +1 -0
  230. package/dist/services/delegated-invoker-audit.js +238 -0
  231. package/dist/services/delegated-invoker-audit.js.map +1 -0
  232. package/dist/services/delegated-invoker-cache-hits.d.ts +34 -0
  233. package/dist/services/delegated-invoker-cache-hits.d.ts.map +1 -0
  234. package/dist/services/delegated-invoker-cache-hits.js +104 -0
  235. package/dist/services/delegated-invoker-cache-hits.js.map +1 -0
  236. package/dist/services/delegated-invoker-janitors.d.ts +28 -0
  237. package/dist/services/delegated-invoker-janitors.d.ts.map +1 -0
  238. package/dist/services/delegated-invoker-janitors.js +104 -0
  239. package/dist/services/delegated-invoker-janitors.js.map +1 -0
  240. package/dist/services/delegated-invoker-utils.d.ts +42 -0
  241. package/dist/services/delegated-invoker-utils.d.ts.map +1 -0
  242. package/dist/services/delegated-invoker-utils.js +100 -0
  243. package/dist/services/delegated-invoker-utils.js.map +1 -0
  244. package/dist/services/delegated-task-runtime.d.ts +1 -1
  245. package/dist/services/delegated-task-runtime.js +1 -1
  246. package/dist/services/integrations/snapshot-partitions.d.ts +5 -0
  247. package/dist/services/integrations/snapshot-partitions.d.ts.map +1 -1
  248. package/dist/services/integrations/snapshot-partitions.js +12 -0
  249. package/dist/services/integrations/snapshot-partitions.js.map +1 -1
  250. package/dist/services/voice/transcriber-impl.d.ts.map +1 -1
  251. package/dist/services/voice/transcriber-impl.js +46 -0
  252. package/dist/services/voice/transcriber-impl.js.map +1 -1
  253. package/package.json +12 -12
@@ -39,11 +39,54 @@ export interface RecordObservationParams {
39
39
  actor?: ObservationActor;
40
40
  payload?: unknown;
41
41
  }
42
+ /**
43
+ * Result of a `recordObservation` call. The `action` field is what
44
+ * lets the API route (and the pre-pass fetcher consuming its
45
+ * response) distinguish a real write from a no-op:
46
+ *
47
+ * - `"created"` — no pending row existed for `(source, ref)`; a
48
+ * new row was inserted.
49
+ * - `"modified"` — a pending row existed but the payload differed;
50
+ * the row was updated and the summarizer
51
+ * re-enqueued.
52
+ * - `"duplicate"` — a pending row exists with an identical payload
53
+ * (same canonical contentHash). The DB was NOT
54
+ * touched and the summarizer was NOT re-enqueued.
55
+ * This is the signal `routine.fetch_window` counts
56
+ * as `duplicates` in its JSON `<fetch_report>`.
57
+ *
58
+ * `contentHash` is the canonical SHA-256 over `(source, payload)` and
59
+ * matches what `computeObservationHash` would produce client-side. It
60
+ * is returned for every action — callers that surface a per-write
61
+ * audit trail get the same hash whether they wrote, updated, or
62
+ * coalesced.
63
+ */
64
+ export interface RecordObservationResult {
65
+ id: number;
66
+ action: "created" | "modified" | "duplicate";
67
+ contentHash: string;
68
+ }
42
69
  interface GetPendingObservationsParams {
43
70
  pending?: boolean;
44
71
  limit?: number;
45
72
  offset?: number;
73
+ /**
74
+ * Single-source prefix match (`source LIKE '<sourceFilter>%'`). Retained
75
+ * for the legacy `?source=<prefix>` query string the daemon-internal
76
+ * callers and the dashboard rely on.
77
+ */
46
78
  sourceFilter?: string;
79
+ /**
80
+ * ROUTINE_DATA_ACQUISITION_DESIGN.md §6.7 — multi-prefix match. Each
81
+ * entry produces one `source LIKE '<entry>%'` predicate, joined with
82
+ * `OR`. The route adapter parses the `?source_prefix=a:,b:` form into
83
+ * this list. Callers may pass either `sourceFilter` or
84
+ * `sourceFilterPrefixes`; if both are present the multi-prefix list
85
+ * takes precedence and the single value is ignored (no silent AND of
86
+ * the two — that would produce an empty result set whenever the two
87
+ * disagree, which is harder to debug than the explicit precedence).
88
+ */
89
+ sourceFilterPrefixes?: readonly string[];
47
90
  actorFilter?: ObservationActor;
48
91
  since?: string;
49
92
  }
@@ -66,13 +109,13 @@ export declare function setObservationEnqueueHook(hook: ObservationEnqueueHook |
66
109
  * downstream summarizer fault must not abort the caller's transaction.
67
110
  */
68
111
  export declare function notifyObservationSummarizer(observationId: number): void;
69
- export declare function recordObservation(db: Database.Database, params: RecordObservationParams): void;
112
+ export declare function recordObservation(db: Database.Database, params: RecordObservationParams): RecordObservationResult;
70
113
  export declare function getPendingObservations(db: Database.Database, params?: GetPendingObservationsParams): ObservationRecord[];
71
114
  export declare function consumeObservations(db: Database.Database, ids: number[], correlationId: string): {
72
115
  consumed: number;
73
116
  notFound: number[];
74
117
  };
75
- export declare function getPendingCount(db: Database.Database, params?: Pick<GetPendingObservationsParams, "sourceFilter" | "actorFilter" | "since">): number;
118
+ export declare function getPendingCount(db: Database.Database, params?: Pick<GetPendingObservationsParams, "sourceFilter" | "sourceFilterPrefixes" | "actorFilter" | "since">): number;
76
119
  export declare function getObservationStats(db: Database.Database, params?: Pick<GetPendingObservationsParams, "actorFilter">): {
77
120
  totalPending: number;
78
121
  oldestPendingObservedAt: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"observations.d.ts","sourceRoot":"","sources":["../../src/db/observations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observations.d.ts","sourceRoot":"","sources":["../../src/db/observations.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { computeObservationHash } from "@aitne/shared";
1
2
  import { createLogger } from "../logging.js";
2
3
  const logger = createLogger("observations-db");
3
4
  const UPSERT_SQL = `
@@ -44,8 +45,44 @@ export function notifyObservationSummarizer(observationId) {
44
45
  }
45
46
  export function recordObservation(db, params) {
46
47
  const actor = params.actor ?? "user";
47
- const payload = params.payload === undefined ? null : JSON.stringify(params.payload);
48
- const row = db.prepare(UPSERT_SQL).get(params.source, params.ref, params.changeType, actor, payload);
48
+ const incomingPayload = params.payload === undefined ? null : params.payload;
49
+ const incomingHash = computeObservationHash(params.source, incomingPayload);
50
+ // ROUTINE_DATA_ACQUISITION_DESIGN.md CR1 — dedup short-circuit. The
51
+ // legacy UPSERT path silently coalesced (source, ref) collisions and
52
+ // (worse) cleared `summary_text` so the summarizer re-ran on every
53
+ // identical re-post. The pre-existing payload comparison below skips
54
+ // the write entirely when the new payload's canonical hash matches
55
+ // the stored one — saves a re-summarize round and gives the caller
56
+ // (the POST route) an actionable signal for the dedup counter the
57
+ // partials' `<fetch_report>` shape requires.
58
+ //
59
+ // The conditional UNIQUE index `(source, ref) WHERE consumed_at IS NULL`
60
+ // (db/schema.ts:285) is what guarantees at most one matching row.
61
+ const existing = db
62
+ .prepare("SELECT id, payload FROM observations WHERE source = ? AND ref = ? AND consumed_at IS NULL")
63
+ .get(params.source, params.ref);
64
+ if (existing) {
65
+ const existingPayload = parseStoredPayload(existing.payload);
66
+ const existingHash = computeObservationHash(params.source, existingPayload);
67
+ if (existingHash === incomingHash) {
68
+ return {
69
+ id: existing.id,
70
+ action: "duplicate",
71
+ contentHash: incomingHash,
72
+ };
73
+ }
74
+ }
75
+ const payloadJson = incomingPayload === null ? null : JSON.stringify(incomingPayload);
76
+ const row = db
77
+ .prepare(UPSERT_SQL)
78
+ .get(params.source, params.ref, params.changeType, actor, payloadJson);
79
+ // The UPSERT's `RETURNING id` always emits a row whether it INSERT'd
80
+ // or UPDATE'd. The fallback to `existing.id` is purely defensive —
81
+ // the SELECT-then-UPSERT path is not atomic across transactions, but
82
+ // the route uses a single short-lived transaction so the race
83
+ // window is effectively zero. The fallback keeps TypeScript happy.
84
+ const id = row?.id ?? existing?.id ?? -1;
85
+ const action = existing ? "modified" : "created";
49
86
  if (row && enqueueHook) {
50
87
  try {
51
88
  enqueueHook(row.id);
@@ -57,6 +94,51 @@ export function recordObservation(db, params) {
57
94
  logger.error({ err, observationId: row.id }, "observation enqueue hook threw");
58
95
  }
59
96
  }
97
+ return { id, action, contentHash: incomingHash };
98
+ }
99
+ /**
100
+ * Parse a stored payload column back into a JS value. The column is
101
+ * TEXT (JSON-encoded) or NULL. Anything malformed (legacy rows
102
+ * written before the UPSERT path was strict, or a future schema
103
+ * migration mid-flight) collapses to `null` so the hash comparison
104
+ * still proceeds — at worst we trigger a "modified" write that
105
+ * fixes the malformed row.
106
+ */
107
+ function parseStoredPayload(payload) {
108
+ if (payload === null)
109
+ return null;
110
+ try {
111
+ return JSON.parse(payload);
112
+ }
113
+ catch {
114
+ return null;
115
+ }
116
+ }
117
+ /**
118
+ * Push the per-source LIKE predicates onto a shared `where` / `values`
119
+ * pair. The two helpers (`getPendingObservations`, `getPendingCount`)
120
+ * share this so the multi-prefix semantics stay in lock-step. Empty /
121
+ * whitespace-only prefixes are dropped — they would otherwise produce
122
+ * `LIKE '%'` which matches every row and silently un-narrows the query.
123
+ */
124
+ function applySourceFilters(params, where, values) {
125
+ if (params.sourceFilterPrefixes && params.sourceFilterPrefixes.length > 0) {
126
+ const prefixes = params.sourceFilterPrefixes
127
+ .map((p) => p.trim())
128
+ .filter((p) => p.length > 0);
129
+ if (prefixes.length === 0)
130
+ return;
131
+ const conds = prefixes.map(() => "source LIKE ?").join(" OR ");
132
+ where.push(`(${conds})`);
133
+ for (const prefix of prefixes) {
134
+ values.push(`${prefix}%`);
135
+ }
136
+ return;
137
+ }
138
+ if (params.sourceFilter) {
139
+ where.push("source LIKE ?");
140
+ values.push(`${params.sourceFilter}%`);
141
+ }
60
142
  }
61
143
  export function getPendingObservations(db, params = {}) {
62
144
  const where = [];
@@ -64,17 +146,13 @@ export function getPendingObservations(db, params = {}) {
64
146
  if (params.pending !== false) {
65
147
  where.push("consumed_at IS NULL");
66
148
  }
67
- if (params.sourceFilter) {
68
- where.push("source LIKE ?");
69
- values.push(`${params.sourceFilter}%`);
70
- }
149
+ applySourceFilters(params, where, values);
71
150
  if (params.actorFilter) {
72
151
  where.push("actor = ?");
73
152
  values.push(params.actorFilter);
74
153
  }
75
154
  if (params.since) {
76
- where.push("observed_at >= ?");
77
- values.push(params.since);
155
+ applySinceFilter(params.since, where, values);
78
156
  }
79
157
  const limit = Math.min(Math.max(params.limit ?? 20, 1), 100);
80
158
  const offset = Math.max(params.offset ?? 0, 0);
@@ -89,6 +167,30 @@ export function getPendingObservations(db, params = {}) {
89
167
  `;
90
168
  return db.prepare(sql).all(...values);
91
169
  }
170
+ /**
171
+ * SQLite stores `observed_at` in two shapes:
172
+ * - `CURRENT_TIMESTAMP` writes the SQL form `'YYYY-MM-DD HH:MM:SS'`
173
+ * (assumed UTC; what `recordObservation` produces).
174
+ * - The summarizer / fixture writes can also use ISO 8601 with `T`
175
+ * and `Z` (`'2026-05-11T13:00:00.000Z'`).
176
+ *
177
+ * Callers pass `since` in **either** shape — the route adapter forwards
178
+ * the agent's ISO string verbatim, and internal callers (today only the
179
+ * tests) sometimes pass the SQL form. A naïve `observed_at >= ?`
180
+ * predicate compares the strings byte-for-byte, and the SQL-form's
181
+ * space (0x20) sorts before ISO-form's `T` (0x54), so
182
+ * `'2026-05-11 12:00:00' < '2026-05-11T00:00:00.000Z'` evaluates true
183
+ * and we'd silently drop rows.
184
+ *
185
+ * Routing both sides through SQLite's `datetime()` parser normalises
186
+ * both shapes to the SQL canonical form (`YYYY-MM-DD HH:MM:SS`) before
187
+ * comparison, so the predicate works regardless of which form the
188
+ * caller / row provides.
189
+ */
190
+ function applySinceFilter(since, where, values) {
191
+ where.push("datetime(observed_at) >= datetime(?)");
192
+ values.push(since);
193
+ }
92
194
  export function consumeObservations(db, ids, correlationId) {
93
195
  if (ids.length === 0) {
94
196
  return { consumed: 0, notFound: [] };
@@ -112,17 +214,13 @@ export function consumeObservations(db, ids, correlationId) {
112
214
  export function getPendingCount(db, params = {}) {
113
215
  const where = ["consumed_at IS NULL"];
114
216
  const values = [];
115
- if (params.sourceFilter) {
116
- where.push("source LIKE ?");
117
- values.push(`${params.sourceFilter}%`);
118
- }
217
+ applySourceFilters(params, where, values);
119
218
  if (params.actorFilter) {
120
219
  where.push("actor = ?");
121
220
  values.push(params.actorFilter);
122
221
  }
123
222
  if (params.since) {
124
- where.push("observed_at >= ?");
125
- values.push(params.since);
223
+ applySinceFilter(params.since, where, values);
126
224
  }
127
225
  const row = db.prepare(`SELECT COUNT(*) as count FROM observations WHERE ${where.join(" AND ")}`).get(...values);
128
226
  return row.count;
@@ -1 +1 @@
1
- {"version":3,"file":"observations.js","sourceRoot":"","sources":["../../src/db/observations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observations.js","sourceRoot":"","sources":["../../src/db/observations.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAoyC3C,yEAAyE;AACzE,wBAAgB,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CASvD"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAgzC3C,yEAAyE;AACzE,wBAAgB,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAEvD"}
package/dist/db/schema.js CHANGED
@@ -67,6 +67,9 @@ CREATE TABLE IF NOT EXISTS messages (
67
67
  notification_dispatch_id TEXT
68
68
  );
69
69
  CREATE INDEX IF NOT EXISTS idx_messages_session ON messages(session_id, timestamp);
70
+ CREATE INDEX IF NOT EXISTS idx_messages_dispatch
71
+ ON messages(notification_dispatch_id)
72
+ WHERE notification_dispatch_id IS NOT NULL;
70
73
 
71
74
  -- ── Agent Actions & Schedule ──────────────────────────────────────────────────
72
75
 
@@ -1266,7 +1269,16 @@ VALUES
1266
1269
  -- the seeded max_turns=1 caps every backend at one assistant turn,
1267
1270
  -- so this envelope is the absolute ceiling — defense-in-depth on
1268
1271
  -- top of the prompt's "no tools" contract.
1269
- ('routine.hourly_check.triage', 'claude', '${DEFAULT_CLAUDE_LITE_MODEL}', 1, 0.05, 'user');
1272
+ ('routine.hourly_check.triage', 'claude', '${DEFAULT_CLAUDE_LITE_MODEL}', 1, 0.05, 'user'),
1273
+ -- ROUTINE_DATA_ACQUISITION_DESIGN.md §6.2 / §6.9 — pre-pass window
1274
+ -- fetcher dispatched before each routine session. Lite tier
1275
+ -- (Haiku-class) per P3 ("Lite for Fetch"). Envelope sized for the
1276
+ -- worst-case routine (morning_routine: fan-out across 2 mail
1277
+ -- providers × N accounts + 2 calendar providers + notion). 20
1278
+ -- turns is enough headroom for ~6 partials × 3 tool calls each;
1279
+ -- $0.20 caps the fan-out so a misconfigured account list cannot
1280
+ -- drain budget. Mirrors the github/git-event triage envelope.
1281
+ ('routine.fetch_window', 'claude', '${DEFAULT_CLAUDE_LITE_MODEL}', 20, 0.20, 'user');
1270
1282
 
1271
1283
  INSERT OR IGNORE INTO settings (key, value_json, updated_at)
1272
1284
  VALUES (
@@ -1310,29 +1322,5 @@ ORDER BY day DESC;
1310
1322
  /** Apply the complete schema and seed data to a database. Idempotent. */
1311
1323
  export function applySchema(db) {
1312
1324
  db.exec(SCHEMA);
1313
- ensureMessagesNotificationDispatchColumn(db);
1314
- ensureUserBangCommandsCustomColumns(db);
1315
- db.exec(`
1316
- CREATE INDEX IF NOT EXISTS idx_messages_dispatch
1317
- ON messages(notification_dispatch_id)
1318
- WHERE notification_dispatch_id IS NOT NULL;
1319
- `);
1320
- }
1321
- function ensureMessagesNotificationDispatchColumn(db) {
1322
- const columns = db.pragma("table_info(messages)");
1323
- if (columns.some((column) => column.name === "notification_dispatch_id")) {
1324
- return;
1325
- }
1326
- db.exec("ALTER TABLE messages ADD COLUMN notification_dispatch_id TEXT");
1327
- }
1328
- function ensureUserBangCommandsCustomColumns(db) {
1329
- const columns = db.pragma("table_info(user_bang_commands)");
1330
- const names = new Set(columns.map((column) => column.name));
1331
- if (!names.has("enabled_skills_json")) {
1332
- db.exec("ALTER TABLE user_bang_commands ADD COLUMN enabled_skills_json TEXT");
1333
- }
1334
- if (!names.has("instruction_md")) {
1335
- db.exec("ALTER TABLE user_bang_commands ADD COLUMN instruction_md TEXT");
1336
- }
1337
1325
  }
1338
1326
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"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"}