@arke-institute/klados-testing 0.3.0 → 0.3.2
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/entities.d.ts +8 -1
- package/dist/entities.d.ts.map +1 -1
- package/dist/entities.js +10 -1
- package/dist/entities.js.map +1 -1
- package/dist/logs.d.ts +25 -3
- package/dist/logs.d.ts.map +1 -1
- package/dist/logs.js +111 -35
- package/dist/logs.js.map +1 -1
- package/dist/types.d.ts +33 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/entities.d.ts
CHANGED
|
@@ -33,12 +33,19 @@ export declare function deleteEntity(id: string): Promise<void>;
|
|
|
33
33
|
* Create a new collection
|
|
34
34
|
*
|
|
35
35
|
* Uses POST /collections to get proper owner permissions.
|
|
36
|
+
* By default, collections include standard roles with public *:view access.
|
|
36
37
|
*
|
|
37
38
|
* @example
|
|
38
39
|
* ```typescript
|
|
40
|
+
* // Minimal - gets default roles
|
|
39
41
|
* const collection = await createCollection({
|
|
40
42
|
* label: 'Test Collection',
|
|
41
|
-
*
|
|
43
|
+
* });
|
|
44
|
+
*
|
|
45
|
+
* // Agent-accessible collection
|
|
46
|
+
* const agentCollection = await createCollection({
|
|
47
|
+
* label: 'Agent Collection',
|
|
48
|
+
* roles: { public: ['*:view', '*:invoke'] }
|
|
42
49
|
* });
|
|
43
50
|
* ```
|
|
44
51
|
*/
|
package/dist/entities.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../src/entities.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EACV,MAAM,EACN,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAWhF;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE3D;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ5D;AAED
|
|
1
|
+
{"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../src/entities.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EACV,MAAM,EACN,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAWhF;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE3D;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ5D;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,UAAU,CAAC,CAQrB;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,kBAAkB,CAAC,CAK7B"}
|
package/dist/entities.js
CHANGED
|
@@ -51,12 +51,19 @@ export async function deleteEntity(id) {
|
|
|
51
51
|
* Create a new collection
|
|
52
52
|
*
|
|
53
53
|
* Uses POST /collections to get proper owner permissions.
|
|
54
|
+
* By default, collections include standard roles with public *:view access.
|
|
54
55
|
*
|
|
55
56
|
* @example
|
|
56
57
|
* ```typescript
|
|
58
|
+
* // Minimal - gets default roles
|
|
57
59
|
* const collection = await createCollection({
|
|
58
60
|
* label: 'Test Collection',
|
|
59
|
-
*
|
|
61
|
+
* });
|
|
62
|
+
*
|
|
63
|
+
* // Agent-accessible collection
|
|
64
|
+
* const agentCollection = await createCollection({
|
|
65
|
+
* label: 'Agent Collection',
|
|
66
|
+
* roles: { public: ['*:view', '*:invoke'] }
|
|
60
67
|
* });
|
|
61
68
|
* ```
|
|
62
69
|
*/
|
|
@@ -65,6 +72,8 @@ export async function createCollection(options) {
|
|
|
65
72
|
label: options.label,
|
|
66
73
|
description: options.description,
|
|
67
74
|
allowed_types: options.allowedTypes,
|
|
75
|
+
roles: options.roles,
|
|
76
|
+
use_roles_default: options.useRolesDefault,
|
|
68
77
|
});
|
|
69
78
|
}
|
|
70
79
|
/**
|
package/dist/entities.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entities.js","sourceRoot":"","sources":["../src/entities.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AASzC;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAA4B;IAC7D,MAAM,IAAI,GAA4B;QACpC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC;IAEF,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC;IACzC,CAAC;IAED,OAAO,UAAU,CAAS,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,EAAU;IACxC,OAAO,UAAU,CAAS,KAAK,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EAAU;IAC3C,0BAA0B;IAC1B,MAAM,GAAG,GAAG,MAAM,UAAU,CAAkB,KAAK,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IAE5E,yBAAyB;IACzB,MAAM,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,EAAE;QAC5C,UAAU,EAAE,GAAG,CAAC,GAAG;KACpB,CAAC,CAAC;AACL,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"entities.js","sourceRoot":"","sources":["../src/entities.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AASzC;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAA4B;IAC7D,MAAM,IAAI,GAA4B;QACpC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC;IAEF,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC;IACzC,CAAC;IAED,OAAO,UAAU,CAAS,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,EAAU;IACxC,OAAO,UAAU,CAAS,KAAK,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EAAU;IAC3C,0BAA0B;IAC1B,MAAM,GAAG,GAAG,MAAM,UAAU,CAAkB,KAAK,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IAE5E,yBAAyB;IACzB,MAAM,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,EAAE;QAC5C,UAAU,EAAE,GAAG,CAAC,GAAG;KACpB,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAgC;IAEhC,OAAO,UAAU,CAAa,MAAM,EAAE,cAAc,EAAE;QACpD,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,aAAa,EAAE,OAAO,CAAC,YAAY;QACnC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,iBAAiB,EAAE,OAAO,CAAC,eAAe;KAC3C,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,YAAoB;IAEpB,OAAO,UAAU,CACf,KAAK,EACL,gBAAgB,YAAY,WAAW,CACxC,CAAC;AACJ,CAAC"}
|
package/dist/logs.d.ts
CHANGED
|
@@ -77,9 +77,21 @@ export declare function getLogEntry(log: KladosLogEntry): {
|
|
|
77
77
|
};
|
|
78
78
|
handoffs?: Array<{
|
|
79
79
|
target: string;
|
|
80
|
-
type: "invoke" | "scatter" | "complete" | "error" | "none";
|
|
80
|
+
type: "invoke" | "pass" | "scatter" | "gather" | "complete" | "error" | "none";
|
|
81
81
|
job_id?: string;
|
|
82
82
|
error?: string;
|
|
83
|
+
outputs?: string[];
|
|
84
|
+
invocations
|
|
85
|
+
/**
|
|
86
|
+
* Result of getting log children
|
|
87
|
+
*/
|
|
88
|
+
?: Array<{
|
|
89
|
+
target: string;
|
|
90
|
+
request?: Record<string, unknown>;
|
|
91
|
+
}>;
|
|
92
|
+
delegated?: boolean;
|
|
93
|
+
dispatch_id?: string;
|
|
94
|
+
done_slots?: number;
|
|
83
95
|
}>;
|
|
84
96
|
error?: {
|
|
85
97
|
code: string;
|
|
@@ -87,6 +99,15 @@ export declare function getLogEntry(log: KladosLogEntry): {
|
|
|
87
99
|
retryable: boolean;
|
|
88
100
|
};
|
|
89
101
|
};
|
|
102
|
+
/**
|
|
103
|
+
* Result of getting log children
|
|
104
|
+
*/
|
|
105
|
+
interface LogChildrenResult {
|
|
106
|
+
/** Array of child log entity IDs */
|
|
107
|
+
childIds: string[];
|
|
108
|
+
/** Total count of sent_to relationships (may be more than childIds if some don't exist yet) */
|
|
109
|
+
sentToCount: number;
|
|
110
|
+
}
|
|
90
111
|
/**
|
|
91
112
|
* Get children of a log by querying for outgoing sent_to relationships
|
|
92
113
|
*
|
|
@@ -96,9 +117,9 @@ export declare function getLogEntry(log: KladosLogEntry): {
|
|
|
96
117
|
* - We use `sent_to` for traversal since it's an outgoing relationship (no indexing lag)
|
|
97
118
|
*
|
|
98
119
|
* @param logEntityId - Log entity ID to find children of
|
|
99
|
-
* @returns
|
|
120
|
+
* @returns Object with child IDs and total sent_to count
|
|
100
121
|
*/
|
|
101
|
-
export declare function getLogChildren(logEntityId: string): Promise<
|
|
122
|
+
export declare function getLogChildren(logEntityId: string): Promise<LogChildrenResult>;
|
|
102
123
|
/**
|
|
103
124
|
* Build a snapshot of the workflow log tree
|
|
104
125
|
*
|
|
@@ -160,4 +181,5 @@ export declare function buildWorkflowTree(jobCollectionId: string): Promise<Work
|
|
|
160
181
|
* @returns Final state of the workflow log tree
|
|
161
182
|
*/
|
|
162
183
|
export declare function waitForWorkflowTree(jobCollectionId: string, options?: WaitForWorkflowTreeOptions): Promise<WorkflowLogTree>;
|
|
184
|
+
export {};
|
|
163
185
|
//# sourceMappingURL=logs.d.ts.map
|
package/dist/logs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../src/logs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAEV,cAAc,EACd,iBAAiB,EAEjB,eAAe,EACf,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAEpB;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAEzE;AAED;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CASxB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,gBAAgB,CACpC,eAAe,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CA0BhC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,cAAc,qCAEjD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,cAAc;;;;;;;;
|
|
1
|
+
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../src/logs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAEV,cAAc,EACd,iBAAiB,EAEjB,eAAe,EACf,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAEpB;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAEzE;AAED;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CASxB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,gBAAgB,CACpC,eAAe,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CA0BhC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,cAAc,qCAEjD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,cAAc;;;;;;;;qBAzBzC,CADG;uBAAmC,CAAC;;iBAGZ,CAAC;aAG9B,CAAC;;;;;;;;;;cAkBE,CAAC;aAAyB,CAAC;eAMxB,CAAC;;QAIX;;WAEG;QACH,CALA;;mBAAyD,CAAC;;iBAM5B,CAAC;mBAEuB,CAAC;kBAKtB,CAAC;;;;;;;EAjBjC;AAMD;;GAEG;AACH,UAAU,iBAAiB;IACzB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,+FAA+F;IAC/F,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAiBpF;AAyMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,iBAAiB,CACrC,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,eAAe,CAAC,CAoE1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAsB,mBAAmB,CACvC,eAAe,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE,0BAA0B,GACnC,OAAO,CAAC,eAAe,CAAC,CAyD1B"}
|
package/dist/logs.js
CHANGED
|
@@ -91,9 +91,6 @@ export function getLogMessages(log) {
|
|
|
91
91
|
export function getLogEntry(log) {
|
|
92
92
|
return log.properties.log_data.entry;
|
|
93
93
|
}
|
|
94
|
-
// =============================================================================
|
|
95
|
-
// Log Tree Traversal
|
|
96
|
-
// =============================================================================
|
|
97
94
|
/**
|
|
98
95
|
* Get children of a log by querying for outgoing sent_to relationships
|
|
99
96
|
*
|
|
@@ -103,36 +100,63 @@ export function getLogEntry(log) {
|
|
|
103
100
|
* - We use `sent_to` for traversal since it's an outgoing relationship (no indexing lag)
|
|
104
101
|
*
|
|
105
102
|
* @param logEntityId - Log entity ID to find children of
|
|
106
|
-
* @returns
|
|
103
|
+
* @returns Object with child IDs and total sent_to count
|
|
107
104
|
*/
|
|
108
105
|
export async function getLogChildren(logEntityId) {
|
|
109
106
|
try {
|
|
110
107
|
const entity = await apiRequest('GET', `/entities/${logEntityId}`);
|
|
111
|
-
// Look for
|
|
112
|
-
//
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
return
|
|
108
|
+
// Look for sent_to relationships pointing to children
|
|
109
|
+
// Note: GET /entities/{id} only returns outgoing relationships,
|
|
110
|
+
// so no direction check is needed.
|
|
111
|
+
const sentToRels = entity.relationships?.filter((r) => r.predicate === 'sent_to') ?? [];
|
|
112
|
+
const childIds = sentToRels.map((r) => r.peer);
|
|
113
|
+
return {
|
|
114
|
+
childIds,
|
|
115
|
+
sentToCount: sentToRels.length,
|
|
116
|
+
};
|
|
117
117
|
}
|
|
118
118
|
catch {
|
|
119
|
-
return [];
|
|
119
|
+
return { childIds: [], sentToCount: 0 };
|
|
120
120
|
}
|
|
121
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* Extract expected children count from log messages
|
|
124
|
+
*
|
|
125
|
+
* Scatter workers log numCopies in their success message metadata.
|
|
126
|
+
* This is the most reliable source for expected children count.
|
|
127
|
+
*
|
|
128
|
+
* @param log - Log entry to analyze
|
|
129
|
+
* @returns Number of expected children from messages, or null if not found
|
|
130
|
+
*/
|
|
131
|
+
function extractExpectedChildrenFromMessages(log) {
|
|
132
|
+
const messages = log.properties.log_data.messages ?? [];
|
|
133
|
+
for (const msg of messages) {
|
|
134
|
+
// Check for numCopies in message metadata (from scatter worker)
|
|
135
|
+
if (msg.metadata?.numCopies !== undefined) {
|
|
136
|
+
return msg.metadata.numCopies;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return null;
|
|
140
|
+
}
|
|
122
141
|
/**
|
|
123
142
|
* Calculate expected children count from handoffs
|
|
124
143
|
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
*
|
|
128
|
-
*
|
|
129
|
-
*
|
|
130
|
-
* - 'none': No children (no handoff)
|
|
144
|
+
* Priority:
|
|
145
|
+
* 1. numCopies from log messages (worker-provided, legacy support)
|
|
146
|
+
* 2. outputs array from handoff record (framework-provided, most reliable)
|
|
147
|
+
* 3. invocations array length (for local scatters without outputs field)
|
|
148
|
+
* 4. Handoff type analysis (pass = 1, etc.)
|
|
131
149
|
*
|
|
132
150
|
* @param log - Log entry to analyze
|
|
133
|
-
* @returns Number of expected children
|
|
151
|
+
* @returns Number of expected children, or -1 if unknown (keep polling)
|
|
134
152
|
*/
|
|
135
153
|
function getExpectedChildrenCount(log) {
|
|
154
|
+
// First, check log messages for numCopies (from scatter worker - legacy support)
|
|
155
|
+
const numCopies = extractExpectedChildrenFromMessages(log);
|
|
156
|
+
if (numCopies !== null) {
|
|
157
|
+
return numCopies;
|
|
158
|
+
}
|
|
159
|
+
// Fall back to handoff analysis
|
|
136
160
|
const entry = log.properties.log_data.entry;
|
|
137
161
|
const handoffs = entry.handoffs ?? [];
|
|
138
162
|
if (handoffs.length === 0) {
|
|
@@ -140,18 +164,39 @@ function getExpectedChildrenCount(log) {
|
|
|
140
164
|
}
|
|
141
165
|
let total = 0;
|
|
142
166
|
for (const handoff of handoffs) {
|
|
143
|
-
if (handoff.type === 'invoke') {
|
|
167
|
+
if (handoff.type === 'invoke' || handoff.type === 'pass') {
|
|
144
168
|
// Invoke/pass creates 1 child
|
|
145
169
|
total += 1;
|
|
146
170
|
}
|
|
147
171
|
else if (handoff.type === 'scatter') {
|
|
148
172
|
// Scatter creates N children
|
|
149
|
-
//
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
173
|
+
// Priority: outputs array (framework-provided) > invocations > unknown
|
|
174
|
+
if (handoff.outputs && handoff.outputs.length > 0) {
|
|
175
|
+
// Use outputs array - this is the most reliable source
|
|
176
|
+
// Subtract done_slots since those don't create children
|
|
177
|
+
const doneSlots = handoff.done_slots ?? 0;
|
|
178
|
+
total += handoff.outputs.length - doneSlots;
|
|
179
|
+
}
|
|
180
|
+
else if (handoff.invocations && handoff.invocations.length > 0) {
|
|
181
|
+
// Use invocations array for local scatters (legacy)
|
|
182
|
+
total += handoff.invocations.length;
|
|
183
|
+
}
|
|
184
|
+
else if (handoff.delegated) {
|
|
185
|
+
// Delegated scatter without outputs field (shouldn't happen with new code)
|
|
186
|
+
// Return -1 to indicate we need to keep polling
|
|
187
|
+
total = -1;
|
|
188
|
+
break;
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
// Fallback: expect at least 1 child
|
|
192
|
+
total += 1;
|
|
193
|
+
}
|
|
153
194
|
}
|
|
154
|
-
|
|
195
|
+
else if (handoff.type === 'gather') {
|
|
196
|
+
// Gather creates 1 child (the gather target)
|
|
197
|
+
total += 1;
|
|
198
|
+
}
|
|
199
|
+
// Other types = 0 children
|
|
155
200
|
}
|
|
156
201
|
return total;
|
|
157
202
|
}
|
|
@@ -190,9 +235,10 @@ async function buildTreeNode(logEntityId, logsMap, visited) {
|
|
|
190
235
|
return null;
|
|
191
236
|
}
|
|
192
237
|
const isTerminal = log.properties.status === 'done' || log.properties.status === 'error';
|
|
238
|
+
// Find children via sent_to relationships
|
|
239
|
+
const { childIds } = await getLogChildren(logEntityId);
|
|
240
|
+
// Get expected children count (from log messages or handoff analysis)
|
|
193
241
|
const expectedChildren = getExpectedChildrenCount(log);
|
|
194
|
-
// Find children via incoming relationships
|
|
195
|
-
const childIds = await getLogChildren(logEntityId);
|
|
196
242
|
// Recursively build child nodes
|
|
197
243
|
const children = [];
|
|
198
244
|
for (const childId of childIds) {
|
|
@@ -225,21 +271,31 @@ function collectLeaves(node) {
|
|
|
225
271
|
/**
|
|
226
272
|
* Check if all expected children have been discovered in the tree
|
|
227
273
|
*
|
|
228
|
-
*
|
|
229
|
-
*
|
|
230
|
-
*
|
|
274
|
+
* Returns false if:
|
|
275
|
+
* - We don't know how many children to expect (expectedChildren === -1)
|
|
276
|
+
* - We have fewer children than expected
|
|
277
|
+
* - Any child hasn't discovered all its children (recursive)
|
|
231
278
|
*/
|
|
232
279
|
function checkAllChildrenDiscovered(node) {
|
|
233
|
-
// If node is running, children may not exist yet
|
|
280
|
+
// If node is still running, children may not exist yet - assume OK for now
|
|
234
281
|
if (!node.isTerminal) {
|
|
235
|
-
return true;
|
|
282
|
+
return true;
|
|
283
|
+
}
|
|
284
|
+
// If we don't know expected children count, keep polling
|
|
285
|
+
if (node.expectedChildren < 0) {
|
|
286
|
+
return false;
|
|
236
287
|
}
|
|
237
|
-
// If we
|
|
238
|
-
if (node.
|
|
288
|
+
// If we have fewer children than expected, not complete
|
|
289
|
+
if (node.children.length < node.expectedChildren) {
|
|
239
290
|
return false;
|
|
240
291
|
}
|
|
241
292
|
// Recursively check all children
|
|
242
|
-
|
|
293
|
+
for (const child of node.children) {
|
|
294
|
+
if (!checkAllChildrenDiscovered(child)) {
|
|
295
|
+
return false;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
return true;
|
|
243
299
|
}
|
|
244
300
|
/**
|
|
245
301
|
* Build a snapshot of the workflow log tree
|
|
@@ -374,6 +430,10 @@ export async function waitForWorkflowTree(jobCollectionId, options) {
|
|
|
374
430
|
errors: [],
|
|
375
431
|
allChildrenDiscovered: false,
|
|
376
432
|
};
|
|
433
|
+
// Track stability: require the same log count for 2 consecutive polls
|
|
434
|
+
// before declaring complete. This handles async sent_to relationship updates.
|
|
435
|
+
let stableCount = 0;
|
|
436
|
+
let lastLogCount = 0;
|
|
377
437
|
while (Date.now() - startTime < timeout) {
|
|
378
438
|
try {
|
|
379
439
|
const tree = await buildWorkflowTree(jobCollectionId);
|
|
@@ -383,11 +443,27 @@ export async function waitForWorkflowTree(jobCollectionId, options) {
|
|
|
383
443
|
options.onPoll(tree, Date.now() - startTime);
|
|
384
444
|
}
|
|
385
445
|
if (tree.isComplete) {
|
|
386
|
-
|
|
446
|
+
// Check if the tree is stable (same log count as last poll)
|
|
447
|
+
if (tree.logs.size === lastLogCount) {
|
|
448
|
+
stableCount++;
|
|
449
|
+
// Require 2 stable polls before returning (handles async relationship updates)
|
|
450
|
+
if (stableCount >= 2) {
|
|
451
|
+
return tree;
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
else {
|
|
455
|
+
// Log count changed, reset stability counter
|
|
456
|
+
stableCount = 0;
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
else {
|
|
460
|
+
stableCount = 0;
|
|
387
461
|
}
|
|
462
|
+
lastLogCount = tree.logs.size;
|
|
388
463
|
}
|
|
389
464
|
catch {
|
|
390
465
|
// Ignore errors during polling, just retry
|
|
466
|
+
stableCount = 0;
|
|
391
467
|
}
|
|
392
468
|
await sleep(pollInterval);
|
|
393
469
|
}
|
package/dist/logs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../src/logs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAUhD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAa;IAC9C,OAAO,UAAU,CAAiB,KAAK,EAAE,aAAa,KAAK,EAAE,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,YAAoB;IAEpB,MAAM,UAAU,GAAG,MAAM,UAAU,CAAS,KAAK,EAAE,aAAa,YAAY,EAAE,CAAC,CAAC;IAEhF,kCAAkC;IAClC,MAAM,WAAW,GAAG,UAAU,CAAC,aAAa,EAAE,IAAI,CAChD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,WAAW,CACnC,CAAC;IAEF,OAAO,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,eAAuB,EACvB,OAA2B;IAE3B,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC;IAC1C,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,IAAI,IAAI,CAAC;IACnD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,oDAAoD;YACpD,MAAM,UAAU,GAAG,MAAM,yBAAyB,CAAC,eAAe,CAAC,CAAC;YAEpE,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;gBAC3C,0CAA0C;gBAC1C,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;oBAC1E,OAAO,GAAG,CAAC;gBACb,CAAC;gBACD,iDAAiD;YACnD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,2CAA2C;QAC7C,CAAC;QAED,MAAM,KAAK,CAAC,YAAY,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,GAAmB;IAChD,OAAO,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,GAAmB;IAC7C,OAAO,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;AACvC,CAAC;
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../src/logs.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -24,7 +24,6 @@ export interface Entity {
|
|
|
24
24
|
predicate: string;
|
|
25
25
|
peer: string;
|
|
26
26
|
peer_type?: string;
|
|
27
|
-
direction?: 'incoming' | 'outgoing';
|
|
28
27
|
}>;
|
|
29
28
|
}
|
|
30
29
|
/**
|
|
@@ -106,9 +105,22 @@ export interface KladosLogEntry {
|
|
|
106
105
|
};
|
|
107
106
|
handoffs?: Array<{
|
|
108
107
|
target: string;
|
|
109
|
-
type: 'invoke' | 'scatter' | 'complete' | 'error' | 'none';
|
|
108
|
+
type: 'invoke' | 'pass' | 'scatter' | 'gather' | 'complete' | 'error' | 'none';
|
|
110
109
|
job_id?: string;
|
|
111
110
|
error?: string;
|
|
111
|
+
/** For scatter: output entity IDs (framework-provided, most reliable) */
|
|
112
|
+
outputs?: string[];
|
|
113
|
+
/** For scatter: the actual invocations made */
|
|
114
|
+
invocations?: Array<{
|
|
115
|
+
target: string;
|
|
116
|
+
request?: Record<string, unknown>;
|
|
117
|
+
}>;
|
|
118
|
+
/** True if scatter was delegated to scatter-utility */
|
|
119
|
+
delegated?: boolean;
|
|
120
|
+
/** Dispatch ID for delegated scatters */
|
|
121
|
+
dispatch_id?: string;
|
|
122
|
+
/** Number of outputs that went to "done" and were not invoked */
|
|
123
|
+
done_slots?: number;
|
|
112
124
|
}>;
|
|
113
125
|
error?: {
|
|
114
126
|
code: string;
|
|
@@ -130,11 +142,30 @@ export interface CreateEntityOptions {
|
|
|
130
142
|
}
|
|
131
143
|
/**
|
|
132
144
|
* Options for creating a collection
|
|
145
|
+
*
|
|
146
|
+
* By default, collections include standard roles (owner, editor, viewer, public).
|
|
147
|
+
* The public role always includes *:view for platform-wide readability.
|
|
148
|
+
*
|
|
149
|
+
* @example
|
|
150
|
+
* ```typescript
|
|
151
|
+
* // Minimal - gets all default roles
|
|
152
|
+
* createCollection({ label: 'My Collection' });
|
|
153
|
+
*
|
|
154
|
+
* // Agent-accessible collection
|
|
155
|
+
* createCollection({
|
|
156
|
+
* label: 'Agent Collection',
|
|
157
|
+
* roles: { public: ['*:view', '*:invoke'] }
|
|
158
|
+
* });
|
|
159
|
+
* ```
|
|
133
160
|
*/
|
|
134
161
|
export interface CreateCollectionOptions {
|
|
135
162
|
label: string;
|
|
136
163
|
description?: string;
|
|
137
164
|
allowedTypes?: string[];
|
|
165
|
+
/** Role definitions mapping role names to action arrays */
|
|
166
|
+
roles?: Record<string, string[]>;
|
|
167
|
+
/** Whether to merge with default roles (default: true) */
|
|
168
|
+
useRolesDefault?: boolean;
|
|
138
169
|
}
|
|
139
170
|
/**
|
|
140
171
|
* Options for invoking a klados
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAMD;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,aAAa,CAAC,EAAE,KAAK,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|