@inhuman.tools/scheme-program 0.0.0-stage → 0.1.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 (73) hide show
  1. package/LICENSE.md +7 -0
  2. package/dist/emission.d.ts +10 -0
  3. package/dist/emission.d.ts.map +1 -0
  4. package/dist/emission.js +74 -0
  5. package/dist/emission.js.map +1 -0
  6. package/dist/eval.d.ts +7 -0
  7. package/dist/eval.d.ts.map +1 -0
  8. package/dist/eval.js +6 -0
  9. package/dist/eval.js.map +1 -0
  10. package/dist/evaluate.d.ts +90 -0
  11. package/dist/evaluate.d.ts.map +1 -0
  12. package/dist/evaluate.js +316 -0
  13. package/dist/evaluate.js.map +1 -0
  14. package/dist/failure.d.ts +10 -0
  15. package/dist/failure.d.ts.map +1 -0
  16. package/dist/failure.js +30 -0
  17. package/dist/failure.js.map +1 -0
  18. package/dist/file-path.d.ts +9 -0
  19. package/dist/file-path.d.ts.map +1 -0
  20. package/dist/file-path.js +25 -0
  21. package/dist/file-path.js.map +1 -0
  22. package/dist/host.d.ts +55 -0
  23. package/dist/host.d.ts.map +1 -0
  24. package/dist/host.js +2 -0
  25. package/dist/host.js.map +1 -0
  26. package/dist/index.d.ts +9 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +8 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/notes.d.ts +12 -0
  31. package/dist/notes.d.ts.map +1 -0
  32. package/dist/notes.js +12 -0
  33. package/dist/notes.js.map +1 -0
  34. package/dist/open.d.ts +23 -0
  35. package/dist/open.d.ts.map +1 -0
  36. package/dist/open.js +53 -0
  37. package/dist/open.js.map +1 -0
  38. package/dist/replay-eval.d.ts +5 -0
  39. package/dist/replay-eval.d.ts.map +1 -0
  40. package/dist/replay-eval.js +72 -0
  41. package/dist/replay-eval.js.map +1 -0
  42. package/dist/run.d.ts +4 -0
  43. package/dist/run.d.ts.map +1 -0
  44. package/dist/run.js +81 -0
  45. package/dist/run.js.map +1 -0
  46. package/dist/runtime.d.ts +8 -0
  47. package/dist/runtime.d.ts.map +1 -0
  48. package/dist/runtime.js +77 -0
  49. package/dist/runtime.js.map +1 -0
  50. package/dist/source-fs.d.ts +4 -0
  51. package/dist/source-fs.d.ts.map +1 -0
  52. package/dist/source-fs.js +36 -0
  53. package/dist/source-fs.js.map +1 -0
  54. package/dist/source.d.ts +22 -0
  55. package/dist/source.d.ts.map +1 -0
  56. package/dist/source.js +76 -0
  57. package/dist/source.js.map +1 -0
  58. package/package.json +67 -3
  59. package/src/emission.ts +82 -0
  60. package/src/eval.ts +20 -0
  61. package/src/evaluate.ts +398 -0
  62. package/src/failure.ts +35 -0
  63. package/src/file-path.ts +27 -0
  64. package/src/host.ts +57 -0
  65. package/src/index.ts +8 -0
  66. package/src/notes.ts +15 -0
  67. package/src/open.ts +73 -0
  68. package/src/replay-eval.ts +84 -0
  69. package/src/run.ts +103 -0
  70. package/src/runtime.ts +99 -0
  71. package/src/source-fs.ts +35 -0
  72. package/src/source.ts +78 -0
  73. package/README.md +0 -3
package/LICENSE.md ADDED
@@ -0,0 +1,7 @@
1
+ Copyright 2026 Merkle Bonsai
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
+
5
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6
+
7
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Closure windows for one evaluation. The store is discarded: the track is
3
+ * stamped on the child, and that is the record a replay matches.
4
+ */
5
+ import type { ExecOptions, SchemeValue } from "@here.build/arrival";
6
+ export type ProgramEmission = NonNullable<ExecOptions["emission"]>;
7
+ export declare function harnessEmission(forms: readonly SchemeValue[]): ProgramEmission;
8
+ /** Same parsed pairs the following `execState` will run. Sites are keyed by pair identity. */
9
+ export declare function extendEmission(emission: ProgramEmission, forms: readonly SchemeValue[]): void;
10
+ //# sourceMappingURL=emission.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emission.d.ts","sourceRoot":"","sources":["../src/emission.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGpE,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;AAmDnE,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,GAAG,eAAe,CAW9E;AAED,8FAA8F;AAC9F,wBAAgB,cAAc,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,WAAW,EAAE,GAAG,IAAI,CAS7F"}
@@ -0,0 +1,74 @@
1
+ import { buildWireframe } from "@here.build/arrival/provenance";
2
+ const store = {
3
+ async append() { },
4
+ async allocateSeq() {
5
+ return 0;
6
+ },
7
+ async readStream() {
8
+ return [];
9
+ },
10
+ async getHeader() {
11
+ return undefined;
12
+ },
13
+ async putHeader() { },
14
+ };
15
+ const payloads = {
16
+ async put() { },
17
+ async get() {
18
+ throw new Error("program emission does not read payloads");
19
+ },
20
+ async settle() { },
21
+ async evict() { },
22
+ };
23
+ /** Verbs that start one track per element. Anything else is a source, so a lambda that calls it is a closure. */
24
+ const FANS = new Set([
25
+ "map",
26
+ "for-each",
27
+ "filter",
28
+ "filter-map",
29
+ "partition",
30
+ "append-map",
31
+ "fold",
32
+ "fold-right",
33
+ "vector-map",
34
+ "vector-for-each",
35
+ "string-map",
36
+ "string-for-each",
37
+ "pair-for-each",
38
+ ]);
39
+ const wireframeOptions = {
40
+ classifier: {
41
+ roleOf(op) {
42
+ return FANS.has(op) ? "fan" : "source";
43
+ },
44
+ },
45
+ isBaseName: () => false,
46
+ };
47
+ export function harnessEmission(forms) {
48
+ const closureSites = new Map();
49
+ const emission = {
50
+ store,
51
+ payloads,
52
+ regionId: "harness",
53
+ coordinate: { templateHash: "harness", ordinalPath: [0], regionEpoch: "run" },
54
+ closureSites,
55
+ };
56
+ extendEmission(emission, forms);
57
+ return emission;
58
+ }
59
+ /** Same parsed pairs the following `execState` will run. Sites are keyed by pair identity. */
60
+ export function extendEmission(emission, forms) {
61
+ if (forms.length === 0 || !(emission.closureSites instanceof Map))
62
+ return;
63
+ try {
64
+ const built = buildWireframe(forms, wireframeOptions).closureSites;
65
+ if (built === undefined)
66
+ return;
67
+ for (const [form, site] of built)
68
+ emission.closureSites.set(form, site);
69
+ }
70
+ catch {
71
+ // A program the wireframe refuses still runs. Its crossings share the root window.
72
+ }
73
+ }
74
+ //# sourceMappingURL=emission.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emission.js","sourceRoot":"","sources":["../src/emission.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAIhE,MAAM,KAAK,GAA6B;IACtC,KAAK,CAAC,MAAM,KAAI,CAAC;IACjB,KAAK,CAAC,WAAW;QACf,OAAO,CAAC,CAAC;IACX,CAAC;IACD,KAAK,CAAC,UAAU;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,KAAK,CAAC,SAAS;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,KAAK,CAAC,SAAS,KAAI,CAAC;CACrB,CAAC;AAEF,MAAM,QAAQ,GAAgC;IAC5C,KAAK,CAAC,GAAG,KAAI,CAAC;IACd,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IACD,KAAK,CAAC,MAAM,KAAI,CAAC;IACjB,KAAK,CAAC,KAAK,KAAI,CAAC;CACjB,CAAC;AAEF,iHAAiH;AACjH,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC;IACnB,KAAK;IACL,UAAU;IACV,QAAQ;IACR,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,MAAM;IACN,YAAY;IACZ,YAAY;IACZ,iBAAiB;IACjB,YAAY;IACZ,iBAAiB;IACjB,eAAe;CAChB,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG;IACvB,UAAU,EAAE;QACV,MAAM,CAAC,EAAU;YACf,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;QACzC,CAAC;KACF;IACD,UAAU,EAAE,GAAY,EAAE,CAAC,KAAK;CACjC,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,KAA6B;IAC3D,MAAM,YAAY,GAAG,IAAI,GAAG,EAA2E,CAAC;IACxG,MAAM,QAAQ,GAAoB;QAChC,KAAK;QACL,QAAQ;QACR,QAAQ,EAAE,SAAS;QACnB,UAAU,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE;QAC7E,YAAY;KACb,CAAC;IACF,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAChC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,cAAc,CAAC,QAAyB,EAAE,KAA6B;IACrF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,YAAY,GAAG,CAAC;QAAE,OAAO;IAC1E,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,YAAY,CAAC;QACnE,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAChC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK;YAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,mFAAmF;IACrF,CAAC;AACH,CAAC"}
package/dist/eval.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ export { appendNotify } from "./failure.js";
2
+ export { cancelLiveInvocations, cancelled, displayPrinted, evaluateForms, fail, guardProgram, hostAbortReason, observationText, observed, parked, printedValues, sealChunk, waitPeriod, } from "./evaluate.js";
3
+ export { type ProgramHost } from "./host.js";
4
+ export { openProgram } from "./open.js";
5
+ export { programRuntimeOf } from "./runtime.js";
6
+ export { moduleRootOf } from "./source.js";
7
+ //# sourceMappingURL=eval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../src/eval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EACL,qBAAqB,EACrB,SAAS,EACT,cAAc,EACd,aAAa,EACb,IAAI,EACJ,YAAY,EACZ,eAAe,EACf,eAAe,EACf,QAAQ,EACR,MAAM,EACN,aAAa,EACb,SAAS,EACT,UAAU,GACX,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
package/dist/eval.js ADDED
@@ -0,0 +1,6 @@
1
+ export { appendNotify } from "./failure.js";
2
+ export { cancelLiveInvocations, cancelled, displayPrinted, evaluateForms, fail, guardProgram, hostAbortReason, observationText, observed, parked, printedValues, sealChunk, waitPeriod, } from "./evaluate.js";
3
+ export { openProgram } from "./open.js";
4
+ export { programRuntimeOf } from "./runtime.js";
5
+ export { moduleRootOf } from "./source.js";
6
+ //# sourceMappingURL=eval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eval.js","sourceRoot":"","sources":["../src/eval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EACL,qBAAqB,EACrB,SAAS,EACT,cAAc,EACd,aAAa,EACb,IAAI,EACJ,YAAY,EACZ,eAAe,EACf,eAAe,EACf,QAAQ,EACR,MAAM,EACN,aAAa,EACb,SAAS,EACT,UAAU,GACX,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * One Arrival evaluation of a ProgrammaticJob. Inner tools parent onto
3
+ * `job.children`. Wait is Arrival's trampoline. Not catalog execute.
4
+ */
5
+ import { type LexicalScope, type SchemeValue } from "@here.build/arrival";
6
+ import { EvalTrace } from "@here.build/arrival/provenance";
7
+ import { ProgrammaticJob } from "@inhuman.tools/harness-model";
8
+ import { type TopLevelSplice } from "@inhuman.tools/substrate/unwrap-begin";
9
+ import { type ProgramEmission } from "./emission.js";
10
+ import type { ProgramHost, ProgramRuntime } from "./host.js";
11
+ export type FailResult = {
12
+ readonly ok: false;
13
+ readonly text: string;
14
+ readonly code?: string;
15
+ };
16
+ export type FilePrint = {
17
+ readonly text: string;
18
+ readonly face: {
19
+ readonly kind: "file";
20
+ readonly path: string;
21
+ };
22
+ };
23
+ export type PrintedValue = string | FilePrint;
24
+ export type ValueResult = {
25
+ readonly ok: boolean;
26
+ readonly value: PrintedValue[];
27
+ readonly json?: unknown;
28
+ readonly jsonError?: string;
29
+ };
30
+ export type CallResult = FailResult | ValueResult;
31
+ export type EvalOutcome = {
32
+ readonly kind: "ok";
33
+ readonly values: PrintedValue[];
34
+ readonly json?: unknown;
35
+ readonly jsonError?: string;
36
+ } | {
37
+ readonly kind: "fail";
38
+ readonly values: PrintedValue[];
39
+ readonly code?: string;
40
+ } | {
41
+ readonly kind: "halt";
42
+ readonly result: FailResult;
43
+ } | {
44
+ readonly kind: "park";
45
+ };
46
+ export type SharedEval = {
47
+ scope?: LexicalScope;
48
+ readonly signal: AbortSignal;
49
+ emission?: ProgramEmission;
50
+ };
51
+ export type EvaluateOpts = {
52
+ readonly timeoutMs: number | undefined;
53
+ readonly maxInternalCalls: number | undefined;
54
+ /** The host's trace for this run. Absent: a period tick mints its own, a one-shot goes untraced. */
55
+ readonly trace?: EvalTrace;
56
+ } & ({
57
+ readonly kind: "once";
58
+ } | {
59
+ readonly kind: "period";
60
+ readonly tick: {
61
+ readonly origin: number;
62
+ };
63
+ } | {
64
+ readonly kind: "source-load";
65
+ readonly shared: SharedEval;
66
+ } | {
67
+ readonly kind: "source-body";
68
+ readonly shared: SharedEval;
69
+ });
70
+ export declare function errorText(error: unknown): string;
71
+ export declare function fail(text: string, code?: string): FailResult;
72
+ /** Strings stay raw (display); path-stamped file strings keep a TUI face. */
73
+ export declare function observationText(value: SchemeValue): PrintedValue;
74
+ export declare function displayPrinted(value: PrintedValue): string;
75
+ export declare function sealChunk(chunk: ProgrammaticJob, result: CallResult): void;
76
+ export declare function cancelLiveInvocations(job: ProgrammaticJob, host: ProgramHost, reason?: unknown): void;
77
+ export declare function hostAbortReason(host: ProgramHost): unknown;
78
+ export declare function parked(host: ProgramHost): boolean;
79
+ export declare function cancelled(host: ProgramHost): boolean;
80
+ export declare function waitPeriod(ms: number, signal?: AbortSignal): Promise<"elapsed" | "park" | "abort">;
81
+ export declare function createEvaluationTimeout(hostSignal: AbortSignal | undefined, timeoutMs: number | undefined): {
82
+ readonly signal: AbortSignal;
83
+ readonly dispose: () => void;
84
+ };
85
+ /** One run under the host's trace, if it keeps one. */
86
+ export declare function observed<T>(host: ProgramHost, run: (trace: EvalTrace | undefined) => Promise<T>): Promise<T>;
87
+ export declare function evaluateForms(chunk: ProgrammaticJob, host: ProgramHost, forms: readonly SchemeValue[], opts: EvaluateOpts, runtime: ProgramRuntime): Promise<EvalOutcome>;
88
+ export declare function printedValues(values: readonly PrintedValue[], kinds: readonly TopLevelSplice[]): PrintedValue[];
89
+ export declare function guardProgram(chunk: ProgrammaticJob, host: ProgramHost, body: () => Promise<void>): Promise<void>;
90
+ //# sourceMappingURL=evaluate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../src/evaluate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,316 @@
1
+ /**
2
+ * One Arrival evaluation of a ProgrammaticJob. Inner tools parent onto
3
+ * `job.children`. Wait is Arrival's trampoline. Not catalog execute.
4
+ */
5
+ import { execState } from "@here.build/arrival";
6
+ import { createDisplaySink } from "@here.build/arrival/host-internals";
7
+ import { EvalTrace } from "@here.build/arrival/provenance";
8
+ import { AString, AVoid } from "@here.build/arrival/reflect-internals";
9
+ import { toSExprString } from "@here.build/arrival-serializer";
10
+ import { armCrossings, crossingEpoch, markReplaying, CallJob, cancelOutcomeText, isAbortError, isTimeoutAbortReason, MCPToolJob, cancelUnstarted, rememberJobResult, RESULT_NOTE_CHARS, SCHEME_REPL_NAMING, ToolCallJob, } from "@inhuman.tools/harness-model";
11
+ import { isTopLevelDisplay, stripTopLevelDisplay } from "@inhuman.tools/substrate";
12
+ import { importDoor, unboundInExprDoor } from "@inhuman.tools/substrate/doors";
13
+ import { action } from "mobx";
14
+ import { extendEmission, harnessEmission } from "./emission.js";
15
+ import { failureCodeOf } from "./failure.js";
16
+ import { filePathOf } from "./file-path.js";
17
+ import { SCHEME_REPL_DISPLAY_NOTE, SCHEME_REPL_UNWRAP_NOTES } from "./notes.js";
18
+ import { structuredJson } from "./source.js";
19
+ const rejectInner = action((leaf, reason) => {
20
+ cancelUnstarted(leaf, reason);
21
+ if (leaf instanceof CallJob)
22
+ return;
23
+ });
24
+ const UNBOUND_VARIABLE = /Unbound variable [`']?([^`'\s]+)/;
25
+ export function errorText(error) {
26
+ if (isAbortError(error) && !isTimeoutAbortReason(error))
27
+ return "Error: Scheme REPL call cancelled";
28
+ if (isTimeoutAbortReason(error)) {
29
+ const text = cancelOutcomeText(error);
30
+ return text.startsWith("Error:") ? text : `Error: ${text}`;
31
+ }
32
+ const raw = error instanceof Error ? error.message : String(error);
33
+ return raw.startsWith("Error:") ? raw : `Error: ${raw}`;
34
+ }
35
+ export function fail(text, code) {
36
+ return code != null && code !== "" ? { ok: false, text, code } : { ok: false, text };
37
+ }
38
+ /** Strings stay raw (display); path-stamped file strings keep a TUI face. */
39
+ export function observationText(value) {
40
+ if (typeof value === "string")
41
+ return value;
42
+ if (value instanceof AString) {
43
+ const text = value.valueOf();
44
+ const path = filePathOf(value);
45
+ if (path !== undefined && path !== "")
46
+ return { text, face: { kind: "file", path } };
47
+ return text;
48
+ }
49
+ return toSExprString(value);
50
+ }
51
+ export function displayPrinted(value) {
52
+ return typeof value === "string" ? value : value.text;
53
+ }
54
+ function isParkAbort(signal) {
55
+ return signal.aborted && signal.reason === "park";
56
+ }
57
+ function timedOutText(timeoutMs) {
58
+ return timeoutMs == null ? "Error: evaluation timed out" : `Error: evaluation timed out after ${timeoutMs}ms`;
59
+ }
60
+ function haltResult(signal, timeoutMs, error) {
61
+ if (isParkAbort(signal))
62
+ return undefined;
63
+ if (signal.aborted) {
64
+ const text = cancelOutcomeText(signal.reason);
65
+ if (text === "timed out")
66
+ return fail(timedOutText(timeoutMs));
67
+ return fail(text === "cancelled" ? "Error: Scheme REPL call cancelled" : `Error: ${text}`);
68
+ }
69
+ if (error instanceof Error && /execution budget exceeded/.test(error.message)) {
70
+ return fail(timedOutText(timeoutMs));
71
+ }
72
+ return undefined;
73
+ }
74
+ function resultNoteText(result) {
75
+ if ("text" in result)
76
+ return result.text;
77
+ return result.value.map((item) => (typeof item === "string" ? item : item.text)).join(" ");
78
+ }
79
+ export function sealChunk(chunk, result) {
80
+ if (chunk.completed)
81
+ return;
82
+ rememberJobResult(chunk, resultNoteText(result), RESULT_NOTE_CHARS);
83
+ chunk.outcomeSnap = result;
84
+ chunk.markComplete();
85
+ }
86
+ export function cancelLiveInvocations(job, host, reason) {
87
+ for (const inner of job.children) {
88
+ if (!(inner instanceof ToolCallJob))
89
+ continue;
90
+ if (inner.completed || inner.cancelled)
91
+ continue;
92
+ if (inner instanceof MCPToolJob && inner.dispatched)
93
+ continue; // on-wire mutation — do not cancel a dispatched call
94
+ if (inner.orchestrated) {
95
+ host.abort?.(inner, reason);
96
+ inner.cancelled = true;
97
+ continue;
98
+ }
99
+ rejectInner(inner, reason);
100
+ }
101
+ }
102
+ export function hostAbortReason(host) {
103
+ return host.signal?.aborted === true ? host.signal.reason : undefined;
104
+ }
105
+ export function parked(host) {
106
+ return host.signal != null && isParkAbort(host.signal);
107
+ }
108
+ export function cancelled(host) {
109
+ return host.signal != null && host.signal.aborted && !isParkAbort(host.signal);
110
+ }
111
+ export async function waitPeriod(ms, signal) {
112
+ if (signal == null) {
113
+ await new Promise((resolve) => {
114
+ setTimeout(resolve, ms);
115
+ });
116
+ return "elapsed";
117
+ }
118
+ const live = signal;
119
+ if (live.aborted)
120
+ return isParkAbort(live) ? "park" : "abort";
121
+ return await new Promise((resolve) => {
122
+ const timer = setTimeout(() => finish("elapsed"), ms);
123
+ const onAbort = () => finish(isParkAbort(live) ? "park" : "abort");
124
+ function finish(result) {
125
+ clearTimeout(timer);
126
+ live.removeEventListener("abort", onAbort);
127
+ resolve(result);
128
+ }
129
+ live.addEventListener("abort", onAbort, { once: true });
130
+ });
131
+ }
132
+ export function createEvaluationTimeout(hostSignal, timeoutMs) {
133
+ const controller = new AbortController();
134
+ const timer = timeoutMs == null
135
+ ? undefined
136
+ : setTimeout(() => controller.abort(new Error(`evaluation timed out after ${timeoutMs}ms`)), timeoutMs);
137
+ const signal = timeoutMs == null
138
+ ? (hostSignal ?? controller.signal)
139
+ : hostSignal == null
140
+ ? controller.signal
141
+ : AbortSignal.any([hostSignal, controller.signal]);
142
+ return { signal, dispose: () => clearTimeout(timer) };
143
+ }
144
+ function handleEvaluationStop(chunk, host, signal, timeoutMs, error) {
145
+ if (parked(host) || isParkAbort(signal))
146
+ return { kind: "park" };
147
+ if (cancelled(host)) {
148
+ cancelLiveInvocations(chunk, host, hostAbortReason(host));
149
+ return { kind: "halt", result: fail("Error: Scheme REPL call cancelled") };
150
+ }
151
+ const halt = haltResult(signal, timeoutMs, error);
152
+ if (halt) {
153
+ cancelLiveInvocations(chunk, host, signal.reason);
154
+ return { kind: "halt", result: halt };
155
+ }
156
+ return undefined;
157
+ }
158
+ /** One run under the host's trace, if it keeps one. */
159
+ export function observed(host, run) {
160
+ return host.observe === undefined ? run(undefined) : host.observe(run);
161
+ }
162
+ export async function evaluateForms(chunk, host, forms, opts, runtime) {
163
+ const { timeoutMs, maxInternalCalls } = opts;
164
+ const tick = opts.kind === "period" ? opts.tick : undefined;
165
+ const shared = opts.kind === "source-load" || opts.kind === "source-body" ? opts.shared : undefined;
166
+ const loadSource = opts.kind === "source-load";
167
+ const collectPrintedValues = !loadSource;
168
+ const tools = host.tools();
169
+ const capabilities = runtime.capabilities;
170
+ const config = runtime.config;
171
+ const stopOnFormError = tick != null || loadSource;
172
+ // Per tick, not per watch: remint so numeric provenance ids are path-stable across periods.
173
+ const trace = opts.trace ?? (tick == null ? undefined : new EvalTrace());
174
+ let timeout;
175
+ let signal = shared?.signal;
176
+ try {
177
+ // Rooting the prelude is not the program. A short eval limit must not fire during that setup.
178
+ let scope = shared?.scope;
179
+ if (scope === undefined) {
180
+ const setupSignal = shared?.signal ?? host.signal;
181
+ const rooted = await execState("", {
182
+ capabilities,
183
+ config,
184
+ ...(setupSignal != null ? { signal: setupSignal } : {}),
185
+ });
186
+ scope = rooted.scope;
187
+ if (shared !== undefined)
188
+ shared.scope = scope;
189
+ }
190
+ if (shared == null) {
191
+ timeout = createEvaluationTimeout(host.signal, timeoutMs);
192
+ signal = timeout.signal;
193
+ }
194
+ const origin = tick?.origin ?? 0;
195
+ runtime.beginTick({ signal: signal ?? new AbortController().signal, origin, maxInternalCalls });
196
+ const evaluated = forms.map((raw) => ({ raw, form: stripTopLevelDisplay(raw) }));
197
+ let emission = shared?.emission;
198
+ if (emission === undefined) {
199
+ emission = harnessEmission(evaluated.map((item) => item.form));
200
+ if (shared !== undefined)
201
+ shared.emission = emission;
202
+ }
203
+ else if (opts.kind === "source-body") {
204
+ extendEmission(emission, evaluated.map((item) => item.form));
205
+ }
206
+ const epoch = crossingEpoch(chunk, origin);
207
+ armCrossings(emission, origin, epoch, opts.kind !== "source-body");
208
+ if (host.replayOnly === true)
209
+ markReplaying(emission);
210
+ const started = Date.now();
211
+ const values = [];
212
+ const displaySink = createDisplaySink();
213
+ let lastRaw;
214
+ let failures = 0;
215
+ let failureCode;
216
+ for (const item of evaluated) {
217
+ runtime.clearFailure();
218
+ const remainingMs = timeoutMs == null ? undefined : timeoutMs - (Date.now() - started);
219
+ try {
220
+ const state = await execState(item.form, {
221
+ capabilities,
222
+ config,
223
+ scope,
224
+ signal,
225
+ display: displaySink,
226
+ emission,
227
+ ...(remainingMs == null ? {} : { budgetMs: remainingMs }),
228
+ ...(trace == null ? {} : { tap: trace }),
229
+ });
230
+ const wasTopLevelDisplay = tick == null && isTopLevelDisplay(item.raw);
231
+ for (const value of state.values) {
232
+ if (value instanceof AVoid)
233
+ continue;
234
+ lastRaw = value;
235
+ if (!collectPrintedValues)
236
+ continue;
237
+ const printed = observationText(value);
238
+ values.push(wasTopLevelDisplay ? withDisplayNote(printed) : printed);
239
+ }
240
+ for (const rec of displaySink.drain()) {
241
+ values.push(`#| ${rec.src}: ${toSExprString(rec.value)} |#`);
242
+ }
243
+ }
244
+ catch (error) {
245
+ const stopped = signal == null ? undefined : handleEvaluationStop(chunk, host, signal, timeoutMs, error);
246
+ if (stopped != null)
247
+ return stopped;
248
+ const raw = errorText(error).replace(/^Error:\s*/, "");
249
+ // A failed form leaves its defines unbound. Later "Unbound variable" is the cascade, not a second fault.
250
+ const attempted = UNBOUND_VARIABLE.exec(raw)?.[1];
251
+ if (attempted != null && failures > 0)
252
+ continue;
253
+ let text = raw.startsWith("Error:") ? raw : `Error: ${raw}`;
254
+ if (attempted != null) {
255
+ const door = unboundInExprDoor(attempted, [...tools.keys()], tools, SCHEME_REPL_NAMING, new Map([...tools].map(([name, tool]) => [name, tool.schema]))) ?? importDoor(attempted);
256
+ if (door !== undefined)
257
+ text = `${text}${host.doors.enrichInline(door, attempted)}`;
258
+ }
259
+ values.push(text);
260
+ failures += 1;
261
+ failureCode ??= failureCodeOf(error) ?? runtime.failureCode();
262
+ if (stopOnFormError)
263
+ break;
264
+ }
265
+ }
266
+ if (failures > 0)
267
+ return { kind: "fail", values, code: failureCode };
268
+ if (lastRaw === undefined || host.evalProgram !== true)
269
+ return { kind: "ok", values };
270
+ return { kind: "ok", values, ...structuredJson(lastRaw) };
271
+ }
272
+ catch (error) {
273
+ const stopped = signal == null ? undefined : handleEvaluationStop(chunk, host, signal, timeoutMs, error);
274
+ if (stopped != null)
275
+ return stopped;
276
+ return { kind: "fail", values: [errorText(error)] };
277
+ }
278
+ finally {
279
+ timeout?.dispose();
280
+ try {
281
+ if (opts.trace === undefined)
282
+ trace?.clear();
283
+ }
284
+ catch {
285
+ /* mid-eval abort — next tick remints */
286
+ }
287
+ }
288
+ }
289
+ function withDisplayNote(value) {
290
+ if (typeof value === "string")
291
+ return `${SCHEME_REPL_DISPLAY_NOTE}\n${value}`;
292
+ return { ...value, text: `${SCHEME_REPL_DISPLAY_NOTE}\n${value.text}` };
293
+ }
294
+ export function printedValues(values, kinds) {
295
+ return [...kinds.map((kind) => SCHEME_REPL_UNWRAP_NOTES[kind]), ...values];
296
+ }
297
+ export async function guardProgram(chunk, host, body) {
298
+ try {
299
+ await body();
300
+ }
301
+ catch (error) {
302
+ if (!chunk.completed && !parked(host) && !cancelled(host)) {
303
+ cancelLiveInvocations(chunk, host, error);
304
+ sealChunk(chunk, fail(errorText(error)));
305
+ }
306
+ }
307
+ finally {
308
+ if (!chunk.completed && !parked(host)) {
309
+ cancelLiveInvocations(chunk, host, hostAbortReason(host));
310
+ if (cancelled(host))
311
+ chunk.cancelled = true;
312
+ sealChunk(chunk, fail("Error: Scheme REPL call cancelled"));
313
+ }
314
+ }
315
+ }
316
+ //# sourceMappingURL=evaluate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../src/evaluate.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAuC,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,EACb,OAAO,EAEP,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,UAAU,EAEV,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,GACZ,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAE/E,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EAAE,cAAc,EAAE,eAAe,EAAwB,MAAM,eAAe,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,IAAmB,EAAE,MAAgB,EAAQ,EAAE;IACzE,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9B,IAAI,IAAI,YAAY,OAAO;QAAE,OAAO;AACtC,CAAC,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,kCAAkC,CAAC;AA6C5D,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;QAAE,OAAO,mCAAmC,CAAC;IACpG,IAAI,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC;IAC7D,CAAC;IACD,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnE,OAAO,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,IAAY,EAAE,IAAa;IAC9C,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACvF,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,eAAe,CAAC,KAAkB;IAChD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,KAAK,YAAY,OAAO,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE;YAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;QACrF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAmB;IAChD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;AACxD,CAAC;AAED,SAAS,WAAW,CAAC,MAAmB;IACtC,OAAO,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC;AACpD,CAAC;AAED,SAAS,YAAY,CAAC,SAA6B;IACjD,OAAO,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,qCAAqC,SAAS,IAAI,CAAC;AAChH,CAAC;AAED,SAAS,UAAU,CAAC,MAAmB,EAAE,SAA6B,EAAE,KAAe;IACrF,IAAI,WAAW,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,IAAI,KAAK,WAAW;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IAC7F,CAAC;IACD,IAAI,KAAK,YAAY,KAAK,IAAI,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9E,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,cAAc,CAAC,MAAkB;IACxC,IAAI,MAAM,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC;IACzC,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7F,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAsB,EAAE,MAAkB;IAClE,IAAI,KAAK,CAAC,SAAS;QAAE,OAAO;IAC5B,iBAAiB,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACpE,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC;IAC3B,KAAK,CAAC,YAAY,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAAoB,EAAE,IAAiB,EAAE,MAAgB;IAC7F,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjC,IAAI,CAAC,CAAC,KAAK,YAAY,WAAW,CAAC;YAAE,SAAS;QAC9C,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS;YAAE,SAAS;QACjD,IAAI,KAAK,YAAY,UAAU,IAAI,KAAK,CAAC,UAAU;YAAE,SAAS,CAAC,qDAAqD;QAEpH,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC5B,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;YACvB,SAAS;QACX,CAAC;QACD,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAiB;IAC/C,OAAO,IAAI,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAiB;IACtC,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAiB;IACzC,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,EAAU,EAAE,MAAoB;IAC/D,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC5B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC;IACpB,IAAI,IAAI,CAAC,OAAO;QAAE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAC9D,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,GAAS,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACzE,SAAS,MAAM,CAAC,MAAoC;YAClD,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC3C,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,UAAmC,EACnC,SAA6B;IAE7B,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GACT,SAAS,IAAI,IAAI;QACf,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,8BAA8B,SAAS,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAC5G,MAAM,MAAM,GACV,SAAS,IAAI,IAAI;QACf,CAAC,CAAC,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,CAAC;QACnC,CAAC,CAAC,UAAU,IAAI,IAAI;YAClB,CAAC,CAAC,UAAU,CAAC,MAAM;YACnB,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACzD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;AACxD,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAAsB,EACtB,IAAiB,EACjB,MAAmB,EACnB,SAA6B,EAC7B,KAAc;IAEd,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACjE,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,mCAAmC,CAAC,EAAE,CAAC;IAC7E,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAClD,IAAI,IAAI,EAAE,CAAC;QACT,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAClD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACxC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,QAAQ,CAAI,IAAiB,EAAE,GAAiD;IAC9F,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,KAAsB,EACtB,IAAiB,EACjB,KAA6B,EAC7B,IAAkB,EAClB,OAAuB;IAEvB,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,aAAa,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACpG,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC;IAC/C,MAAM,oBAAoB,GAAG,CAAC,UAAU,CAAC;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,MAAM,eAAe,GAAG,IAAI,IAAI,IAAI,IAAI,UAAU,CAAC;IACnD,4FAA4F;IAC5F,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC;IACzE,IAAI,OAAmF,CAAC;IACxF,IAAI,MAAM,GAA4B,MAAM,EAAE,MAAM,CAAC;IAErD,IAAI,CAAC;QACH,8FAA8F;QAC9F,IAAI,KAAK,GAAG,MAAM,EAAE,KAAK,CAAC;QAC1B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,WAAW,GAAG,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;YAClD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,EAAE,EAAE;gBACjC,YAAY;gBACZ,MAAM;gBACN,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxD,CAAC,CAAC;YACH,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YACrB,IAAI,MAAM,KAAK,SAAS;gBAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACjD,CAAC;QACD,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC1D,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC1B,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC;QACjC,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAChG,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACjF,IAAI,QAAQ,GAAG,MAAM,EAAE,QAAQ,CAAC;QAChC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,QAAQ,GAAG,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/D,IAAI,MAAM,KAAK,SAAS;gBAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACvD,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACvC,cAAc,CACZ,QAAQ,EACR,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CACnC,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3C,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;QACnE,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI;YAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAmB,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;QACxC,IAAI,OAAgC,CAAC;QACrC,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,WAA+B,CAAC;QACpC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,OAAO,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,WAAW,GAAG,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC;YACvF,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE;oBACvC,YAAY;oBACZ,MAAM;oBACN,KAAK;oBACL,MAAM;oBACN,OAAO,EAAE,WAAW;oBACpB,QAAQ;oBACR,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;oBACzD,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;iBACzC,CAAC,CAAC;gBACH,MAAM,kBAAkB,GAAG,IAAI,IAAI,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvE,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;oBACjC,IAAI,KAAK,YAAY,KAAK;wBAAE,SAAS;oBACrC,OAAO,GAAG,KAAK,CAAC;oBAChB,IAAI,CAAC,oBAAoB;wBAAE,SAAS;oBACpC,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;oBACvC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBACvE,CAAC;gBACD,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC;oBACtC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAChE,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;gBACzG,IAAI,OAAO,IAAI,IAAI;oBAAE,OAAO,OAAO,CAAC;gBACpC,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;gBACvD,yGAAyG;gBACzG,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAClD,IAAI,SAAS,IAAI,IAAI,IAAI,QAAQ,GAAG,CAAC;oBAAE,SAAS;gBAChD,IAAI,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC;gBAC5D,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;oBACtB,MAAM,IAAI,GACR,iBAAiB,CACf,SAAS,EACT,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,EACjB,KAAK,EACL,kBAAkB,EAClB,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAC/D,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;oBAC7B,IAAI,IAAI,KAAK,SAAS;wBAAE,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;gBACtF,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClB,QAAQ,IAAI,CAAC,CAAC;gBACd,WAAW,KAAK,aAAa,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBAC9D,IAAI,eAAe;oBAAE,MAAM;YAC7B,CAAC;QACH,CAAC;QACD,IAAI,QAAQ,GAAG,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QACrE,IAAI,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI;YAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACtF,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QACzG,IAAI,OAAO,IAAI,IAAI;YAAE,OAAO,OAAO,CAAC;QACpC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;IACtD,CAAC;YAAS,CAAC;QACT,OAAO,EAAE,OAAO,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;gBAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,wCAAwC;QAC1C,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,KAAmB;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,GAAG,wBAAwB,KAAK,KAAK,EAAE,CAAC;IAC9E,OAAO,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,GAAG,wBAAwB,KAAK,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAA+B,EAAE,KAAgC;IAC7F,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,KAAsB,EACtB,IAAiB,EACjB,IAAyB;IAEzB,IAAI,CAAC;QACH,MAAM,IAAI,EAAE,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1D,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC1C,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;YAAS,CAAC;QACT,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1D,IAAI,SAAS,CAAC,IAAI,CAAC;gBAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;YAC5C,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { AgentCallNotification, type ProgrammaticJob } from "@inhuman.tools/harness-model";
2
+ export declare class SchemeReplToolFailure extends Error {
3
+ readonly code?: string;
4
+ constructor(message: string, code?: string);
5
+ }
6
+ export declare function failureCodeOf(error: unknown): string | undefined;
7
+ export declare function appendNotify(job: ProgrammaticJob, host: {
8
+ readonly notify?: (note: AgentCallNotification) => void;
9
+ }, message: string): void;
10
+ //# sourceMappingURL=failure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failure.d.ts","sourceRoot":"","sources":["../src/failure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE3F,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBACX,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAK3C;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAUhE;AAED,wBAAgB,YAAY,CAC1B,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAA;CAAE,EACjE,OAAO,EAAE,MAAM,GACd,IAAI,CAON"}
@@ -0,0 +1,30 @@
1
+ import { AgentCallNotification } from "@inhuman.tools/harness-model";
2
+ export class SchemeReplToolFailure extends Error {
3
+ code;
4
+ constructor(message, code) {
5
+ super(message);
6
+ this.name = "SchemeReplToolFailure";
7
+ this.code = code;
8
+ }
9
+ }
10
+ export function failureCodeOf(error) {
11
+ let current = error;
12
+ for (let i = 0; i < 6; i++) {
13
+ if (!(current instanceof Error))
14
+ return undefined;
15
+ if (current instanceof SchemeReplToolFailure && current.code != null && current.code !== "") {
16
+ return current.code;
17
+ }
18
+ current = current.cause;
19
+ }
20
+ return undefined;
21
+ }
22
+ export function appendNotify(job, host, message) {
23
+ const note = new AgentCallNotification({ message });
24
+ if (host.notify != null) {
25
+ host.notify(note);
26
+ return;
27
+ }
28
+ job.notifications.push(note);
29
+ }
30
+ //# sourceMappingURL=failure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failure.js","sourceRoot":"","sources":["../src/failure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAwB,MAAM,8BAA8B,CAAC;AAE3F,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IACrC,IAAI,CAAU;IACvB,YAAY,OAAe,EAAE,IAAa;QACxC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,OAAO,YAAY,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAClD,IAAI,OAAO,YAAY,qBAAqB,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;YAC5F,OAAO,OAAO,CAAC,IAAI,CAAC;QACtB,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;IAC1B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,GAAoB,EACpB,IAAiE,EACjE,OAAe;IAEf,MAAM,IAAI,GAAG,IAAI,qBAAqB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IACpD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO;IACT,CAAC;IACD,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Path stamp on a `read_file` string. Identity-keyed: substring/append mint a
3
+ * new `AString` and drop it. `withProvenance` clones the same box — copy the
4
+ * stamp onto the clone. Not provenance.
5
+ */
6
+ import { AString } from "@here.build/arrival/reflect-internals";
7
+ export declare function stampFilePath(value: AString, path: string): AString;
8
+ export declare function filePathOf(value: unknown): string | undefined;
9
+ //# sourceMappingURL=file-path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-path.d.ts","sourceRoot":"","sources":["../src/file-path.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAC;AAchE,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAGnE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAE7D"}