@nyte-ai/core 0.0.19 → 0.0.21

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 (112) hide show
  1. package/dist/chunks/{compose-54svedb8.js → compose-0m65m83c.js} +7 -7
  2. package/dist/chunks/{compose-hf6xkwdw.js → compose-12jnd50a.js} +6 -6
  3. package/dist/chunks/{compose-6m60v1pk.js → compose-1knxqqm1.js} +3 -3
  4. package/dist/chunks/{compose-m6nsbnkk.js → compose-1r0wr5dc.js} +5 -5
  5. package/dist/chunks/{compose-57j0pme0.js → compose-2rha31fc.js} +3 -3
  6. package/dist/chunks/{compose-qknd62yj.js → compose-4ppmas7g.js} +2 -2
  7. package/dist/chunks/{compose-jrqn6xhy.js → compose-753gc057.js} +5 -5
  8. package/dist/chunks/{compose-xaegezm3.js → compose-8mkfr84d.js} +17 -18
  9. package/dist/chunks/{compose-h3pch7ch.js → compose-8pp3vtv0.js} +2 -2
  10. package/dist/chunks/{compose-m1ecjzm2.js → compose-9hy3p236.js} +7 -7
  11. package/dist/chunks/{compose-seyhq3fb.js → compose-a8ddt55n.js} +6 -6
  12. package/dist/chunks/{compose-rd5e5nxg.js → compose-ad80nkkn.js} +1 -1
  13. package/dist/chunks/{compose-r1pxdxbw.js → compose-ae5t6v5b.js} +2 -2
  14. package/dist/chunks/{compose-q1rrtq3a.js → compose-b2bf1jvy.js} +120 -39
  15. package/dist/chunks/{compose-pnsvwd3m.js → compose-bbhk8vnr.js} +1 -1
  16. package/dist/chunks/{compose-eemt6sea.js → compose-byse0eqj.js} +3 -3
  17. package/dist/chunks/{compose-ks2rdteq.js → compose-bz70g01d.js} +2 -2
  18. package/dist/chunks/{compose-0827b2k4.js → compose-c9wxgbjp.js} +1 -1
  19. package/dist/chunks/{compose-z6hbq6y0.js → compose-cdj05t7x.js} +4 -4
  20. package/dist/chunks/{compose-tb5ywdfk.js → compose-d1m94kzq.js} +13 -8
  21. package/dist/chunks/{compose-c2rnebv0.js → compose-d95fwwvw.js} +1 -1
  22. package/dist/chunks/{compose-gxvetm0j.js → compose-e2fyz3xc.js} +3 -3
  23. package/dist/chunks/{compose-s5522cth.js → compose-e9f6nrwp.js} +12 -12
  24. package/dist/chunks/{compose-prchdrqk.js → compose-fnncnk81.js} +3 -3
  25. package/dist/chunks/{compose-bjx8s01m.js → compose-fqsqjbrf.js} +1 -1
  26. package/dist/chunks/{compose-v9yf9mrh.js → compose-gj2ypr7q.js} +2 -2
  27. package/dist/chunks/{compose-zch4zapc.js → compose-hfrjm4a1.js} +1 -1
  28. package/dist/chunks/{compose-w2ac7xjx.js → compose-hfsn6pnt.js} +1 -1
  29. package/dist/chunks/{compose-4770pb1s.js → compose-jd4bsnqh.js} +3 -3
  30. package/dist/chunks/{compose-31zqcfte.js → compose-jeemzja1.js} +2 -2
  31. package/dist/chunks/{compose-mamr4qwf.js → compose-jmmyw9hd.js} +2 -2
  32. package/dist/chunks/{compose-jhs91x01.js → compose-jwy1gba9.js} +1 -1
  33. package/dist/chunks/{compose-se7wwcq1.js → compose-m01wspwf.js} +1 -1
  34. package/dist/chunks/{compose-n93897b0.js → compose-m91ffwss.js} +1 -1
  35. package/dist/chunks/{compose-47f47sgy.js → compose-matk94se.js} +4 -4
  36. package/dist/chunks/{compose-hms4hf6p.js → compose-mcz93154.js} +63 -47
  37. package/dist/chunks/{compose-exfx5b4d.js → compose-mdwr0er9.js} +2 -2
  38. package/dist/chunks/{compose-y9c31w4e.js → compose-nkxwrphm.js} +30 -13
  39. package/dist/chunks/{compose-5cmp34zp.js → compose-pkprmn5b.js} +11 -11
  40. package/dist/chunks/{compose-5489evqa.js → compose-q2zxbg41.js} +29 -29
  41. package/dist/chunks/{compose-jehg40ce.js → compose-qxfq6dn9.js} +5 -5
  42. package/dist/chunks/{compose-azq5jxr2.js → compose-r8tz1xfj.js} +4 -4
  43. package/dist/chunks/{compose-ccrh32hd.js → compose-sprfv38c.js} +2 -2
  44. package/dist/chunks/{compose-pe0cgbv0.js → compose-t9fcqtby.js} +4 -4
  45. package/dist/chunks/{compose-g2a1f1yx.js → compose-tppkp915.js} +2 -2
  46. package/dist/chunks/{compose-gvrqkyn4.js → compose-w6zb11k1.js} +3 -3
  47. package/dist/chunks/{compose-1g03zpvn.js → compose-wvzzf8n2.js} +5 -5
  48. package/dist/chunks/compose-yfcb6w2h.js +58 -0
  49. package/dist/chunks/{compose-0rx7ygxq.js → compose-zaanjpb7.js} +1 -1
  50. package/dist/chunks/{compose-q1d09qpr.js → compose-zjj072km.js} +6 -6
  51. package/dist/src/agent/compaction.js +23 -23
  52. package/dist/src/agent/request.js +14 -14
  53. package/dist/src/agent/tool-runner.d.ts +2 -0
  54. package/dist/src/agent/tool-runner.js +18 -15
  55. package/dist/src/agent/transcript.js +20 -20
  56. package/dist/src/agent/turn.js +28 -27
  57. package/dist/src/api/connection.js +41 -40
  58. package/dist/src/api/head.js +27 -26
  59. package/dist/src/api/part.js +8 -8
  60. package/dist/src/api/server.js +30 -29
  61. package/dist/src/api/session.js +33 -32
  62. package/dist/src/builtins/delegation.js +2 -2
  63. package/dist/src/builtins/environment.js +1 -2
  64. package/dist/src/compose.js +50 -49
  65. package/dist/src/contract/parts.d.ts +4 -0
  66. package/dist/src/contract/parts.js +1 -1
  67. package/dist/src/contract/tools.d.ts +10 -1
  68. package/dist/src/contract/workspace.d.ts +2 -0
  69. package/dist/src/drive/execution.js +28 -27
  70. package/dist/src/engine/admission.js +10 -10
  71. package/dist/src/engine/batches.js +8 -8
  72. package/dist/src/engine/branch-summary.js +7 -7
  73. package/dist/src/engine/durable.js +6 -6
  74. package/dist/src/engine/fence.js +6 -6
  75. package/dist/src/engine/jobs.d.ts +1 -0
  76. package/dist/src/engine/jobs.js +15 -13
  77. package/dist/src/engine/move.js +9 -9
  78. package/dist/src/engine/part-definitions.js +2 -2
  79. package/dist/src/engine/principals.js +5 -5
  80. package/dist/src/engine/receipts.js +7 -7
  81. package/dist/src/engine/runs.js +11 -11
  82. package/dist/src/engine/start.js +22 -21
  83. package/dist/src/engine/waits.js +5 -5
  84. package/dist/src/env/browser.js +13 -13
  85. package/dist/src/env/environment.js +15 -15
  86. package/dist/src/env/mcp.js +17 -17
  87. package/dist/src/env/session-changes.d.ts +10 -0
  88. package/dist/src/env/session-changes.js +15 -0
  89. package/dist/src/env/trust.js +16 -16
  90. package/dist/src/env/workspaces.js +20 -19
  91. package/dist/src/env/worktrees.js +21 -20
  92. package/dist/src/extend/activation.js +21 -20
  93. package/dist/src/extend/hooks.js +8 -8
  94. package/dist/src/extend/models.js +13 -13
  95. package/dist/src/extend/plugin-api.js +5 -5
  96. package/dist/src/extend/plugin-runtime.js +27 -26
  97. package/dist/src/extend/registry.js +12 -12
  98. package/dist/src/extend/resources.js +17 -17
  99. package/dist/src/extend/settings.js +23 -22
  100. package/dist/src/extend/workspace-commands.js +28 -27
  101. package/dist/src/fold/commit.js +4 -4
  102. package/dist/src/fold/seen.js +5 -5
  103. package/dist/src/fold/view.js +6 -6
  104. package/dist/src/fold/watch.js +3 -3
  105. package/dist/src/harness.d.ts +1 -0
  106. package/dist/src/harness.js +51 -50
  107. package/dist/src/index.d.ts +1 -1
  108. package/dist/src/index.js +1 -1
  109. package/dist/src/server.js +49 -48
  110. package/dist/src/store/parts.js +2 -2
  111. package/dist/src/testing.js +52 -51
  112. package/package.json +3 -3
@@ -17,23 +17,27 @@ import {
17
17
  readSession2,
18
18
  put2
19
19
  } from "./compose-vn7b7fdj.js";
20
+ import {
21
+ followedTrace2,
22
+ traceparent2
23
+ } from "./compose-sd0stm97.js";
20
24
  import {
21
25
  commit2
22
- } from "./compose-pnsvwd3m.js";
26
+ } from "./compose-bbhk8vnr.js";
23
27
  import {
24
28
  closable2
25
29
  } from "./compose-zfjxkavf.js";
26
30
  import {
27
31
  readJob2,
28
32
  waitFor2
29
- } from "./compose-ks2rdteq.js";
33
+ } from "./compose-bz70g01d.js";
30
34
  import {
31
35
  send2
32
- } from "./compose-pe0cgbv0.js";
36
+ } from "./compose-t9fcqtby.js";
33
37
  import {
34
38
  recordAcquisition2,
35
39
  recordedAcquisition2
36
- } from "./compose-eemt6sea.js";
40
+ } from "./compose-byse0eqj.js";
37
41
 
38
42
  // src/engine/jobs.ts
39
43
  import { asId, asSeq, foldJobChange, SdkError } from "@nyte-ai/schema";
@@ -117,13 +121,19 @@ function createJobTable2(kernel) {
117
121
  background: (session) => [...entries.values()].flatMap((entry) => {
118
122
  const item = createJobBackgroundItem(entry);
119
123
  return entry.owner?.session === session && item !== null ? [{ head: entry.owner.head, item }] : [];
120
- })
124
+ }),
125
+ release(session, call) {
126
+ const started = [...entries.values()].filter((entry) => entry.owner?.session === session && entry.owner.startedBy === call && entry.view.state.kind === "running");
127
+ for (const entry of started)
128
+ entries.set(entry.view.id, { ...entry, held: false });
129
+ return started.length > 0;
130
+ }
121
131
  };
122
132
  }
123
133
  function createJobs2(kernel, context, workspace) {
124
134
  const views = () => kernel.jobs.list(workspace).map((entry) => entry.view);
125
135
  return {
126
- start: (input) => startJob(kernel, context.origin, workspace, input),
136
+ start: (input) => startJob2(kernel, context.origin, workspace, input),
127
137
  async recover(key) {
128
138
  const entry = kernel.jobs.byKey(key);
129
139
  if (entry === undefined || entry.workspace !== workspace)
@@ -268,10 +278,11 @@ async function endJob(kernel, id, end) {
268
278
  endedAt: Date.now(),
269
279
  tail: entry.output.tail()
270
280
  }));
281
+ const held = kernel.jobs.get(id)?.held === true;
271
282
  entry.output.end(end.kind === "exited" ? end.code : null);
272
283
  const consumed = await kernel.waits.jobEnded(id, end);
273
284
  const owner = entry.owner;
274
- if (consumed || owner === null || !recorded)
285
+ if (consumed || owner === null || !recorded || held)
275
286
  return;
276
287
  await send2(kernel, {
277
288
  session: owner.session,
@@ -283,7 +294,7 @@ async function endJob(kernel, id, end) {
283
294
  return;
284
295
  });
285
296
  }
286
- async function startJob(kernel, origin, workspace, input) {
297
+ async function startJob2(kernel, origin, workspace, input, hold = false) {
287
298
  const digest = JSON.stringify([
288
299
  input.command ?? null,
289
300
  input.session ?? null,
@@ -303,10 +314,10 @@ async function startJob(kernel, origin, workspace, input) {
303
314
  if (acquired.kind === "recorded")
304
315
  return held(asId(acquired.id));
305
316
  const id = acquired.value.id;
306
- await kernel.jobs.start(id, digest, () => spawn(kernel, origin, workspace, input, id, digest));
317
+ await kernel.jobs.start(id, digest, () => spawn(kernel, origin, workspace, input, { id, digest, held: hold }));
307
318
  return jobHandle2(kernel, id);
308
319
  }
309
- async function spawn(kernel, origin, workspace, input, id, digest) {
320
+ async function spawn(kernel, origin, workspace, input, { id, digest, held }) {
310
321
  const on = async (session) => (await readSession2(kernel.store, session))?.record.workspace === workspace;
311
322
  if (input.session !== undefined && !await on(input.session))
312
323
  throw new SdkError("invalid", `Session ${input.session} is not on workspace ${workspace}.`);
@@ -341,7 +352,12 @@ async function spawn(kernel, origin, workspace, input, id, digest) {
341
352
  if (reserved.kind !== "set")
342
353
  throw new SdkError("stale", `Job ${id} was already started.`);
343
354
  }
344
- const process = await env.exec(input.command ?? [], { cwd: env.cwd, pty: input.pty }).catch(async (cause) => {
355
+ const trace = owner === null || owner.startedBy === null ? null : followedTrace2(owner.session);
356
+ const process = await env.exec(input.command ?? [], {
357
+ cwd: env.cwd,
358
+ pty: input.pty,
359
+ env: trace === null ? undefined : { TRACEPARENT: traceparent2(trace) }
360
+ }).catch(async (cause) => {
345
361
  if (owner !== null)
346
362
  await recordJobEnd(kernel, id, LOST).catch(() => false);
347
363
  throw cause;
@@ -368,7 +384,8 @@ async function spawn(kernel, origin, workspace, input, id, digest) {
368
384
  process,
369
385
  owner,
370
386
  digest,
371
- output
387
+ output,
388
+ held
372
389
  });
373
390
  pump(kernel, id, process, output);
374
391
  }
@@ -639,4 +656,4 @@ function report(view, end, tail) {
639
656
  ${text}`;
640
657
  }
641
658
 
642
- export { createJobTable2, createJobs2, jobHandle2, reapJobs2, acquire2 };
659
+ export { createJobTable2, createJobs2, jobHandle2, startJob2, reapJobs2, acquire2 };
@@ -25,7 +25,7 @@ import {
25
25
  import {
26
26
  settling2,
27
27
  failedParts2
28
- } from "./compose-c2rnebv0.js";
28
+ } from "./compose-d95fwwvw.js";
29
29
  import {
30
30
  startSpan2,
31
31
  traced2,
@@ -36,26 +36,26 @@ import {
36
36
  } from "./compose-84272xbk.js";
37
37
  import {
38
38
  commit2
39
- } from "./compose-pnsvwd3m.js";
39
+ } from "./compose-bbhk8vnr.js";
40
40
  import {
41
41
  withFold2
42
42
  } from "./compose-xhtgytrh.js";
43
43
  import {
44
44
  intendedCall2
45
- } from "./compose-eemt6sea.js";
45
+ } from "./compose-byse0eqj.js";
46
46
  import {
47
47
  stopRequested2
48
- } from "./compose-gvrqkyn4.js";
48
+ } from "./compose-w6zb11k1.js";
49
49
  import {
50
50
  awaitMcpServers2
51
- } from "./compose-v9yf9mrh.js";
51
+ } from "./compose-gj2ypr7q.js";
52
52
  import {
53
53
  publishPatch2
54
- } from "./compose-jehg40ce.js";
54
+ } from "./compose-qxfq6dn9.js";
55
55
  import {
56
56
  modelInfo2,
57
57
  withLimits2
58
- } from "./compose-exfx5b4d.js";
58
+ } from "./compose-mdwr0er9.js";
59
59
  import {
60
60
  agentLoop2
61
61
  } from "./compose-e3635qmn.js";
@@ -65,19 +65,19 @@ import {
65
65
  charge2,
66
66
  requestEvent2,
67
67
  providerContext2
68
- } from "./compose-ccrh32hd.js";
68
+ } from "./compose-sprfv38c.js";
69
69
  import {
70
70
  requestBody2,
71
71
  estimateTranscriptTokens2
72
- } from "./compose-4770pb1s.js";
72
+ } from "./compose-jd4bsnqh.js";
73
73
  import {
74
74
  compact2,
75
75
  failLeftoverCompactions2,
76
76
  readProviderCheckpoint2
77
- } from "./compose-hf6xkwdw.js";
77
+ } from "./compose-12jnd50a.js";
78
78
  import {
79
79
  executeCall2
80
- } from "./compose-hms4hf6p.js";
80
+ } from "./compose-mcz93154.js";
81
81
 
82
82
  // src/agent/turn.ts
83
83
  import { asId, isJson, SdkError } from "@nyte-ai/schema";
@@ -17,7 +17,7 @@ import {
17
17
  } from "./compose-vn7b7fdj.js";
18
18
  import {
19
19
  createPartTable2
20
- } from "./compose-c2rnebv0.js";
20
+ } from "./compose-d95fwwvw.js";
21
21
  import {
22
22
  EMPTY_CATALOG2
23
23
  } from "./compose-6gt28900.js";
@@ -25,114 +25,114 @@ import {
25
25
  createFoldCache2,
26
26
  createLogPublisher2,
27
27
  pollStore2
28
- } from "./compose-rd5e5nxg.js";
28
+ } from "./compose-ad80nkkn.js";
29
29
  import {
30
30
  createModelState2
31
31
  } from "./compose-csh5vv2t.js";
32
32
  import {
33
33
  createWaitRegistry2
34
- } from "./compose-ks2rdteq.js";
34
+ } from "./compose-bz70g01d.js";
35
35
  import {
36
36
  pluginSecrets2
37
- } from "./compose-0827b2k4.js";
37
+ } from "./compose-c9wxgbjp.js";
38
38
  import {
39
39
  settingInfos2
40
40
  } from "./compose-qwbe95qs.js";
41
41
  import {
42
42
  bumpGeneration2
43
- } from "./compose-r1pxdxbw.js";
43
+ } from "./compose-ae5t6v5b.js";
44
44
  import {
45
45
  createModelsApi2,
46
46
  createConfigurationResolver2,
47
47
  rememberChoice2
48
- } from "./compose-exfx5b4d.js";
48
+ } from "./compose-mdwr0er9.js";
49
49
  import {
50
50
  createRequest2
51
- } from "./compose-ccrh32hd.js";
51
+ } from "./compose-sprfv38c.js";
52
52
  import {
53
53
  createJobTable2,
54
54
  jobHandle2
55
- } from "./compose-y9c31w4e.js";
55
+ } from "./compose-nkxwrphm.js";
56
56
  import {
57
57
  createPageTable2
58
- } from "./compose-se7wwcq1.js";
58
+ } from "./compose-m01wspwf.js";
59
59
  import {
60
60
  createEnvironmentRegistry2
61
- } from "./compose-qknd62yj.js";
61
+ } from "./compose-4ppmas7g.js";
62
62
  import {
63
63
  dropScans2,
64
64
  resourcesPlugin2
65
- } from "./compose-mamr4qwf.js";
65
+ } from "./compose-jmmyw9hd.js";
66
66
  import {
67
67
  createCompactor2,
68
68
  createSummarizer2
69
- } from "./compose-hf6xkwdw.js";
69
+ } from "./compose-12jnd50a.js";
70
70
  import {
71
71
  stoppableTool2
72
- } from "./compose-hms4hf6p.js";
72
+ } from "./compose-mcz93154.js";
73
73
  import {
74
74
  readMcpWorkspace2
75
- } from "./compose-v9yf9mrh.js";
75
+ } from "./compose-gj2ypr7q.js";
76
76
  import {
77
77
  createTurnDriver2
78
- } from "./compose-5cmp34zp.js";
78
+ } from "./compose-pkprmn5b.js";
79
79
  import {
80
80
  openPresence2
81
81
  } from "./compose-gvm49f4b.js";
82
82
  import {
83
83
  createWorkspaceState2,
84
84
  createWorkspaces2
85
- } from "./compose-tb5ywdfk.js";
85
+ } from "./compose-d1m94kzq.js";
86
86
  import {
87
87
  sweepWorktrees2
88
- } from "./compose-gxvetm0j.js";
88
+ } from "./compose-e2fyz3xc.js";
89
89
  import {
90
90
  stopStart2
91
- } from "./compose-seyhq3fb.js";
91
+ } from "./compose-a8ddt55n.js";
92
92
  import {
93
93
  createExecutionState2,
94
94
  driveInProcess2,
95
95
  dispatchHead2
96
- } from "./compose-xaegezm3.js";
96
+ } from "./compose-8mkfr84d.js";
97
97
  import {
98
98
  createConnectionRegistry2
99
- } from "./compose-jhs91x01.js";
99
+ } from "./compose-jwy1gba9.js";
100
100
  import {
101
101
  createSettingsApi2
102
- } from "./compose-jrqn6xhy.js";
102
+ } from "./compose-753gc057.js";
103
103
  import {
104
104
  createPartDefinitions2
105
- } from "./compose-0rx7ygxq.js";
105
+ } from "./compose-zaanjpb7.js";
106
106
  import {
107
107
  createPluginState2,
108
108
  createPluginRuntime2,
109
109
  checkPlugins2,
110
110
  replacePlugins2,
111
111
  hostPluginRows2
112
- } from "./compose-m1ecjzm2.js";
112
+ } from "./compose-9hy3p236.js";
113
113
  import {
114
114
  createHostState2
115
115
  } from "./compose-xm52jghq.js";
116
116
  import {
117
117
  rerunAction2
118
- } from "./compose-azq5jxr2.js";
118
+ } from "./compose-r8tz1xfj.js";
119
119
  import {
120
120
  sessionHandle2,
121
121
  activationSession2
122
- } from "./compose-s5522cth.js";
122
+ } from "./compose-e9f6nrwp.js";
123
123
  import {
124
124
  createConnection2,
125
125
  createHost2
126
- } from "./compose-q1d09qpr.js";
126
+ } from "./compose-zjj072km.js";
127
127
  import {
128
128
  createServerHost2
129
- } from "./compose-1g03zpvn.js";
129
+ } from "./compose-wvzzf8n2.js";
130
130
  import {
131
131
  delegationPlugin2
132
- } from "./compose-n93897b0.js";
132
+ } from "./compose-m91ffwss.js";
133
133
  import {
134
134
  environmentPlugin2
135
- } from "./compose-q1rrtq3a.js";
135
+ } from "./compose-b2bf1jvy.js";
136
136
  import {
137
137
  mcpPlugin2
138
138
  } from "./compose-597de3tc.js";
@@ -28,13 +28,13 @@ import {
28
28
  } from "./compose-vn7b7fdj.js";
29
29
  import {
30
30
  failedParts2
31
- } from "./compose-c2rnebv0.js";
31
+ } from "./compose-d95fwwvw.js";
32
32
  import {
33
33
  wokenIndex2
34
34
  } from "./compose-0wq555bd.js";
35
35
  import {
36
36
  commit2
37
- } from "./compose-pnsvwd3m.js";
37
+ } from "./compose-bbhk8vnr.js";
38
38
  import {
39
39
  withFold2,
40
40
  liveParts2,
@@ -42,14 +42,14 @@ import {
42
42
  } from "./compose-xhtgytrh.js";
43
43
  import {
44
44
  waitFor2
45
- } from "./compose-ks2rdteq.js";
45
+ } from "./compose-bz70g01d.js";
46
46
  import {
47
47
  FENCED2,
48
48
  stopRun2
49
- } from "./compose-gvrqkyn4.js";
49
+ } from "./compose-w6zb11k1.js";
50
50
  import {
51
51
  send2
52
- } from "./compose-pe0cgbv0.js";
52
+ } from "./compose-t9fcqtby.js";
53
53
 
54
54
  // src/engine/runs.ts
55
55
  import { asId, isJsonObject, SdkError } from "@nyte-ai/schema";
@@ -32,19 +32,19 @@ import {
32
32
  settle3,
33
33
  release2,
34
34
  storedAnswer2
35
- } from "./compose-c2rnebv0.js";
35
+ } from "./compose-d95fwwvw.js";
36
36
  import {
37
37
  commit2
38
- } from "./compose-pnsvwd3m.js";
38
+ } from "./compose-bbhk8vnr.js";
39
39
  import {
40
40
  runAction2,
41
41
  reserveRerun2,
42
42
  openAction2,
43
43
  recordAcquisition2
44
- } from "./compose-eemt6sea.js";
44
+ } from "./compose-byse0eqj.js";
45
45
  import {
46
46
  RESERVED_PART_KINDS2
47
- } from "./compose-0rx7ygxq.js";
47
+ } from "./compose-zaanjpb7.js";
48
48
  import {
49
49
  callable2
50
50
  } from "./compose-ry29956g.js";
@@ -28,11 +28,11 @@ import {
28
28
  } from "./compose-84272xbk.js";
29
29
  import {
30
30
  commit2
31
- } from "./compose-pnsvwd3m.js";
31
+ } from "./compose-bbhk8vnr.js";
32
32
  import {
33
33
  modelInfo2,
34
34
  withLimits2
35
- } from "./compose-exfx5b4d.js";
35
+ } from "./compose-mdwr0er9.js";
36
36
 
37
37
  // src/agent/request.ts
38
38
  import { contentText } from "@nyte-ai/schema/model";
@@ -35,18 +35,18 @@ import {
35
35
  } from "./compose-sd0stm97.js";
36
36
  import {
37
37
  commit2
38
- } from "./compose-pnsvwd3m.js";
38
+ } from "./compose-bbhk8vnr.js";
39
39
  import {
40
40
  withFold2
41
41
  } from "./compose-xhtgytrh.js";
42
42
  import {
43
43
  fence2,
44
44
  finishFence2
45
- } from "./compose-gvrqkyn4.js";
45
+ } from "./compose-w6zb11k1.js";
46
46
  import {
47
47
  holdSummary2,
48
48
  summarizedMove2
49
- } from "./compose-g2a1f1yx.js";
49
+ } from "./compose-tppkp915.js";
50
50
  import {
51
51
  refusalError2,
52
52
  collectContributions2
@@ -59,7 +59,7 @@ import {
59
59
  settleReceipt2,
60
60
  reserve2,
61
61
  known2
62
- } from "./compose-prchdrqk.js";
62
+ } from "./compose-fnncnk81.js";
63
63
  import {
64
64
  landed2,
65
65
  chooseSendSchedule2
@@ -16,13 +16,13 @@ import {
16
16
  } from "./compose-vn7b7fdj.js";
17
17
  import {
18
18
  commit2
19
- } from "./compose-pnsvwd3m.js";
19
+ } from "./compose-bbhk8vnr.js";
20
20
  import {
21
21
  withFold2
22
22
  } from "./compose-xhtgytrh.js";
23
23
  import {
24
24
  fence2
25
- } from "./compose-gvrqkyn4.js";
25
+ } from "./compose-w6zb11k1.js";
26
26
 
27
27
  // src/engine/branch-summary.ts
28
28
  import { asId } from "@nyte-ai/schema";
@@ -20,17 +20,17 @@ import {
20
20
  } from "./compose-vn7b7fdj.js";
21
21
  import {
22
22
  stoppedParts2
23
- } from "./compose-c2rnebv0.js";
23
+ } from "./compose-d95fwwvw.js";
24
24
  import {
25
25
  commit2
26
- } from "./compose-pnsvwd3m.js";
26
+ } from "./compose-bbhk8vnr.js";
27
27
  import {
28
28
  liveParts2,
29
29
  readRunEnd2
30
30
  } from "./compose-xhtgytrh.js";
31
31
  import {
32
32
  readParkedWait2
33
- } from "./compose-ks2rdteq.js";
33
+ } from "./compose-bz70g01d.js";
34
34
 
35
35
  // src/engine/fence.ts
36
36
  var FENCED2 = { class: "aborted", message: "Stopped." };
@@ -3,21 +3,21 @@ import {
3
3
  } from "./compose-cqpjcx2t.js";
4
4
  import {
5
5
  sendReceipt2
6
- } from "./compose-prchdrqk.js";
6
+ } from "./compose-fnncnk81.js";
7
7
  import {
8
8
  move2
9
- } from "./compose-47f47sgy.js";
9
+ } from "./compose-matk94se.js";
10
10
  import {
11
11
  heldReceipt2,
12
12
  applyBatch2
13
- } from "./compose-57j0pme0.js";
13
+ } from "./compose-2rha31fc.js";
14
14
  import {
15
15
  driveInProcess2
16
- } from "./compose-xaegezm3.js";
16
+ } from "./compose-8mkfr84d.js";
17
17
  import {
18
18
  redeemPairing2,
19
19
  authenticateToken2
20
- } from "./compose-jhs91x01.js";
20
+ } from "./compose-jwy1gba9.js";
21
21
 
22
22
  // src/api/server.ts
23
23
  function createServerHost2(kernel) {
@@ -0,0 +1,58 @@
1
+ import {
2
+ liveRuns2,
3
+ threadStart2,
4
+ listSessionRecords2
5
+ } from "./compose-vn7b7fdj.js";
6
+
7
+ // src/env/session-changes.ts
8
+ import { asSeq } from "@nyte-ai/schema";
9
+ var LOG_PAGE = 256;
10
+ async function readAttributedPaths2(store, session, after = asSeq(0), charged = () => true) {
11
+ const through = await store.refs.tail(session);
12
+ const paths = new Set;
13
+ let cursor = after;
14
+ while (cursor < through) {
15
+ const events = await store.refs.log(session, cursor, LOG_PAGE);
16
+ for (const event of events)
17
+ if (event.seq <= through && event.kind === "call" && event.change === "settled" && charged(event))
18
+ for (const path of event.changes?.paths ?? [])
19
+ paths.add(path);
20
+ const last = events.at(-1);
21
+ if (last === undefined)
22
+ break;
23
+ cursor = last.seq;
24
+ }
25
+ return paths;
26
+ }
27
+ async function ownedChanges2(store, snapshots, session, to, extra = []) {
28
+ const [from, attributed] = await Promise.all([
29
+ threadStart2(store, session),
30
+ readAttributedPaths2(store, session)
31
+ ]);
32
+ const owned = new Set([...attributed, ...extra]);
33
+ const changes = await snapshots.diff(from ?? to, to);
34
+ return {
35
+ ...changes,
36
+ files: changes.files.filter((file) => owned.has(file.path) || file.from !== undefined && owned.has(file.from))
37
+ };
38
+ }
39
+ async function anotherChatLive2(kernel, session) {
40
+ const records = await listSessionRecords2(kernel.store);
41
+ const parents = new Map(records.map((record) => [record.id, record.parent]));
42
+ const findRoot = (id) => {
43
+ const parent = parents.get(id);
44
+ return parent === null || parent === undefined ? id : findRoot(parent);
45
+ };
46
+ const workspace = records.find((record) => record.id === session)?.workspace;
47
+ if (workspace === undefined)
48
+ return false;
49
+ const family = findRoot(session);
50
+ const others = new Set(records.flatMap((record) => record.workspace === workspace && findRoot(record.id) !== family ? [record.id] : []));
51
+ const working = kernel.jobs.list(workspace).some((entry) => entry.view.state.kind === "running" && entry.owner !== null && others.has(entry.owner.session));
52
+ if (working)
53
+ return true;
54
+ const runs = await Promise.all([...others].map((id) => liveRuns2(kernel.store, id)));
55
+ return runs.some((live) => live.length > 0);
56
+ }
57
+
58
+ export { readAttributedPaths2, ownedChanges2, anotherChatLive2 };
@@ -4,7 +4,7 @@ import {
4
4
  tool2,
5
5
  compaction2,
6
6
  branchSummary2
7
- } from "./compose-bjx8s01m.js";
7
+ } from "./compose-fqsqjbrf.js";
8
8
 
9
9
  // src/engine/part-definitions.ts
10
10
  var RESERVED_PART_KINDS2 = new Set([text2, thinking2, tool2, compaction2, branchSummary2].map((definition) => definition.kind));
@@ -9,25 +9,25 @@ import {
9
9
  import {
10
10
  createWorkspaces2,
11
11
  workspaceHandle2
12
- } from "./compose-tb5ywdfk.js";
12
+ } from "./compose-d1m94kzq.js";
13
13
  import {
14
14
  cover2,
15
15
  advance2,
16
16
  repair2
17
- } from "./compose-xaegezm3.js";
17
+ } from "./compose-8mkfr84d.js";
18
18
  import {
19
19
  gate2,
20
20
  gated2,
21
21
  createPrincipals2
22
- } from "./compose-jhs91x01.js";
22
+ } from "./compose-jwy1gba9.js";
23
23
  import {
24
24
  createSettingsApi2
25
- } from "./compose-jrqn6xhy.js";
25
+ } from "./compose-753gc057.js";
26
26
  import {
27
27
  readWorkspaceCatalog2,
28
28
  runWorkspaceCommand2,
29
29
  completeWorkspaceCommand2
30
- } from "./compose-54svedb8.js";
30
+ } from "./compose-0m65m83c.js";
31
31
  import {
32
32
  inspect2
33
33
  } from "./compose-smsafpqe.js";
@@ -37,7 +37,7 @@ import {
37
37
  import {
38
38
  sessionHandle2,
39
39
  createSessions2
40
- } from "./compose-s5522cth.js";
40
+ } from "./compose-e9f6nrwp.js";
41
41
 
42
42
  // src/api/connection.ts
43
43
  import { SdkError } from "@nyte-ai/schema";