@younndai/lyt-runner 0.9.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.
Files changed (64) hide show
  1. package/LICENSE +200 -0
  2. package/NOTICE +23 -0
  3. package/README.md +110 -0
  4. package/dist/expander/automator-to-agent.d.ts +4 -0
  5. package/dist/expander/automator-to-agent.d.ts.map +1 -0
  6. package/dist/expander/automator-to-agent.js +129 -0
  7. package/dist/expander/automator-to-agent.js.map +1 -0
  8. package/dist/expander/index.d.ts +17 -0
  9. package/dist/expander/index.d.ts.map +1 -0
  10. package/dist/expander/index.js +62 -0
  11. package/dist/expander/index.js.map +1 -0
  12. package/dist/expander/parse-record.d.ts +10 -0
  13. package/dist/expander/parse-record.d.ts.map +1 -0
  14. package/dist/expander/parse-record.js +162 -0
  15. package/dist/expander/parse-record.js.map +1 -0
  16. package/dist/expander/types.d.ts +39 -0
  17. package/dist/expander/types.d.ts.map +1 -0
  18. package/dist/expander/types.js +17 -0
  19. package/dist/expander/types.js.map +1 -0
  20. package/dist/hooks/frontmatter.d.ts +10 -0
  21. package/dist/hooks/frontmatter.d.ts.map +1 -0
  22. package/dist/hooks/frontmatter.js +90 -0
  23. package/dist/hooks/frontmatter.js.map +1 -0
  24. package/dist/hooks/stamp-on-write.d.ts +43 -0
  25. package/dist/hooks/stamp-on-write.d.ts.map +1 -0
  26. package/dist/hooks/stamp-on-write.js +289 -0
  27. package/dist/hooks/stamp-on-write.js.map +1 -0
  28. package/dist/index.d.ts +21 -0
  29. package/dist/index.d.ts.map +1 -0
  30. package/dist/index.js +96 -0
  31. package/dist/index.js.map +1 -0
  32. package/dist/ops/index.d.ts +24 -0
  33. package/dist/ops/index.d.ts.map +1 -0
  34. package/dist/ops/index.js +56 -0
  35. package/dist/ops/index.js.map +1 -0
  36. package/dist/ops/leases.d.ts +28 -0
  37. package/dist/ops/leases.d.ts.map +1 -0
  38. package/dist/ops/leases.js +93 -0
  39. package/dist/ops/leases.js.map +1 -0
  40. package/dist/ops/llm.d.ts +28 -0
  41. package/dist/ops/llm.d.ts.map +1 -0
  42. package/dist/ops/llm.js +132 -0
  43. package/dist/ops/llm.js.map +1 -0
  44. package/dist/ops/mesh.d.ts +11 -0
  45. package/dist/ops/mesh.d.ts.map +1 -0
  46. package/dist/ops/mesh.js +35 -0
  47. package/dist/ops/mesh.js.map +1 -0
  48. package/dist/ops/vault.d.ts +26 -0
  49. package/dist/ops/vault.d.ts.map +1 -0
  50. package/dist/ops/vault.js +153 -0
  51. package/dist/ops/vault.js.map +1 -0
  52. package/dist/protocol/five-step.d.ts +22 -0
  53. package/dist/protocol/five-step.d.ts.map +1 -0
  54. package/dist/protocol/five-step.js +312 -0
  55. package/dist/protocol/five-step.js.map +1 -0
  56. package/dist/protocol/run-context.d.ts +35 -0
  57. package/dist/protocol/run-context.d.ts.map +1 -0
  58. package/dist/protocol/run-context.js +56 -0
  59. package/dist/protocol/run-context.js.map +1 -0
  60. package/dist/runtime.d.ts +18 -0
  61. package/dist/runtime.d.ts.map +1 -0
  62. package/dist/runtime.js +28 -0
  63. package/dist/runtime.js.map +1 -0
  64. package/package.json +74 -0
@@ -0,0 +1,312 @@
1
+ /*
2
+ * Copyright 2026 MARLINK TRADING SRL (YounndAI)
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ // 5-step protocol orchestrator (block-B Commit 4).
17
+ //
18
+ // Per arc-thoughts §6.6:201-216 (LOCKED 2026-05-27) every automator run
19
+ // follows the same five-step shape regardless of archetype:
20
+ //
21
+ // 1. Acquire machine lease (libSQL row with TTL)
22
+ // 2. Sync own vault (git pull --ff-only)
23
+ // 3. Run automator body (the @AUTOMATOR @STEPs after yai.lyt expansion)
24
+ // 4. Commit + push vault changes (gated --no-push for tests + dry-runs)
25
+ // 5. Release lease (clean status) OR mark released_reason='error' on
26
+ // failure path
27
+ //
28
+ // This orchestrator implements the protocol in TypeScript rather than as a
29
+ // YON document because the protocol IS framework: every automator inherits
30
+ // it. Per arc §6.6 "5-step covers ~95% of automators"; 6-step (cross-vault
31
+ // writes) is v3. v1 transaction_mode is `none` (arc §6.8) — failed body
32
+ // step leaves the vault in whatever state the body got it to, with
33
+ // automator_runs.status='failed' carrying the error trail.
34
+ //
35
+ // Crash recovery: any error in steps 2-4 produces a `failed_*` status,
36
+ // surfaces an error summary, and best-effort releases the lease with
37
+ // reason='error'. Step 5 release failure is non-fatal — the auto-expiry
38
+ // sweep on the next acquireLease() call collects the orphan.
39
+ //
40
+ // Block-B Commit 5 wires this into the `automator_runs` + `provenance` +
41
+ // `audit_log` per-vault libSQL tables. Commit 4's orchestrator is the
42
+ // stable skeleton those writes hook into.
43
+ import { acquireLease, insertAutomatorRun, insertAutomatorRunEvent, newUuidv7Bytes, releaseLease, updateAutomatorRunStatus, } from "@younndai/lyt-vault";
44
+ import { createVaultOps } from "../ops/vault.js";
45
+ import { createRunContext, finalizeContext, finishStep, startStep, } from "./run-context.js";
46
+ export async function runFiveStep(runtime, opts) {
47
+ if (runtime.db === undefined && opts.dryRun !== true) {
48
+ throw new Error("runFiveStep: LytRuntime.db is undefined; either pass config.db to createLytRunner() or invoke with { dryRun: true }");
49
+ }
50
+ const startedAt = runtime.getNow();
51
+ const runId = opts.runIdOverride ?? newUuidv7Bytes();
52
+ const ctx = createRunContext({
53
+ runId,
54
+ automatorRid: opts.automatorRid,
55
+ vaultRid: opts.vaultRid,
56
+ vaultPath: opts.vaultPath,
57
+ machineId: runtime.machineId,
58
+ startedAt,
59
+ });
60
+ // Block-B Commit 5: INSERT automator_runs row at orchestrator entry so
61
+ // every event written downstream (incl. body-side @STAMP audit rows) has
62
+ // a parent row to FK-reference. Skipped when no vault-side DB has been
63
+ // supplied (unit-test path) or when dryRun is set (no-write contract).
64
+ const vaultDb = opts.vaultDb;
65
+ const persistRunLedger = vaultDb !== undefined && opts.dryRun !== true;
66
+ if (persistRunLedger) {
67
+ await insertAutomatorRun(vaultDb, {
68
+ id: runId,
69
+ automatorName: opts.automatorName ?? "automator:unknown",
70
+ vaultRid: opts.vaultRid,
71
+ startedAt,
72
+ status: "pending",
73
+ });
74
+ }
75
+ // Steps 1 + 5 use leases-repo directly. Step 2 + 4 reuse the registered
76
+ // vault ops so the protocol invokes the same code path as an
77
+ // automator-body @STEP that references `std:vault.sync@v1` /
78
+ // `std:vault.commit@v1`. Single source of truth for the git shell.
79
+ const vaultOps = createVaultOps({ ...runtime, vaultPath: opts.vaultPath });
80
+ const vaultSync = vaultOps["vault.sync"];
81
+ const vaultCommit = vaultOps["vault.commit"];
82
+ // Dummy ExecutionContext for the in-protocol direct invocation. Runtime
83
+ // ops only read .args; the other fields aren't touched. Cast through
84
+ // unknown to satisfy the structural contract without inventing a sandbox.
85
+ const dummyCtx = {
86
+ sandboxRoot: opts.vaultPath,
87
+ env: {},
88
+ blocks: {
89
+ get: () => undefined,
90
+ set: () => undefined,
91
+ has: () => false,
92
+ keys: () => [],
93
+ },
94
+ args: {},
95
+ inputs: new Map(),
96
+ signal: new AbortController().signal,
97
+ };
98
+ // ---- Step 1 — acquire lease ----------------------------------------
99
+ const stepAcquire = startStep(ctx, "acquire", runtime.getNow());
100
+ await recordStepStarted(persistRunLedger ? vaultDb : null, runId, stepAcquire, runtime.getNow());
101
+ if (opts.dryRun === true) {
102
+ // Skip — record the step as ok so the trace still shows 5 entries.
103
+ finishStep(stepAcquire, runtime.getNow(), true);
104
+ ctx.status = "lease_acquired";
105
+ }
106
+ else {
107
+ try {
108
+ const lease = await acquireLease(runtime.db, {
109
+ automatorRid: opts.automatorRid,
110
+ vaultRid: opts.vaultRid,
111
+ machineId: runtime.machineId,
112
+ ...(opts.ttlMs !== undefined ? { ttlMs: opts.ttlMs } : {}),
113
+ now: runtime.getNow(),
114
+ });
115
+ ctx.leaseId = lease.leaseId;
116
+ finishStep(stepAcquire, runtime.getNow(), true);
117
+ ctx.status = "lease_acquired";
118
+ }
119
+ catch (err) {
120
+ const msg = err instanceof Error ? err.message : String(err);
121
+ finishStep(stepAcquire, runtime.getNow(), false, msg);
122
+ await recordStepFinished(persistRunLedger ? vaultDb : null, runId, stepAcquire, runtime.getNow());
123
+ finalizeContext(ctx, runtime.getNow(), "failed_lease", msg);
124
+ await recordTerminalStatus(persistRunLedger ? vaultDb : null, ctx);
125
+ return { context: ctx, ok: false };
126
+ }
127
+ }
128
+ await recordStepFinished(persistRunLedger ? vaultDb : null, runId, stepAcquire, runtime.getNow());
129
+ // ---- Step 2 — vault sync -------------------------------------------
130
+ const stepSync = startStep(ctx, "sync", runtime.getNow());
131
+ await recordStepStarted(persistRunLedger ? vaultDb : null, runId, stepSync, runtime.getNow());
132
+ if (opts.dryRun === true) {
133
+ finishStep(stepSync, runtime.getNow(), true);
134
+ ctx.status = "synced";
135
+ }
136
+ else {
137
+ try {
138
+ await vaultSync(dummyCtx, { vault_path: opts.vaultPath });
139
+ finishStep(stepSync, runtime.getNow(), true);
140
+ ctx.status = "synced";
141
+ }
142
+ catch (err) {
143
+ const msg = err instanceof Error ? err.message : String(err);
144
+ finishStep(stepSync, runtime.getNow(), false, msg);
145
+ await recordStepFinished(persistRunLedger ? vaultDb : null, runId, stepSync, runtime.getNow());
146
+ await releaseOnError(runtime, ctx, "sync_failed");
147
+ finalizeContext(ctx, runtime.getNow(), "failed_sync", msg);
148
+ await recordTerminalStatus(persistRunLedger ? vaultDb : null, ctx);
149
+ return { context: ctx, ok: false };
150
+ }
151
+ }
152
+ await recordStepFinished(persistRunLedger ? vaultDb : null, runId, stepSync, runtime.getNow());
153
+ // ---- Step 3 — run body ---------------------------------------------
154
+ const stepBody = startStep(ctx, "body", runtime.getNow());
155
+ await recordStepStarted(persistRunLedger ? vaultDb : null, runId, stepBody, runtime.getNow());
156
+ ctx.status = "body_running";
157
+ try {
158
+ ctx.bodyResult = await opts.runBody(ctx);
159
+ finishStep(stepBody, runtime.getNow(), true);
160
+ ctx.status = "body_completed";
161
+ }
162
+ catch (err) {
163
+ const msg = err instanceof Error ? err.message : String(err);
164
+ finishStep(stepBody, runtime.getNow(), false, msg);
165
+ await recordStepFinished(persistRunLedger ? vaultDb : null, runId, stepBody, runtime.getNow());
166
+ await releaseOnError(runtime, ctx, "body_failed");
167
+ finalizeContext(ctx, runtime.getNow(), "failed_body", msg);
168
+ await recordTerminalStatus(persistRunLedger ? vaultDb : null, ctx);
169
+ return { context: ctx, ok: false };
170
+ }
171
+ await recordStepFinished(persistRunLedger ? vaultDb : null, runId, stepBody, runtime.getNow());
172
+ // ---- Step 4 — vault commit -----------------------------------------
173
+ const stepCommit = startStep(ctx, "commit", runtime.getNow());
174
+ await recordStepStarted(persistRunLedger ? vaultDb : null, runId, stepCommit, runtime.getNow());
175
+ if (opts.dryRun === true) {
176
+ finishStep(stepCommit, runtime.getNow(), true);
177
+ ctx.status = "committed";
178
+ }
179
+ else {
180
+ try {
181
+ const commitArgs = { vault_path: opts.vaultPath };
182
+ if (opts.commitMessage !== undefined)
183
+ commitArgs["message"] = opts.commitMessage;
184
+ if (opts.noPush === true)
185
+ commitArgs["no_push"] = true;
186
+ await vaultCommit(dummyCtx, commitArgs);
187
+ finishStep(stepCommit, runtime.getNow(), true);
188
+ ctx.status = "committed";
189
+ }
190
+ catch (err) {
191
+ const msg = err instanceof Error ? err.message : String(err);
192
+ finishStep(stepCommit, runtime.getNow(), false, msg);
193
+ await recordStepFinished(persistRunLedger ? vaultDb : null, runId, stepCommit, runtime.getNow());
194
+ await releaseOnError(runtime, ctx, "commit_failed");
195
+ finalizeContext(ctx, runtime.getNow(), "failed_commit", msg);
196
+ await recordTerminalStatus(persistRunLedger ? vaultDb : null, ctx);
197
+ return { context: ctx, ok: false };
198
+ }
199
+ }
200
+ await recordStepFinished(persistRunLedger ? vaultDb : null, runId, stepCommit, runtime.getNow());
201
+ // ---- Step 5 — release lease ----------------------------------------
202
+ const stepRelease = startStep(ctx, "release", runtime.getNow());
203
+ await recordStepStarted(persistRunLedger ? vaultDb : null, runId, stepRelease, runtime.getNow());
204
+ if (opts.dryRun === true || ctx.leaseId === null) {
205
+ finishStep(stepRelease, runtime.getNow(), true);
206
+ finalizeContext(ctx, runtime.getNow(), "completed");
207
+ await recordStepFinished(persistRunLedger ? vaultDb : null, runId, stepRelease, runtime.getNow());
208
+ await recordTerminalStatus(persistRunLedger ? vaultDb : null, ctx);
209
+ return { context: ctx, ok: true };
210
+ }
211
+ try {
212
+ await releaseLease(runtime.db, {
213
+ leaseId: ctx.leaseId,
214
+ reason: "completed",
215
+ now: runtime.getNow(),
216
+ });
217
+ finishStep(stepRelease, runtime.getNow(), true);
218
+ finalizeContext(ctx, runtime.getNow(), "completed");
219
+ await recordStepFinished(persistRunLedger ? vaultDb : null, runId, stepRelease, runtime.getNow());
220
+ await recordTerminalStatus(persistRunLedger ? vaultDb : null, ctx);
221
+ return { context: ctx, ok: true };
222
+ }
223
+ catch (err) {
224
+ // Release failure is non-fatal — the auto-expiry sweep on the next
225
+ // acquireLease() call collects the orphan. Surface the error but
226
+ // declare the run completed (body + commit succeeded).
227
+ const msg = err instanceof Error ? err.message : String(err);
228
+ finishStep(stepRelease, runtime.getNow(), false, msg);
229
+ await recordStepFinished(persistRunLedger ? vaultDb : null, runId, stepRelease, runtime.getNow());
230
+ finalizeContext(ctx, runtime.getNow(), "failed_release", msg);
231
+ await recordTerminalStatus(persistRunLedger ? vaultDb : null, ctx);
232
+ return { context: ctx, ok: false };
233
+ }
234
+ }
235
+ // ---------------------------------------------------------------------------
236
+ // Block-B Commit 5 — per-vault automator_runs ledger helpers. All three
237
+ // are no-ops when `vaultDb` is null (no per-vault DB supplied, or dryRun).
238
+ // Each catches its own errors and logs to stderr rather than propagating
239
+ // — the goal is observability, not blocking the protocol path on a logged
240
+ // event write failure. The five-step contract surface (lease + git + body)
241
+ // already drives the user-visible status.
242
+ // ---------------------------------------------------------------------------
243
+ async function recordStepStarted(vaultDb, runId, step, ts) {
244
+ if (vaultDb === null)
245
+ return;
246
+ try {
247
+ await insertAutomatorRunEvent(vaultDb, {
248
+ id: newUuidv7Bytes(),
249
+ runId,
250
+ ts,
251
+ level: "info",
252
+ message: `step.${step.step}.started`,
253
+ });
254
+ }
255
+ catch (err) {
256
+ // eslint-disable-next-line no-console
257
+ console.warn(`runFiveStep: recordStepStarted(${step.step}) failed`, err instanceof Error ? err.message : err);
258
+ }
259
+ }
260
+ async function recordStepFinished(vaultDb, runId, step, ts) {
261
+ if (vaultDb === null)
262
+ return;
263
+ try {
264
+ const outcome = step.ok === true ? "completed" : "failed";
265
+ await insertAutomatorRunEvent(vaultDb, {
266
+ id: newUuidv7Bytes(),
267
+ runId,
268
+ ts,
269
+ level: step.ok === true ? "info" : "error",
270
+ message: `step.${step.step}.${outcome}`,
271
+ data: {
272
+ duration_ms: step.durationMs ?? 0,
273
+ ...(step.errorSummary !== null ? { error: step.errorSummary } : {}),
274
+ },
275
+ });
276
+ }
277
+ catch (err) {
278
+ // eslint-disable-next-line no-console
279
+ console.warn(`runFiveStep: recordStepFinished(${step.step}) failed`, err instanceof Error ? err.message : err);
280
+ }
281
+ }
282
+ async function recordTerminalStatus(vaultDb, ctx) {
283
+ if (vaultDb === null)
284
+ return;
285
+ try {
286
+ await updateAutomatorRunStatus(vaultDb, {
287
+ id: ctx.runId,
288
+ status: ctx.status,
289
+ ...(ctx.endedAt !== null ? { endedAt: ctx.endedAt } : {}),
290
+ ...(ctx.errorSummary !== null ? { errorSummary: ctx.errorSummary } : {}),
291
+ });
292
+ }
293
+ catch (err) {
294
+ // eslint-disable-next-line no-console
295
+ console.warn("runFiveStep: recordTerminalStatus failed", err instanceof Error ? err.message : err);
296
+ }
297
+ }
298
+ async function releaseOnError(runtime, ctx, reason) {
299
+ if (runtime.db === undefined || ctx.leaseId === null)
300
+ return;
301
+ try {
302
+ await releaseLease(runtime.db, {
303
+ leaseId: ctx.leaseId,
304
+ reason,
305
+ now: runtime.getNow(),
306
+ });
307
+ }
308
+ catch {
309
+ // Best-effort cleanup; the auto-expiry sweep is the safety net.
310
+ }
311
+ }
312
+ //# sourceMappingURL=five-step.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"five-step.js","sourceRoot":"","sources":["../../src/protocol/five-step.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ export type LytRunStatus = "pending" | "lease_acquired" | "synced" | "body_running" | "body_completed" | "committed" | "completed" | "failed_lease" | "failed_sync" | "failed_body" | "failed_commit" | "failed_release";
2
+ export interface LytRunStepTiming {
3
+ step: "acquire" | "sync" | "body" | "commit" | "release";
4
+ startedAt: number;
5
+ endedAt: number | null;
6
+ durationMs: number | null;
7
+ ok: boolean | null;
8
+ errorSummary: string | null;
9
+ }
10
+ export interface LytRunContext {
11
+ runId: Uint8Array;
12
+ automatorRid: Uint8Array;
13
+ vaultRid: Uint8Array;
14
+ vaultPath: string;
15
+ machineId: string;
16
+ leaseId: Uint8Array | null;
17
+ startedAt: number;
18
+ endedAt: number | null;
19
+ status: LytRunStatus;
20
+ steps: LytRunStepTiming[];
21
+ errorSummary: string | null;
22
+ bodyResult: unknown;
23
+ }
24
+ export declare function createRunContext(args: {
25
+ runId: Uint8Array;
26
+ automatorRid: Uint8Array;
27
+ vaultRid: Uint8Array;
28
+ vaultPath: string;
29
+ machineId: string;
30
+ startedAt: number;
31
+ }): LytRunContext;
32
+ export declare function startStep(ctx: LytRunContext, step: LytRunStepTiming["step"], now: number): LytRunStepTiming;
33
+ export declare function finishStep(timing: LytRunStepTiming, now: number, ok: boolean, errorSummary?: string | null): void;
34
+ export declare function finalizeContext(ctx: LytRunContext, now: number, status: LytRunStatus, errorSummary?: string | null): void;
35
+ //# sourceMappingURL=run-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-context.d.ts","sourceRoot":"","sources":["../../src/protocol/run-context.ts"],"names":[],"mappings":"AAiCA,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,gBAAgB,GAChB,QAAQ,GACR,cAAc,GACd,gBAAgB,GAChB,WAAW,GACX,WAAW,GACX,cAAc,GACd,aAAa,GACb,aAAa,GACb,eAAe,GACf,gBAAgB,CAAC;AAErB,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,UAAU,CAAC;IAClB,YAAY,EAAE,UAAU,CAAC;IACzB,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAI5B,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,KAAK,EAAE,UAAU,CAAC;IAClB,YAAY,EAAE,UAAU,CAAC;IACzB,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,aAAa,CAehB;AAED,wBAAgB,SAAS,CACvB,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAC9B,GAAG,EAAE,MAAM,GACV,gBAAgB,CAWlB;AAED,wBAAgB,UAAU,CACxB,MAAM,EAAE,gBAAgB,EACxB,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,OAAO,EACX,YAAY,GAAE,MAAM,GAAG,IAAW,GACjC,IAAI,CAKN;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,YAAY,EACpB,YAAY,GAAE,MAAM,GAAG,IAAW,GACjC,IAAI,CAIN"}
@@ -0,0 +1,56 @@
1
+ /*
2
+ * Copyright 2026 MARLINK TRADING SRL (YounndAI)
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export function createRunContext(args) {
17
+ return {
18
+ runId: args.runId,
19
+ automatorRid: args.automatorRid,
20
+ vaultRid: args.vaultRid,
21
+ vaultPath: args.vaultPath,
22
+ machineId: args.machineId,
23
+ leaseId: null,
24
+ startedAt: args.startedAt,
25
+ endedAt: null,
26
+ status: "pending",
27
+ steps: [],
28
+ errorSummary: null,
29
+ bodyResult: undefined,
30
+ };
31
+ }
32
+ export function startStep(ctx, step, now) {
33
+ const timing = {
34
+ step,
35
+ startedAt: now,
36
+ endedAt: null,
37
+ durationMs: null,
38
+ ok: null,
39
+ errorSummary: null,
40
+ };
41
+ ctx.steps.push(timing);
42
+ return timing;
43
+ }
44
+ export function finishStep(timing, now, ok, errorSummary = null) {
45
+ timing.endedAt = now;
46
+ timing.durationMs = Math.max(0, now - timing.startedAt);
47
+ timing.ok = ok;
48
+ timing.errorSummary = errorSummary;
49
+ }
50
+ export function finalizeContext(ctx, now, status, errorSummary = null) {
51
+ ctx.endedAt = now;
52
+ ctx.status = status;
53
+ if (errorSummary !== null)
54
+ ctx.errorSummary = errorSummary;
55
+ }
56
+ //# sourceMappingURL=run-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-context.js","sourceRoot":"","sources":["../../src/protocol/run-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA4DH,MAAM,UAAU,gBAAgB,CAAC,IAOhC;IACC,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,EAAE;QACT,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,SAAS;KACtB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,GAAkB,EAClB,IAA8B,EAC9B,GAAW;IAEX,MAAM,MAAM,GAAqB;QAC/B,IAAI;QACJ,SAAS,EAAE,GAAG;QACd,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,IAAI;QAChB,EAAE,EAAE,IAAI;QACR,YAAY,EAAE,IAAI;KACnB,CAAC;IACF,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,MAAwB,EACxB,GAAW,EACX,EAAW,EACX,eAA8B,IAAI;IAElC,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC;IACrB,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IACxD,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,GAAkB,EAClB,GAAW,EACX,MAAoB,EACpB,eAA8B,IAAI;IAElC,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC;IAClB,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;IACpB,IAAI,YAAY,KAAK,IAAI;QAAE,GAAG,CAAC,YAAY,GAAG,YAAY,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { Client } from "@libsql/client";
2
+ import type { LlmGateway } from "@younndai/lyt-llm";
3
+ export interface LytRuntime {
4
+ db: Client | undefined;
5
+ vaultPath: string | undefined;
6
+ machineId: string;
7
+ llmGateway: LlmGateway | undefined;
8
+ getNow: () => number;
9
+ }
10
+ export interface LytRuntimeConfig {
11
+ db?: Client;
12
+ vaultPath?: string;
13
+ machineId: string;
14
+ llmGateway?: LlmGateway;
15
+ getNow?: () => number;
16
+ }
17
+ export declare function createLytRuntime(config: LytRuntimeConfig): LytRuntime;
18
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC;IACnC,MAAM,EAAE,MAAM,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,UAAU,CAAC;IAGxB,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;CACvB;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU,CAWrE"}
@@ -0,0 +1,28 @@
1
+ /*
2
+ * Copyright 2026 MARLINK TRADING SRL (YounndAI)
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export function createLytRuntime(config) {
17
+ if (typeof config.machineId !== "string" || config.machineId.length === 0) {
18
+ throw new Error("createLytRuntime: machineId is required and must be non-empty");
19
+ }
20
+ return {
21
+ db: config.db,
22
+ vaultPath: config.vaultPath,
23
+ machineId: config.machineId,
24
+ llmGateway: config.llmGateway,
25
+ getNow: config.getNow ?? (() => Date.now()),
26
+ };
27
+ }
28
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA6CH,MAAM,UAAU,gBAAgB,CAAC,MAAwB;IACvD,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACnF,CAAC;IACD,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;KAC5C,CAAC;AACJ,CAAC"}
package/package.json ADDED
@@ -0,0 +1,74 @@
1
+ {
2
+ "name": "@younndai/lyt-runner",
3
+ "version": "0.9.0",
4
+ "description": "Lyt automation runner — a thin layer on @younndai/yon-runner that expands declarative @AUTOMATOR + @DIRECTIVE records into core YON before execution and registers the vault-aware std:vault.* + std:mesh.* + std:lease.* ops.",
5
+ "homepage": "https://linkyourthink.com",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/younndai/lyt",
9
+ "directory": "packages/lyt-runner"
10
+ },
11
+ "author": {
12
+ "name": "MARLINK TRADING SRL (YounndAI)",
13
+ "url": "https://younndai.com"
14
+ },
15
+ "contributors": [
16
+ {
17
+ "name": "Alexandru Mareș",
18
+ "url": "https://allemaar.com"
19
+ }
20
+ ],
21
+ "license": "Apache-2.0",
22
+ "engines": {
23
+ "node": ">=20.9",
24
+ "npm": ">=10"
25
+ },
26
+ "type": "module",
27
+ "main": "./dist/index.js",
28
+ "types": "./dist/index.d.ts",
29
+ "exports": {
30
+ ".": {
31
+ "types": "./dist/index.d.ts",
32
+ "import": "./dist/index.js"
33
+ }
34
+ },
35
+ "files": [
36
+ "dist",
37
+ "README.md",
38
+ "LICENSE",
39
+ "NOTICE"
40
+ ],
41
+ "scripts": {
42
+ "build": "tsc",
43
+ "typecheck": "tsc --noEmit",
44
+ "test": "vitest run",
45
+ "test:watch": "vitest",
46
+ "clean": "rimraf --glob dist .turbo *.tsbuildinfo",
47
+ "prepack": "npm run clean && npm run build",
48
+ "prepublishOnly": "node ../../scripts/check-no-vendored-deps.mjs --root ../.."
49
+ },
50
+ "dependencies": {
51
+ "@younndai/yon-runner": "^2.0.0",
52
+ "@younndai/yon-parser": "^2.0.0",
53
+ "@younndai/lyt-vault": "^0.9.0",
54
+ "@younndai/lyt-llm": "^0.9.0",
55
+ "@libsql/client": "^0.15.15"
56
+ },
57
+ "devDependencies": {
58
+ "@lyt/typescript-config": "*",
59
+ "@types/node": "^22.10.5",
60
+ "rimraf": "*",
61
+ "typescript": "*",
62
+ "vitest": "*"
63
+ },
64
+ "publishConfig": {
65
+ "access": "public"
66
+ },
67
+ "keywords": [
68
+ "lyt",
69
+ "runner",
70
+ "yon",
71
+ "automator",
72
+ "younndai"
73
+ ]
74
+ }