@arke-institute/rhiza 0.9.0 → 0.9.1
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/logging/writer.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Log Writer - SDK utilities for writing klados logs
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* All additive updates are awaited to ensure completion before
|
|
5
|
+
* Tier 1 workers terminate. Uses /updates/additive for CAS-conflict-free
|
|
6
|
+
* updates (no retries needed, single POST per call).
|
|
6
7
|
*/
|
|
7
8
|
import type { ArkeClient } from '@arke-institute/sdk';
|
|
8
9
|
import type { KladosLogEntry, LogMessage, HandoffRecord } from '../types';
|
|
@@ -43,9 +44,9 @@ export declare function writeKladosLog(options: WriteLogOptions): Promise<WriteL
|
|
|
43
44
|
* Update log entry with handoff records
|
|
44
45
|
*
|
|
45
46
|
* Called after handoffs are made to record what was invoked.
|
|
46
|
-
* Uses
|
|
47
|
+
* Uses additive updates with deep merge.
|
|
47
48
|
*/
|
|
48
|
-
export declare function updateLogWithHandoffs(client: ArkeClient, logFileId: string, handoffs: HandoffRecord[]): void
|
|
49
|
+
export declare function updateLogWithHandoffs(client: ArkeClient, logFileId: string, handoffs: HandoffRecord[]): Promise<void>;
|
|
49
50
|
/**
|
|
50
51
|
* Log error info for status updates
|
|
51
52
|
*/
|
|
@@ -90,8 +91,7 @@ export interface UpdateLogStatusOptions {
|
|
|
90
91
|
/**
|
|
91
92
|
* Update log entry status (e.g., to done or error)
|
|
92
93
|
*
|
|
93
|
-
*
|
|
94
|
-
* The actual update is eventually consistent.
|
|
94
|
+
* Awaits all additive updates to ensure they complete before the worker terminates.
|
|
95
95
|
*/
|
|
96
96
|
export declare function updateLogStatus(client: ArkeClient, logFileId: string, status: 'running' | 'done' | 'error', options?: UpdateLogStatusOptions): Promise<void>;
|
|
97
97
|
//# sourceMappingURL=writer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/logging/writer.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/logging/writer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EACV,cAAc,EAEd,UAAU,EACV,aAAa,EACd,MAAM,UAAU,CAAC;AAElB;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,kBAAkB;IAClB,MAAM,EAAE,UAAU,CAAC;IAEnB,wBAAwB;IACxB,eAAe,EAAE,MAAM,CAAC;IAExB,4BAA4B;IAC5B,KAAK,EAAE,cAAc,CAAC;IAEtB,kCAAkC;IAClC,QAAQ,EAAE,UAAU,EAAE,CAAC;IAEvB,iBAAiB;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IAEd,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,cAAc,CAAC,CAiIzB;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,aAAa,EAAE,GACxB,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,8CAA8C;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,EACpC,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAuHf"}
|
package/dist/logging/writer.js
CHANGED
|
@@ -1,25 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Log Writer - SDK utilities for writing klados logs
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* All additive updates are awaited to ensure completion before
|
|
5
|
+
* Tier 1 workers terminate. Uses /updates/additive for CAS-conflict-free
|
|
6
|
+
* updates (no retries needed, single POST per call).
|
|
6
7
|
*/
|
|
7
|
-
/**
|
|
8
|
-
* Queue additive updates (fire-and-forget)
|
|
9
|
-
*
|
|
10
|
-
* Uses /updates/additive for CAS-conflict-free updates.
|
|
11
|
-
* Returns immediately, updates are processed asynchronously by the server.
|
|
12
|
-
*
|
|
13
|
-
* This eliminates the CAS retry delays that were causing 5+ minute handoff times.
|
|
14
|
-
*/
|
|
15
|
-
function queueAdditiveUpdates(client, updates) {
|
|
16
|
-
// Fire and forget - don't await
|
|
17
|
-
client.api.POST('/updates/additive', {
|
|
18
|
-
body: { updates },
|
|
19
|
-
}).catch((err) => {
|
|
20
|
-
console.error('[rhiza] Failed to queue additive updates:', err);
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
8
|
/**
|
|
24
9
|
* Write a klados log entry to the job collection
|
|
25
10
|
*
|
|
@@ -70,28 +55,31 @@ export async function writeKladosLog(options) {
|
|
|
70
55
|
});
|
|
71
56
|
}
|
|
72
57
|
}
|
|
73
|
-
// 3.
|
|
58
|
+
// 3. Batch: received_from on log + log_started on job collection (single request)
|
|
59
|
+
const additiveUpdates = [];
|
|
74
60
|
if (relationships.length > 0) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
61
|
+
additiveUpdates.push({
|
|
62
|
+
entity_id: logEntityId,
|
|
63
|
+
relationships_add: relationships,
|
|
64
|
+
note: 'Add received_from relationships to log',
|
|
65
|
+
});
|
|
80
66
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
67
|
+
additiveUpdates.push({
|
|
68
|
+
entity_id: jobCollectionId,
|
|
69
|
+
relationships_add: [{
|
|
70
|
+
predicate: 'log_started',
|
|
71
|
+
peer: logEntityId,
|
|
72
|
+
peer_type: 'klados_log',
|
|
73
|
+
properties: {
|
|
74
|
+
started_at: entry.started_at,
|
|
75
|
+
klados_id: entry.klados_id,
|
|
76
|
+
},
|
|
77
|
+
}],
|
|
78
|
+
note: 'Track log start for progress',
|
|
79
|
+
});
|
|
80
|
+
await client.api.POST('/updates/additive', {
|
|
81
|
+
body: { updates: additiveUpdates },
|
|
82
|
+
});
|
|
95
83
|
// 5. Update parent logs to add sent_to relationship pointing to this log
|
|
96
84
|
// This enables traversal using only outgoing relationships (no indexing lag)
|
|
97
85
|
// IMPORTANT: Must await these updates - they're critical for tree traversal
|
|
@@ -124,26 +112,29 @@ export async function writeKladosLog(options) {
|
|
|
124
112
|
* Update log entry with handoff records
|
|
125
113
|
*
|
|
126
114
|
* Called after handoffs are made to record what was invoked.
|
|
127
|
-
* Uses
|
|
115
|
+
* Uses additive updates with deep merge.
|
|
128
116
|
*/
|
|
129
|
-
export function updateLogWithHandoffs(client, logFileId, handoffs) {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
117
|
+
export async function updateLogWithHandoffs(client, logFileId, handoffs) {
|
|
118
|
+
await client.api.POST('/updates/additive', {
|
|
119
|
+
body: {
|
|
120
|
+
updates: [{
|
|
121
|
+
entity_id: logFileId,
|
|
122
|
+
properties: {
|
|
123
|
+
log_data: {
|
|
124
|
+
entry: {
|
|
125
|
+
handoffs,
|
|
126
|
+
},
|
|
127
|
+
},
|
|
136
128
|
},
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
129
|
+
note: 'Add handoff records to log',
|
|
130
|
+
}],
|
|
131
|
+
},
|
|
132
|
+
});
|
|
141
133
|
}
|
|
142
134
|
/**
|
|
143
135
|
* Update log entry status (e.g., to done or error)
|
|
144
136
|
*
|
|
145
|
-
*
|
|
146
|
-
* The actual update is eventually consistent.
|
|
137
|
+
* Awaits all additive updates to ensure they complete before the worker terminates.
|
|
147
138
|
*/
|
|
148
139
|
export async function updateLogStatus(client, logFileId, status, options) {
|
|
149
140
|
const { logError, messages, outputs, inputEntityIds } = options ?? {};
|
|
@@ -178,7 +169,8 @@ export async function updateLogStatus(client, logFileId, status, options) {
|
|
|
178
169
|
}],
|
|
179
170
|
},
|
|
180
171
|
});
|
|
181
|
-
// Write log_done to job collection for progress tracking
|
|
172
|
+
// Write log_done to job collection for progress tracking
|
|
173
|
+
// IMPORTANT: Must await to ensure completion before Tier 1 worker terminates
|
|
182
174
|
if (status === 'done' && options?.jobCollectionId) {
|
|
183
175
|
const relationships = [{
|
|
184
176
|
predicate: 'log_done',
|
|
@@ -196,13 +188,17 @@ export async function updateLogStatus(client, logFileId, status, options) {
|
|
|
196
188
|
peer_type: 'klados_log',
|
|
197
189
|
});
|
|
198
190
|
}
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
191
|
+
await client.api.POST('/updates/additive', {
|
|
192
|
+
body: {
|
|
193
|
+
updates: [{
|
|
194
|
+
entity_id: options.jobCollectionId,
|
|
195
|
+
relationships_add: relationships,
|
|
196
|
+
note: options.isTerminal
|
|
197
|
+
? 'Track log completion and mark as final output'
|
|
198
|
+
: 'Track log completion for progress',
|
|
199
|
+
}],
|
|
200
|
+
},
|
|
201
|
+
});
|
|
206
202
|
}
|
|
207
203
|
// Link input entities to this log (if enabled)
|
|
208
204
|
// Done here (after job completes) to avoid race conditions with worker's CAS updates
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/logging/writer.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/logging/writer.ts"],"names":[],"mappings":"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"}
|