@chipschat/harness 1.0.4 → 1.0.6

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/service.d.ts CHANGED
@@ -50,11 +50,13 @@ export type Command = readonly [string, ...string[]];
50
50
  export interface Kept {
51
51
  /**
52
52
  * `kept` running; `theirs`, a file of somebody's own was there and left; `unsupported`, no
53
- * manager here; `off`, `CHIPS_KEEP=off` said not to (a test running a card's line as written).
53
+ * manager here; `off`, `CHIPS_KEEP=off` said not to (a test running a card's line as written);
54
+ * `failed`, the manager wouldn't start it, which `why` says and the person was told.
54
55
  */
55
- readonly state: "kept" | "theirs" | "unsupported" | "off";
56
+ readonly state: "kept" | "theirs" | "unsupported" | "off" | "failed";
56
57
  readonly path?: string | undefined;
57
58
  readonly logFile?: string | undefined;
59
+ readonly why?: string | undefined;
58
60
  }
59
61
  export declare function serviceKind(platform: string): ServiceKind | undefined;
60
62
  /** The service's file for `spec` on `machine`, or nothing where there is no service manager. */
@@ -87,6 +89,20 @@ export declare function stopCommands(kind: ServiceKind, label: string, uid: numb
87
89
  * of its own.
88
90
  */
89
91
  export declare function keepEnvironment(url: string, env?: Environment, names?: readonly string[], node?: string): Record<string, string>;
92
+ /**
93
+ * Whether this process is the copy its machine keeps running under `label`, started by launchd or
94
+ * systemd from the file `keepRunning` wrote, and not one a person ran by hand. launchd tells what
95
+ * it starts the job's name (`XPC_SERVICE_NAME`). systemd says which process it started
96
+ * (`SYSTEMD_EXEC_PID`, from systemd 248); before that it says only that a unit started this or
97
+ * something above it (`INVOCATION_ID`), which a shell opened from a unit hands on, so there it
98
+ * counts only with no terminal to write to. A harness asks this to wait for its server when it
99
+ * starts (`connect({ waitForServer })`), where a person who runs it by hand hears at once.
100
+ */
101
+ export declare function runsKept(label: string, given?: {
102
+ readonly env?: Environment;
103
+ readonly pid?: number;
104
+ readonly terminal?: boolean;
105
+ }): boolean;
90
106
  /**
91
107
  * The node a kept bridge runs on: the one `chips connect` hands over (`CHIPS_NODE`), named by a
92
108
  * path an upgrade of Chips keeps (`~/.local/lib/chips/current/runtime/node`, or inside Chips.app);
@@ -110,6 +126,13 @@ interface Running {
110
126
  /** Where a word for the person who kept it goes: standard error by default. */
111
127
  readonly say?: ((line: string) => void) | undefined;
112
128
  }
129
+ /**
130
+ * Why the service manager wouldn't keep it, in words a person can act on. Over SSH to a Mac nobody
131
+ * is logged in to at its screen launchd has no session to start one in, and without a systemd user
132
+ * session (WSL, `su`, most containers) systemctl finds no bus; both say only that (the onboarding
133
+ * audit, Part 2, items 9 and 12). `chips up` says the same of its own service.
134
+ */
135
+ export declare function refusedWords(command: Command, printed: string): string;
113
136
  /**
114
137
  * Write the service and run it, replacing one written here before. A file of somebody's own at
115
138
  * that place is left as it is: `theirs`.
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
package/dist/service.js CHANGED
@@ -211,6 +211,26 @@ function nodeFirst(folder, path) {
211
211
  const rest = (path ?? "").split(delimiter).filter((each) => each !== "" && each !== folder);
212
212
  return [folder, ...rest].join(delimiter);
213
213
  }
214
+ /**
215
+ * Whether this process is the copy its machine keeps running under `label`, started by launchd or
216
+ * systemd from the file `keepRunning` wrote, and not one a person ran by hand. launchd tells what
217
+ * it starts the job's name (`XPC_SERVICE_NAME`). systemd says which process it started
218
+ * (`SYSTEMD_EXEC_PID`, from systemd 248); before that it says only that a unit started this or
219
+ * something above it (`INVOCATION_ID`), which a shell opened from a unit hands on, so there it
220
+ * counts only with no terminal to write to. A harness asks this to wait for its server when it
221
+ * starts (`connect({ waitForServer })`), where a person who runs it by hand hears at once.
222
+ */
223
+ export function runsKept(label, given = {}) {
224
+ // biome-ignore lint/style/noProcessEnv: what started this process is said in its environment.
225
+ const env = given.env ?? process.env;
226
+ if (env["XPC_SERVICE_NAME"] === label)
227
+ return true;
228
+ const started = env["SYSTEMD_EXEC_PID"] ?? "";
229
+ if (started !== "")
230
+ return started === String(given.pid ?? process.pid);
231
+ const terminal = given.terminal ?? process.stdout.isTTY === true;
232
+ return (env["INVOCATION_ID"] ?? "") !== "" && !terminal;
233
+ }
214
234
  /**
215
235
  * The node a kept bridge runs on: the one `chips connect` hands over (`CHIPS_NODE`), named by a
216
236
  * path an upgrade of Chips keeps (`~/.local/lib/chips/current/runtime/node`, or inside Chips.app);
@@ -251,8 +271,48 @@ const LOAD_TRIES = 40;
251
271
  const runOf = (options) => options.run ??
252
272
  ((command) => execFileSync(command[0], command.slice(1), {
253
273
  encoding: "utf8",
254
- stdio: ["ignore", "pipe", "ignore"],
274
+ // What it printed on failing is what says why: no session, no bus.
275
+ stdio: ["ignore", "pipe", "pipe"],
255
276
  }));
277
+ /** A command of the service manager's that failed, and what it printed. */
278
+ class Refused extends Error {
279
+ command;
280
+ printed;
281
+ constructor(command, printed) {
282
+ super(`${command.join(" ")} failed`);
283
+ this.command = command;
284
+ this.printed = printed;
285
+ }
286
+ }
287
+ /** What a failed command printed: its standard error and output, as `execFileSync` hands them. */
288
+ function printedBy(error) {
289
+ if (typeof error !== "object" || error === null)
290
+ return String(error);
291
+ const { stderr, stdout, message } = error;
292
+ const said = [stderr, stdout]
293
+ .map((each) => (typeof each === "string" ? each.trim() : ""))
294
+ .join("\n")
295
+ .trim();
296
+ return said !== "" ? said : typeof message === "string" ? message : "";
297
+ }
298
+ /**
299
+ * Why the service manager wouldn't keep it, in words a person can act on. Over SSH to a Mac nobody
300
+ * is logged in to at its screen launchd has no session to start one in, and without a systemd user
301
+ * session (WSL, `su`, most containers) systemctl finds no bus; both say only that (the onboarding
302
+ * audit, Part 2, items 9 and 12). `chips up` says the same of its own service.
303
+ */
304
+ export function refusedWords(command, printed) {
305
+ const first = printed.split("\n")[0]?.trim() ?? "";
306
+ if (command[0] === "launchctl" &&
307
+ /Bootstrap failed: (5|125)|Domain does not support|Could not find domain/.test(printed)) {
308
+ return "Nobody is logged in to this Mac at its screen, so it can't be kept running from here";
309
+ }
310
+ if (command[0] === "systemctl" &&
311
+ /Failed to connect to (user scope )?bus|DBUS_SESSION_BUS_ADDRESS|not been booted with systemd/.test(printed)) {
312
+ return "This shell has no systemd user session, so it can't be kept running from here";
313
+ }
314
+ return `It couldn't be kept running: \`${command.join(" ")}\` failed${first === "" ? "" : ` (${first})`}`;
315
+ }
256
316
  const ours = (path) => !existsSync(path) || readFileSync(path, "utf8").includes(MARK);
257
317
  /** One command run, tried again while launchd lets a stopped copy go, and let fail where that's fine. */
258
318
  function runOne(command, run, retryMs) {
@@ -268,7 +328,7 @@ function runOne(command, run, retryMs) {
268
328
  if (mayFail(command))
269
329
  return;
270
330
  if (tried >= tries)
271
- throw error;
331
+ throw new Refused(command, printedBy(error));
272
332
  pause(retryMs);
273
333
  }
274
334
  }
@@ -327,7 +387,24 @@ export function keepRunning(spec, options = {}) {
327
387
  // Read by its user only: a bridge may carry a password its harness needs.
328
388
  writeFileSync(file.path, file.contents, { mode: 0o600 });
329
389
  chmodSync(file.path, 0o600);
330
- runAll(startCommands(file.kind, spec.label, file.path, uidOf(options)), options);
390
+ try {
391
+ runAll(startCommands(file.kind, spec.label, file.path, uidOf(options)), options);
392
+ }
393
+ catch (error) {
394
+ if (!(error instanceof Refused))
395
+ throw error;
396
+ // Nothing half kept: no file left to start it at the next login beside this copy.
397
+ try {
398
+ runAll(stopCommands(file.kind, spec.label, uidOf(options)), options);
399
+ }
400
+ catch {
401
+ // It never started, so there is nothing to stop.
402
+ }
403
+ rmSync(file.path, { force: true });
404
+ const why = refusedWords(error.command, error.printed);
405
+ sayOf(options)(`${why}. It runs here instead, while this terminal is open.`);
406
+ return { state: "failed", why };
407
+ }
331
408
  if (file.kind === "systemd" && !lingers(options)) {
332
409
  sayOf(options)("It stops when you log out. To keep it running on a machine nobody logs in to, run this once: sudo loginctl enable-linger $USER");
333
410
  }
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
package/dist/store.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * What a harness keeps across a restart, so a restart loses nothing and leaves nothing hanging:
3
- * the last `seq` it heard (a decision made while it was down still reaches it), the events it sent
3
+ * the last `seq` it heard (a decision made while it was down still reaches it), the messages for
4
+ * it it had not yet started a run for (heard again, rather than lost), the events it sent
4
5
  * that the server never answered (sent again, which the idempotency key makes safe), and the runs
5
6
  * it started that never ended (ended for it when it comes back, so no thinking bubble waits for
6
7
  * ever). `connect({ store: fileStore(path) })`; without a store, all of it lives as long as the
@@ -15,6 +16,17 @@ export interface OpenRun {
15
16
  }
16
17
  export interface HarnessState {
17
18
  readonly since?: number | undefined;
19
+ /**
20
+ * The `seq`s of messages for this harness, at or before `since`, that no run had started for
21
+ * yet: heard again after a restart, since `since` is past them. An older SDK reads the file
22
+ * without them, as before.
23
+ */
24
+ readonly unanswered?: readonly number[] | undefined;
25
+ /**
26
+ * When each of them was heard, by `seq`, in milliseconds: one waiting longer than a message is
27
+ * kept for is not heard again, however long the harness was stopped.
28
+ */
29
+ readonly unansweredAt?: Readonly<Record<string, number>> | undefined;
18
30
  readonly outbox: readonly Readonly<Record<string, unknown>>[];
19
31
  readonly runs: readonly OpenRun[];
20
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,sFAAsF;AACtF,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;IAC9D,QAAQ,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,CAAC;CACnC;AAED,gGAAgG;AAChG,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,YAAY,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;CAC9C;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAuBpD;AAED,gGAAgG;AAChG,wBAAgB,WAAW,CACzB,OAAO,CAAC,EAAE,YAAY,GACrB,YAAY,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,YAAY,GAAG,SAAS,CAAA;CAAE,CASnE"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,sFAAsF;AACtF,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACpD;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;IACrE,QAAQ,CAAC,MAAM,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;IAC9D,QAAQ,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,CAAC;CACnC;AAED,gGAAgG;AAChG,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,YAAY,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;CAC9C;AAsBD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAkBpD;AAED,gGAAgG;AAChG,wBAAgB,WAAW,CACzB,OAAO,CAAC,EAAE,YAAY,GACrB,YAAY,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,YAAY,GAAG,SAAS,CAAA;CAAE,CASnE"}
package/dist/store.js CHANGED
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * What a harness keeps across a restart, so a restart loses nothing and leaves nothing hanging:
3
- * the last `seq` it heard (a decision made while it was down still reaches it), the events it sent
3
+ * the last `seq` it heard (a decision made while it was down still reaches it), the messages for
4
+ * it it had not yet started a run for (heard again, rather than lost), the events it sent
4
5
  * that the server never answered (sent again, which the idempotency key makes safe), and the runs
5
6
  * it started that never ended (ended for it when it comes back, so no thinking bubble waits for
6
7
  * ever). `connect({ store: fileStore(path) })`; without a store, all of it lives as long as the
@@ -8,6 +9,21 @@
8
9
  */
9
10
  import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
10
11
  import { dirname } from "node:path";
12
+ /** What a file held, with anything it shouldn't have left out. */
13
+ function stateOf(parsed) {
14
+ const unanswered = Array.isArray(parsed.unanswered)
15
+ ? parsed.unanswered.filter((seq) => Number.isInteger(seq))
16
+ : [];
17
+ const heardAt = Object.fromEntries(Object.entries(typeof parsed.unansweredAt === "object" && parsed.unansweredAt !== null
18
+ ? parsed.unansweredAt
19
+ : {}).filter((entry) => typeof entry[1] === "number"));
20
+ return {
21
+ ...(typeof parsed.since === "number" ? { since: parsed.since } : {}),
22
+ ...(unanswered.length === 0 ? {} : { unanswered, unansweredAt: heardAt }),
23
+ outbox: Array.isArray(parsed.outbox) ? parsed.outbox : [],
24
+ runs: Array.isArray(parsed.runs) ? parsed.runs : [],
25
+ };
26
+ }
11
27
  /**
12
28
  * A JSON file only its user can read, written whole and renamed into place so a crash mid-write
13
29
  * leaves the last good one. Its folder is made when missing.
@@ -18,12 +34,7 @@ export function fileStore(path) {
18
34
  if (!existsSync(path))
19
35
  return undefined;
20
36
  try {
21
- const parsed = JSON.parse(readFileSync(path, "utf8"));
22
- return {
23
- ...(typeof parsed.since === "number" ? { since: parsed.since } : {}),
24
- outbox: Array.isArray(parsed.outbox) ? parsed.outbox : [],
25
- runs: Array.isArray(parsed.runs) ? parsed.runs : [],
26
- };
37
+ return stateOf(JSON.parse(readFileSync(path, "utf8")));
27
38
  }
28
39
  catch {
29
40
  // A file nobody can read is a fresh start, not a harness that cannot start.
package/dist/store.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsBpC;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,OAAO;QACL,IAAI;YACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,OAAO,SAAS,CAAC;YACxC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAA0B,CAAC;gBAC/E,OAAO;oBACL,GAAG,CAAC,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;oBACzD,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;iBACpD,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,4EAA4E;gBAC5E,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK;YACR,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG,GAAG,IAAI,OAAO,CAAC;YAC5B,aAAa,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACnE,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,WAAW,CACzB,OAAsB;IAEtB,IAAI,IAAI,GAAG,OAAO,CAAC;IACnB,OAAO;QACL,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI;QAChB,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;YACd,IAAI,GAAG,KAAK,CAAC;QACf,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI;KAClB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiCpC,kEAAkE;AAClE,SAAS,OAAO,CAAC,MAA6B;IAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;QACjD,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAiB,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACzE,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAChC,MAAM,CAAC,OAAO,CACZ,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ,IAAI,MAAM,CAAC,YAAY,KAAK,IAAI;QACrE,CAAC,CAAC,MAAM,CAAC,YAAY;QACrB,CAAC,CAAC,EAAE,CACP,CAAC,MAAM,CAAC,CAAC,KAAK,EAA6B,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAC7E,CAAC;IACF,OAAO;QACL,GAAG,CAAC,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;QACzE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;QACzD,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;KACpD,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,OAAO;QACL,IAAI;YACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,OAAO,SAAS,CAAC;YACxC,IAAI,CAAC;gBACH,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAA0B,CAAC,CAAC;YAClF,CAAC;YAAC,MAAM,CAAC;gBACP,4EAA4E;gBAC5E,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK;YACR,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG,GAAG,IAAI,OAAO,CAAC;YAC5B,aAAa,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACnE,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,WAAW,CACzB,OAAsB;IAEtB,IAAI,IAAI,GAAG,OAAO,CAAC;IACnB,OAAO;QACL,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI;QAChB,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;YACd,IAAI,GAAG,KAAK,CAAC;QACf,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI;KAClB,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chipschat/harness",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "description": "The Agent Connect client for a harness you control: connect, start runs, log steps, ask, and hear what people say back.",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://chipschat.ai/connect/sdk/",
@@ -24,13 +24,13 @@
24
24
  "dist"
25
25
  ],
26
26
  "dependencies": {
27
- "@chipschat/protocol": "1.0.4"
27
+ "@chipschat/protocol": "1.0.6"
28
28
  },
29
29
  "devDependencies": {
30
30
  "kysely": "0.29.5",
31
31
  "vitest": "4.1.11",
32
- "@chipschat/platform": "0.0.0",
33
- "@chipschat/server": "0.0.0"
32
+ "@chipschat/server": "0.0.0",
33
+ "@chipschat/platform": "0.0.0"
34
34
  },
35
35
  "scripts": {
36
36
  "build": "tsc -p tsconfig.build.json",