@inhuman.tools/scheme-watch 0.1.0 → 0.3.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.
package/dist/run.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAKA,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAExF,OAAO,EAkBL,KAAK,WAAW,EACjB,MAAM,oCAAoC,CAAC;AAI5C,wBAAgB,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,CAqBxD;AAED,wBAAsB,QAAQ,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA+FvF"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAKA,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAExF,OAAO,EAmBL,KAAK,WAAW,EACjB,MAAM,oCAAoC,CAAC;AAI5C,wBAAgB,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,CAsBxD;AAED,wBAAsB,QAAQ,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAkGvF"}
package/dist/run.js CHANGED
@@ -5,12 +5,13 @@
5
5
  import { metaReactivityCapability } from "@inhuman.tools/env-capability-meta-reactivity";
6
6
  import { PERIOD_BREAKER_ERR } from "@inhuman.tools/harness-model";
7
7
  import { watchArgsSchema } from "@inhuman.tools/harness-model/schemas";
8
- import { appendNotify, cancelLiveInvocations, cancelled, displayPrinted, evaluateForms, fail, guardProgram, hostAbortReason, moduleRootOf, observationText, observed, openProgram, parked, printedValues, programRuntimeOf, sealChunk, waitPeriod, } from "@inhuman.tools/scheme-program/eval";
8
+ import { appendNotify, canApplyProgramResults, cancelLiveInvocations, cancelled, displayPrinted, evaluateForms, fail, guardProgram, hostAbortReason, moduleRootOf, observationText, observed, openProgram, parked, printedValues, programRuntimeOf, sealChunk, waitPeriod, } from "@inhuman.tools/scheme-program/eval";
9
9
  import { reachableDoneCondition } from "./period.js";
10
10
  export function watchHost(host) {
11
11
  return {
12
12
  identity: host.identity,
13
13
  signal: host.signal,
14
+ canApplyResults: host.canApplyResults,
14
15
  doors: host.doors,
15
16
  root: host.root,
16
17
  abort: host.abort,
@@ -39,7 +40,7 @@ export async function runWatch(chunk, host) {
39
40
  return;
40
41
  }
41
42
  const opened = await openProgram(chunk, watching, parsed.data);
42
- if (opened == null)
43
+ if (opened == null || !canApplyProgramResults(watching))
43
44
  return;
44
45
  if (opened.periodMs === undefined || !reachableDoneCondition(opened.forms)) {
45
46
  sealChunk(chunk, fail(`Error: ${PERIOD_BREAKER_ERR}`));
@@ -50,6 +51,8 @@ export async function runWatch(chunk, host) {
50
51
  const runtime = programRuntimeOf(chunk, watching);
51
52
  runtime.arm({ watching: true, moduleRoot: root });
52
53
  while (!chunk.completed) {
54
+ if (!canApplyProgramResults(watching))
55
+ return;
53
56
  if (parked(watching))
54
57
  return;
55
58
  if (cancelled(watching)) {
@@ -60,6 +63,8 @@ export async function runWatch(chunk, host) {
60
63
  const left = chunk.periodWaitUntilMs - Date.now();
61
64
  if (left > 0) {
62
65
  const waited = await waitPeriod(left, watching.signal);
66
+ if (!canApplyProgramResults(watching))
67
+ return;
63
68
  if (waited === "park")
64
69
  return;
65
70
  if (waited === "abort") {
@@ -80,6 +85,8 @@ export async function runWatch(chunk, host) {
80
85
  tick: { origin: chunk.periodChildAt },
81
86
  trace,
82
87
  }, runtime));
88
+ if (!canApplyProgramResults(watching))
89
+ return;
83
90
  if (outcome.kind === "park")
84
91
  return;
85
92
  if (outcome.kind === "halt") {
package/dist/run.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inhuman.tools/scheme-watch",
3
- "version": "0.1.0",
3
+ "version": "0.3.0",
4
4
  "description": "Scheme watchdog tool. Re-evaluates one ProgrammaticJob on a period and roots meta-reactivity. Vocabulary still comes from the host.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -19,15 +19,15 @@
19
19
  ],
20
20
  "dependencies": {
21
21
  "@here.build/arrival": "^0.10.2",
22
- "@inhuman.tools/harness-model": "^0.1.0",
23
- "@inhuman.tools/scheme-program": "^0.1.0",
24
- "@inhuman.tools/env-capability-meta-reactivity": "^0.1.0"
22
+ "@inhuman.tools/harness-model": "^0.3.0",
23
+ "@inhuman.tools/env-capability-meta-reactivity": "^0.2.0",
24
+ "@inhuman.tools/scheme-program": "^0.3.0"
25
25
  },
26
26
  "devDependencies": {
27
- "@types/node": "^24.0.0",
28
- "eslint": "9.39.2",
29
- "typescript": "6.0.2",
30
- "vitest": "4.1.0",
27
+ "@types/node": "^24.19.2",
28
+ "eslint": "10.13.0",
29
+ "typescript": "6.0.3",
30
+ "vitest": "5.0.5",
31
31
  "@-internal-/eslint-configs": "0.0.0",
32
32
  "@inhuman.tools/substrate": "^0.9.0"
33
33
  },
package/src/run.ts CHANGED
@@ -7,6 +7,7 @@ import { PERIOD_BREAKER_ERR, type ProgrammaticJob } from "@inhuman.tools/harness
7
7
  import { watchArgsSchema } from "@inhuman.tools/harness-model/schemas";
8
8
  import {
9
9
  appendNotify,
10
+ canApplyProgramResults,
10
11
  cancelLiveInvocations,
11
12
  cancelled,
12
13
  displayPrinted,
@@ -32,6 +33,7 @@ export function watchHost(host: ProgramHost): ProgramHost {
32
33
  return {
33
34
  identity: host.identity,
34
35
  signal: host.signal,
36
+ canApplyResults: host.canApplyResults,
35
37
  doors: host.doors,
36
38
  root: host.root,
37
39
  abort: host.abort,
@@ -61,7 +63,7 @@ export async function runWatch(chunk: ProgrammaticJob, host: ProgramHost): Promi
61
63
  return;
62
64
  }
63
65
  const opened = await openProgram(chunk, watching, parsed.data);
64
- if (opened == null) return;
66
+ if (opened == null || !canApplyProgramResults(watching)) return;
65
67
  if (opened.periodMs === undefined || !reachableDoneCondition(opened.forms)) {
66
68
  sealChunk(chunk, fail(`Error: ${PERIOD_BREAKER_ERR}`));
67
69
  return;
@@ -71,6 +73,7 @@ export async function runWatch(chunk: ProgrammaticJob, host: ProgramHost): Promi
71
73
  const runtime = programRuntimeOf(chunk, watching);
72
74
  runtime.arm({ watching: true, moduleRoot: root });
73
75
  while (!chunk.completed) {
76
+ if (!canApplyProgramResults(watching)) return;
74
77
  if (parked(watching)) return;
75
78
  if (cancelled(watching)) {
76
79
  cancelLiveInvocations(chunk, watching, hostAbortReason(watching));
@@ -81,6 +84,7 @@ export async function runWatch(chunk: ProgrammaticJob, host: ProgramHost): Promi
81
84
  const left = chunk.periodWaitUntilMs - Date.now();
82
85
  if (left > 0) {
83
86
  const waited = await waitPeriod(left, watching.signal);
87
+ if (!canApplyProgramResults(watching)) return;
84
88
  if (waited === "park") return;
85
89
  if (waited === "abort") {
86
90
  cancelLiveInvocations(chunk, watching, hostAbortReason(watching));
@@ -109,6 +113,7 @@ export async function runWatch(chunk: ProgrammaticJob, host: ProgramHost): Promi
109
113
  runtime,
110
114
  ),
111
115
  );
116
+ if (!canApplyProgramResults(watching)) return;
112
117
  if (outcome.kind === "park") return;
113
118
  if (outcome.kind === "halt") {
114
119
  if (cancelled(watching)) return;