@xenosystem/agent-interface-host 0.1.3 → 0.1.5

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 (121) hide show
  1. package/dist/acp/AcpAgentRegistryService.d.ts +43 -1
  2. package/dist/acp/AcpAgentRegistryService.d.ts.map +1 -1
  3. package/dist/acp/AcpAgentRegistryService.js +200 -1
  4. package/dist/acp/AcpAgentRegistryService.js.map +1 -1
  5. package/dist/acp/AcpAgentTurnExecutionAdapter.d.ts +66 -0
  6. package/dist/acp/AcpAgentTurnExecutionAdapter.d.ts.map +1 -1
  7. package/dist/acp/AcpAgentTurnExecutionAdapter.js +182 -1
  8. package/dist/acp/AcpAgentTurnExecutionAdapter.js.map +1 -1
  9. package/dist/acp/AcpPermissionBridge.d.ts.map +1 -1
  10. package/dist/acp/AcpPermissionBridge.js +3 -3
  11. package/dist/acp/AcpPermissionBridge.js.map +1 -1
  12. package/dist/acp/AcpProcessSupervisor.d.ts +81 -0
  13. package/dist/acp/AcpProcessSupervisor.d.ts.map +1 -1
  14. package/dist/acp/AcpProcessSupervisor.js +176 -2
  15. package/dist/acp/AcpProcessSupervisor.js.map +1 -1
  16. package/dist/acp/AcpRuntimeEventMapper.d.ts.map +1 -1
  17. package/dist/acp/AcpRuntimeEventMapper.js +9 -0
  18. package/dist/acp/AcpRuntimeEventMapper.js.map +1 -1
  19. package/dist/acp/AcpSessionService.d.ts +36 -0
  20. package/dist/acp/AcpSessionService.d.ts.map +1 -1
  21. package/dist/acp/AcpSessionService.js +57 -1
  22. package/dist/acp/AcpSessionService.js.map +1 -1
  23. package/dist/acp/DurableAcpPermissionPolicyStore.d.ts.map +1 -1
  24. package/dist/acp/DurableAcpPermissionPolicyStore.js +5 -3
  25. package/dist/acp/DurableAcpPermissionPolicyStore.js.map +1 -1
  26. package/dist/acp/acpRedaction.d.ts.map +1 -1
  27. package/dist/acp/acpRedaction.js +2 -0
  28. package/dist/acp/acpRedaction.js.map +1 -1
  29. package/dist/acp/acpTypes.d.ts +111 -1
  30. package/dist/acp/acpTypes.d.ts.map +1 -1
  31. package/dist/acp/acpTypes.js +21 -1
  32. package/dist/acp/acpTypes.js.map +1 -1
  33. package/dist/index.d.ts +108 -2
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +236 -11
  36. package/dist/index.js.map +1 -1
  37. package/dist/isolation/CommandExecution.d.ts +7 -12
  38. package/dist/isolation/CommandExecution.d.ts.map +1 -1
  39. package/dist/isolation/CommandExecution.js +7 -12
  40. package/dist/isolation/CommandExecution.js.map +1 -1
  41. package/dist/isolation/CommandStream.d.ts +100 -0
  42. package/dist/isolation/CommandStream.d.ts.map +1 -0
  43. package/dist/isolation/CommandStream.js +47 -0
  44. package/dist/isolation/CommandStream.js.map +1 -0
  45. package/dist/isolation/RunExecutionEnvironment.d.ts +15 -0
  46. package/dist/isolation/RunExecutionEnvironment.d.ts.map +1 -1
  47. package/dist/isolation/RunExecutionEnvironment.js +45 -9
  48. package/dist/isolation/RunExecutionEnvironment.js.map +1 -1
  49. package/dist/isolation/RunIsolationService.d.ts +10 -5
  50. package/dist/isolation/RunIsolationService.d.ts.map +1 -1
  51. package/dist/isolation/RunIsolationService.js +7 -3
  52. package/dist/isolation/RunIsolationService.js.map +1 -1
  53. package/dist/isolation/SandboxCapabilities.d.ts +28 -0
  54. package/dist/isolation/SandboxCapabilities.d.ts.map +1 -0
  55. package/dist/isolation/SandboxCapabilities.js +33 -0
  56. package/dist/isolation/SandboxCapabilities.js.map +1 -0
  57. package/dist/isolation/SandboxCommandExecutor.d.ts +4 -7
  58. package/dist/isolation/SandboxCommandExecutor.d.ts.map +1 -1
  59. package/dist/isolation/SandboxCommandExecutor.js +6 -7
  60. package/dist/isolation/SandboxCommandExecutor.js.map +1 -1
  61. package/dist/isolation/SandboxCommandStream.d.ts +38 -0
  62. package/dist/isolation/SandboxCommandStream.d.ts.map +1 -0
  63. package/dist/isolation/SandboxCommandStream.js +232 -0
  64. package/dist/isolation/SandboxCommandStream.js.map +1 -0
  65. package/dist/isolation/shellArgv.d.ts +15 -0
  66. package/dist/isolation/shellArgv.d.ts.map +1 -0
  67. package/dist/isolation/shellArgv.js +31 -0
  68. package/dist/isolation/shellArgv.js.map +1 -0
  69. package/dist/isolation/useIdempotency.d.ts +19 -0
  70. package/dist/isolation/useIdempotency.d.ts.map +1 -0
  71. package/dist/isolation/useIdempotency.js +57 -0
  72. package/dist/isolation/useIdempotency.js.map +1 -0
  73. package/dist/localRpcTransport.d.ts +18 -0
  74. package/dist/localRpcTransport.d.ts.map +1 -1
  75. package/dist/localRpcTransport.js +38 -4
  76. package/dist/localRpcTransport.js.map +1 -1
  77. package/dist/node.d.ts +19 -0
  78. package/dist/node.d.ts.map +1 -1
  79. package/dist/node.js +19 -0
  80. package/dist/node.js.map +1 -1
  81. package/dist/observation/XenoUseRunObserver.d.ts +20 -0
  82. package/dist/observation/XenoUseRunObserver.d.ts.map +1 -1
  83. package/dist/observation/XenoUseRunObserver.js +27 -13
  84. package/dist/observation/XenoUseRunObserver.js.map +1 -1
  85. package/dist/runtime/RuntimeTimelineProjection.d.ts +2 -2
  86. package/dist/runtime/RuntimeTimelineProjection.d.ts.map +1 -1
  87. package/dist/runtime/RuntimeTimelineProjection.js +194 -1
  88. package/dist/runtime/RuntimeTimelineProjection.js.map +1 -1
  89. package/dist/sdk/DurablePendingInjectionStore.d.ts +24 -0
  90. package/dist/sdk/DurablePendingInjectionStore.d.ts.map +1 -0
  91. package/dist/sdk/DurablePendingInjectionStore.js +103 -0
  92. package/dist/sdk/DurablePendingInjectionStore.js.map +1 -0
  93. package/dist/sdk/SdkNativeAgentTurnExecutionAdapter.d.ts +81 -1
  94. package/dist/sdk/SdkNativeAgentTurnExecutionAdapter.d.ts.map +1 -1
  95. package/dist/sdk/SdkNativeAgentTurnExecutionAdapter.js +122 -3
  96. package/dist/sdk/SdkNativeAgentTurnExecutionAdapter.js.map +1 -1
  97. package/dist/sdk/pendingInjections.d.ts +83 -0
  98. package/dist/sdk/pendingInjections.d.ts.map +1 -0
  99. package/dist/sdk/pendingInjections.js +79 -0
  100. package/dist/sdk/pendingInjections.js.map +1 -0
  101. package/dist/session/AgentSessionService.d.ts +34 -0
  102. package/dist/session/AgentSessionService.d.ts.map +1 -1
  103. package/dist/session/AgentSessionService.js +85 -1
  104. package/dist/session/AgentSessionService.js.map +1 -1
  105. package/dist/session/nativeTuiSessionPty.d.ts +40 -0
  106. package/dist/session/nativeTuiSessionPty.d.ts.map +1 -0
  107. package/dist/session/nativeTuiSessionPty.js +142 -0
  108. package/dist/session/nativeTuiSessionPty.js.map +1 -0
  109. package/dist/session/nodePtyLoader.d.ts +23 -0
  110. package/dist/session/nodePtyLoader.d.ts.map +1 -0
  111. package/dist/session/nodePtyLoader.js +41 -0
  112. package/dist/session/nodePtyLoader.js.map +1 -0
  113. package/dist/session/renderSupport.d.ts +34 -0
  114. package/dist/session/renderSupport.d.ts.map +1 -1
  115. package/dist/session/renderSupport.js +39 -1
  116. package/dist/session/renderSupport.js.map +1 -1
  117. package/dist/workspace/WorkspaceHostService.d.ts +27 -2
  118. package/dist/workspace/WorkspaceHostService.d.ts.map +1 -1
  119. package/dist/workspace/WorkspaceHostService.js +221 -25
  120. package/dist/workspace/WorkspaceHostService.js.map +1 -1
  121. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"SdkNativeAgentTurnExecutionAdapter.js","sourceRoot":"","sources":["../../src/sdk/SdkNativeAgentTurnExecutionAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SdkNativeAgentTurnExecutionAdapter.js","sourceRoot":"","sources":["../../src/sdk/SdkNativeAgentTurnExecutionAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * The queue a node waits in when it is pinned while no turn is running (XENO SPAWN §2.2).
3
+ *
4
+ * 🔴 WHY THIS IS A PORT AND NOT A `Map` — the `Map` was the defect.
5
+ *
6
+ * Pinning between turns is §2.2's ORDINARY case: an operator pins a node so the agent has it for
7
+ * whatever comes next. The adapter accepted that, answered `deferred`, and held it in an instance
8
+ * field — so a host restart destroyed it.
9
+ *
10
+ * 🔴 AND IT LEFT NOTHING BEHIND, which is worse than the stale row this comment first claimed.
11
+ * An earlier version said §3's append-only record "carries a durable row saying a node is queued",
12
+ * making the defect a promise nothing could keep. MEASURED: the between-turns path emits NO runtime
13
+ * event at all — `deferred` is returned to the CALLER, and `context.injected` fires only when
14
+ * content actually ARRIVES. So the operator got an accepted-looking answer, the pin lived in one
15
+ * process's heap, and a restart erased it with **no trace on the timeline to notice**. A stale row
16
+ * is at least a row; this was silence.
17
+ *
18
+ * ⚠️ That absence is itself a §3 gap — a pin is an operator action the record does not show until
19
+ * it lands, possibly much later — but it is a CONTRACT question (which event, what shape) and not
20
+ * something durability fixes. Recorded rather than quietly widened here.
21
+ *
22
+ * ⚠️ This is the shape §HONESTY IS THE FLOOR names: the limitation was documented, in a docblock,
23
+ * on the layer that owns it. A declaration about our own layer is a TODO wearing a policy's clothes.
24
+ *
25
+ * ## At-most-once is a DELIBERATE choice, and it is why `drain` must persist before delivering
26
+ *
27
+ * The adapter's existing rule is that a pinned node arrives ONCE — redelivering it would grow the
28
+ * agent's context unasked and emit a fresh `context.injected` for a node pinned a single time. So a
29
+ * durable implementation commits the removal BEFORE the content reaches the runner. A crash in that
30
+ * window loses the pin, and that is the correct side to fail on: the record still reads `deferred`
31
+ * and never `injected`, which is true. The opposite ordering would silently re-inject on every
32
+ * restart, and a growing context nobody asked for is not recoverable by reading the record.
33
+ */
34
+ /** One pinned node waiting for the next turn. `content` is what enters the agent's context. */
35
+ export interface PendingInjection {
36
+ content: string;
37
+ label?: string;
38
+ sourceNodeId?: string;
39
+ }
40
+ export interface PendingInjectionStore {
41
+ /**
42
+ * Whether a queued pin survives the host process.
43
+ *
44
+ * 🔴 Read by the capability matrix, so the declaration a CLIENT sees is derived from the store
45
+ * actually composed rather than restated in prose. The `context.inject` reason used to assert
46
+ * "that queue is in memory, so it does not survive a host restart" as a fixed string; once a
47
+ * durable store existed that sentence was false in the shipped app and true in a default one,
48
+ * which is exactly the kind of claim nobody re-reads.
49
+ */
50
+ readonly durable: boolean;
51
+ /** Queues a node for the conversation's next turn. */
52
+ append(conversationId: string, injection: PendingInjection): void;
53
+ /**
54
+ * Returns everything queued for the conversation and REMOVES it.
55
+ *
56
+ * Named `drain` rather than `take`/`get` because the removal is the contract, not a side effect:
57
+ * a durable implementation must have committed it before this returns.
58
+ */
59
+ drain(conversationId: string): PendingInjection[];
60
+ }
61
+ /**
62
+ * The pre-existing behaviour, unchanged and now named.
63
+ *
64
+ * ⚠️ Kept as a real implementation rather than deleted, because it is the RIGHT store for a host
65
+ * with no durable root — a test harness, an embedded surface, a fixture run. Making durability the
66
+ * only option would force a filesystem dependency on hosts that legitimately have none.
67
+ */
68
+ export declare class InMemoryPendingInjectionStore implements PendingInjectionStore {
69
+ readonly durable = false;
70
+ private readonly queues;
71
+ append(conversationId: string, injection: PendingInjection): void;
72
+ drain(conversationId: string): PendingInjection[];
73
+ }
74
+ /**
75
+ * Returns the injection only if it can actually be delivered.
76
+ *
77
+ * 🔴 Empty content is REFUSED, not stored. An injection whose content is empty would enter the
78
+ * agent's context as nothing while the record claims a node was pinned — the same lie this module
79
+ * exists to remove, one layer down. Shared with the durable store so a value that could not be
80
+ * appended cannot be read back either.
81
+ */
82
+ export declare function validatePendingInjection(value: unknown): PendingInjection | undefined;
83
+ //# sourceMappingURL=pendingInjections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pendingInjections.d.ts","sourceRoot":"","sources":["../../src/sdk/pendingInjections.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,+FAA+F;AAC/F,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IAEzB,sDAAsD;IACtD,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAA;IACjE;;;;;OAKG;IACH,KAAK,CAAC,cAAc,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;CAClD;AAED;;;;;;GAMG;AACH,qBAAa,6BAA8B,YAAW,qBAAqB;IACzE,QAAQ,CAAC,OAAO,SAAQ;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;IAE/D,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,GAAG,IAAI;IAMjE,KAAK,CAAC,cAAc,EAAE,MAAM,GAAG,gBAAgB,EAAE;CAKlD;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,GAAG,SAAS,CAWrF"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * The queue a node waits in when it is pinned while no turn is running (XENO SPAWN §2.2).
3
+ *
4
+ * 🔴 WHY THIS IS A PORT AND NOT A `Map` — the `Map` was the defect.
5
+ *
6
+ * Pinning between turns is §2.2's ORDINARY case: an operator pins a node so the agent has it for
7
+ * whatever comes next. The adapter accepted that, answered `deferred`, and held it in an instance
8
+ * field — so a host restart destroyed it.
9
+ *
10
+ * 🔴 AND IT LEFT NOTHING BEHIND, which is worse than the stale row this comment first claimed.
11
+ * An earlier version said §3's append-only record "carries a durable row saying a node is queued",
12
+ * making the defect a promise nothing could keep. MEASURED: the between-turns path emits NO runtime
13
+ * event at all — `deferred` is returned to the CALLER, and `context.injected` fires only when
14
+ * content actually ARRIVES. So the operator got an accepted-looking answer, the pin lived in one
15
+ * process's heap, and a restart erased it with **no trace on the timeline to notice**. A stale row
16
+ * is at least a row; this was silence.
17
+ *
18
+ * ⚠️ That absence is itself a §3 gap — a pin is an operator action the record does not show until
19
+ * it lands, possibly much later — but it is a CONTRACT question (which event, what shape) and not
20
+ * something durability fixes. Recorded rather than quietly widened here.
21
+ *
22
+ * ⚠️ This is the shape §HONESTY IS THE FLOOR names: the limitation was documented, in a docblock,
23
+ * on the layer that owns it. A declaration about our own layer is a TODO wearing a policy's clothes.
24
+ *
25
+ * ## At-most-once is a DELIBERATE choice, and it is why `drain` must persist before delivering
26
+ *
27
+ * The adapter's existing rule is that a pinned node arrives ONCE — redelivering it would grow the
28
+ * agent's context unasked and emit a fresh `context.injected` for a node pinned a single time. So a
29
+ * durable implementation commits the removal BEFORE the content reaches the runner. A crash in that
30
+ * window loses the pin, and that is the correct side to fail on: the record still reads `deferred`
31
+ * and never `injected`, which is true. The opposite ordering would silently re-inject on every
32
+ * restart, and a growing context nobody asked for is not recoverable by reading the record.
33
+ */
34
+ /**
35
+ * The pre-existing behaviour, unchanged and now named.
36
+ *
37
+ * ⚠️ Kept as a real implementation rather than deleted, because it is the RIGHT store for a host
38
+ * with no durable root — a test harness, an embedded surface, a fixture run. Making durability the
39
+ * only option would force a filesystem dependency on hosts that legitimately have none.
40
+ */
41
+ export class InMemoryPendingInjectionStore {
42
+ durable = false;
43
+ queues = new Map();
44
+ append(conversationId, injection) {
45
+ const queue = this.queues.get(conversationId) ?? [];
46
+ queue.push({ ...injection });
47
+ this.queues.set(conversationId, queue);
48
+ }
49
+ drain(conversationId) {
50
+ const queue = this.queues.get(conversationId) ?? [];
51
+ this.queues.delete(conversationId);
52
+ return queue;
53
+ }
54
+ }
55
+ /**
56
+ * Returns the injection only if it can actually be delivered.
57
+ *
58
+ * 🔴 Empty content is REFUSED, not stored. An injection whose content is empty would enter the
59
+ * agent's context as nothing while the record claims a node was pinned — the same lie this module
60
+ * exists to remove, one layer down. Shared with the durable store so a value that could not be
61
+ * appended cannot be read back either.
62
+ */
63
+ export function validatePendingInjection(value) {
64
+ if (!value || typeof value !== 'object' || Array.isArray(value))
65
+ return undefined;
66
+ const record = value;
67
+ if (typeof record.content !== 'string' || !record.content)
68
+ return undefined;
69
+ if (record.label !== undefined && typeof record.label !== 'string')
70
+ return undefined;
71
+ if (record.sourceNodeId !== undefined && typeof record.sourceNodeId !== 'string')
72
+ return undefined;
73
+ return {
74
+ content: record.content,
75
+ ...(typeof record.label === 'string' ? { label: record.label } : {}),
76
+ ...(typeof record.sourceNodeId === 'string' ? { sourceNodeId: record.sourceNodeId } : {}),
77
+ };
78
+ }
79
+ //# sourceMappingURL=pendingInjections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pendingInjections.js","sourceRoot":"","sources":["../../src/sdk/pendingInjections.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAgCH;;;;;;GAMG;AACH,MAAM,OAAO,6BAA6B;IAC/B,OAAO,GAAG,KAAK,CAAA;IACP,MAAM,GAAG,IAAI,GAAG,EAA8B,CAAA;IAE/D,MAAM,CAAC,cAAsB,EAAE,SAA2B;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;QACnD,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,CAAA;QAC5B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,cAAsB;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;QACnD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;QAClC,OAAO,KAAK,CAAA;IACd,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IACjF,MAAM,MAAM,GAAG,KAAgC,CAAA;IAC/C,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,SAAS,CAAA;IAC3E,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IACpF,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IAClG,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,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,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1F,CAAA;AACH,CAAC"}
@@ -139,6 +139,16 @@ export interface SessionOpenRequest {
139
139
  pty: SessionPty;
140
140
  /** Required for `acp`, refused for `native-tui`. */
141
141
  protocol?: SessionProtocolChannel;
142
+ /**
143
+ * How to build a protocol channel later, for `session.setMode`.
144
+ *
145
+ * A session that switches INTO `acp` needs a channel it does not have, and
146
+ * one that switched out of `acp` closed the channel it had. Passing the
147
+ * factory rather than a live channel is what makes the switch two-way; a
148
+ * session opened without it can still switch to `native-tui` and will refuse
149
+ * the way back, saying so.
150
+ */
151
+ createProtocol?: () => SessionProtocolChannel;
142
152
  /**
143
153
  * How a framed message becomes the text a person reads.
144
154
  *
@@ -173,6 +183,11 @@ export type SessionEvent = {
173
183
  sessionId: string;
174
184
  viewerId: string;
175
185
  interventions: number;
186
+ } | {
187
+ type: 'session.mode';
188
+ sessionId: string;
189
+ mode: string;
190
+ hasProtocolChannel: boolean;
176
191
  } | {
177
192
  type: 'session.released';
178
193
  sessionId: string;
@@ -254,6 +269,25 @@ export declare class AgentSessionService {
254
269
  * gone" rather than presenting a terminal that appears to start mid-sentence
255
270
  * for no reason.
256
271
  */
272
+ /**
273
+ * Change what renders into this session (ADE §2.8, "the user switches").
274
+ *
275
+ * 🔴 Every refusal names WHICH half is missing, because today the common
276
+ * answer is no. Nothing in this repo attaches a vendor TUI to a PTY, so
277
+ * `switchable` is false for every provider and this verb refuses every real
278
+ * call. A bare `ok: false` would read as the switch being broken rather than
279
+ * as there being no second mode to switch to — the difference between "your
280
+ * feature failed" and "this agent has one mode".
281
+ *
282
+ * Re-selecting through `selectSessionRenderMode` rather than comparing
283
+ * `support` here keeps ONE decision: the same function that chose the mode
284
+ * at open decides whether this mode is servable now.
285
+ */
286
+ setMode(sessionId: string, mode: string): {
287
+ ok: boolean;
288
+ mode?: string;
289
+ reason?: string;
290
+ };
257
291
  snapshot(sessionId: string): {
258
292
  output: string;
259
293
  truncated: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"AgentSessionService.d.ts","sourceRoot":"","sources":["../../src/session/AgentSessionService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentSessionService.d.ts","sourceRoot":"","sources":["../../src/session/AgentSessionService.ts"],"names":[],"mappings":"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"}
@@ -146,6 +146,9 @@ export class AgentSessionService {
146
146
  pty: request.pty,
147
147
  protocol: request.protocol,
148
148
  support: request.support,
149
+ createProtocol: request.createProtocol,
150
+ renderProtocolMessage: request.renderProtocolMessage,
151
+ stopRendering: undefined,
149
152
  viewers: new Map(),
150
153
  lease: record.lease,
151
154
  output: '',
@@ -178,7 +181,7 @@ export class AgentSessionService {
178
181
  */
179
182
  if (request.protocol) {
180
183
  const render = request.renderProtocolMessage ?? defaultProtocolRender;
181
- const stopRendering = request.protocol.onMessage((message) => {
184
+ const stopRendering = live.protocol.onMessage((message) => {
182
185
  // Rendering must never take the session down. A message this renderer
183
186
  // cannot handle is one line lost, not a dead terminal.
184
187
  try {
@@ -206,6 +209,11 @@ export class AgentSessionService {
206
209
  // stream, not a person. A malformed frame is the agent's problem.
207
210
  }
208
211
  });
212
+ // Recorded separately so `setMode` can detach the RENDERER without
213
+ // taking retention down with it — leaving the terminal's history intact
214
+ // across a switch, which is the whole reason a viewer switches rather
215
+ // than closing and reopening.
216
+ live.stopRendering = stopRendering;
209
217
  const stopRetention = live.unsubscribe;
210
218
  live.unsubscribe = () => {
211
219
  stopRendering();
@@ -339,6 +347,82 @@ export class AgentSessionService {
339
347
  * gone" rather than presenting a terminal that appears to start mid-sentence
340
348
  * for no reason.
341
349
  */
350
+ /**
351
+ * Change what renders into this session (ADE §2.8, "the user switches").
352
+ *
353
+ * 🔴 Every refusal names WHICH half is missing, because today the common
354
+ * answer is no. Nothing in this repo attaches a vendor TUI to a PTY, so
355
+ * `switchable` is false for every provider and this verb refuses every real
356
+ * call. A bare `ok: false` would read as the switch being broken rather than
357
+ * as there being no second mode to switch to — the difference between "your
358
+ * feature failed" and "this agent has one mode".
359
+ *
360
+ * Re-selecting through `selectSessionRenderMode` rather than comparing
361
+ * `support` here keeps ONE decision: the same function that chose the mode
362
+ * at open decides whether this mode is servable now.
363
+ */
364
+ setMode(sessionId, mode) {
365
+ const live = this.#sessions.get(sessionId);
366
+ if (!live)
367
+ return { ok: false, reason: 'no session with that id is open' };
368
+ if (mode !== 'native-tui' && mode !== 'acp') {
369
+ return {
370
+ ok: false,
371
+ mode: live.record.mode,
372
+ reason: `unknown render mode '${mode}'; this session renders 'native-tui' or 'acp'`,
373
+ };
374
+ }
375
+ // Idempotent by nature — a mode is a set, not an append. Returning ok for
376
+ // a no-op is why this verb needs no command context.
377
+ if (live.record.mode === mode)
378
+ return { ok: true, mode };
379
+ const selection = selectSessionRenderMode(live.support, mode);
380
+ if (!selection.ok)
381
+ return { ok: false, mode: live.record.mode, reason: selection.reason };
382
+ if (mode === 'acp') {
383
+ // A session that switched out of `acp` closed its channel; one that never
384
+ // had it never held one. Either way the factory is the only way back.
385
+ if (!live.createProtocol) {
386
+ return {
387
+ ok: false,
388
+ mode: live.record.mode,
389
+ reason: 'this session was opened without a way to create a protocol channel, so it cannot render the structured stream',
390
+ };
391
+ }
392
+ const protocol = live.createProtocol();
393
+ live.protocol = protocol;
394
+ const render = live.renderProtocolMessage ?? defaultProtocolRender;
395
+ live.stopRendering = protocol.onMessage((message) => {
396
+ try {
397
+ const text = render(message);
398
+ if (text)
399
+ live.output = capOutput(live.output + text);
400
+ }
401
+ catch {
402
+ // Same silence as `open`: the caller is the agent's stream, not a person.
403
+ }
404
+ });
405
+ }
406
+ else {
407
+ // 🔴 Closed, not merely detached. §2.8's exclusivity is about the PROCESS
408
+ // — a CLI in interactive TUI mode is not also serving ACP — so leaving
409
+ // the channel open would keep a subscription alive against an agent that
410
+ // has stopped speaking it.
411
+ live.stopRendering?.();
412
+ live.stopRendering = undefined;
413
+ live.protocol?.close();
414
+ live.protocol = undefined;
415
+ }
416
+ live.record.mode = mode;
417
+ live.record.hasProtocolChannel = Boolean(live.protocol);
418
+ this.#emit({
419
+ type: 'session.mode',
420
+ sessionId,
421
+ mode,
422
+ hasProtocolChannel: live.record.hasProtocolChannel,
423
+ });
424
+ return { ok: true, mode };
425
+ }
342
426
  snapshot(sessionId) {
343
427
  const session = this.#sessions.get(sessionId);
344
428
  if (!session)
@@ -1 +1 @@
1
- {"version":3,"file":"AgentSessionService.js","sourceRoot":"","sources":["../../src/session/AgentSessionService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentSessionService.js","sourceRoot":"","sources":["../../src/session/AgentSessionService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import type { SessionPty } from './AgentSessionService.js';
2
+ /**
3
+ * A terminal with the AGENT'S OWN interface running inside it — ADE §2.8
4
+ * `native-tui`.
5
+ *
6
+ * The counterpart to `createBufferedSessionPty`, and the difference is the
7
+ * whole mode: that one is a RENDER TARGET for our drawing of a structured
8
+ * stream, this one is a real pty with the vendor's binary in it. Their `write`
9
+ * behaviours are opposite for the same reason — there, a write means a mode
10
+ * rule broke and it throws; here, a write is a keystroke and it must reach the
11
+ * process.
12
+ *
13
+ * 🔴 The command comes from `AcpAgentConfig.nativeTui`, NOT from
14
+ * `command`/`args`. Those hold the ACP endpoint, which for `claude-local` is
15
+ * our own adapter rather than Claude Code.
16
+ */
17
+ export interface NativeTuiSpawnRequest {
18
+ command: string;
19
+ args?: undefined | string[];
20
+ cwd?: undefined | string;
21
+ env?: undefined | Record<string, string>;
22
+ cols?: undefined | number;
23
+ rows?: undefined | number;
24
+ }
25
+ /**
26
+ * Constructed SYNCHRONOUSLY, spawned asynchronously.
27
+ *
28
+ * `AgentSessionService.open` takes a `SessionPty` and subscribes to it in the
29
+ * same statement, while loading a native module is async. Rather than make
30
+ * every caller await — which would push `openSessionForRun` into an async path
31
+ * and change when a session appears in `session.list` — the handle exists
32
+ * immediately and QUEUES what arrives before the child does.
33
+ *
34
+ * ⚠️ Queued, never dropped and never thrown away. A keystroke typed into a
35
+ * terminal that is still starting is an ordinary thing to do, and losing it
36
+ * silently is the defect `createBufferedSessionPty`'s throwing `write` exists
37
+ * to make impossible in the other mode.
38
+ */
39
+ export declare function createNativeTuiSessionPty(request: NativeTuiSpawnRequest): SessionPty;
40
+ //# sourceMappingURL=nativeTuiSessionPty.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nativeTuiSessionPty.d.ts","sourceRoot":"","sources":["../../src/session/nativeTuiSessionPty.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAE1D;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,EAAE,CAAA;IAC3B,GAAG,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;IACxB,GAAG,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACxC,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;IACzB,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;CAC1B;AAKD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,GAAG,UAAU,CA4GpF"}
@@ -0,0 +1,142 @@
1
+ import { loadNodePty } from './nodePtyLoader.js';
2
+ const DEFAULT_COLS = 120;
3
+ const DEFAULT_ROWS = 30;
4
+ /**
5
+ * Constructed SYNCHRONOUSLY, spawned asynchronously.
6
+ *
7
+ * `AgentSessionService.open` takes a `SessionPty` and subscribes to it in the
8
+ * same statement, while loading a native module is async. Rather than make
9
+ * every caller await — which would push `openSessionForRun` into an async path
10
+ * and change when a session appears in `session.list` — the handle exists
11
+ * immediately and QUEUES what arrives before the child does.
12
+ *
13
+ * ⚠️ Queued, never dropped and never thrown away. A keystroke typed into a
14
+ * terminal that is still starting is an ordinary thing to do, and losing it
15
+ * silently is the defect `createBufferedSessionPty`'s throwing `write` exists
16
+ * to make impossible in the other mode.
17
+ */
18
+ export function createNativeTuiSessionPty(request) {
19
+ const listeners = new Set();
20
+ const pendingInput = [];
21
+ let pending = { cols: request.cols ?? DEFAULT_COLS, rows: request.rows ?? DEFAULT_ROWS };
22
+ let child;
23
+ let closed = false;
24
+ /**
25
+ * 🔴 Tracked, because a try/catch CANNOT guard a resize on Windows.
26
+ *
27
+ * node-pty's Windows agent defers the resize into a socket callback, so
28
+ * `Cannot resize a pty that has already exited` is thrown ASYNCHRONOUSLY,
29
+ * outside any caller's try/catch — an uncaught exception that takes the
30
+ * host process down. Measured: a full suite run reported it twice.
31
+ *
32
+ * So the guard has to be state, not exception handling.
33
+ */
34
+ let exited = false;
35
+ const emit = (chunk) => {
36
+ for (const listener of [...listeners]) {
37
+ // One bad listener must not take the terminal down, and must not stop the
38
+ // others from seeing the byte.
39
+ try {
40
+ listener(chunk);
41
+ }
42
+ catch { /* a viewer's problem, not the pty's */ }
43
+ }
44
+ };
45
+ void loadNodePty().then((loaded) => {
46
+ if (closed)
47
+ return;
48
+ if (!loaded.module) {
49
+ // Reported INTO the terminal, because that is where a person is looking.
50
+ // Failing silently would leave an empty pane indistinguishable from an
51
+ // agent that has not spoken yet.
52
+ emit(`
53
+ [xeno] cannot start this agent's own interface: ${loaded.error}
54
+ `);
55
+ return;
56
+ }
57
+ let spawned;
58
+ try {
59
+ spawned = loaded.module.spawn(request.command, request.args ?? [], {
60
+ name: 'xterm-color',
61
+ cols: pending.cols,
62
+ rows: pending.rows,
63
+ ...(request.cwd ? { cwd: request.cwd } : {}),
64
+ ...(request.env ? { env: request.env } : {}),
65
+ });
66
+ }
67
+ catch (error) {
68
+ emit(`
69
+ [xeno] ${request.command} could not be started: ${error instanceof Error ? error.message : 'spawn failed'}
70
+ `);
71
+ return;
72
+ }
73
+ if (closed) {
74
+ // Raced: closed while the native module was loading. Kill rather than
75
+ // leak a vendor process nobody is attached to.
76
+ try {
77
+ spawned.kill();
78
+ }
79
+ catch { /* already gone */ }
80
+ return;
81
+ }
82
+ spawned.onData((chunk) => emit(chunk));
83
+ spawned.onExit(({ exitCode }) => {
84
+ exited = true;
85
+ child = undefined;
86
+ emit(`
87
+ [xeno] the agent's interface exited (${exitCode}).
88
+ `);
89
+ });
90
+ child = spawned;
91
+ // 🔴 NOT resized here. The size is already in the spawn options above, so a
92
+ // follow-up resize adds nothing — and a short-lived command (the vendor
93
+ // binary printing a version and exiting) can be gone by the time this line
94
+ // runs, which is exactly how the async throw above was reproduced.
95
+ // Drain in order. Out-of-order keystrokes are a different sentence than the
96
+ // one that was typed.
97
+ for (const queued of pendingInput.splice(0))
98
+ spawned.write(queued);
99
+ });
100
+ return {
101
+ write(data) {
102
+ if (closed)
103
+ return;
104
+ if (child)
105
+ child.write(data);
106
+ else
107
+ pendingInput.push(data);
108
+ },
109
+ resize(cols, rows) {
110
+ if (closed)
111
+ return;
112
+ pending = { cols, rows };
113
+ // `exited` first: see its note. The try/catch stays for the synchronous
114
+ // failures it CAN catch, but it is not what makes this safe.
115
+ if (child && !exited) {
116
+ try {
117
+ child.resize(cols, rows);
118
+ }
119
+ catch { /* the child is gone */ }
120
+ }
121
+ },
122
+ onData(listener) {
123
+ listeners.add(listener);
124
+ return () => { listeners.delete(listener); };
125
+ },
126
+ close() {
127
+ if (closed)
128
+ return;
129
+ closed = true;
130
+ listeners.clear();
131
+ pendingInput.length = 0;
132
+ if (child) {
133
+ try {
134
+ child.kill();
135
+ }
136
+ catch { /* already gone */ }
137
+ child = undefined;
138
+ }
139
+ },
140
+ };
141
+ }
142
+ //# sourceMappingURL=nativeTuiSessionPty.js.map