@terminals-tech/sdk 1.0.0-rc.2 → 2.0.0-rc.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/README.md +62 -20
- package/dist/{WebContainerManager-SHXC5VKI.js → WebContainerManager-NUGGUIWB.js} +2 -2
- package/dist/catalog-XA5VYWXG.js +16 -0
- package/dist/{chunk-PWAHFID5.js → chunk-D4MOOUDY.js} +3 -3
- package/dist/{chunk-FOXUEYWK.js → chunk-GOQHOLBG.js} +4 -3
- package/dist/{chunk-PUZ2S62E.js → chunk-ICFYWOI5.js} +61 -36
- package/dist/chunk-PKINKOW2.js +335 -0
- package/dist/chunk-PWEICJ47.js +30 -0
- package/dist/{chunk-BKB3MD5Y.js → chunk-Q4W3IUTD.js} +73 -12
- package/dist/{chunk-BCOQMFKT.js → chunk-TO7ETE5K.js} +2 -2
- package/dist/{chunk-Q2VI6ICE.js → chunk-UB5OINTA.js} +1 -1
- package/dist/{chunk-Q4B7YS7T.js → chunk-WJCIX7RO.js} +9 -69
- package/dist/{chunk-3CEM77QZ.js → chunk-WT6L6DK3.js} +30 -2
- package/dist/{chunk-UKVUPKZP.js → chunk-Y5WLSLLW.js} +1 -1
- package/dist/{container-lite-KQX3NMPY.js → container-lite-Q3O3EP6R.js} +9 -9
- package/dist/core.machine.orchestrator-NW73YDTL.js +24 -0
- package/dist/{demo-VXMGMJNK.js → demo-WARANXBT.js} +11 -11
- package/dist/{hvm-DRQK2MUT.js → hvm-A7DGZ3Q5.js} +1 -1
- package/dist/index.cjs +65114 -12973
- package/dist/index.d.cts +643 -146
- package/dist/index.d.ts +643 -146
- package/dist/index.js +2460 -454
- package/dist/{neuro-state-XHRGIRVO.js → neuro-state-KINIFV2D.js} +6 -6
- package/dist/{nodes-DXKYDTVO.js → nodes-TWQZUZRM.js} +153 -13
- package/dist/pglite-adapter-43IOUBMV.js +50 -0
- package/dist/{registry-BL3TDQDB.js → registry-UARRB6CF.js} +9 -9
- package/dist/resolver-ALOJSOK5.js +24 -0
- package/dist/{scheduler-H6Q53IMI.js → scheduler-SAQJLKXJ.js} +52 -45
- package/dist/sematon-2EUEZESN.js +19 -0
- package/dist/{server-7DM74VFW.js → server-JXM4Y2T6.js} +1 -1
- package/dist/{skills-KLTTT2RM.js → skills-XOFGMUP4.js} +2 -2
- package/dist/{stack-CHDAFU2S.js → stack-4QQCK7MG.js} +17 -15
- package/dist/{supabaseService-6AYP2VY3.js → supabaseService-O4ZFFLZP.js} +2 -2
- package/dist/{webcontainer-3LDJVIIL.js → webcontainer-PMWNRO4I.js} +2 -2
- package/package.json +10 -4
- package/dist/{chunk-SHPGIVDH.js → chunk-P4D4RNAV.js} +4 -4
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
2
|
onOrchestratorEvent
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-UB5OINTA.js";
|
|
4
|
+
import "./chunk-D4MOOUDY.js";
|
|
5
5
|
import "./chunk-Y2EULKA2.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-WGBCRNMB.js";
|
|
7
|
+
import "./chunk-TO7ETE5K.js";
|
|
7
8
|
import {
|
|
8
9
|
getSignalBus
|
|
9
10
|
} from "./chunk-2WTYE4SW.js";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-EXI3LJVJ.js";
|
|
11
|
+
import "./chunk-GOQHOLBG.js";
|
|
12
12
|
import "./chunk-QJFKEQHF.js";
|
|
13
|
+
import "./chunk-EXI3LJVJ.js";
|
|
13
14
|
import "./chunk-ZVO47SQV.js";
|
|
14
|
-
import "./chunk-WGBCRNMB.js";
|
|
15
15
|
import "./chunk-3LFMIVJM.js";
|
|
16
16
|
import "./chunk-AFDUOYHD.js";
|
|
17
17
|
import "./chunk-NTMBOESX.js";
|
|
@@ -15,30 +15,170 @@ import {
|
|
|
15
15
|
executeResonanceMetrics,
|
|
16
16
|
executeSystemSchedule,
|
|
17
17
|
executeSystemSignalEmit
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import "./chunk-
|
|
18
|
+
} from "./chunk-Q4W3IUTD.js";
|
|
19
|
+
import "./chunk-D4MOOUDY.js";
|
|
20
|
+
import "./chunk-H3POJCFA.js";
|
|
21
|
+
import "./chunk-KHR7ZYCX.js";
|
|
20
22
|
import "./chunk-Y2EULKA2.js";
|
|
23
|
+
import "./chunk-WGBCRNMB.js";
|
|
21
24
|
import "./chunk-WU4OTGJE.js";
|
|
22
|
-
import
|
|
23
|
-
registerNode
|
|
24
|
-
} from "./chunk-3CEM77QZ.js";
|
|
25
|
-
import "./chunk-BYXBJQAS.js";
|
|
26
|
-
import "./chunk-BCOQMFKT.js";
|
|
25
|
+
import "./chunk-TO7ETE5K.js";
|
|
27
26
|
import "./chunk-2WTYE4SW.js";
|
|
28
|
-
import "./chunk-
|
|
29
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-BYXBJQAS.js";
|
|
28
|
+
import "./chunk-GOQHOLBG.js";
|
|
30
29
|
import "./chunk-QJFKEQHF.js";
|
|
30
|
+
import "./chunk-EXI3LJVJ.js";
|
|
31
31
|
import "./chunk-ZVO47SQV.js";
|
|
32
|
+
import {
|
|
33
|
+
registerNode
|
|
34
|
+
} from "./chunk-WT6L6DK3.js";
|
|
32
35
|
import "./chunk-XPJ63Y6T.js";
|
|
33
|
-
import "./chunk-WGBCRNMB.js";
|
|
34
36
|
import "./chunk-3LFMIVJM.js";
|
|
35
37
|
import "./chunk-AFDUOYHD.js";
|
|
36
38
|
import "./chunk-NTMBOESX.js";
|
|
37
39
|
import "./chunk-2ESYSVXG.js";
|
|
38
40
|
|
|
41
|
+
// ../../lib/terminals-tech/machines/core/nodes/system.cron.ts
|
|
42
|
+
var SYSTEM_CRON_NODE_ID = "system.cron.v1";
|
|
43
|
+
var manifest = {
|
|
44
|
+
id: SYSTEM_CRON_NODE_ID,
|
|
45
|
+
version: "0.1.0",
|
|
46
|
+
kind: "task",
|
|
47
|
+
label: "Cron Trigger",
|
|
48
|
+
description: "Triggers a stack run on a cron schedule using a standard 5-field expression. Supports IANA timezone specification.",
|
|
49
|
+
runtimes: ["worker"],
|
|
50
|
+
entrypoints: { worker: { module: "local" } },
|
|
51
|
+
inputsSchema: {
|
|
52
|
+
type: "object",
|
|
53
|
+
properties: {
|
|
54
|
+
expression: {
|
|
55
|
+
type: "string",
|
|
56
|
+
description: '5-field cron expression (e.g. "0 9 * * 1-5" for weekdays at 09:00 UTC).'
|
|
57
|
+
},
|
|
58
|
+
timezone: {
|
|
59
|
+
type: "string",
|
|
60
|
+
description: "IANA timezone name (default: UTC)."
|
|
61
|
+
},
|
|
62
|
+
enabled: {
|
|
63
|
+
type: "boolean",
|
|
64
|
+
description: "Whether the cron trigger is active (default: true)."
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
required: ["expression"]
|
|
68
|
+
},
|
|
69
|
+
outputsSchema: {
|
|
70
|
+
type: "object",
|
|
71
|
+
properties: {
|
|
72
|
+
scheduled: { type: "boolean" },
|
|
73
|
+
expression: { type: "string" },
|
|
74
|
+
timezone: { type: "string" }
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
observability: {
|
|
78
|
+
emitLogs: true,
|
|
79
|
+
traceAttributes: ["expression", "timezone"]
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
registerNode(manifest);
|
|
83
|
+
|
|
84
|
+
// ../../lib/terminals-tech/machines/core/nodes/system.webhook.ts
|
|
85
|
+
var SYSTEM_WEBHOOK_NODE_ID = "system.webhook.v1";
|
|
86
|
+
var manifest2 = {
|
|
87
|
+
id: SYSTEM_WEBHOOK_NODE_ID,
|
|
88
|
+
version: "0.1.0",
|
|
89
|
+
kind: "webhook",
|
|
90
|
+
label: "Webhook Trigger",
|
|
91
|
+
description: "Triggers a stack run when an HTTP webhook event is received. Supports HMAC signature verification via vault-backed secret references.",
|
|
92
|
+
runtimes: ["edge"],
|
|
93
|
+
entrypoints: { edge: { endpoint: "system://webhook" } },
|
|
94
|
+
inputsSchema: {
|
|
95
|
+
type: "object",
|
|
96
|
+
properties: {
|
|
97
|
+
path: {
|
|
98
|
+
type: "string",
|
|
99
|
+
description: "Relative path segment for the webhook endpoint (default: stack ID)."
|
|
100
|
+
},
|
|
101
|
+
method: {
|
|
102
|
+
type: "string",
|
|
103
|
+
enum: ["GET", "POST", "PUT", "PATCH"],
|
|
104
|
+
description: "Accepted HTTP method (default: POST)."
|
|
105
|
+
},
|
|
106
|
+
secretRef: {
|
|
107
|
+
type: "object",
|
|
108
|
+
description: "Vault-backed secret reference for HMAC signature verification.",
|
|
109
|
+
properties: {
|
|
110
|
+
name: { type: "string" },
|
|
111
|
+
scope: { type: "string", enum: ["node", "stack"] },
|
|
112
|
+
env: { type: "string" },
|
|
113
|
+
required: { type: "boolean" }
|
|
114
|
+
},
|
|
115
|
+
required: ["name", "scope"]
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
outputsSchema: {
|
|
120
|
+
type: "object",
|
|
121
|
+
properties: {
|
|
122
|
+
triggered: { type: "boolean" },
|
|
123
|
+
eventId: { type: "string", description: "Unique ID assigned to this webhook event." },
|
|
124
|
+
method: { type: "string" },
|
|
125
|
+
path: { type: "string" },
|
|
126
|
+
payload: {
|
|
127
|
+
type: "object",
|
|
128
|
+
description: "Parsed request body forwarded to the next node."
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
required: ["triggered"]
|
|
132
|
+
},
|
|
133
|
+
capabilities: ["network"],
|
|
134
|
+
observability: {
|
|
135
|
+
emitLogs: true,
|
|
136
|
+
traceAttributes: ["eventId", "method", "path"]
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
registerNode(manifest2);
|
|
140
|
+
|
|
141
|
+
// ../../lib/terminals-tech/machines/core/nodes/resonance.swarm.bridge.ts
|
|
142
|
+
var RESONANCE_SWARM_BRIDGE_NODE_ID = "resonance.swarm.bridge.v1";
|
|
143
|
+
registerNode({
|
|
144
|
+
id: RESONANCE_SWARM_BRIDGE_NODE_ID,
|
|
145
|
+
version: "0.1.0",
|
|
146
|
+
kind: "transform",
|
|
147
|
+
label: "Resonance Swarm Bridge",
|
|
148
|
+
description: "Maps System Resonance metrics to Swarm Phase Lock configuration, enabling physical synchronization of agents.",
|
|
149
|
+
runtimes: ["worker"],
|
|
150
|
+
entrypoints: { worker: { module: "local" } },
|
|
151
|
+
metadata: {
|
|
152
|
+
tags: ["resonance", "swarm", "physics", "bridge"]
|
|
153
|
+
},
|
|
154
|
+
inputsSchema: {
|
|
155
|
+
type: "object",
|
|
156
|
+
properties: {
|
|
157
|
+
resonance: {
|
|
158
|
+
type: "object",
|
|
159
|
+
description: "ResonanceMetrics object"
|
|
160
|
+
},
|
|
161
|
+
swarmId: {
|
|
162
|
+
type: "string",
|
|
163
|
+
description: "Target Swarm ID"
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
required: ["resonance", "swarmId"]
|
|
167
|
+
},
|
|
168
|
+
outputsSchema: {
|
|
169
|
+
type: "object",
|
|
170
|
+
properties: {
|
|
171
|
+
coupling: { type: "number" },
|
|
172
|
+
jitter: { type: "number" },
|
|
173
|
+
success: { type: "boolean" }
|
|
174
|
+
},
|
|
175
|
+
required: ["success", "coupling"]
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
|
|
39
179
|
// ../../lib/terminals-tech/machines/core/nodes/integration.generic.ts
|
|
40
180
|
function registerIntegrationNode(opts) {
|
|
41
|
-
const
|
|
181
|
+
const manifest3 = {
|
|
42
182
|
id: opts.id,
|
|
43
183
|
version: "0.1.0",
|
|
44
184
|
kind: "custom",
|
|
@@ -85,8 +225,8 @@ function registerIntegrationNode(opts) {
|
|
|
85
225
|
},
|
|
86
226
|
capabilities: ["integration"]
|
|
87
227
|
};
|
|
88
|
-
registerNode(
|
|
89
|
-
return
|
|
228
|
+
registerNode(manifest3);
|
|
229
|
+
return manifest3;
|
|
90
230
|
}
|
|
91
231
|
|
|
92
232
|
// ../../lib/terminals-tech/machines/core/nodes/integration.nodes.ts
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import "./chunk-2ESYSVXG.js";
|
|
2
|
+
|
|
3
|
+
// ../../lib/brain/connectors/pglite-adapter.ts
|
|
4
|
+
function createDBClientFromPGLite(db) {
|
|
5
|
+
return {
|
|
6
|
+
async executeDDL(sql, _params) {
|
|
7
|
+
await db.exec(sql);
|
|
8
|
+
},
|
|
9
|
+
async executeQuery(sql, params) {
|
|
10
|
+
const result = await db.query(sql, params);
|
|
11
|
+
return { rows: result.rows };
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
async function getConnectorChunks(connectorId) {
|
|
16
|
+
try {
|
|
17
|
+
const pglitePath = "@/lib/pglite/client";
|
|
18
|
+
const mod = await import(
|
|
19
|
+
/* webpackIgnore: true */
|
|
20
|
+
pglitePath
|
|
21
|
+
);
|
|
22
|
+
const db = mod.getDB?.();
|
|
23
|
+
if (!db) return [];
|
|
24
|
+
const result = await db.query(
|
|
25
|
+
`SELECT id, connector_id, content, metadata
|
|
26
|
+
FROM connector_chunks
|
|
27
|
+
WHERE connector_id = $1
|
|
28
|
+
ORDER BY id`,
|
|
29
|
+
[connectorId]
|
|
30
|
+
);
|
|
31
|
+
return (result.rows || []).map((row) => ({
|
|
32
|
+
id: row.id,
|
|
33
|
+
connectorId: row.connector_id,
|
|
34
|
+
content: row.content,
|
|
35
|
+
metadata: {
|
|
36
|
+
source: String(row.metadata?.source ?? ""),
|
|
37
|
+
title: String(row.metadata?.title ?? ""),
|
|
38
|
+
mimeType: String(row.metadata?.mimeType ?? "application/octet-stream"),
|
|
39
|
+
extractedAt: Number(row.metadata?.extractedAt ?? Date.now()),
|
|
40
|
+
...row.metadata
|
|
41
|
+
}
|
|
42
|
+
}));
|
|
43
|
+
} catch {
|
|
44
|
+
return [];
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
export {
|
|
48
|
+
createDBClientFromPGLite,
|
|
49
|
+
getConnectorChunks
|
|
50
|
+
};
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runners
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-WJCIX7RO.js";
|
|
4
|
+
import "./chunk-Q4W3IUTD.js";
|
|
5
|
+
import "./chunk-D4MOOUDY.js";
|
|
5
6
|
import "./chunk-H3POJCFA.js";
|
|
6
7
|
import "./chunk-KHR7ZYCX.js";
|
|
7
|
-
import "./chunk-PWAHFID5.js";
|
|
8
8
|
import "./chunk-Y2EULKA2.js";
|
|
9
|
+
import "./chunk-WGBCRNMB.js";
|
|
9
10
|
import "./chunk-WU4OTGJE.js";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-BYXBJQAS.js";
|
|
12
|
-
import "./chunk-BCOQMFKT.js";
|
|
11
|
+
import "./chunk-TO7ETE5K.js";
|
|
13
12
|
import "./chunk-2WTYE4SW.js";
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-BYXBJQAS.js";
|
|
14
|
+
import "./chunk-GOQHOLBG.js";
|
|
16
15
|
import "./chunk-QJFKEQHF.js";
|
|
16
|
+
import "./chunk-EXI3LJVJ.js";
|
|
17
17
|
import "./chunk-ZVO47SQV.js";
|
|
18
|
+
import "./chunk-WT6L6DK3.js";
|
|
18
19
|
import "./chunk-XPJ63Y6T.js";
|
|
19
|
-
import "./chunk-WGBCRNMB.js";
|
|
20
20
|
import "./chunk-3LFMIVJM.js";
|
|
21
21
|
import "./chunk-AFDUOYHD.js";
|
|
22
22
|
import "./chunk-NTMBOESX.js";
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import "./chunk-2ESYSVXG.js";
|
|
2
|
+
|
|
3
|
+
// ../../lib/brain/connectors/resolver.ts
|
|
4
|
+
async function resolveConnectorData(ref) {
|
|
5
|
+
try {
|
|
6
|
+
const { getConnectorChunks } = await import("./pglite-adapter-43IOUBMV.js");
|
|
7
|
+
const chunks = await getConnectorChunks(ref.connectorId);
|
|
8
|
+
if (!ref.dataChunkFilter || Object.keys(ref.dataChunkFilter).length === 0) {
|
|
9
|
+
return chunks;
|
|
10
|
+
}
|
|
11
|
+
return chunks.filter((chunk) => {
|
|
12
|
+
for (const [key, value] of Object.entries(ref.dataChunkFilter)) {
|
|
13
|
+
if (chunk.metadata[key] !== value) return false;
|
|
14
|
+
}
|
|
15
|
+
return true;
|
|
16
|
+
});
|
|
17
|
+
} catch (err) {
|
|
18
|
+
console.warn(`[connector-resolver] Failed to resolve connector ${ref.connectorId}:`, err);
|
|
19
|
+
return [];
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export {
|
|
23
|
+
resolveConnectorData
|
|
24
|
+
};
|
|
@@ -1,29 +1,32 @@
|
|
|
1
1
|
import {
|
|
2
|
-
OrchestratorV0,
|
|
3
2
|
loadStack
|
|
4
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-PWEICJ47.js";
|
|
4
|
+
import {
|
|
5
|
+
OrchestratorV0,
|
|
6
|
+
buildScheduleTriggerContext
|
|
7
|
+
} from "./chunk-ICFYWOI5.js";
|
|
8
|
+
import "./chunk-UB5OINTA.js";
|
|
9
|
+
import "./chunk-D4MOOUDY.js";
|
|
5
10
|
import "./chunk-GJWAJAX3.js";
|
|
6
11
|
import "./chunk-VZA2NUH3.js";
|
|
7
12
|
import "./chunk-QWXPVB2L.js";
|
|
13
|
+
import "./chunk-Y2EULKA2.js";
|
|
14
|
+
import "./chunk-WGBCRNMB.js";
|
|
8
15
|
import {
|
|
9
16
|
createClient,
|
|
10
17
|
init_dist
|
|
11
18
|
} from "./chunk-TSQ3BGLA.js";
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-PWAHFID5.js";
|
|
14
|
-
import "./chunk-Y2EULKA2.js";
|
|
15
|
-
import {
|
|
16
|
-
resolveNode
|
|
17
|
-
} from "./chunk-3CEM77QZ.js";
|
|
18
|
-
import "./chunk-BYXBJQAS.js";
|
|
19
|
-
import "./chunk-BCOQMFKT.js";
|
|
19
|
+
import "./chunk-TO7ETE5K.js";
|
|
20
20
|
import "./chunk-2WTYE4SW.js";
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-BYXBJQAS.js";
|
|
22
|
+
import "./chunk-GOQHOLBG.js";
|
|
23
23
|
import "./chunk-QJFKEQHF.js";
|
|
24
|
+
import "./chunk-EXI3LJVJ.js";
|
|
24
25
|
import "./chunk-ZVO47SQV.js";
|
|
26
|
+
import {
|
|
27
|
+
resolveNode
|
|
28
|
+
} from "./chunk-WT6L6DK3.js";
|
|
25
29
|
import "./chunk-XPJ63Y6T.js";
|
|
26
|
-
import "./chunk-WGBCRNMB.js";
|
|
27
30
|
import "./chunk-3LFMIVJM.js";
|
|
28
31
|
import "./chunk-AFDUOYHD.js";
|
|
29
32
|
import "./chunk-NTMBOESX.js";
|
|
@@ -31,6 +34,12 @@ import "./chunk-2ESYSVXG.js";
|
|
|
31
34
|
|
|
32
35
|
// ../../lib/terminals-tech/machines/core/scheduler.ts
|
|
33
36
|
init_dist();
|
|
37
|
+
function getSupabase() {
|
|
38
|
+
const url = process.env.NEXT_PUBLIC_SUPABASE_URL;
|
|
39
|
+
const key = process.env.SUPABASE_SERVICE_ROLE_KEY;
|
|
40
|
+
if (!url || !key) return null;
|
|
41
|
+
return createClient(url, key, { auth: { persistSession: false } });
|
|
42
|
+
}
|
|
34
43
|
var globalWithJobs = globalThis;
|
|
35
44
|
var jobs = globalWithJobs.__terminals_jobs__ || /* @__PURE__ */ new Map();
|
|
36
45
|
globalWithJobs.__terminals_jobs__ = jobs;
|
|
@@ -39,26 +48,31 @@ function getSchedule(stackId) {
|
|
|
39
48
|
if (!j) return null;
|
|
40
49
|
return { everySeconds: Math.max(1, Math.floor(j.intervalMs / 1e3)) };
|
|
41
50
|
}
|
|
42
|
-
async function scheduleStack(stackId, everySeconds) {
|
|
51
|
+
async function scheduleStack(stackId, everySeconds, triggerConfig) {
|
|
43
52
|
cancelSchedule(stackId);
|
|
44
53
|
const intervalMs = Math.max(1e3, everySeconds * 1e3);
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
const supabase = createClient(url, key, {
|
|
49
|
-
auth: { persistSession: false }
|
|
50
|
-
});
|
|
51
|
-
await supabase.from("stack_schedules").upsert(
|
|
54
|
+
const supabase = getSupabase();
|
|
55
|
+
if (supabase) {
|
|
56
|
+
const { error } = await supabase.from("stack_schedules").upsert(
|
|
52
57
|
{
|
|
53
58
|
stack_id: stackId,
|
|
54
59
|
every_seconds: everySeconds,
|
|
55
60
|
active: true,
|
|
56
|
-
next_run_at: new Date(Date.now() + intervalMs).toISOString()
|
|
61
|
+
next_run_at: new Date(Date.now() + intervalMs).toISOString(),
|
|
62
|
+
...triggerConfig ? { trigger_config: triggerConfig, trigger_kind: triggerConfig.kind } : {}
|
|
57
63
|
},
|
|
58
64
|
{ onConflict: "stack_id" }
|
|
59
65
|
);
|
|
66
|
+
if (error) {
|
|
67
|
+
console.warn("[scheduler] Failed to persist schedule in Supabase", error);
|
|
68
|
+
}
|
|
60
69
|
}
|
|
61
|
-
const job = {
|
|
70
|
+
const job = {
|
|
71
|
+
intervalMs,
|
|
72
|
+
timer: null,
|
|
73
|
+
running: false,
|
|
74
|
+
triggerConfig
|
|
75
|
+
};
|
|
62
76
|
jobs.set(stackId, job);
|
|
63
77
|
const timer = setInterval(async () => {
|
|
64
78
|
if (job.running) {
|
|
@@ -72,23 +86,21 @@ async function scheduleStack(stackId, everySeconds) {
|
|
|
72
86
|
const stack = await loadStack(stackId);
|
|
73
87
|
if (!stack) return;
|
|
74
88
|
const orchestrator = new OrchestratorV0(resolveNode);
|
|
89
|
+
const trigCtx = job.triggerConfig ? buildScheduleTriggerContext(job.triggerConfig) : { triggerKind: "interval", triggeredAt: (/* @__PURE__ */ new Date()).toISOString() };
|
|
75
90
|
try {
|
|
76
|
-
await orchestrator.run(stack);
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
await supabase.from("stack_schedules").update({
|
|
84
|
-
next_run_at: new Date(Date.now() + intervalMs).toISOString()
|
|
85
|
-
}).eq("stack_id", stackId);
|
|
91
|
+
await orchestrator.run(stack, { triggerContext: trigCtx });
|
|
92
|
+
const sb = getSupabase();
|
|
93
|
+
if (sb) {
|
|
94
|
+
const { error: updateError } = await sb.from("stack_schedules").update({ next_run_at: new Date(Date.now() + intervalMs).toISOString() }).eq("stack_id", stackId);
|
|
95
|
+
if (updateError) {
|
|
96
|
+
console.warn("[scheduler] Failed to bump next_run_at", updateError);
|
|
97
|
+
}
|
|
86
98
|
}
|
|
87
99
|
} finally {
|
|
88
100
|
orchestrator.dispose();
|
|
89
101
|
}
|
|
90
102
|
} catch (e) {
|
|
91
|
-
console.warn(
|
|
103
|
+
console.warn(`[scheduler] Stack ${stackId} run failed`, e);
|
|
92
104
|
} finally {
|
|
93
105
|
job.running = false;
|
|
94
106
|
}
|
|
@@ -101,18 +113,13 @@ function cancelSchedule(stackId) {
|
|
|
101
113
|
clearInterval(j.timer);
|
|
102
114
|
jobs.delete(stackId);
|
|
103
115
|
}
|
|
104
|
-
const
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
});
|
|
110
|
-
void supabase.from("stack_schedules").update({ active: false }).eq("stack_id", stackId).then(
|
|
111
|
-
() => {
|
|
112
|
-
},
|
|
113
|
-
() => {
|
|
116
|
+
const sb = getSupabase();
|
|
117
|
+
if (sb) {
|
|
118
|
+
sb.from("stack_schedules").update({ active: false }).eq("stack_id", stackId).then(({ error }) => {
|
|
119
|
+
if (error) {
|
|
120
|
+
console.warn("[scheduler] Failed to mark schedule inactive in Supabase", error);
|
|
114
121
|
}
|
|
115
|
-
);
|
|
122
|
+
});
|
|
116
123
|
}
|
|
117
124
|
}
|
|
118
125
|
export {
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createSematon,
|
|
3
|
+
foldSematon,
|
|
4
|
+
isRealizable,
|
|
5
|
+
sematonDensity,
|
|
6
|
+
sematonDistance,
|
|
7
|
+
sematonEntropy,
|
|
8
|
+
unfoldSematon
|
|
9
|
+
} from "./chunk-PKINKOW2.js";
|
|
10
|
+
import "./chunk-2ESYSVXG.js";
|
|
11
|
+
export {
|
|
12
|
+
createSematon,
|
|
13
|
+
foldSematon,
|
|
14
|
+
isRealizable,
|
|
15
|
+
sematonDensity,
|
|
16
|
+
sematonDistance,
|
|
17
|
+
sematonEntropy,
|
|
18
|
+
unfoldSematon
|
|
19
|
+
};
|
|
@@ -7,7 +7,7 @@ async function ensureServerRunnersRegistered() {
|
|
|
7
7
|
return;
|
|
8
8
|
}
|
|
9
9
|
if (!serverRunnersReady) {
|
|
10
|
-
serverRunnersReady = Promise.all([import("./stack-
|
|
10
|
+
serverRunnersReady = Promise.all([import("./stack-4QQCK7MG.js"), import("./container-lite-Q3O3EP6R.js")]).then(
|
|
11
11
|
() => void 0
|
|
12
12
|
);
|
|
13
13
|
}
|
|
@@ -1,33 +1,35 @@
|
|
|
1
1
|
import {
|
|
2
|
-
OrchestratorV0,
|
|
3
2
|
loadStack
|
|
4
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-PWEICJ47.js";
|
|
4
|
+
import {
|
|
5
|
+
OrchestratorV0
|
|
6
|
+
} from "./chunk-ICFYWOI5.js";
|
|
5
7
|
import {
|
|
6
8
|
runners
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-WJCIX7RO.js";
|
|
10
|
+
import "./chunk-Q4W3IUTD.js";
|
|
11
|
+
import "./chunk-UB5OINTA.js";
|
|
12
|
+
import "./chunk-D4MOOUDY.js";
|
|
9
13
|
import "./chunk-GJWAJAX3.js";
|
|
10
14
|
import "./chunk-VZA2NUH3.js";
|
|
11
15
|
import "./chunk-H3POJCFA.js";
|
|
12
16
|
import "./chunk-KHR7ZYCX.js";
|
|
13
17
|
import "./chunk-QWXPVB2L.js";
|
|
14
|
-
import "./chunk-TSQ3BGLA.js";
|
|
15
|
-
import "./chunk-Q2VI6ICE.js";
|
|
16
|
-
import "./chunk-PWAHFID5.js";
|
|
17
18
|
import "./chunk-Y2EULKA2.js";
|
|
19
|
+
import "./chunk-WGBCRNMB.js";
|
|
20
|
+
import "./chunk-TSQ3BGLA.js";
|
|
18
21
|
import "./chunk-WU4OTGJE.js";
|
|
19
|
-
import
|
|
20
|
-
resolveNode
|
|
21
|
-
} from "./chunk-3CEM77QZ.js";
|
|
22
|
-
import "./chunk-BYXBJQAS.js";
|
|
23
|
-
import "./chunk-BCOQMFKT.js";
|
|
22
|
+
import "./chunk-TO7ETE5K.js";
|
|
24
23
|
import "./chunk-2WTYE4SW.js";
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-BYXBJQAS.js";
|
|
25
|
+
import "./chunk-GOQHOLBG.js";
|
|
27
26
|
import "./chunk-QJFKEQHF.js";
|
|
27
|
+
import "./chunk-EXI3LJVJ.js";
|
|
28
28
|
import "./chunk-ZVO47SQV.js";
|
|
29
|
+
import {
|
|
30
|
+
resolveNode
|
|
31
|
+
} from "./chunk-WT6L6DK3.js";
|
|
29
32
|
import "./chunk-XPJ63Y6T.js";
|
|
30
|
-
import "./chunk-WGBCRNMB.js";
|
|
31
33
|
import "./chunk-3LFMIVJM.js";
|
|
32
34
|
import "./chunk-AFDUOYHD.js";
|
|
33
35
|
import "./chunk-NTMBOESX.js";
|
|
@@ -8,9 +8,9 @@ import {
|
|
|
8
8
|
import "./chunk-TSQ3BGLA.js";
|
|
9
9
|
import {
|
|
10
10
|
secureValidate
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-EXI3LJVJ.js";
|
|
11
|
+
} from "./chunk-GOQHOLBG.js";
|
|
13
12
|
import "./chunk-QJFKEQHF.js";
|
|
13
|
+
import "./chunk-EXI3LJVJ.js";
|
|
14
14
|
import "./chunk-2ESYSVXG.js";
|
|
15
15
|
|
|
16
16
|
// ../../lib/utils/network.ts
|
|
@@ -9,15 +9,15 @@ import "./chunk-UJDUQNE2.js";
|
|
|
9
9
|
import {
|
|
10
10
|
WebContainerManager,
|
|
11
11
|
WebContainerManager_default
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-P4D4RNAV.js";
|
|
13
13
|
import "./chunk-DKFJIILR.js";
|
|
14
14
|
import "./chunk-KHR7ZYCX.js";
|
|
15
|
+
import "./chunk-WGBCRNMB.js";
|
|
15
16
|
import "./chunk-QWZRZKLZ.js";
|
|
16
17
|
import "./chunk-OSSRZOGC.js";
|
|
17
18
|
import "./chunk-TSQ3BGLA.js";
|
|
18
19
|
import "./chunk-2WTYE4SW.js";
|
|
19
20
|
import "./chunk-QJFKEQHF.js";
|
|
20
|
-
import "./chunk-WGBCRNMB.js";
|
|
21
21
|
import "./chunk-3LFMIVJM.js";
|
|
22
22
|
import "./chunk-AFDUOYHD.js";
|
|
23
23
|
import "./chunk-NTMBOESX.js";
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@terminals-tech/sdk",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "2.0.0-rc.1",
|
|
4
|
+
"description": "Terminals OS SDK — observable, coherence-aware primitives for building intelligent software. Patent Pending.",
|
|
5
5
|
"license": "BUSL-1.1",
|
|
6
6
|
"author": "Intuition Labs LLC",
|
|
7
7
|
"notice": "Terminals OS architecture is Patent Pending. © 2026 Intuition Labs LLC.",
|
|
@@ -26,9 +26,9 @@
|
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
"files": [
|
|
29
|
-
"
|
|
29
|
+
"LICENSE",
|
|
30
30
|
"README.md",
|
|
31
|
-
"
|
|
31
|
+
"dist/"
|
|
32
32
|
],
|
|
33
33
|
"publishConfig": {
|
|
34
34
|
"access": "public"
|
|
@@ -41,6 +41,12 @@
|
|
|
41
41
|
"publish:check": "npm run clean && npm run build && node ../../scripts/verify-sdk-package.mjs",
|
|
42
42
|
"prepack": "npm run build"
|
|
43
43
|
},
|
|
44
|
+
"dependencies": {
|
|
45
|
+
"rxjs": "^7.8.0"
|
|
46
|
+
},
|
|
47
|
+
"optionalDependencies": {
|
|
48
|
+
"@electric-sql/pglite": ">=0.2.0"
|
|
49
|
+
},
|
|
44
50
|
"peerDependencies": {
|
|
45
51
|
"typescript": ">=5.0.0"
|
|
46
52
|
}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
mcp_client_service_browser_default
|
|
3
3
|
} from "./chunk-DKFJIILR.js";
|
|
4
|
+
import {
|
|
5
|
+
getPGLiteIndexedDbSize,
|
|
6
|
+
saveGenericState
|
|
7
|
+
} from "./chunk-WGBCRNMB.js";
|
|
4
8
|
import {
|
|
5
9
|
createSupabaseClientComponentClient,
|
|
6
10
|
getHasKnownSession
|
|
@@ -12,10 +16,6 @@ import {
|
|
|
12
16
|
import {
|
|
13
17
|
getSignalBus
|
|
14
18
|
} from "./chunk-2WTYE4SW.js";
|
|
15
|
-
import {
|
|
16
|
-
getPGLiteIndexedDbSize,
|
|
17
|
-
saveGenericState
|
|
18
|
-
} from "./chunk-WGBCRNMB.js";
|
|
19
19
|
import {
|
|
20
20
|
getConnectionPoolStats
|
|
21
21
|
} from "./chunk-AFDUOYHD.js";
|