@xenosystem/agent-interface-runtime 0.1.12

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composeHost.js","sourceRoot":"","sources":["../src/composeHost.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * The shared detached Agent host, as a process โ€” ADE ยง9 step 3.
3
+ *
4
+ * This is the piece the plan called "the child ENTRY POINT", and it is the last
5
+ * thing standing between a built-and-tested detached host and a running one.
6
+ * Everything it composes already existed: `runDetachedAgentHost` owns election
7
+ * and lifecycle, `composeAgentHost` builds the host, and
8
+ * `DetachedHostSupervisor` spawns and watches. Nothing called them together.
9
+ *
10
+ * ๐Ÿ”ด **It composes with NO Electron surface at all** โ€” `surface: {}`. That is
11
+ * not a limitation being worked around; it is the reason a detached host is
12
+ * possible. `HostSurfaceCapabilities` has no required fields, so an absent
13
+ * capability becomes a lane declared unrunnable WITH A REASON rather than a
14
+ * lane that accepts work and fails at turn time. A user told "sdk-native is not
15
+ * available in the background host" can act on that; one whose turn dies
16
+ * halfway cannot.
17
+ *
18
+ * ๐Ÿ”ด **Demotion is a FAILURE here, not a fallback.** `startLocalAgentHostAuthority`
19
+ * is deliberately forgiving โ€” become a client if someone else holds the lease โ€”
20
+ * which is right for a GUI and catastrophic for a service whose only purpose is
21
+ * to BE the host: it would start cleanly, report healthy, own nothing, serve
22
+ * nothing, and be restarted forever by a supervisor that believed it.
23
+ *
24
+ * Adopted 2026-08-27. The standalone build emits this entry and Hub/Shell emit
25
+ * the same package entry as a second main-process artifact. The shared adapter
26
+ * starts it only when attachment proves no compatible owner is already live.
27
+ *
28
+ * @unwired-by-design This is a process entry point, not an imported library
29
+ * module. Electron Vite resolves the package's `detached-entry` export and
30
+ * emits it as a second main-process artifact in the standalone app, Hub, and
31
+ * Shell; `ensureSharedAgentHost` then spawns that built file by path. The
32
+ * source import graph therefore cannot reach this module by construction.
33
+ *
34
+ * ## Protocol
35
+ *
36
+ * One JSON object per line on stdout. The supervisor reads line-delimited
37
+ * precisely so this process may log freely; only the `โ€ฆ-ready` line is
38
+ * significant, and only the first one.
39
+ */
40
+ interface EntryConfig {
41
+ homeDirectory: string;
42
+ hostVersion: string;
43
+ hostInstanceId: string;
44
+ fixtureBaseDirectory: string;
45
+ }
46
+ export declare function readEntryConfig(env: NodeJS.ProcessEnv): EntryConfig | {
47
+ error: string;
48
+ };
49
+ export declare function runDetachedHostEntry(env: NodeJS.ProcessEnv, write: (line: string) => void): Promise<number>;
50
+ export {};
51
+ //# sourceMappingURL=detachedHostEntry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detachedHostEntry.d.ts","sourceRoot":"","sources":["../src/detachedHostEntry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAcH,UAAU,WAAW;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,oBAAoB,EAAE,MAAM,CAAA;CAC7B;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,WAAW,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAwBvF;AAED,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC5B,OAAO,CAAC,MAAM,CAAC,CA6EjB"}
@@ -0,0 +1,185 @@
1
+ /**
2
+ * The shared detached Agent host, as a process โ€” ADE ยง9 step 3.
3
+ *
4
+ * This is the piece the plan called "the child ENTRY POINT", and it is the last
5
+ * thing standing between a built-and-tested detached host and a running one.
6
+ * Everything it composes already existed: `runDetachedAgentHost` owns election
7
+ * and lifecycle, `composeAgentHost` builds the host, and
8
+ * `DetachedHostSupervisor` spawns and watches. Nothing called them together.
9
+ *
10
+ * ๐Ÿ”ด **It composes with NO Electron surface at all** โ€” `surface: {}`. That is
11
+ * not a limitation being worked around; it is the reason a detached host is
12
+ * possible. `HostSurfaceCapabilities` has no required fields, so an absent
13
+ * capability becomes a lane declared unrunnable WITH A REASON rather than a
14
+ * lane that accepts work and fails at turn time. A user told "sdk-native is not
15
+ * available in the background host" can act on that; one whose turn dies
16
+ * halfway cannot.
17
+ *
18
+ * ๐Ÿ”ด **Demotion is a FAILURE here, not a fallback.** `startLocalAgentHostAuthority`
19
+ * is deliberately forgiving โ€” become a client if someone else holds the lease โ€”
20
+ * which is right for a GUI and catastrophic for a service whose only purpose is
21
+ * to BE the host: it would start cleanly, report healthy, own nothing, serve
22
+ * nothing, and be restarted forever by a supervisor that believed it.
23
+ *
24
+ * Adopted 2026-08-27. The standalone build emits this entry and Hub/Shell emit
25
+ * the same package entry as a second main-process artifact. The shared adapter
26
+ * starts it only when attachment proves no compatible owner is already live.
27
+ *
28
+ * @unwired-by-design This is a process entry point, not an imported library
29
+ * module. Electron Vite resolves the package's `detached-entry` export and
30
+ * emits it as a second main-process artifact in the standalone app, Hub, and
31
+ * Shell; `ensureSharedAgentHost` then spawns that built file by path. The
32
+ * source import graph therefore cannot reach this module by construction.
33
+ *
34
+ * ## Protocol
35
+ *
36
+ * One JSON object per line on stdout. The supervisor reads line-delimited
37
+ * precisely so this process may log freely; only the `โ€ฆ-ready` line is
38
+ * significant, and only the first one.
39
+ */
40
+ import { resolveLocalAgentHostPaths, runDetachedAgentHost, } from '@xenosystem/agent-interface-host/node';
41
+ import { realpathSync } from 'node:fs';
42
+ import { fileURLToPath } from 'node:url';
43
+ import { composeAgentHost } from './composeHost.js';
44
+ /** Exactly the shape `DetachedHostSupervisor` parses. Do not improvise it. */
45
+ const READY = 'xeno-agent-detached-host-ready';
46
+ export function readEntryConfig(env) {
47
+ const homeDirectory = env.XENO_AGENT_DETACHED_HOME;
48
+ const hostVersion = env.XENO_AGENT_DETACHED_VERSION;
49
+ const hostInstanceId = env.XENO_AGENT_DETACHED_INSTANCE;
50
+ // Named individually. "bad config" sends a reader to read the source; naming
51
+ // the variable is the difference between a two-minute fix and an hour.
52
+ const missing = [
53
+ homeDirectory ? null : 'XENO_AGENT_DETACHED_HOME',
54
+ hostVersion ? null : 'XENO_AGENT_DETACHED_VERSION',
55
+ hostInstanceId ? null : 'XENO_AGENT_DETACHED_INSTANCE',
56
+ ].filter((name) => name !== null);
57
+ if (missing.length > 0) {
58
+ return { error: `The detached Agent host needs ${missing.join(', ')} in its environment.` };
59
+ }
60
+ return {
61
+ homeDirectory: homeDirectory,
62
+ hostVersion: hostVersion,
63
+ hostInstanceId: hostInstanceId,
64
+ // Only consulted when the fixture is enabled; defaulting to the home
65
+ // directory keeps the required set to the three that always matter.
66
+ fixtureBaseDirectory: env.XENO_AGENT_DETACHED_FIXTURE_BASE || homeDirectory,
67
+ };
68
+ }
69
+ export async function runDetachedHostEntry(env, write) {
70
+ const config = readEntryConfig(env);
71
+ if ('error' in config) {
72
+ write(JSON.stringify({ type: 'xeno-agent-detached-host-failed', reason: config.error }));
73
+ return 1;
74
+ }
75
+ let composition;
76
+ try {
77
+ // The authority needs its root BEFORE it can elect an owner, and the
78
+ // composition resolves the same paths from the same inputs. Resolving twice
79
+ // from one function is deliberate: passing a second, independently computed
80
+ // root is how a service ends up holding a lease in one directory while
81
+ // writing its state to another.
82
+ const paths = resolveLocalAgentHostPaths({
83
+ homeDirectory: config.homeDirectory,
84
+ ...(env.XENO_AGENT_HOST_ROOT ? { hostRootDirectory: env.XENO_AGENT_HOST_ROOT } : {}),
85
+ });
86
+ const handle = await runDetachedAgentHost({
87
+ rootDirectory: paths.hostRootDirectory,
88
+ instanceId: config.hostInstanceId,
89
+ // Composed lazily, INSIDE the authority: losing the election must not
90
+ // leave a fully built host โ€” with its SQLite handle open โ€” belonging to a
91
+ // process that is about to refuse to run.
92
+ createHostTransport: async () => {
93
+ composition = await composeAgentHost({ ...config, surface: {}, env });
94
+ // Created HERE and nowhere else: this callback runs only for the process
95
+ // that won the lease, which is exactly the contract `createCoordinator`
96
+ // states. Composing is safe anywhere; opening the durable state is not.
97
+ const coordinator = await composition.createCoordinator();
98
+ // Whoever OWNS the host reports what the previous owner left running.
99
+ // In-process, `index.ts` does this; detached, `ownedHost` there is null
100
+ // and nobody would - so a crash would leave turns marked in-flight
101
+ // forever, which is exactly the state this call exists to clear.
102
+ await coordinator.reportInterruptedTurns();
103
+ return coordinator;
104
+ },
105
+ onReady: (info) => {
106
+ write(JSON.stringify({
107
+ type: READY,
108
+ endpoint: info.endpoint,
109
+ instanceId: info.instanceId,
110
+ protocolVersion: info.protocolVersion,
111
+ }));
112
+ },
113
+ onStopped: (reason) => {
114
+ write(JSON.stringify({ type: 'xeno-agent-detached-host-stopped', reason }));
115
+ },
116
+ });
117
+ const reason = await handle.stopped;
118
+ // ๐Ÿ”ด Dispose AFTER the lease is released, and always.
119
+ //
120
+ // The composition holds a SQLite handle. On Windows the next owner cannot
121
+ // open the same state directory while this process holds it, so a host that
122
+ // stopped without disposing would block the very handover the lease exists
123
+ // to arrange. Relying on process exit to release it is only correct in the
124
+ // case where the process exits โ€” which is not the interesting one.
125
+ await composition?.dispose();
126
+ // Losing the authority is not a clean stop: continuing as though still
127
+ // authoritative is the split-brain the lease prevents, so a supervisor
128
+ // should see a non-zero exit and decide, rather than read "finished".
129
+ return reason === 'authority-lost' ? 1 : 0;
130
+ }
131
+ catch (error) {
132
+ await composition?.dispose();
133
+ write(JSON.stringify({
134
+ type: 'xeno-agent-detached-host-failed',
135
+ // `DetachedAgentHostDemotedError` arrives here by name, which is what
136
+ // makes "someone else already owns the lease" a diagnosable outcome
137
+ // instead of a process that simply never reported ready.
138
+ name: error instanceof Error ? error.name : 'Error',
139
+ reason: error instanceof Error ? error.message : String(error),
140
+ }));
141
+ return 1;
142
+ }
143
+ }
144
+ /**
145
+ * ESM has no `require.main`, and comparing `process.argv[1]` lexically is what
146
+ * broke `xeno-agent-cli` on every Linux and macOS install: npm installs a
147
+ * SYMLINK into `.bin`, so the invoked path and the module path are different
148
+ * strings for the same file. `realpath` both, and treat an unresolvable path as
149
+ * "not the entry" rather than guessing.
150
+ */
151
+ function isDirectInvocation() {
152
+ const invoked = process.argv[1];
153
+ if (!invoked)
154
+ return false;
155
+ try {
156
+ const resolve = (value) => {
157
+ try {
158
+ return realpathSync(value);
159
+ }
160
+ catch {
161
+ return value;
162
+ }
163
+ };
164
+ return resolve(invoked) === resolve(fileURLToPath(import.meta.url));
165
+ }
166
+ catch {
167
+ return false;
168
+ }
169
+ }
170
+ if (isDirectInvocation()) {
171
+ // A surface may exit after launching this persistent host, closing its pipe.
172
+ // EPIPE is therefore a normal transport teardown, not a host crash.
173
+ process.stdout.on('error', (error) => {
174
+ if (error.code !== 'EPIPE')
175
+ process.exitCode = 1;
176
+ });
177
+ void runDetachedHostEntry(process.env, (line) => { process.stdout.write(`${line}\n`); })
178
+ .then((code) => {
179
+ // Not `process.exit(code)` on success: an immediate exit can truncate a
180
+ // pending stdout write on a pipe, and the last line is the one a
181
+ // supervisor is reading.
182
+ process.exitCode = code;
183
+ });
184
+ }
185
+ //# sourceMappingURL=detachedHostEntry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detachedHostEntry.js","sourceRoot":"","sources":["../src/detachedHostEntry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Which execution lanes the shared composition can actually run, and what to say when it
3
+ * cannot โ€” ADE ยง9 step 3, ยง7.1 capability honesty.
4
+ *
5
+ * Its own module, with NO imports, and that is the point rather than tidiness.
6
+ * `composeHost.ts` cannot be imported without `@xenosystem/acp-*` โ€” the ACP
7
+ * registry is fundamental to the composition โ€” so a rule living there is a rule
8
+ * that cannot be tested in an environment where those packages are absent.
9
+ * Pulling the decisions out is what makes them verifiable at all.
10
+ *
11
+ * Same split as `updaterPolicy.ts` and `detachedHostPolicy.ts` beside it: the
12
+ * decision is the part worth testing; constructing services is not.
13
+ */
14
+ /**
15
+ * โš ๏ธ CORRECTED 2026-08-18, and the correction is the interesting part.
16
+ *
17
+ * This used to read "the SDK-native tools are written against a live BrowserWindow". That was
18
+ * true when written and is now false, so it is an OBSERVATION that went stale rather than a
19
+ * promise being retired โ€” observations get corrected.
20
+ *
21
+ * What changed: the agent loop no longer takes a `BrowserWindow`, it takes an `SdkAgentSurface`
22
+ * (`send` + `isDestroyed`), and it loads in a plain Node process. The surface TOOLS were never
23
+ * the obstacle either โ€” they act through `SdkAgentSurfaceRuntimeAdapter`, whose unregistered
24
+ * default already answers "this host has not registered an interactive browser surface" instead
25
+ * of pretending to succeed.
26
+ *
27
+ * What remains, and it is narrower and real: two of the loop's ten channels โ€”
28
+ * `agent:permission-request` and `agent:ask-user-request` โ€” BLOCK the turn until a human answers,
29
+ * and a host with nobody to ask cannot answer them. Not slowly: never. That is a missing route to
30
+ * a person, not a missing window, and stating it as a window sends an operator to run the GUI
31
+ * when what they actually need is an attached client.
32
+ */
33
+ export declare const SDK_NEEDS_ELICITATION_ROUTE = "This host cannot resolve a permission or ask-user prompt \u2014 it can neither present one to a person nor refuse it \u2014 so an SDK-native turn that asked would wait forever. Run the app in-process, or compose a host that routes elicitations.";
34
+ /** @deprecated Use {@link SDK_NEEDS_ELICITATION_ROUTE}. */
35
+ export declare const SDK_NEEDS_SOMEONE_TO_ASK = "This host cannot resolve a permission or ask-user prompt \u2014 it can neither present one to a person nor refuse it \u2014 so an SDK-native turn that asked would wait forever. Run the app in-process, or compose a host that routes elicitations.";
36
+ /** @deprecated Use {@link SDK_NEEDS_SOMEONE_TO_ASK}. Kept so a stale import fails loudly at the
37
+ * type level rather than silently reporting the wrong reason. */
38
+ export declare const SDK_NEEDS_A_WINDOW = "This host cannot resolve a permission or ask-user prompt \u2014 it can neither present one to a person nor refuse it \u2014 so an SDK-native turn that asked would wait forever. Run the app in-process, or compose a host that routes elicitations.";
39
+ export declare const SDK_NEEDS_A_CREDENTIAL = "SDK-native engineering execution requires the host-managed direct credential. The text-only relay is intentionally not used as a fallback.";
40
+ /**
41
+ * Why the SDK-native lane is unavailable, when it is.
42
+ *
43
+ * ๐Ÿ”ด **The missing window outranks a missing credential.** Both can be true at
44
+ * once. The first reason a person is given is the one they act on, so it has to
45
+ * be the one actually blocking them โ€” fixing a credential would not make this
46
+ * lane run in a process that has no windows, and reporting it first sends an
47
+ * operator to fix the wrong thing and conclude the product is broken.
48
+ */
49
+ export declare function sdkUnavailableReasonFor(input: {
50
+ /**
51
+ * Whether this composition can actually run an SDK-native turn end to end โ€” which now means
52
+ * "can reach a person if the turn asks", not "has a window". See
53
+ * {@link SDK_NEEDS_SOMEONE_TO_ASK}.
54
+ */
55
+ sdkRunnable: boolean;
56
+ directCredentialAvailable: boolean;
57
+ /** `null` as well as `undefined`: cloud discovery reports "no error" as null,
58
+ * and a caller should not have to normalise that before asking. */
59
+ modelCatalogError?: string | null | undefined;
60
+ }): string | undefined;
61
+ /**
62
+ * What a composition gives up for want of a surface capability.
63
+ *
64
+ * ๐Ÿ”ด Returns a DECLARATION, never an omission. A lane that vanishes from a
65
+ * catalog reads as a configuration error โ€” an operator sees a shorter list and
66
+ * goes looking for what they broke. A lane that is present and reports why it
67
+ * cannot run has told them the truth, and the descriptor already carries
68
+ * `safeUnavailableReason` for exactly that, so honesty costs a string.
69
+ */
70
+ /**
71
+ * The minimum a host must offer for an elicitation to be deliverable. Structural on purpose โ€”
72
+ * this module imports nothing, which is what makes its decisions testable without Electron, ACP
73
+ * or a real coordinator.
74
+ */
75
+ export interface ElicitationTarget {
76
+ hasElicitationCapableClient(): boolean;
77
+ createElicitationSurfaceMessenger(): {
78
+ send(channel: string, payload: Record<string, unknown>): void;
79
+ };
80
+ }
81
+ /**
82
+ * Deliver one elicitation, and report HONESTLY whether anyone received it.
83
+ *
84
+ * ๐Ÿ”ด The return value is the safety property, not a convenience. The headless SDK-native runner
85
+ * refuses a prompt that reached nobody, and it decides that from this boolean โ€” so a `true` here
86
+ * that nobody can act on produces precisely the hang the refusal exists to prevent, and does it
87
+ * silently, because publishing to zero subscribers looks exactly like publishing to ten.
88
+ *
89
+ * โš ๏ธ "Someone is subscribed" is NOT the question, which is the trap this function exists to
90
+ * avoid: the local RPC server subscribes exactly ONE listener and fans out to however many
91
+ * sockets it holds, so a listener count is equally consistent with a full house and an empty
92
+ * room. Only a completed handshake carrying `canPresentElicitations` says a human can be reached.
93
+ *
94
+ * โš ๏ธ It is also asked FRESH each time rather than captured once. A composition-time answer would
95
+ * be wrong the moment the last client detached, and detaching is normal.
96
+ */
97
+ export declare function deliverElicitationThrough(target: ElicitationTarget | undefined, channel: string, payload: Record<string, unknown>): boolean;
98
+ export declare function declaredUnavailableLanes(surface: {
99
+ hasWindow: boolean;
100
+ /**
101
+ * Whether this composition can RESOLVE an elicitation โ€” present it to a person and return their
102
+ * answer, or refuse it โ€” so that a turn which asks always continues.
103
+ *
104
+ * ๐Ÿ”ด "Resolve", not "prompt", and the distinction is the whole point. A detached host with no
105
+ * client attached cannot prompt anyone; it can still resolve, by refusing. That is what makes
106
+ * the lane runnable there, and calling the parameter `canPromptAHuman` (as it was for one
107
+ * cycle) invited exactly the wrong conclusion โ€” that a headless host must find a human before
108
+ * it may run a turn.
109
+ *
110
+ * What must never happen is a prompt that is neither answered nor refused:
111
+ * `requestSurfacePermission` has no timeout, so that is a turn stuck forever.
112
+ *
113
+ * ๐Ÿ”ด Optional, defaulting to `hasWindow` โ€” the CONSERVATIVE answer. A composition written
114
+ * before this existed keeps its exact behaviour, and a new one must SAY it can resolve before
115
+ * the lane is offered. Defaulting to `true` would silently enable a lane that hangs.
116
+ */
117
+ canResolveElicitations?: boolean;
118
+ }): Array<{
119
+ lane: string;
120
+ reason: string;
121
+ }>;
122
+ //# sourceMappingURL=hostLanePolicy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hostLanePolicy.d.ts","sourceRoot":"","sources":["../src/hostLanePolicy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,2BAA2B,yPACsM,CAAA;AAE9O,2DAA2D;AAC3D,eAAO,MAAM,wBAAwB,yPAA8B,CAAA;AAEnE;kEACkE;AAClE,eAAO,MAAM,kBAAkB,yPAA2B,CAAA;AAE1D,eAAO,MAAM,sBAAsB,+IAC2G,CAAA;AAE9I;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C;;;;OAIG;IACH,WAAW,EAAE,OAAO,CAAA;IACpB,yBAAyB,EAAE,OAAO,CAAA;IAClC;wEACoE;IACpE,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;CAC9C,GAAG,MAAM,GAAG,SAAS,CAIrB;AAED;;;;;;;;GAQG;AACH;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,2BAA2B,IAAI,OAAO,CAAA;IACtC,iCAAiC,IAAI;QAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;KAAE,CAAA;CACvG;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,iBAAiB,GAAG,SAAS,EACrC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAOT;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAChD,SAAS,EAAE,OAAO,CAAA;IAClB;;;;;;;;;;;;;;;;OAgBG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACjC,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAG1C"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Which execution lanes the shared composition can actually run, and what to say when it
3
+ * cannot โ€” ADE ยง9 step 3, ยง7.1 capability honesty.
4
+ *
5
+ * Its own module, with NO imports, and that is the point rather than tidiness.
6
+ * `composeHost.ts` cannot be imported without `@xenosystem/acp-*` โ€” the ACP
7
+ * registry is fundamental to the composition โ€” so a rule living there is a rule
8
+ * that cannot be tested in an environment where those packages are absent.
9
+ * Pulling the decisions out is what makes them verifiable at all.
10
+ *
11
+ * Same split as `updaterPolicy.ts` and `detachedHostPolicy.ts` beside it: the
12
+ * decision is the part worth testing; constructing services is not.
13
+ */
14
+ /**
15
+ * โš ๏ธ CORRECTED 2026-08-18, and the correction is the interesting part.
16
+ *
17
+ * This used to read "the SDK-native tools are written against a live BrowserWindow". That was
18
+ * true when written and is now false, so it is an OBSERVATION that went stale rather than a
19
+ * promise being retired โ€” observations get corrected.
20
+ *
21
+ * What changed: the agent loop no longer takes a `BrowserWindow`, it takes an `SdkAgentSurface`
22
+ * (`send` + `isDestroyed`), and it loads in a plain Node process. The surface TOOLS were never
23
+ * the obstacle either โ€” they act through `SdkAgentSurfaceRuntimeAdapter`, whose unregistered
24
+ * default already answers "this host has not registered an interactive browser surface" instead
25
+ * of pretending to succeed.
26
+ *
27
+ * What remains, and it is narrower and real: two of the loop's ten channels โ€”
28
+ * `agent:permission-request` and `agent:ask-user-request` โ€” BLOCK the turn until a human answers,
29
+ * and a host with nobody to ask cannot answer them. Not slowly: never. That is a missing route to
30
+ * a person, not a missing window, and stating it as a window sends an operator to run the GUI
31
+ * when what they actually need is an attached client.
32
+ */
33
+ export const SDK_NEEDS_ELICITATION_ROUTE = 'This host cannot resolve a permission or ask-user prompt โ€” it can neither present one to a person nor refuse it โ€” so an SDK-native turn that asked would wait forever. Run the app in-process, or compose a host that routes elicitations.';
34
+ /** @deprecated Use {@link SDK_NEEDS_ELICITATION_ROUTE}. */
35
+ export const SDK_NEEDS_SOMEONE_TO_ASK = SDK_NEEDS_ELICITATION_ROUTE;
36
+ /** @deprecated Use {@link SDK_NEEDS_SOMEONE_TO_ASK}. Kept so a stale import fails loudly at the
37
+ * type level rather than silently reporting the wrong reason. */
38
+ export const SDK_NEEDS_A_WINDOW = SDK_NEEDS_SOMEONE_TO_ASK;
39
+ export const SDK_NEEDS_A_CREDENTIAL = 'SDK-native engineering execution requires the host-managed direct credential. The text-only relay is intentionally not used as a fallback.';
40
+ /**
41
+ * Why the SDK-native lane is unavailable, when it is.
42
+ *
43
+ * ๐Ÿ”ด **The missing window outranks a missing credential.** Both can be true at
44
+ * once. The first reason a person is given is the one they act on, so it has to
45
+ * be the one actually blocking them โ€” fixing a credential would not make this
46
+ * lane run in a process that has no windows, and reporting it first sends an
47
+ * operator to fix the wrong thing and conclude the product is broken.
48
+ */
49
+ export function sdkUnavailableReasonFor(input) {
50
+ if (!input.sdkRunnable)
51
+ return SDK_NEEDS_SOMEONE_TO_ASK;
52
+ if (!input.directCredentialAvailable)
53
+ return SDK_NEEDS_A_CREDENTIAL;
54
+ return input.modelCatalogError ?? undefined;
55
+ }
56
+ /**
57
+ * Deliver one elicitation, and report HONESTLY whether anyone received it.
58
+ *
59
+ * ๐Ÿ”ด The return value is the safety property, not a convenience. The headless SDK-native runner
60
+ * refuses a prompt that reached nobody, and it decides that from this boolean โ€” so a `true` here
61
+ * that nobody can act on produces precisely the hang the refusal exists to prevent, and does it
62
+ * silently, because publishing to zero subscribers looks exactly like publishing to ten.
63
+ *
64
+ * โš ๏ธ "Someone is subscribed" is NOT the question, which is the trap this function exists to
65
+ * avoid: the local RPC server subscribes exactly ONE listener and fans out to however many
66
+ * sockets it holds, so a listener count is equally consistent with a full house and an empty
67
+ * room. Only a completed handshake carrying `canPresentElicitations` says a human can be reached.
68
+ *
69
+ * โš ๏ธ It is also asked FRESH each time rather than captured once. A composition-time answer would
70
+ * be wrong the moment the last client detached, and detaching is normal.
71
+ */
72
+ export function deliverElicitationThrough(target, channel, payload) {
73
+ // No coordinator yet: the adapters are built before it exists. A prompt raised in that window
74
+ // has nowhere to go, and saying so lets it be refused rather than lost.
75
+ if (!target)
76
+ return false;
77
+ if (!target.hasElicitationCapableClient())
78
+ return false;
79
+ target.createElicitationSurfaceMessenger().send(channel, payload);
80
+ return true;
81
+ }
82
+ export function declaredUnavailableLanes(surface) {
83
+ const canResolve = surface.canResolveElicitations ?? surface.hasWindow;
84
+ return canResolve ? [] : [{ lane: 'sdk-native', reason: SDK_NEEDS_ELICITATION_ROUTE }];
85
+ }
86
+ //# sourceMappingURL=hostLanePolicy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hostLanePolicy.js","sourceRoot":"","sources":["../src/hostLanePolicy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,2BAA2B,GACtC,4OAA4O,CAAA;AAE9O,2DAA2D;AAC3D,MAAM,CAAC,MAAM,wBAAwB,GAAG,2BAA2B,CAAA;AAEnE;kEACkE;AAClE,MAAM,CAAC,MAAM,kBAAkB,GAAG,wBAAwB,CAAA;AAE1D,MAAM,CAAC,MAAM,sBAAsB,GACjC,4IAA4I,CAAA;AAE9I;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAWvC;IACC,IAAI,CAAC,KAAK,CAAC,WAAW;QAAE,OAAO,wBAAwB,CAAA;IACvD,IAAI,CAAC,KAAK,CAAC,yBAAyB;QAAE,OAAO,sBAAsB,CAAA;IACnE,OAAO,KAAK,CAAC,iBAAiB,IAAI,SAAS,CAAA;AAC7C,CAAC;AAqBD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAqC,EACrC,OAAe,EACf,OAAgC;IAEhC,8FAA8F;IAC9F,wEAAwE;IACxE,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IACzB,IAAI,CAAC,MAAM,CAAC,2BAA2B,EAAE;QAAE,OAAO,KAAK,CAAA;IACvD,MAAM,CAAC,iCAAiC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACjE,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAoBxC;IACC,MAAM,UAAU,GAAG,OAAO,CAAC,sBAAsB,IAAI,OAAO,CAAC,SAAS,CAAA;IACtE,OAAO,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAC,CAAA;AACxF,CAAC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * The host services every composition must build the same way.
3
+ *
4
+ * ## ๐Ÿ”ด Why this module exists
5
+ *
6
+ * `composeHost.ts` is the shared composition ADE ยง9 step 3 is heading for, and
7
+ * `index.ts` โ€” the Electron main the user actually launches โ€” still builds its
8
+ * own `AgentHostCoordinator`. That fork is real and is being closed in one
9
+ * deliberate commit, not as a side effect of feature work.
10
+ *
11
+ * Meanwhile the four ยง5 services were mounted in `composeHost` only, which
12
+ * meant they reached the DETACHED host and nobody who starts the app. The gate
13
+ * in `packages/host/src/serviceMounting.test.ts` now asks the sharper question
14
+ * โ€” "does this reach the SHIPPED app" โ€” and named them as an adoption gap.
15
+ *
16
+ * Closing that gap by pasting the constructions into `index.ts` would answer
17
+ * the gate and create a worse defect: two spellings of the same decision, in
18
+ * the two files least likely to be read together. The ecosystem rule is that a
19
+ * rule belongs in the shared callee and there must be exactly ONE spelling of
20
+ * it, so the decisions live here and both compositions call this.
21
+ *
22
+ * ## What is a decision, and what is glue
23
+ *
24
+ * Only choices that must not diverge are here. `onRunActivity` is NOT: it binds
25
+ * to the coordinator that composition builds, so the two are genuinely
26
+ * different values rather than one rule written twice.
27
+ */
28
+ import { AgentSessionService, CoordinationService, IntakeService, WorkspaceKnowledgeService, type CoordinationLanePort } from '@xenosystem/agent-interface-host/node';
29
+ export interface SharedHostServiceOptions {
30
+ /**
31
+ * The directories intake may scan.
32
+ *
33
+ * Injected rather than resolved here because the answer is the WORKSPACE
34
+ * AUTHORITY's, and it changes as the user grants more: reading it once at
35
+ * construction would freeze a fresh install's empty list forever.
36
+ */
37
+ resolveIntakeRoots: () => string[];
38
+ }
39
+ export interface SharedHostServices {
40
+ knowledgeService: WorkspaceKnowledgeService;
41
+ intakeService: IntakeService;
42
+ sessionService: AgentSessionService;
43
+ coordinationService: CoordinationService;
44
+ /**
45
+ * The exact calls a turn-execution lane may make.
46
+ *
47
+ * ๐Ÿ”ด A PORT, not the service. `endRun` and `setInboundPolicy` are the host's,
48
+ * and a lane holding the whole object could call them. And exactly one port
49
+ * per composition, shared by every lane: an ACP agent and an SDK agent must
50
+ * reach the same implementation, or a claim granted in one lane and refused
51
+ * in the other leaves an agent with two answers and no way to choose.
52
+ */
53
+ coordinationPort: CoordinationLanePort;
54
+ }
55
+ export declare function createSharedHostServices(options: SharedHostServiceOptions): SharedHostServices;
56
+ //# sourceMappingURL=hostServices.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hostServices.d.ts","sourceRoot":"","sources":["../src/hostServices.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EAEnB,aAAa,EACb,yBAAyB,EAEzB,KAAK,oBAAoB,EAC1B,MAAM,uCAAuC,CAAA;AAE9C,MAAM,WAAW,wBAAwB;IACvC;;;;;;OAMG;IACH,kBAAkB,EAAE,MAAM,MAAM,EAAE,CAAA;CACnC;AAED,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,aAAa,EAAE,aAAa,CAAA;IAC5B,cAAc,EAAE,mBAAmB,CAAA;IACnC,mBAAmB,EAAE,mBAAmB,CAAA;IACxC;;;;;;;;OAQG;IACH,gBAAgB,EAAE,oBAAoB,CAAA;CACvC;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,wBAAwB,GAChC,kBAAkB,CAgDpB"}