@aitne/daemon 0.1.3 → 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.
- package/dist/adapters/whatsapp-adapter.d.ts.map +1 -1
- package/dist/adapters/whatsapp-adapter.js +0 -1
- package/dist/adapters/whatsapp-adapter.js.map +1 -1
- package/dist/api/integration-route-gate.d.ts +15 -11
- package/dist/api/integration-route-gate.d.ts.map +1 -1
- package/dist/api/integration-route-gate.js +60 -23
- package/dist/api/integration-route-gate.js.map +1 -1
- package/dist/api/json-body.d.ts +22 -7
- package/dist/api/json-body.d.ts.map +1 -1
- package/dist/api/json-body.js +27 -8
- package/dist/api/json-body.js.map +1 -1
- package/dist/api/routes/agent.d.ts.map +1 -1
- package/dist/api/routes/agent.js +18 -0
- package/dist/api/routes/agent.js.map +1 -1
- package/dist/api/routes/backends.d.ts.map +1 -1
- package/dist/api/routes/backends.js +96 -1
- package/dist/api/routes/backends.js.map +1 -1
- package/dist/api/routes/books.js +1 -1
- package/dist/api/routes/books.js.map +1 -1
- package/dist/api/routes/context.d.ts.map +1 -1
- package/dist/api/routes/context.js +13 -1
- package/dist/api/routes/context.js.map +1 -1
- package/dist/api/routes/dashboard.d.ts.map +1 -1
- package/dist/api/routes/dashboard.js +75 -5
- package/dist/api/routes/dashboard.js.map +1 -1
- package/dist/api/routes/github.d.ts.map +1 -1
- package/dist/api/routes/github.js +38 -5
- package/dist/api/routes/github.js.map +1 -1
- package/dist/api/routes/integrations.d.ts +35 -6
- package/dist/api/routes/integrations.d.ts.map +1 -1
- package/dist/api/routes/integrations.js +191 -16
- package/dist/api/routes/integrations.js.map +1 -1
- package/dist/api/routes/mail.d.ts.map +1 -1
- package/dist/api/routes/mail.js +112 -46
- package/dist/api/routes/mail.js.map +1 -1
- package/dist/api/routes/observations.d.ts.map +1 -1
- package/dist/api/routes/observations.js +161 -8
- package/dist/api/routes/observations.js.map +1 -1
- package/dist/api/routes/setup-migrate.d.ts +9 -1
- package/dist/api/routes/setup-migrate.d.ts.map +1 -1
- package/dist/api/routes/setup-migrate.js +4 -2
- package/dist/api/routes/setup-migrate.js.map +1 -1
- package/dist/api/routes/skills.d.ts.map +1 -1
- package/dist/api/routes/skills.js +39 -1
- package/dist/api/routes/skills.js.map +1 -1
- package/dist/api/routes/voice.d.ts.map +1 -1
- package/dist/api/routes/voice.js +62 -4
- package/dist/api/routes/voice.js.map +1 -1
- package/dist/bootstrap/adapters.d.ts +109 -0
- package/dist/bootstrap/adapters.d.ts.map +1 -0
- package/dist/bootstrap/adapters.js +237 -0
- package/dist/bootstrap/adapters.js.map +1 -0
- package/dist/bootstrap/catchup.d.ts +23 -0
- package/dist/bootstrap/catchup.d.ts.map +1 -0
- package/dist/bootstrap/catchup.js +124 -0
- package/dist/bootstrap/catchup.js.map +1 -0
- package/dist/bootstrap/schedule-helpers.d.ts +18 -0
- package/dist/bootstrap/schedule-helpers.d.ts.map +1 -0
- package/dist/bootstrap/schedule-helpers.js +96 -0
- package/dist/bootstrap/schedule-helpers.js.map +1 -0
- package/dist/bootstrap/services.d.ts +60 -0
- package/dist/bootstrap/services.d.ts.map +1 -0
- package/dist/bootstrap/services.js +209 -0
- package/dist/bootstrap/services.js.map +1 -0
- package/dist/core/backends/backend-router.d.ts +23 -0
- package/dist/core/backends/backend-router.d.ts.map +1 -1
- package/dist/core/backends/backend-router.js +48 -3
- package/dist/core/backends/backend-router.js.map +1 -1
- package/dist/core/backends/claude-auth.d.ts +70 -0
- package/dist/core/backends/claude-auth.d.ts.map +1 -0
- package/dist/core/backends/claude-auth.js +198 -0
- package/dist/core/backends/claude-auth.js.map +1 -0
- package/dist/core/backends/claude-code-core.d.ts +47 -119
- package/dist/core/backends/claude-code-core.d.ts.map +1 -1
- package/dist/core/backends/claude-code-core.js +112 -1565
- package/dist/core/backends/claude-code-core.js.map +1 -1
- package/dist/core/backends/claude-delegated.d.ts +86 -0
- package/dist/core/backends/claude-delegated.d.ts.map +1 -0
- package/dist/core/backends/claude-delegated.js +801 -0
- package/dist/core/backends/claude-delegated.js.map +1 -0
- package/dist/core/backends/claude-errors.d.ts +39 -0
- package/dist/core/backends/claude-errors.d.ts.map +1 -0
- package/dist/core/backends/claude-errors.js +71 -0
- package/dist/core/backends/claude-errors.js.map +1 -0
- package/dist/core/backends/claude-probe.d.ts +103 -0
- package/dist/core/backends/claude-probe.d.ts.map +1 -0
- package/dist/core/backends/claude-probe.js +336 -0
- package/dist/core/backends/claude-probe.js.map +1 -0
- package/dist/core/backends/claude-tool-collection.d.ts +135 -0
- package/dist/core/backends/claude-tool-collection.d.ts.map +1 -0
- package/dist/core/backends/claude-tool-collection.js +831 -0
- package/dist/core/backends/claude-tool-collection.js.map +1 -0
- package/dist/core/backends/gemini-cli-core.d.ts +21 -0
- package/dist/core/backends/gemini-cli-core.d.ts.map +1 -1
- package/dist/core/backends/gemini-cli-core.js +84 -6
- package/dist/core/backends/gemini-cli-core.js.map +1 -1
- package/dist/core/backends/prompt-utils.d.ts +1 -0
- package/dist/core/backends/prompt-utils.d.ts.map +1 -1
- package/dist/core/backends/prompt-utils.js +60 -3
- package/dist/core/backends/prompt-utils.js.map +1 -1
- package/dist/core/context-builder.d.ts +36 -12
- package/dist/core/context-builder.d.ts.map +1 -1
- package/dist/core/context-builder.js +179 -89
- package/dist/core/context-builder.js.map +1 -1
- package/dist/core/dispatcher-date-utils.d.ts +49 -0
- package/dist/core/dispatcher-date-utils.d.ts.map +1 -0
- package/dist/core/dispatcher-date-utils.js +132 -0
- package/dist/core/dispatcher-date-utils.js.map +1 -0
- package/dist/core/dispatcher-error-handling.d.ts +159 -0
- package/dist/core/dispatcher-error-handling.d.ts.map +1 -0
- package/dist/core/dispatcher-error-handling.js +393 -0
- package/dist/core/dispatcher-error-handling.js.map +1 -0
- package/dist/core/dispatcher-hourly-check.d.ts +150 -0
- package/dist/core/dispatcher-hourly-check.d.ts.map +1 -0
- package/dist/core/dispatcher-hourly-check.js +665 -0
- package/dist/core/dispatcher-hourly-check.js.map +1 -0
- package/dist/core/dispatcher-message-handler.d.ts +170 -0
- package/dist/core/dispatcher-message-handler.d.ts.map +1 -0
- package/dist/core/dispatcher-message-handler.js +1054 -0
- package/dist/core/dispatcher-message-handler.js.map +1 -0
- package/dist/core/dispatcher-morning-routine.d.ts +169 -0
- package/dist/core/dispatcher-morning-routine.d.ts.map +1 -0
- package/dist/core/dispatcher-morning-routine.js +434 -0
- package/dist/core/dispatcher-morning-routine.js.map +1 -0
- package/dist/core/dispatcher-prompt.d.ts +107 -0
- package/dist/core/dispatcher-prompt.d.ts.map +1 -0
- package/dist/core/dispatcher-prompt.js +227 -0
- package/dist/core/dispatcher-prompt.js.map +1 -0
- package/dist/core/dispatcher-repository-helpers.d.ts +39 -0
- package/dist/core/dispatcher-repository-helpers.d.ts.map +1 -0
- package/dist/core/dispatcher-repository-helpers.js +86 -0
- package/dist/core/dispatcher-repository-helpers.js.map +1 -0
- package/dist/core/dispatcher-result-processor.d.ts +145 -0
- package/dist/core/dispatcher-result-processor.d.ts.map +1 -0
- package/dist/core/dispatcher-result-processor.js +414 -0
- package/dist/core/dispatcher-result-processor.js.map +1 -0
- package/dist/core/dispatcher-scheduled-tasks.d.ts +406 -0
- package/dist/core/dispatcher-scheduled-tasks.d.ts.map +1 -0
- package/dist/core/dispatcher-scheduled-tasks.js +998 -0
- package/dist/core/dispatcher-scheduled-tasks.js.map +1 -0
- package/dist/core/dispatcher-types.d.ts +296 -0
- package/dist/core/dispatcher-types.d.ts.map +1 -0
- package/dist/core/dispatcher-types.js +106 -0
- package/dist/core/dispatcher-types.js.map +1 -0
- package/dist/core/dispatcher.d.ts +86 -610
- package/dist/core/dispatcher.d.ts.map +1 -1
- package/dist/core/dispatcher.js +293 -3542
- package/dist/core/dispatcher.js.map +1 -1
- package/dist/core/integration-health.d.ts +18 -10
- package/dist/core/integration-health.d.ts.map +1 -1
- package/dist/core/integration-health.js +31 -1
- package/dist/core/integration-health.js.map +1 -1
- package/dist/core/integration-lifecycle.d.ts +65 -0
- package/dist/core/integration-lifecycle.d.ts.map +1 -1
- package/dist/core/integration-lifecycle.js +167 -16
- package/dist/core/integration-lifecycle.js.map +1 -1
- package/dist/core/integration-main-backend.d.ts +40 -0
- package/dist/core/integration-main-backend.d.ts.map +1 -1
- package/dist/core/integration-main-backend.js +89 -2
- package/dist/core/integration-main-backend.js.map +1 -1
- package/dist/core/management-md.d.ts +51 -17
- package/dist/core/management-md.d.ts.map +1 -1
- package/dist/core/management-md.js +233 -56
- package/dist/core/management-md.js.map +1 -1
- package/dist/core/output-language-policy.d.ts +74 -0
- package/dist/core/output-language-policy.d.ts.map +1 -0
- package/dist/core/output-language-policy.js +194 -0
- package/dist/core/output-language-policy.js.map +1 -0
- package/dist/core/prompts.d.ts +1 -0
- package/dist/core/prompts.d.ts.map +1 -1
- package/dist/core/prompts.js +121 -3
- package/dist/core/prompts.js.map +1 -1
- package/dist/core/repository-management-docs.d.ts +24 -0
- package/dist/core/repository-management-docs.d.ts.map +1 -1
- package/dist/core/repository-management-docs.js +210 -26
- package/dist/core/repository-management-docs.js.map +1 -1
- package/dist/core/routine-acquisition-plan.d.ts +131 -0
- package/dist/core/routine-acquisition-plan.d.ts.map +1 -0
- package/dist/core/routine-acquisition-plan.js +268 -0
- package/dist/core/routine-acquisition-plan.js.map +1 -0
- package/dist/core/routine-fetch-window-runner.d.ts +201 -0
- package/dist/core/routine-fetch-window-runner.d.ts.map +1 -0
- package/dist/core/routine-fetch-window-runner.js +661 -0
- package/dist/core/routine-fetch-window-runner.js.map +1 -0
- package/dist/core/routine-windows.d.ts +156 -0
- package/dist/core/routine-windows.d.ts.map +1 -0
- package/dist/core/routine-windows.js +330 -0
- package/dist/core/routine-windows.js.map +1 -0
- package/dist/core/skills-compiler.d.ts +11 -0
- package/dist/core/skills-compiler.d.ts.map +1 -1
- package/dist/core/skills-compiler.js +102 -13
- package/dist/core/skills-compiler.js.map +1 -1
- package/dist/core/skills-manifest.d.ts.map +1 -1
- package/dist/core/skills-manifest.js +26 -0
- package/dist/core/skills-manifest.js.map +1 -1
- package/dist/core/system-reset.d.ts.map +1 -1
- package/dist/core/system-reset.js +25 -2
- package/dist/core/system-reset.js.map +1 -1
- package/dist/db/observations.d.ts +45 -2
- package/dist/db/observations.d.ts.map +1 -1
- package/dist/db/observations.js +112 -14
- package/dist/db/observations.js.map +1 -1
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +13 -25
- package/dist/db/schema.js.map +1 -1
- package/dist/index.js +83 -610
- package/dist/index.js.map +1 -1
- package/dist/observers/delegated-sync-worker.d.ts +45 -2
- package/dist/observers/delegated-sync-worker.d.ts.map +1 -1
- package/dist/observers/delegated-sync-worker.js +71 -21
- package/dist/observers/delegated-sync-worker.js.map +1 -1
- package/dist/observers/mail-poller.d.ts +12 -5
- package/dist/observers/mail-poller.d.ts.map +1 -1
- package/dist/observers/mail-poller.js +36 -14
- package/dist/observers/mail-poller.js.map +1 -1
- package/dist/observers/manager.d.ts +37 -5
- package/dist/observers/manager.d.ts.map +1 -1
- package/dist/observers/manager.js +28 -10
- package/dist/observers/manager.js.map +1 -1
- package/dist/services/delegated-backend-invoker.d.ts +1 -51
- package/dist/services/delegated-backend-invoker.d.ts.map +1 -1
- package/dist/services/delegated-backend-invoker.js +41 -480
- package/dist/services/delegated-backend-invoker.js.map +1 -1
- package/dist/services/delegated-invoker-audit.d.ts +94 -0
- package/dist/services/delegated-invoker-audit.d.ts.map +1 -0
- package/dist/services/delegated-invoker-audit.js +238 -0
- package/dist/services/delegated-invoker-audit.js.map +1 -0
- package/dist/services/delegated-invoker-cache-hits.d.ts +34 -0
- package/dist/services/delegated-invoker-cache-hits.d.ts.map +1 -0
- package/dist/services/delegated-invoker-cache-hits.js +104 -0
- package/dist/services/delegated-invoker-cache-hits.js.map +1 -0
- package/dist/services/delegated-invoker-janitors.d.ts +28 -0
- package/dist/services/delegated-invoker-janitors.d.ts.map +1 -0
- package/dist/services/delegated-invoker-janitors.js +104 -0
- package/dist/services/delegated-invoker-janitors.js.map +1 -0
- package/dist/services/delegated-invoker-utils.d.ts +42 -0
- package/dist/services/delegated-invoker-utils.d.ts.map +1 -0
- package/dist/services/delegated-invoker-utils.js +100 -0
- package/dist/services/delegated-invoker-utils.js.map +1 -0
- package/dist/services/delegated-task-runtime.d.ts +1 -1
- package/dist/services/delegated-task-runtime.js +1 -1
- package/dist/services/integrations/snapshot-partitions.d.ts +5 -0
- package/dist/services/integrations/snapshot-partitions.d.ts.map +1 -1
- package/dist/services/integrations/snapshot-partitions.js +12 -0
- package/dist/services/integrations/snapshot-partitions.js.map +1 -1
- package/dist/services/voice/transcriber-impl.d.ts.map +1 -1
- package/dist/services/voice/transcriber-impl.js +7 -8
- package/dist/services/voice/transcriber-impl.js.map +1 -1
- package/package.json +2 -2
|
@@ -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):
|
|
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":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"observations.d.ts","sourceRoot":"","sources":["../../src/db/observations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAM3C,KAAK,qBAAqB,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;AAChE,KAAK,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEhE,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEtE,UAAU,iBAAiB;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,qBAAqB,CAAC;IACnC,KAAK,EAAE,gBAAgB,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,aAAa,CAAC;IAC9B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,qBAAqB,CAAC;IAClC,KAAK,EAAE,gBAAgB,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED,MAAM,WAAW,6BAA6B;IAC5C,KAAK,EAAE,gBAAgB,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,qBAAqB,CAAC;IAClC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;IAC7C,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,4BAA4B;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;;;;OASG;IACH,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAoBD;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;AAIrE,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,sBAAsB,GAAG,IAAI,GAAG,IAAI,CAEnF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAOvE;AAED,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,MAAM,EAAE,uBAAuB,GAC9B,uBAAuB,CAoEzB;AAiDD,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,MAAM,GAAE,4BAAiC,GACxC,iBAAiB,EAAE,CA8BrB;AA+BD,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,GAAG,EAAE,MAAM,EAAE,EACb,aAAa,EAAE,MAAM,GACpB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CA4B1C;AAED,wBAAgB,eAAe,CAC7B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,MAAM,GAAE,IAAI,CACV,4BAA4B,EAC5B,cAAc,GAAG,sBAAsB,GAAG,aAAa,GAAG,OAAO,CAC7D,GACL,MAAM,CAiBR;AAED,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,MAAM,GAAE,IAAI,CAAC,4BAA4B,EAAE,aAAa,CAAM,GAC7D;IACD,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;CAC5F,CA6BA;AAED,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GACpB,6BAA6B,EAAE,CAQjC;AAED,wBAAgB,2BAA2B,CACzC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,aAAa,SAAI,GAChB,MAAM,CAIR;AAID;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,EAAE,EAAE,MAAM,GACT,qBAAqB,GAAG,IAAI,CAoC9B;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GACpB,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAiB/B;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GACpB;IAAE,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAW3C;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACnD,MAAM,EAAE,CAgBV;AAED,UAAU,mBAAmB;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,MAAM,EAAE,mBAAmB,GAC1B,IAAI,CAkBN;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAC7C,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAA;CAAO,GACtE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAgBpD"}
|
package/dist/db/observations.js
CHANGED
|
@@ -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
|
|
48
|
-
const
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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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"}
|
package/dist/db/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;
|
|
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
|
package/dist/db/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AACA,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,oCAAoC,CAAC;AAE5C,2EAA2E;AAC3E,uEAAuE;AACvE,2EAA2E;AAC3E,yEAAyE;AACzE,mEAAmE;AACnE,wDAAwD;AACxD,MAAM,MAAM,GAAG
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"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"}
|