@jungjaehoon/mama-os 0.24.1 → 0.25.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.
- package/CHANGELOG.md +14 -0
- package/README.md +9 -6
- package/dist/agent/agent-loop.d.ts.map +1 -1
- package/dist/agent/agent-loop.js +8 -0
- package/dist/agent/agent-loop.js.map +1 -1
- package/dist/agent/code-act/constants.js +2 -2
- package/dist/agent/code-act/host-bridge.d.ts.map +1 -1
- package/dist/agent/code-act/host-bridge.js +37 -4
- package/dist/agent/code-act/host-bridge.js.map +1 -1
- package/dist/agent/code-act/type-definition-generator.d.ts.map +1 -1
- package/dist/agent/code-act/type-definition-generator.js +2 -4
- package/dist/agent/code-act/type-definition-generator.js.map +1 -1
- package/dist/agent/context-compile-service.d.ts +2 -0
- package/dist/agent/context-compile-service.d.ts.map +1 -1
- package/dist/agent/context-compile-service.js +26 -7
- package/dist/agent/context-compile-service.js.map +1 -1
- package/dist/agent/gateway-tool-executor.d.ts +2 -0
- package/dist/agent/gateway-tool-executor.d.ts.map +1 -1
- package/dist/agent/gateway-tool-executor.js +312 -18
- package/dist/agent/gateway-tool-executor.js.map +1 -1
- package/dist/agent/gateway-tools.md +4 -3
- package/dist/agent/tool-registry.d.ts.map +1 -1
- package/dist/agent/tool-registry.js +9 -3
- package/dist/agent/tool-registry.js.map +1 -1
- package/dist/agent/types.d.ts +27 -6
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/api/operator-tasks-handler.d.ts.map +1 -1
- package/dist/api/operator-tasks-handler.js +23 -1
- package/dist/api/operator-tasks-handler.js.map +1 -1
- package/dist/cli/commands/start.d.ts +7 -3
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +113 -65
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/runtime/agent-loop-init.d.ts +2 -0
- package/dist/cli/runtime/agent-loop-init.d.ts.map +1 -1
- package/dist/cli/runtime/agent-loop-init.js +37 -12
- package/dist/cli/runtime/agent-loop-init.js.map +1 -1
- package/dist/cli/runtime/api-routes-init.js +3 -3
- package/dist/cli/runtime/api-routes-init.js.map +1 -1
- package/dist/cli/runtime/temporal-init.d.ts +28 -0
- package/dist/cli/runtime/temporal-init.d.ts.map +1 -0
- package/dist/cli/runtime/temporal-init.js +74 -0
- package/dist/cli/runtime/temporal-init.js.map +1 -0
- package/dist/db/migrations/operator-task-temporal.d.ts +8 -0
- package/dist/db/migrations/operator-task-temporal.d.ts.map +1 -0
- package/dist/db/migrations/operator-task-temporal.js +209 -0
- package/dist/db/migrations/operator-task-temporal.js.map +1 -0
- package/dist/envelope/enforcer.d.ts.map +1 -1
- package/dist/envelope/enforcer.js +6 -6
- package/dist/envelope/enforcer.js.map +1 -1
- package/dist/multi-agent/dashboard-agent-persona.d.ts.map +1 -1
- package/dist/multi-agent/dashboard-agent-persona.js +9 -4
- package/dist/multi-agent/dashboard-agent-persona.js.map +1 -1
- package/dist/operator/action-verifier.d.ts +23 -0
- package/dist/operator/action-verifier.d.ts.map +1 -1
- package/dist/operator/action-verifier.js +76 -0
- package/dist/operator/action-verifier.js.map +1 -1
- package/dist/operator/board-reconcile.d.ts.map +1 -1
- package/dist/operator/board-reconcile.js +3 -0
- package/dist/operator/board-reconcile.js.map +1 -1
- package/dist/operator/board-slot-instructions.d.ts +3 -3
- package/dist/operator/board-slot-instructions.d.ts.map +1 -1
- package/dist/operator/board-slot-instructions.js +17 -8
- package/dist/operator/board-slot-instructions.js.map +1 -1
- package/dist/operator/briefs.d.ts.map +1 -1
- package/dist/operator/briefs.js +3 -0
- package/dist/operator/briefs.js.map +1 -1
- package/dist/operator/task-ledger.d.ts +134 -8
- package/dist/operator/task-ledger.d.ts.map +1 -1
- package/dist/operator/task-ledger.js +1181 -74
- package/dist/operator/task-ledger.js.map +1 -1
- package/dist/operator/task-temporal.d.ts +21 -0
- package/dist/operator/task-temporal.d.ts.map +1 -0
- package/dist/operator/task-temporal.js +111 -0
- package/dist/operator/task-temporal.js.map +1 -0
- package/dist/operator/temporal-effect.d.ts +62 -0
- package/dist/operator/temporal-effect.d.ts.map +1 -0
- package/dist/operator/temporal-effect.js +71 -0
- package/dist/operator/temporal-effect.js.map +1 -0
- package/dist/operator/temporal-reconcile.d.ts +48 -0
- package/dist/operator/temporal-reconcile.d.ts.map +1 -0
- package/dist/operator/temporal-reconcile.js +215 -0
- package/dist/operator/temporal-reconcile.js.map +1 -0
- package/dist/operator/temporal-runtime.d.ts +54 -0
- package/dist/operator/temporal-runtime.d.ts.map +1 -0
- package/dist/operator/temporal-runtime.js +110 -0
- package/dist/operator/temporal-runtime.js.map +1 -0
- package/dist/operator/temporal-worker.d.ts +19 -0
- package/dist/operator/temporal-worker.d.ts.map +1 -0
- package/dist/operator/temporal-worker.js +105 -0
- package/dist/operator/temporal-worker.js.map +1 -0
- package/dist/operator/worker-run.d.ts +6 -2
- package/dist/operator/worker-run.d.ts.map +1 -1
- package/dist/operator/worker-run.js +14 -0
- package/dist/operator/worker-run.js.map +1 -1
- package/dist/operator/workorder-consumer.d.ts +27 -10
- package/dist/operator/workorder-consumer.d.ts.map +1 -1
- package/dist/operator/workorder-consumer.js +195 -14
- package/dist/operator/workorder-consumer.js.map +1 -1
- package/dist/operator/workorder-hooks.d.ts +3 -0
- package/dist/operator/workorder-hooks.d.ts.map +1 -1
- package/dist/operator/workorder-hooks.js +23 -0
- package/dist/operator/workorder-hooks.js.map +1 -1
- package/dist/operator/workorder-publishers.d.ts +10 -1
- package/dist/operator/workorder-publishers.d.ts.map +1 -1
- package/dist/operator/workorder-publishers.js +40 -3
- package/dist/operator/workorder-publishers.js.map +1 -1
- package/package.json +1 -1
- package/public/ui/assets/{index-OSgiwL24.js → index-BDXDGEV6.js} +15 -15
- package/public/ui/assets/index-po2tN0xq.css +1 -0
- package/public/ui/index.html +2 -2
- package/public/ui/assets/index-CKOJQYXA.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board-slot-instructions.js","sourceRoot":"","sources":["../../src/operator/board-slot-instructions.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAKH,
|
|
1
|
+
{"version":3,"file":"board-slot-instructions.js","sourceRoot":"","sources":["../../src/operator/board-slot-instructions.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAKH,4DAiBC;AASD,4EAsBC;AAGD,wDAcC;AApEY,QAAA,gBAAgB,GAAG,CAAC,UAAU,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAU,CAAC;AAElG,8DAA8D;AAC9D,SAAgB,wBAAwB;IACtC,OAAO;QACL,qGAAqG;QACrG,sFAAsF;QACtF,oIAAoI;QACpI,oEAAoE;QACpE,oGAAoG;QACpG,6DAA6D;QAC7D,6EAA6E;QAC7E,6DAA6D;QAC7D,+FAA+F;QAC/F,yDAAyD;QACzD,0FAA0F;QAC1F,kDAAkD;QAClD,+GAA+G;QAC/G,iGAAiG;KAClG,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,gCAAgC;IAC9C,OAAO;QACL,oEAAoE;QACpE,qFAAqF;QACrF,sEAAsE;QACtE,8GAA8G;QAC9G,sFAAsF;QACtF,4EAA4E;QAC5E,4FAA4F;QAC5F,4FAA4F;QAC5F,kEAAkE;QAClE,0FAA0F;QAC1F,2CAA2C;QAC3C,uDAAuD;QACvD,2EAA2E;QAC3E,8DAA8D;QAC9D,sCAAsC;QACtC,2FAA2F;QAC3F,2EAA2E;QAC3E,sCAAsC;QACtC,wFAAwF;KACzF,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,SAAgB,sBAAsB;IACpC,OAAO;QACL,qFAAqF;QACrF,gDAAgD;QAChD,yHAAyH;QACzH,iHAAiH;QACjH,iHAAiH;QACjH,yGAAyG;QACzG,0DAA0D;QAC1D,GAAG,gCAAgC,EAAE;QACrC,GAAG,wBAAwB,EAAE;QAC7B,gGAAgG;QAChG,iFAAiF;KAClF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"briefs.d.ts","sourceRoot":"","sources":["../../src/operator/briefs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"briefs.d.ts","sourceRoot":"","sources":["../../src/operator/briefs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOvE,wBAAgB,SAAS,CAAC,OAAO,GAAE,MAAkB,GAAG,MAAM,CAE7D;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,GAAE,MAAkB,GAAG,MAAM,CAElF;AAED,iFAAiF;AACjF,wBAAgB,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,GAAE,MAAkB,GAAG,MAAM,GAAG,IAAI,CAIzF;AA6DD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAW7D;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,MAAkB,GAAG,aAAa,EAAE,CAgBzE"}
|
package/dist/operator/briefs.js
CHANGED
|
@@ -24,6 +24,7 @@ const task_ledger_js_1 = require("./task-ledger.js");
|
|
|
24
24
|
// relocate INTO this file when the persona modules are deleted at cutover.
|
|
25
25
|
const dashboard_agent_persona_js_1 = require("../multi-agent/dashboard-agent-persona.js");
|
|
26
26
|
const wiki_agent_persona_js_1 = require("../multi-agent/wiki-agent-persona.js");
|
|
27
|
+
const temporal_worker_js_1 = require("./temporal-worker.js");
|
|
27
28
|
function briefsDir(homeDir = (0, node_os_1.homedir)()) {
|
|
28
29
|
return (0, node_path_1.join)(homeDir, '.mama', 'briefs');
|
|
29
30
|
}
|
|
@@ -99,6 +100,8 @@ function buildDefaultBrief(kind) {
|
|
|
99
100
|
return `${stripManagedMarker(wiki_agent_persona_js_1.WIKI_AGENT_PERSONA)}\n${WIKI_WORKORDER_CONTRACT}`;
|
|
100
101
|
case 'memory-curation':
|
|
101
102
|
return PROMOTION_BRIEF;
|
|
103
|
+
case 'temporal':
|
|
104
|
+
return (0, temporal_worker_js_1.buildTemporalWorkerBrief)();
|
|
102
105
|
}
|
|
103
106
|
}
|
|
104
107
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"briefs.js","sourceRoot":"","sources":["../../src/operator/briefs.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;
|
|
1
|
+
{"version":3,"file":"briefs.js","sourceRoot":"","sources":["../../src/operator/briefs.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;AAYH,8BAEC;AAED,8BAEC;AAGD,8BAIC;AA6DD,8CAWC;AASD,oCAgBC;AAxHD,qCAAyF;AACzF,qCAAkC;AAClC,yCAAiC;AACjC,qDAAuE;AACvE,2EAA2E;AAC3E,2EAA2E;AAC3E,0FAAoF;AACpF,gFAA0E;AAC1E,6DAAgE;AAEhE,SAAgB,SAAS,CAAC,UAAkB,IAAA,iBAAO,GAAE;IACnD,OAAO,IAAA,gBAAI,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAED,SAAgB,SAAS,CAAC,IAAmB,EAAE,UAAkB,IAAA,iBAAO,GAAE;IACxE,OAAO,IAAA,gBAAI,EAAC,SAAS,CAAC,OAAO,CAAC,EAAE,SAAS,IAAI,KAAK,CAAC,CAAC;AACtD,CAAC;AAED,iFAAiF;AACjF,SAAgB,SAAS,CAAC,IAAmB,EAAE,UAAkB,IAAA,iBAAO,GAAE;IACxE,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC,IAAA,oBAAU,EAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,OAAO,IAAA,sBAAY,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,kBAAkB,GAAG,CAAC,OAAe,EAAU,EAAE,CACrD,OAAO,CAAC,OAAO,CAAC,iCAAiC,EAAE,EAAE,CAAC,CAAC;AAEzD,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;CAuBhC,CAAC;AAEF,MAAM,uBAAuB,GAAG;;;;;;CAM/B,CAAC;AAEF,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;CAqBvB,CAAC;AAEF,SAAgB,iBAAiB,CAAC,IAAmB;IACnD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO;YACV,OAAO,GAAG,kBAAkB,CAAC,oDAAuB,CAAC,KAAK,wBAAwB,EAAE,CAAC;QACvF,KAAK,MAAM;YACT,OAAO,GAAG,kBAAkB,CAAC,0CAAkB,CAAC,KAAK,uBAAuB,EAAE,CAAC;QACjF,KAAK,iBAAiB;YACpB,OAAO,eAAe,CAAC;QACzB,KAAK,UAAU;YACb,OAAO,IAAA,6CAAwB,GAAE,CAAC;IACtC,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,YAAY,CAAC,UAAkB,IAAA,iBAAO,GAAE;IACtD,IAAA,mBAAS,EAAC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,gCAAe,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,IAAA,oBAAU,EAAC,IAAI,CAAC,EAAE,CAAC;YACtB,oEAAoE;YACpE,2DAA2D;YAC3D,MAAM,OAAO,GAAG,GAAG,IAAI,MAAM,CAAC;YAC9B,IAAA,uBAAa,EAAC,OAAO,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;YACzD,IAAA,oBAAU,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* TaskLedger - the operator-owned native work-item ledger (M8 Task 0.1).
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* (operator-interfaces.ts) so the board projects
|
|
4
|
+
* Extends the shape of Kagemusha's proven task store with assignment,
|
|
5
|
+
* idempotency, temporal scheduling, durable generation, effect receipt, and
|
|
6
|
+
* workorder state. Implements the pre-existing `TaskSource` interface
|
|
7
|
+
* (operator-interfaces.ts) so the board projects one task model, not two.
|
|
8
8
|
*
|
|
9
9
|
* Reconcile runs create/update rows through the task_create/task_update gateway
|
|
10
10
|
* tools; the pipeline board slot is a projection of `list({order:
|
|
11
|
-
* 'deadline_priority'})`. The
|
|
12
|
-
*
|
|
11
|
+
* 'deadline_priority'})`. The agent proposes task changes, while this ledger
|
|
12
|
+
* enforces revisions, temporal ownership, idempotency, and atomic receipts.
|
|
13
13
|
*
|
|
14
14
|
* Schema-extension note: CREATE TABLE IF NOT EXISTS is a no-op on existing
|
|
15
15
|
* tables. Any post-ship column addition needs an explicit ALTER TABLE guarded
|
|
@@ -20,14 +20,17 @@
|
|
|
20
20
|
*/
|
|
21
21
|
import type { SQLiteDatabase } from '../sqlite.js';
|
|
22
22
|
import type { OperatorTask, TaskSource } from './operator-interfaces.js';
|
|
23
|
+
import { type TemporalEffectReceipt, type TemporalEvidenceAttestation, type TemporalReconcileInput, type TemporalWorkContext } from './temporal-effect.js';
|
|
24
|
+
import { type TemporalState } from './task-temporal.js';
|
|
23
25
|
export declare const TASK_STATUSES: readonly ["pending", "in_progress", "review", "blocked", "done", "cancelled", "failed"];
|
|
24
26
|
export type TaskStatus = (typeof TASK_STATUSES)[number];
|
|
25
27
|
export declare const TASK_PRIORITIES: readonly ["high", "normal", "low"];
|
|
26
28
|
export type TaskPriority = (typeof TASK_PRIORITIES)[number];
|
|
27
29
|
export declare const TASK_KINDS: readonly ["owner", "system"];
|
|
28
30
|
export type TaskKind = (typeof TASK_KINDS)[number];
|
|
29
|
-
export declare const WORKORDER_KINDS: readonly ["board", "wiki", "memory-curation"];
|
|
31
|
+
export declare const WORKORDER_KINDS: readonly ["board", "wiki", "memory-curation", "temporal"];
|
|
30
32
|
export type WorkOrderKind = (typeof WORKORDER_KINDS)[number];
|
|
33
|
+
export declare const TEMPORAL_WORKORDER_MAX_ATTEMPTS = 3;
|
|
31
34
|
/** source_channel namespace for workorder rows: 'workorder:<workKind>'. */
|
|
32
35
|
export declare const WORKORDER_CHANNEL_PREFIX = "workorder:";
|
|
33
36
|
export interface EnqueueWorkOrderInput {
|
|
@@ -38,6 +41,16 @@ export interface EnqueueWorkOrderInput {
|
|
|
38
41
|
input: Record<string, unknown>;
|
|
39
42
|
priority?: TaskPriority;
|
|
40
43
|
}
|
|
44
|
+
export interface EnqueueTemporalGenerationInput {
|
|
45
|
+
generationKey: string;
|
|
46
|
+
taskId: number;
|
|
47
|
+
temporalEpoch: number;
|
|
48
|
+
occurrenceKey: string;
|
|
49
|
+
checkAt: number;
|
|
50
|
+
sourceChannel: string | null;
|
|
51
|
+
sourceEventId: string | null;
|
|
52
|
+
priority?: TaskPriority;
|
|
53
|
+
}
|
|
41
54
|
export interface WorkOrderRecord {
|
|
42
55
|
id: number;
|
|
43
56
|
workKind: WorkOrderKind;
|
|
@@ -64,7 +77,59 @@ export interface TaskRecord extends OperatorTask {
|
|
|
64
77
|
latestEvent: string | null;
|
|
65
78
|
autoCreated: boolean;
|
|
66
79
|
confirmed: boolean;
|
|
80
|
+
dueAt: number | null;
|
|
81
|
+
deadlineOffsetMinutes: number | null;
|
|
82
|
+
revision: number;
|
|
83
|
+
temporalEpoch: number;
|
|
84
|
+
temporalReconciledOccurrenceKey: string | null;
|
|
85
|
+
lastTemporalCheckedAt: number | null;
|
|
86
|
+
nextTemporalCheckAt: number | null;
|
|
87
|
+
lastTemporalAttemptId: number | null;
|
|
88
|
+
temporalState: TemporalState;
|
|
89
|
+
}
|
|
90
|
+
export interface TaskLedgerOptions {
|
|
91
|
+
now?: () => number;
|
|
92
|
+
timeZone?: string;
|
|
93
|
+
}
|
|
94
|
+
export type TemporalGenerationDisposition = 'active' | 'resolved' | 'final_no_update' | 'deferred' | 'exhausted' | 'superseded';
|
|
95
|
+
export interface TemporalGenerationRecord {
|
|
96
|
+
generationKey: string;
|
|
97
|
+
taskId: number;
|
|
98
|
+
temporalEpoch: number;
|
|
99
|
+
occurrenceKey: string;
|
|
100
|
+
checkAt: number;
|
|
101
|
+
disposition: TemporalGenerationDisposition;
|
|
102
|
+
lastWorkOrderId: number | null;
|
|
103
|
+
reason: string | null;
|
|
104
|
+
createdAt: number;
|
|
105
|
+
updatedAt: number;
|
|
106
|
+
}
|
|
107
|
+
export type { TemporalWorkContext } from './temporal-effect.js';
|
|
108
|
+
export interface TemporalGenerationEnqueueResult {
|
|
109
|
+
generation: TemporalGenerationRecord;
|
|
110
|
+
workOrder: WorkOrderRecord;
|
|
111
|
+
created: boolean;
|
|
67
112
|
}
|
|
113
|
+
/** Authoritative terminal-arbitration view for one temporal attempt. */
|
|
114
|
+
export interface TemporalAttemptState {
|
|
115
|
+
workOrder: WorkOrderRecord;
|
|
116
|
+
generation: TemporalGenerationRecord;
|
|
117
|
+
receipt: TemporalEffectReceipt | null;
|
|
118
|
+
}
|
|
119
|
+
export type TemporalWorkFailureResult = {
|
|
120
|
+
disposition: 'requeued';
|
|
121
|
+
replacement: WorkOrderRecord;
|
|
122
|
+
attempt: number;
|
|
123
|
+
maxAttempts: number;
|
|
124
|
+
} | {
|
|
125
|
+
disposition: 'exhausted';
|
|
126
|
+
attempt: number;
|
|
127
|
+
maxAttempts: number;
|
|
128
|
+
} | {
|
|
129
|
+
disposition: 'superseded';
|
|
130
|
+
attempt: number;
|
|
131
|
+
maxAttempts: number;
|
|
132
|
+
};
|
|
68
133
|
export interface CreateTaskInput {
|
|
69
134
|
title: string;
|
|
70
135
|
status?: TaskStatus;
|
|
@@ -72,6 +137,8 @@ export interface CreateTaskInput {
|
|
|
72
137
|
assignee?: string;
|
|
73
138
|
/** ISO YYYY-MM-DD */
|
|
74
139
|
deadline?: string;
|
|
140
|
+
/** RFC 3339 with an explicit Z or numeric offset. */
|
|
141
|
+
due_at?: string;
|
|
75
142
|
/** channelKey: "<connector>:<channelId>" */
|
|
76
143
|
source_channel?: string;
|
|
77
144
|
/** Idempotency key from the connector event; duplicate (channel, event) UPSERTS. */
|
|
@@ -84,6 +151,8 @@ export interface UpdateTaskInput {
|
|
|
84
151
|
priority?: TaskPriority;
|
|
85
152
|
assignee?: string | null;
|
|
86
153
|
deadline?: string | null;
|
|
154
|
+
/** RFC 3339 with an explicit Z or numeric offset. */
|
|
155
|
+
due_at?: string | null;
|
|
87
156
|
latest_event?: string;
|
|
88
157
|
confirmed?: boolean;
|
|
89
158
|
title?: string;
|
|
@@ -98,7 +167,10 @@ export interface ListTasksFilter {
|
|
|
98
167
|
}
|
|
99
168
|
export declare class TaskLedger implements TaskSource {
|
|
100
169
|
private db;
|
|
101
|
-
|
|
170
|
+
private now;
|
|
171
|
+
private timeZone;
|
|
172
|
+
constructor(db: SQLiteDatabase, options?: TaskLedgerOptions);
|
|
173
|
+
private toRecord;
|
|
102
174
|
private runMigration;
|
|
103
175
|
/** Full current column set - single source for CREATE and the rebuild copy. */
|
|
104
176
|
private static readonly TABLE_COLUMNS_SQL;
|
|
@@ -114,6 +186,11 @@ export declare class TaskLedger implements TaskSource {
|
|
|
114
186
|
getTasks(): OperatorTask[];
|
|
115
187
|
countOpenUnconfirmed(): number;
|
|
116
188
|
list(filter?: ListTasksFilter): TaskRecord[];
|
|
189
|
+
/** Internal bounded page for temporal reconciliation; excludes rows that can never be candidates. */
|
|
190
|
+
listTemporalScanPage(input: {
|
|
191
|
+
limit: number;
|
|
192
|
+
afterId: number;
|
|
193
|
+
}): TaskRecord[];
|
|
117
194
|
/** Owner rows only - system workorder rows are invisible to external reads. */
|
|
118
195
|
getById(id: number): TaskRecord | null;
|
|
119
196
|
/** Internal fetch without the kind filter (guards and workorder paths). */
|
|
@@ -125,6 +202,8 @@ export declare class TaskLedger implements TaskSource {
|
|
|
125
202
|
*/
|
|
126
203
|
create(input: CreateTaskInput): TaskRecord;
|
|
127
204
|
update(id: number, patch: UpdateTaskInput): TaskRecord;
|
|
205
|
+
private supersedeTemporalGenerationsInTransaction;
|
|
206
|
+
private supersedeAllActiveTemporalGenerationsInTransaction;
|
|
128
207
|
/**
|
|
129
208
|
* Stable hash over ordered OWNER rows - the Phase-2 verifier's ledger
|
|
130
209
|
* snapshot. kind filter keeps concurrent system enqueues from shaking the
|
|
@@ -137,6 +216,50 @@ export declare class TaskLedger implements TaskSource {
|
|
|
137
216
|
* unique index excludes terminal statuses) and a fresh row is inserted.
|
|
138
217
|
*/
|
|
139
218
|
enqueueWorkOrder(order: EnqueueWorkOrderInput): WorkOrderRecord;
|
|
219
|
+
private insertWorkOrder;
|
|
220
|
+
enqueueTemporalGeneration(input: EnqueueTemporalGenerationInput): TemporalGenerationEnqueueResult;
|
|
221
|
+
getTemporalGeneration(generationKey: string): TemporalGenerationRecord | null;
|
|
222
|
+
loadTemporalWorkContext(attemptId: number): TemporalWorkContext;
|
|
223
|
+
assertTemporalWorkContextActive(suppliedContext: TemporalWorkContext): TemporalWorkContext;
|
|
224
|
+
getTemporalEffect(attemptId: number): TemporalEffectReceipt | null;
|
|
225
|
+
/**
|
|
226
|
+
* Read and validate the durable state that decides a temporal attempt's
|
|
227
|
+
* terminal outcome. This intentionally does not require an active attempt:
|
|
228
|
+
* consumers must be able to arbitrate committed, superseded, and exhausted
|
|
229
|
+
* attempts after runner/auditor failures and daemon restarts.
|
|
230
|
+
*/
|
|
231
|
+
inspectTemporalAttempt(attemptId: number): TemporalAttemptState;
|
|
232
|
+
applyTemporalEffect(suppliedContext: TemporalWorkContext, input: TemporalReconcileInput, evidence: TemporalEvidenceAttestation, now?: number): TemporalEffectReceipt;
|
|
233
|
+
requeueTemporalWorkOrder(attemptId: number, reason: string): WorkOrderRecord;
|
|
234
|
+
exhaustTemporalWorkOrder(attemptId: number, reason: string): void;
|
|
235
|
+
failTemporalWorkOrder(attemptId: number, reason: string): TemporalWorkFailureResult;
|
|
236
|
+
private repairClosedTemporalOwnershipInTransaction;
|
|
237
|
+
/** Repair pre-fix databases where a terminal owner still has active temporal ownership. */
|
|
238
|
+
repairClosedTemporalGenerations(): number;
|
|
239
|
+
/** Control-plane pause: cancel open attempts but keep generations resumable. */
|
|
240
|
+
pauseActiveTemporalWork(reason: string): number;
|
|
241
|
+
/** Resume paused active generations without spending another model attempt. */
|
|
242
|
+
resumePausedTemporalWork(): WorkOrderRecord[];
|
|
243
|
+
private requeueTemporalWorkOrderInTransaction;
|
|
244
|
+
private exhaustTemporalWorkOrderInTransaction;
|
|
245
|
+
supersedeTemporalGenerations(taskId: number, currentEpoch: number, excludeGenerationKey?: string): void;
|
|
246
|
+
private validateTemporalGenerationInput;
|
|
247
|
+
/**
|
|
248
|
+
* Workorder payloads carry only bounded references to owner-source identifiers.
|
|
249
|
+
* Owner rows created by older releases may contain empty or arbitrarily long
|
|
250
|
+
* connector identifiers; hashing preserves exact identity without making one
|
|
251
|
+
* legacy row able to abort temporal boot or inflate every retry payload.
|
|
252
|
+
*/
|
|
253
|
+
private temporalSourceIdentifierRef;
|
|
254
|
+
private validateTemporalEffectInput;
|
|
255
|
+
private assertTemporalContextMatches;
|
|
256
|
+
private loadTemporalWorkContextInternal;
|
|
257
|
+
private assertTemporalPayloadMatches;
|
|
258
|
+
private requirePayloadString;
|
|
259
|
+
private requireNullablePayloadString;
|
|
260
|
+
private requirePayloadInteger;
|
|
261
|
+
private assertTemporalReason;
|
|
262
|
+
private temporalAuditText;
|
|
140
263
|
/**
|
|
141
264
|
* Claim the next pending workorder: priority high>normal>low, then id ASC
|
|
142
265
|
* (plan D2/E2 - CASE mapping, never lexicographic on the TEXT enum).
|
|
@@ -154,6 +277,8 @@ export declare class TaskLedger implements TaskSource {
|
|
|
154
277
|
completeWorkOrder(id: number): void;
|
|
155
278
|
failWorkOrder(id: number, reason: string): void;
|
|
156
279
|
countPendingWorkOrders(): number;
|
|
280
|
+
countOpenWorkOrders(kind?: WorkOrderKind): number;
|
|
281
|
+
findTemporalGenerationKeys(generationKeys: readonly string[]): Set<string>;
|
|
157
282
|
/** In-progress system rows at boot = crash artifacts (single serial consumer). */
|
|
158
283
|
listStaleClaims(): WorkOrderRecord[];
|
|
159
284
|
/**
|
|
@@ -178,6 +303,7 @@ export declare class TaskLedger implements TaskSource {
|
|
|
178
303
|
recordNoUpdate(scope: string, reason: string): {
|
|
179
304
|
id: number;
|
|
180
305
|
};
|
|
306
|
+
private insertNoUpdateNote;
|
|
181
307
|
/** Max no-update note id, optionally scoped - the verifier's note snapshot. */
|
|
182
308
|
maxNoUpdateId(scope?: string): number;
|
|
183
309
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-ledger.d.ts","sourceRoot":"","sources":["../../src/operator/task-ledger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;
|
|
1
|
+
{"version":3,"file":"task-ledger.d.ts","sourceRoot":"","sources":["../../src/operator/task-ledger.ts"],"names":[],"mappings":"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"}
|