@xenosystem/agent-interface-electron-host 0.1.25 → 0.1.27

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 (33) hide show
  1. package/dist/sdkAgent.d.ts +48 -10
  2. package/dist/sdkAgent.d.ts.map +1 -1
  3. package/dist/sdkAgent.js +175 -64
  4. package/dist/sdkAgent.js.map +1 -1
  5. package/dist/sdkExecutionSettlement.d.ts +27 -0
  6. package/dist/sdkExecutionSettlement.d.ts.map +1 -0
  7. package/dist/sdkExecutionSettlement.js +53 -0
  8. package/dist/sdkExecutionSettlement.js.map +1 -0
  9. package/dist/sdkNativeHeadlessRunner.d.ts +2 -0
  10. package/dist/sdkNativeHeadlessRunner.d.ts.map +1 -1
  11. package/dist/sdkNativeHeadlessRunner.js +9 -0
  12. package/dist/sdkNativeHeadlessRunner.js.map +1 -1
  13. package/dist/sdkNativeRunner.d.ts +2 -0
  14. package/dist/sdkNativeRunner.d.ts.map +1 -1
  15. package/dist/sdkNativeRunner.js +8 -0
  16. package/dist/sdkNativeRunner.js.map +1 -1
  17. package/dist/sdkReasoning.d.ts +3 -0
  18. package/dist/sdkReasoning.d.ts.map +1 -0
  19. package/dist/sdkReasoning.js +7 -0
  20. package/dist/sdkReasoning.js.map +1 -0
  21. package/dist/sdkSessionMutationAuthority.d.ts +26 -0
  22. package/dist/sdkSessionMutationAuthority.d.ts.map +1 -0
  23. package/dist/sdkSessionMutationAuthority.js +165 -0
  24. package/dist/sdkSessionMutationAuthority.js.map +1 -0
  25. package/dist/toolCategoryPolicy.d.ts +9 -0
  26. package/dist/toolCategoryPolicy.d.ts.map +1 -0
  27. package/dist/toolCategoryPolicy.js +36 -0
  28. package/dist/toolCategoryPolicy.js.map +1 -0
  29. package/dist/workspaceEnvironmentTools.d.ts +7 -0
  30. package/dist/workspaceEnvironmentTools.d.ts.map +1 -0
  31. package/dist/workspaceEnvironmentTools.js +24 -0
  32. package/dist/workspaceEnvironmentTools.js.map +1 -0
  33. package/package.json +2 -2
@@ -0,0 +1,27 @@
1
+ import type { CommandExecutionPort, CommandExecutionRequest, CommandExecutionResult } from '@xenosystem/agent-interface-host/node';
2
+ export declare class SdkExecutionSettlementRegistry {
3
+ private readonly records;
4
+ private key;
5
+ begin(input: {
6
+ conversationId?: string;
7
+ requestId: string;
8
+ }, manager: unknown): string;
9
+ finish(input: {
10
+ conversationId?: string;
11
+ requestId: string;
12
+ }): void;
13
+ execute(input: {
14
+ conversationId?: string;
15
+ requestId: string;
16
+ }, executor: CommandExecutionPort, request: CommandExecutionRequest): Promise<CommandExecutionResult>;
17
+ confirm(input: {
18
+ conversationId?: string;
19
+ requestId: string;
20
+ }): boolean;
21
+ cancel(input: {
22
+ conversationId?: string;
23
+ requestId: string;
24
+ }): Promise<void>;
25
+ }
26
+ export declare const sdkExecutionSettlements: SdkExecutionSettlementRegistry;
27
+ //# sourceMappingURL=sdkExecutionSettlement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdkExecutionSettlement.d.ts","sourceRoot":"","sources":["../src/sdkExecutionSettlement.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAyB,oBAAoB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAA;AAezJ,qBAAa,8BAA8B;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,GAAG;IACX,KAAK,CAAC,KAAK,EAAC;QAAC,cAAc,CAAC,EAAC,MAAM,CAAC;QAAA,SAAS,EAAC,MAAM,CAAA;KAAC,EAAC,OAAO,EAAC,OAAO,GAAE,MAAM;IAY7E,MAAM,CAAC,KAAK,EAAC;QAAC,cAAc,CAAC,EAAC,MAAM,CAAC;QAAA,SAAS,EAAC,MAAM,CAAA;KAAC,GAAE,IAAI;IACtD,OAAO,CAAC,KAAK,EAAC;QAAC,cAAc,CAAC,EAAC,MAAM,CAAC;QAAA,SAAS,EAAC,MAAM,CAAA;KAAC,EAAC,QAAQ,EAAC,oBAAoB,EAAC,OAAO,EAAC,uBAAuB,GAAE,OAAO,CAAC,sBAAsB,CAAC;IAS5J,OAAO,CAAC,KAAK,EAAC;QAAC,cAAc,CAAC,EAAC,MAAM,CAAC;QAAA,SAAS,EAAC,MAAM,CAAA;KAAC,GAAE,OAAO;IAU1D,MAAM,CAAC,KAAK,EAAC;QAAC,cAAc,CAAC,EAAC,MAAM,CAAC;QAAA,SAAS,EAAC,MAAM,CAAA;KAAC,GAAE,OAAO,CAAC,IAAI,CAAC;CAS5E;AACD,eAAO,MAAM,uBAAuB,gCAAqC,CAAA"}
@@ -0,0 +1,53 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ export class SdkExecutionSettlementRegistry {
3
+ records = new Map();
4
+ key(input) { return JSON.stringify([input.conversationId ?? null, input.requestId]); }
5
+ begin(input, manager) {
6
+ const key = this.key(input);
7
+ if (this.records.has(key) || this.records.size >= 2048)
8
+ throw new Error('SDK execution identity reused or retained authority limit reached');
9
+ const record = { ownerId: `interface-turn:${randomUUID()}`, finished: false, cancelling: false, commands: new Map() };
10
+ const port = manager;
11
+ if (typeof port?.captureOwnerCleanup === 'function' && typeof port.sealOwnerAdmission === 'function' && typeof port.cleanupOwnerAndWait === 'function') {
12
+ record.manager = port;
13
+ record.authority = record.manager.captureOwnerCleanup(record.ownerId);
14
+ }
15
+ this.records.set(key, record);
16
+ return record.ownerId;
17
+ }
18
+ finish(input) { const record = this.records.get(this.key(input)); if (record)
19
+ record.finished = true; }
20
+ async execute(input, executor, request) {
21
+ const record = this.records.get(this.key(input));
22
+ if (!record || record.finished || record.cancelling)
23
+ throw new Error('SDK command has no active issuing execution owner');
24
+ if (!record.commands.has(executor))
25
+ record.commands.set(executor, executor.captureExecutionOwner && executor.sealExecutionOwner && executor.cancelExecutionOwner
26
+ ? executor.captureExecutionOwner(record.ownerId) : undefined);
27
+ const authority = record.commands.get(executor);
28
+ return executor.execute({ ...request, ...(authority ? { ownership: { authority, operationId: randomUUID() } } : {}) });
29
+ }
30
+ confirm(input) {
31
+ const record = this.records.get(this.key(input));
32
+ if (!record?.finished)
33
+ return false;
34
+ let settled = record.manager?.sealOwnerAdmission(record.ownerId, record.authority).settled === true;
35
+ for (const [executor, authority] of record.commands) {
36
+ const commandSettled = authority ? executor.sealExecutionOwner?.(authority).settled === true : false;
37
+ settled = commandSettled && settled;
38
+ }
39
+ return settled;
40
+ }
41
+ async cancel(input) {
42
+ const record = this.records.get(this.key(input));
43
+ if (!record)
44
+ return;
45
+ record.cancelling = true;
46
+ await Promise.all([
47
+ record.manager?.cleanupOwnerAndWait(record.ownerId, { authority: record.authority, timeoutMs: 1000 }),
48
+ ...[...record.commands].map(([executor, authority]) => authority ? executor.cancelExecutionOwner?.(authority, 1000) : undefined),
49
+ ]);
50
+ }
51
+ }
52
+ export const sdkExecutionSettlements = new SdkExecutionSettlementRegistry();
53
+ //# sourceMappingURL=sdkExecutionSettlement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdkExecutionSettlement.js","sourceRoot":"","sources":["../src/sdkExecutionSettlement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAgBxC,MAAM,OAAO,8BAA8B;IACxB,OAAO,GAAC,IAAI,GAAG,EAAsB,CAAA;IAC9C,GAAG,CAAC,KAA+C,IAAW,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,cAAc,IAAE,IAAI,EAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAA,CAAC,CAAC;IAC3I,KAAK,CAAC,KAA+C,EAAC,OAAe;QACnE,MAAM,GAAG,GAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACzB,IAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAE,IAAI,CAAC,OAAO,CAAC,IAAI,IAAE,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAA;QACvI,MAAM,MAAM,GAAa,EAAC,OAAO,EAAC,kBAAkB,UAAU,EAAE,EAAE,EAAC,QAAQ,EAAC,KAAK,EAAC,UAAU,EAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,GAAG,EAAE,EAAC,CAAA;QACtH,MAAM,IAAI,GAAC,OAAiD,CAAA;QAC5D,IAAG,OAAO,IAAI,EAAE,mBAAmB,KAAG,UAAU,IAAE,OAAO,IAAI,CAAC,kBAAkB,KAAG,UAAU,IAAE,OAAO,IAAI,CAAC,mBAAmB,KAAG,UAAU,EAAE,CAAC;YAC5I,MAAM,CAAC,OAAO,GAAC,IAA2B,CAAA;YAC1C,MAAM,CAAC,SAAS,GAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACrE,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAC,MAAM,CAAC,CAAA;QAC5B,OAAO,MAAM,CAAC,OAAO,CAAA;IACvB,CAAC;IACD,MAAM,CAAC,KAA+C,IAAS,MAAM,MAAM,GAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,IAAG,MAAM;QAAE,MAAM,CAAC,QAAQ,GAAC,IAAI,CAAA,CAAC,CAAC;IAC/I,KAAK,CAAC,OAAO,CAAC,KAA+C,EAAC,QAA6B,EAAC,OAA+B;QACzH,MAAM,MAAM,GAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;QAC9C,IAAG,CAAC,MAAM,IAAE,MAAM,CAAC,QAAQ,IAAE,MAAM,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;QACpH,IAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAC7D,QAAQ,CAAC,qBAAqB,IAAE,QAAQ,CAAC,kBAAkB,IAAE,QAAQ,CAAC,oBAAoB;gBACxF,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA,CAAC,CAAA,SAAS,CAAC,CAAA;QAC/D,MAAM,SAAS,GAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC7C,OAAO,QAAQ,CAAC,OAAO,CAAC,EAAC,GAAG,OAAO,EAAC,GAAG,CAAC,SAAS,CAAA,CAAC,CAAA,EAAC,SAAS,EAAC,EAAC,SAAS,EAAC,WAAW,EAAC,UAAU,EAAE,EAAC,EAAC,CAAA,CAAC,CAAA,EAAE,CAAC,EAAC,CAAC,CAAA;IAC1G,CAAC;IACD,OAAO,CAAC,KAA+C;QACrD,MAAM,MAAM,GAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;QAC9C,IAAG,CAAC,MAAM,EAAE,QAAQ;YAAE,OAAO,KAAK,CAAA;QAClC,IAAI,OAAO,GAAC,MAAM,CAAC,OAAO,EAAE,kBAAkB,CAAC,MAAM,CAAC,OAAO,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,KAAG,IAAI,CAAA;QAC9F,KAAI,MAAM,CAAC,QAAQ,EAAC,SAAS,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAClD,MAAM,cAAc,GAAC,SAAS,CAAA,CAAC,CAAA,QAAQ,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC,CAAC,OAAO,KAAG,IAAI,CAAA,CAAC,CAAA,KAAK,CAAA;YAC5F,OAAO,GAAC,cAAc,IAAE,OAAO,CAAA;QACjC,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,KAA+C;QAC1D,MAAM,MAAM,GAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;QAC9C,IAAG,CAAC,MAAM;YAAE,OAAM;QAClB,MAAM,CAAC,UAAU,GAAC,IAAI,CAAA;QACtB,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,MAAM,CAAC,OAAO,EAAE,mBAAmB,CAAC,MAAM,CAAC,OAAO,EAAC,EAAC,SAAS,EAAC,MAAM,CAAC,SAAS,EAAC,SAAS,EAAC,IAAI,EAAC,CAAC;YAC/F,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAC,SAAS,CAAC,EAAC,EAAE,CAAA,SAAS,CAAA,CAAC,CAAA,QAAQ,CAAC,oBAAoB,EAAE,CAAC,SAAS,EAAC,IAAI,CAAC,CAAA,CAAC,CAAA,SAAS,CAAC;SACzH,CAAC,CAAA;IACJ,CAAC;CACF;AACD,MAAM,CAAC,MAAM,uBAAuB,GAAC,IAAI,8BAA8B,EAAE,CAAA"}
@@ -24,6 +24,7 @@ import type { AgentCommandExecutionEnvironment } from './sdkAgent.js';
24
24
  * — is how an unattended agent quietly does the one thing a human would have stopped.
25
25
  */
26
26
  export interface CreateSdkNativeHeadlessRunnerOptions {
27
+ settlementRegistry?: SdkExecutionSettlementRegistry;
27
28
  getAuthToken(): string | null;
28
29
  getPlatformAuthToken?(): string | null;
29
30
  runtimeEventStore?: RuntimeEventStore;
@@ -42,6 +43,7 @@ export interface CreateSdkNativeHeadlessRunnerOptions {
42
43
  onSurfaceError?(error: unknown, channel: string): void;
43
44
  executionEnvironment?: AgentCommandExecutionEnvironment;
44
45
  }
46
+ import { type SdkExecutionSettlementRegistry } from '@xenosystem/agent-interface-host/node';
45
47
  export declare function createSdkNativeHeadlessRunner(options: CreateSdkNativeHeadlessRunnerOptions): SdkNativeAgentRunner;
46
48
  export type { SdkNativeAgentRunInput };
47
49
  //# sourceMappingURL=sdkNativeHeadlessRunner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdkNativeHeadlessRunner.d.ts","sourceRoot":"","sources":["../src/sdkNativeHeadlessRunner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,uCAAuC,CAAA;AAG9C,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,eAAe,CAAA;AAErE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,MAAM,WAAW,oCAAoC;IACnD,YAAY,IAAI,MAAM,GAAG,IAAI,CAAA;IAC7B,oBAAoB,CAAC,IAAI,MAAM,GAAG,IAAI,CAAA;IACtC,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC;;;;;;;OAOG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAA;IAC9E,4FAA4F;IAC5F,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,6FAA6F;IAC7F,cAAc,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtD,oBAAoB,CAAC,EAAE,gCAAgC,CAAA;CACxD;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,oCAAoC,GAC5C,oBAAoB,CA4FtB;AAiCD,YAAY,EAAE,sBAAsB,EAAE,CAAA"}
1
+ {"version":3,"file":"sdkNativeHeadlessRunner.d.ts","sourceRoot":"","sources":["../src/sdkNativeHeadlessRunner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,uCAAuC,CAAA;AAG9C,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,eAAe,CAAA;AAErE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,MAAM,WAAW,oCAAoC;IACnD,kBAAkB,CAAC,EAAC,8BAA8B,CAAA;IAClD,YAAY,IAAI,MAAM,GAAG,IAAI,CAAA;IAC7B,oBAAoB,CAAC,IAAI,MAAM,GAAG,IAAI,CAAA;IACtC,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC;;;;;;;OAOG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAA;IAC9E,4FAA4F;IAC5F,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,6FAA6F;IAC7F,cAAc,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtD,oBAAoB,CAAC,EAAE,gCAAgC,CAAA;CACxD;AAED,OAAO,EAA2B,KAAK,8BAA8B,EAAE,MAAM,uCAAuC,CAAA;AAEpH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,oCAAoC,GAC5C,oBAAoB,CAoGtB;AAiCD,YAAY,EAAE,sBAAsB,EAAE,CAAA"}
@@ -1,7 +1,12 @@
1
1
  import { createHeadlessAgentSurface } from './headlessAgentSurface.js';
2
2
  import { answerSdkAskUser, denySdkAccess, injectContextIntoActiveRun, onPermissionWaitChange, runSdkAgent } from './sdkAgent.js';
3
+ import { sdkExecutionSettlements } from '@xenosystem/agent-interface-host/node';
3
4
  export function createSdkNativeHeadlessRunner(options) {
5
+ const registry = options.settlementRegistry ?? sdkExecutionSettlements;
4
6
  return {
7
+ confirmExecutionSettlement: input => registry.confirm(input),
8
+ releaseExecutionAuthority: input => registry.release(input),
9
+ cancel: (requestId, conversationId) => registry.cancel({ requestId, conversationId }),
5
10
  /**
6
11
  * XENO SPAWN §2.2 pin-forward — and this lane had NONE of it.
7
12
  *
@@ -46,6 +51,7 @@ export function createSdkNativeHeadlessRunner(options) {
46
51
  });
47
52
  try {
48
53
  await runSdkAgent({
54
+ settlementRegistry: registry,
49
55
  requestId: input.requestId,
50
56
  conversationId: input.conversationId,
51
57
  ...(input.sdkSessionId ? { sdkSessionId: input.sdkSessionId } : {}),
@@ -59,12 +65,15 @@ export function createSdkNativeHeadlessRunner(options) {
59
65
  ...(input.systemPrompt ? { systemPrompt: input.systemPrompt } : {}),
60
66
  maxIterations: input.maxIterations,
61
67
  enableThinking: input.enableThinking,
68
+ ...(input.reasoningEffort ? { reasoningEffort: input.reasoningEffort } : {}),
62
69
  getAuthToken: options.getAuthToken,
63
70
  ...(options.getPlatformAuthToken
64
71
  ? { getPlatformAuthToken: options.getPlatformAuthToken }
65
72
  : {}),
66
73
  mainWindow: surface,
67
74
  signal: context.signal,
75
+ ...(context.workspaceEnvironment ? { workspaceEnvironment: context.workspaceEnvironment } : {}),
76
+ ...(context.prepareRuntimeEventForPersistence ? { prepareRuntimeEventForPersistence: context.prepareRuntimeEventForPersistence } : {}),
68
77
  ...(input.capabilities
69
78
  ? { capabilities: input.capabilities }
70
79
  : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"sdkNativeHeadlessRunner.js","sourceRoot":"","sources":["../src/sdkNativeHeadlessRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sdkNativeHeadlessRunner.js","sourceRoot":"","sources":["../src/sdkNativeHeadlessRunner.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,9 @@ import type { BrowserWindow } from 'electron';
2
2
  import type { RuntimeEventStore } from '@xenosystem/agent-interface-host/node';
3
3
  import type { SdkNativeAgentRunInput, SdkNativeAgentRunner } from '@xenosystem/agent-interface-host/node';
4
4
  import type { AgentCommandExecutionEnvironment } from './sdkAgent.js';
5
+ import { type SdkExecutionSettlementRegistry } from '@xenosystem/agent-interface-host/node';
5
6
  export interface CreateSdkNativeElectronRunnerOptions {
7
+ settlementRegistry?: SdkExecutionSettlementRegistry;
6
8
  getAuthToken(): string | null;
7
9
  getPlatformAuthToken?(): string | null;
8
10
  createRuntimeWindow(input: SdkNativeAgentRunInput): BrowserWindow;
@@ -1 +1 @@
1
- {"version":3,"file":"sdkNativeRunner.d.ts","sourceRoot":"","sources":["../src/sdkNativeRunner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE7C,OAAO,KAAK,EAGV,iBAAiB,EAClB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,KAAK,EACV,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,eAAe,CAAA;AAIrE,MAAM,WAAW,oCAAoC;IACnD,YAAY,IAAI,MAAM,GAAG,IAAI,CAAA;IAC7B,oBAAoB,CAAC,IAAI,MAAM,GAAG,IAAI,CAAA;IACtC,mBAAmB,CAAC,KAAK,EAAE,sBAAsB,GAAG,aAAa,CAAA;IACjE,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,oBAAoB,CAAC,EAAE,gCAAgC,CAAA;CACxD;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,oCAAoC,GAC5C,oBAAoB,CAgFtB"}
1
+ {"version":3,"file":"sdkNativeRunner.d.ts","sourceRoot":"","sources":["../src/sdkNativeRunner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE7C,OAAO,KAAK,EAGV,iBAAiB,EAClB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,KAAK,EACV,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,eAAe,CAAA;AAGrE,OAAO,EAA2B,KAAK,8BAA8B,EAAE,MAAM,uCAAuC,CAAA;AAEpH,MAAM,WAAW,oCAAoC;IACnD,kBAAkB,CAAC,EAAC,8BAA8B,CAAA;IAClD,YAAY,IAAI,MAAM,GAAG,IAAI,CAAA;IAC7B,oBAAoB,CAAC,IAAI,MAAM,GAAG,IAAI,CAAA;IACtC,mBAAmB,CAAC,KAAK,EAAE,sBAAsB,GAAG,aAAa,CAAA;IACjE,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,oBAAoB,CAAC,EAAE,gCAAgC,CAAA;CACxD;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,oCAAoC,GAC5C,oBAAoB,CAuFtB"}
@@ -1,7 +1,12 @@
1
1
  import { app } from 'electron';
2
2
  import { injectContextIntoActiveRun, onPermissionWaitChange, runSdkAgent } from './sdkAgent.js';
3
+ import { sdkExecutionSettlements } from '@xenosystem/agent-interface-host/node';
3
4
  export function createSdkNativeElectronRunner(options) {
5
+ const registry = options.settlementRegistry ?? sdkExecutionSettlements;
4
6
  return {
7
+ confirmExecutionSettlement: input => registry.confirm(input),
8
+ releaseExecutionAuthority: input => registry.release(input),
9
+ cancel: (requestId, conversationId) => registry.cancel({ requestId, conversationId }),
5
10
  /**
6
11
  * XENO SPAWN §2.2 pin-forward, mid-turn (see `activeAgentLoops` in sdkAgent.ts for why this
7
12
  * lane cannot serve the between-turns case). `undefined` means no run is in flight; the
@@ -31,6 +36,7 @@ export function createSdkNativeElectronRunner(options) {
31
36
  : undefined;
32
37
  try {
33
38
  await runSdkAgent({
39
+ settlementRegistry: registry,
34
40
  requestId: input.requestId,
35
41
  conversationId: input.conversationId,
36
42
  ...(input.hostBinding ? { hostBinding: structuredClone(input.hostBinding) } : {}),
@@ -45,12 +51,14 @@ export function createSdkNativeElectronRunner(options) {
45
51
  ...(input.systemPrompt ? { systemPrompt: input.systemPrompt } : {}),
46
52
  maxIterations: input.maxIterations,
47
53
  enableThinking: input.enableThinking,
54
+ ...(input.reasoningEffort ? { reasoningEffort: input.reasoningEffort } : {}),
48
55
  getAuthToken: options.getAuthToken,
49
56
  ...(options.getPlatformAuthToken
50
57
  ? { getPlatformAuthToken: options.getPlatformAuthToken }
51
58
  : {}),
52
59
  mainWindow: electronSurface(options.createRuntimeWindow(input)),
53
60
  signal: context.signal,
61
+ ...(context.workspaceEnvironment ? { workspaceEnvironment: context.workspaceEnvironment } : {}),
54
62
  // The Electron lane knows this and the loop must not: `app.isPackaged` is the fact that
55
63
  // forbids `debug-bypass` in a packaged build. Passed here so behaviour is byte-identical
56
64
  // to the previous inline read, while the loop's own default stays restrictive for hosts
@@ -1 +1 @@
1
- {"version":3,"file":"sdkNativeRunner.js","sourceRoot":"","sources":["../src/sdkNativeRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sdkNativeRunner.js","sourceRoot":"","sources":["../src/sdkNativeRunner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { AgentEffortLevel } from '@xenosystem/agent-sdk';
2
+ export declare function requireSdkReasoningEffort(value: string, supported: readonly AgentEffortLevel[]): AgentEffortLevel;
3
+ //# sourceMappingURL=sdkReasoning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdkReasoning.d.ts","sourceRoot":"","sources":["../src/sdkReasoning.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,gBAAgB,EAAE,GAAG,gBAAgB,CAIjH"}
@@ -0,0 +1,7 @@
1
+ export function requireSdkReasoningEffort(value, supported) {
2
+ const effort = supported.find((entry) => entry === value);
3
+ if (!effort)
4
+ throw new Error('The SDK runtime does not support the advertised reasoning effort value.');
5
+ return effort;
6
+ }
7
+ //# sourceMappingURL=sdkReasoning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdkReasoning.js","sourceRoot":"","sources":["../src/sdkReasoning.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,yBAAyB,CAAC,KAAa,EAAE,SAAsC;IAC7F,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,CAAA;IACzD,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAA;IACvG,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1,26 @@
1
+ export interface SdkSessionAuthoritySnapshot {
2
+ sessionListRevision: number;
3
+ attachments: Record<string, string>;
4
+ }
5
+ /** Durable per-user session mutation CAS. SDK session bytes remain owned by
6
+ * SessionRegistry; this record owns only attachment identity and list epochs. */
7
+ export declare class SdkSessionMutationAuthority {
8
+ private readonly path;
9
+ constructor(root: string);
10
+ private read;
11
+ private write;
12
+ private enqueue;
13
+ snapshot(): Promise<SdkSessionAuthoritySnapshot>;
14
+ observeSessionList(sessionFingerprint: string): Promise<SdkSessionAuthoritySnapshot>;
15
+ recordAttachment(conversationId: string, sessionId: string, validate?: () => void | Promise<void>): Promise<SdkSessionAuthoritySnapshot>;
16
+ establishAttachment<T>(conversationId: string, operation: () => Promise<{
17
+ sessionId: string;
18
+ value: T;
19
+ }>, validate?: (sessionId: string) => void | Promise<void>, dispose?: (value: T) => void | Promise<void>): Promise<{
20
+ value: T;
21
+ snapshot: SdkSessionAuthoritySnapshot;
22
+ }>;
23
+ recordDetachment(conversationId: string): Promise<SdkSessionAuthoritySnapshot>;
24
+ mutate(expectedRevision: number | undefined, readSessionFingerprint: () => string | Promise<string>, validate: (snapshot: SdkSessionAuthoritySnapshot) => void | Promise<void>, operation: () => Promise<void>): Promise<SdkSessionAuthoritySnapshot>;
25
+ }
26
+ //# sourceMappingURL=sdkSessionMutationAuthority.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdkSessionMutationAuthority.d.ts","sourceRoot":"","sources":["../src/sdkSessionMutationAuthority.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,2BAA2B;IAAG,mBAAmB,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE;AAEjH;iFACiF;AACjF,qBAAa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;gBACjB,IAAI,EAAE,MAAM;IACxB,OAAO,CAAC,IAAI;IAYZ,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,OAAO;IAOf,QAAQ,IAAI,OAAO,CAAC,2BAA2B,CAAC;IAGhD,kBAAkB,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAcpF,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAmB,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAYzJ,mBAAmB,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,CAAC,CAAA;KAAE,CAAC,EAAE,QAAQ,GAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAmB,EAAE,OAAO,GAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAmB,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,CAAC,CAAC;QAAC,QAAQ,EAAE,2BAA2B,CAAA;KAAE,CAAC;IAqB/S,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAW9E,MAAM,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,EAAE,sBAAsB,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,2BAA2B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,2BAA2B,CAAC;CA8BtP"}
@@ -0,0 +1,165 @@
1
+ import { closeSync, existsSync, fsyncSync, mkdirSync, openSync, readFileSync, renameSync, writeFileSync } from 'node:fs';
2
+ import { dirname, join, resolve } from 'node:path';
3
+ import { randomUUID } from 'node:crypto';
4
+ const queues = new Map();
5
+ const empty = () => ({ version: 1, revision: 0, attachments: {} });
6
+ /** Durable per-user session mutation CAS. SDK session bytes remain owned by
7
+ * SessionRegistry; this record owns only attachment identity and list epochs. */
8
+ export class SdkSessionMutationAuthority {
9
+ path;
10
+ constructor(root) { this.path = join(resolve(root), 'session-mutation-authority.json'); }
11
+ read() {
12
+ if (!existsSync(this.path))
13
+ return empty();
14
+ const value = JSON.parse(readFileSync(this.path, 'utf8'));
15
+ if (!value || typeof value !== 'object' || Array.isArray(value))
16
+ throw new Error('SDK session authority record is invalid.');
17
+ const row = value;
18
+ if (row.version !== 1 || !Number.isSafeInteger(row.revision) || (row.revision ?? -1) < 0 || !row.attachments || typeof row.attachments !== 'object' || Array.isArray(row.attachments)
19
+ || (row.sessionFingerprint !== undefined && !/^[a-f0-9]{64}$/.test(row.sessionFingerprint))
20
+ || Object.entries(row.attachments).some(([conversationId, sessionId]) => !conversationId || typeof sessionId !== 'string' || !sessionId)) {
21
+ throw new Error('SDK session authority record is invalid.');
22
+ }
23
+ return { version: 1, revision: row.revision, attachments: { ...row.attachments }, ...(row.sessionFingerprint ? { sessionFingerprint: row.sessionFingerprint } : {}) };
24
+ }
25
+ write(state) {
26
+ const directory = dirname(this.path);
27
+ mkdirSync(directory, { recursive: true, mode: 0o700 });
28
+ const temporary = `${this.path}.${randomUUID()}.tmp`;
29
+ writeFileSync(temporary, JSON.stringify(state), { flag: 'wx', mode: 0o600 });
30
+ const file = openSync(temporary, 'r+');
31
+ try {
32
+ fsyncSync(file);
33
+ }
34
+ finally {
35
+ closeSync(file);
36
+ }
37
+ renameSync(temporary, this.path);
38
+ if (process.platform !== 'win32') {
39
+ const parent = openSync(directory, 'r');
40
+ try {
41
+ fsyncSync(parent);
42
+ }
43
+ finally {
44
+ closeSync(parent);
45
+ }
46
+ }
47
+ }
48
+ enqueue(operation) {
49
+ const key = this.path.toLowerCase(), previous = queues.get(key) ?? Promise.resolve();
50
+ const result = previous.catch(() => undefined).then(operation);
51
+ queues.set(key, result);
52
+ void result.finally(() => { if (queues.get(key) === result)
53
+ queues.delete(key); }).catch(() => undefined);
54
+ return result;
55
+ }
56
+ snapshot() {
57
+ return this.enqueue(async () => { const state = this.read(); return { sessionListRevision: state.revision, attachments: { ...state.attachments } }; });
58
+ }
59
+ observeSessionList(sessionFingerprint) {
60
+ return this.enqueue(async () => {
61
+ const state = this.read();
62
+ if (!/^[a-f0-9]{64}$/.test(sessionFingerprint))
63
+ throw new Error('SDK session fingerprint is invalid.');
64
+ if (state.sessionFingerprint === sessionFingerprint)
65
+ return { sessionListRevision: state.revision, attachments: { ...state.attachments } };
66
+ if (state.sessionFingerprint !== undefined) {
67
+ if (state.revision === Number.MAX_SAFE_INTEGER)
68
+ throw new Error('SDK session authority revision capacity reached.');
69
+ state.revision++;
70
+ }
71
+ state.sessionFingerprint = sessionFingerprint;
72
+ this.write(state);
73
+ return { sessionListRevision: state.revision, attachments: { ...state.attachments } };
74
+ });
75
+ }
76
+ recordAttachment(conversationId, sessionId, validate = () => undefined) {
77
+ return this.enqueue(async () => {
78
+ const state = this.read();
79
+ await validate();
80
+ if (state.attachments[conversationId] === sessionId)
81
+ return { sessionListRevision: state.revision, attachments: { ...state.attachments } };
82
+ if (state.revision === Number.MAX_SAFE_INTEGER)
83
+ throw new Error('SDK session authority revision capacity reached.');
84
+ state.attachments[conversationId] = sessionId;
85
+ state.revision++;
86
+ this.write(state);
87
+ return { sessionListRevision: state.revision, attachments: { ...state.attachments } };
88
+ });
89
+ }
90
+ establishAttachment(conversationId, operation, validate = () => undefined, dispose = () => undefined) {
91
+ return this.enqueue(async () => {
92
+ const state = this.read();
93
+ let established;
94
+ try {
95
+ established = await operation();
96
+ if (!established.sessionId)
97
+ throw new Error('SDK session attachment did not provide a session ID.');
98
+ await validate(established.sessionId);
99
+ if (state.attachments[conversationId] !== established.sessionId) {
100
+ if (state.revision === Number.MAX_SAFE_INTEGER)
101
+ throw new Error('SDK session authority revision capacity reached.');
102
+ state.attachments[conversationId] = established.sessionId;
103
+ state.revision++;
104
+ this.write(state);
105
+ }
106
+ return { value: established.value, snapshot: { sessionListRevision: state.revision, attachments: { ...state.attachments } } };
107
+ }
108
+ catch (err) {
109
+ if (established)
110
+ await dispose(established.value);
111
+ throw err;
112
+ }
113
+ });
114
+ }
115
+ recordDetachment(conversationId) {
116
+ return this.enqueue(async () => {
117
+ const state = this.read();
118
+ if (!(conversationId in state.attachments))
119
+ return { sessionListRevision: state.revision, attachments: { ...state.attachments } };
120
+ if (state.revision === Number.MAX_SAFE_INTEGER)
121
+ throw new Error('SDK session authority revision capacity reached.');
122
+ delete state.attachments[conversationId];
123
+ state.revision++;
124
+ this.write(state);
125
+ return { sessionListRevision: state.revision, attachments: { ...state.attachments } };
126
+ });
127
+ }
128
+ mutate(expectedRevision, readSessionFingerprint, validate, operation) {
129
+ return this.enqueue(async () => {
130
+ const state = this.read();
131
+ const observedFingerprint = await readSessionFingerprint();
132
+ if (!/^[a-f0-9]{64}$/.test(observedFingerprint))
133
+ throw new Error('SDK session fingerprint is invalid.');
134
+ if (state.sessionFingerprint === undefined) {
135
+ state.sessionFingerprint = observedFingerprint;
136
+ this.write(state);
137
+ }
138
+ else if (state.sessionFingerprint !== observedFingerprint) {
139
+ if (state.revision === Number.MAX_SAFE_INTEGER)
140
+ throw new Error('SDK session authority revision capacity reached.');
141
+ state.sessionFingerprint = observedFingerprint;
142
+ state.revision++;
143
+ this.write(state);
144
+ throw new Error(`SDK_SESSION_REVISION_CONFLICT: session registry changed; current ${state.revision}. Reload SDK sessions.`);
145
+ }
146
+ if (!Number.isSafeInteger(expectedRevision) || state.revision !== expectedRevision)
147
+ throw new Error(`SDK_SESSION_REVISION_CONFLICT: expected ${String(expectedRevision)}, current ${state.revision}. Reload SDK sessions.`);
148
+ await validate({ sessionListRevision: state.revision, attachments: { ...state.attachments } });
149
+ if (state.revision === Number.MAX_SAFE_INTEGER)
150
+ throw new Error('SDK session authority revision capacity reached.');
151
+ // Fence the admitted mutation durably before touching SessionRegistry.
152
+ // A crash or partial SDK operation may consume an epoch, but can never
153
+ // leave the caller's old destructive capability reusable.
154
+ state.revision++;
155
+ this.write(state);
156
+ await operation();
157
+ state.sessionFingerprint = await readSessionFingerprint();
158
+ if (!/^[a-f0-9]{64}$/.test(state.sessionFingerprint))
159
+ throw new Error('SDK session fingerprint is invalid.');
160
+ this.write(state);
161
+ return { sessionListRevision: state.revision, attachments: { ...state.attachments } };
162
+ });
163
+ }
164
+ }
165
+ //# sourceMappingURL=sdkSessionMutationAuthority.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdkSessionMutationAuthority.js","sourceRoot":"","sources":["../src/sdkSessionMutationAuthority.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { AgentSandboxCapabilities } from '@xenosystem/agent-interface-host/node';
2
+ export declare function deniedCategoryToolNames(capabilities: AgentSandboxCapabilities): Set<string>;
3
+ /** Also reapply after dynamic registration: a late MCP/host registration may not restore a denied alias. */
4
+ export declare function enforceToolCategoryPolicy(registry: {
5
+ listNames(): string[];
6
+ unregister(name: string): boolean;
7
+ onChange(listener: () => void): () => void;
8
+ }, capabilities: AgentSandboxCapabilities): () => void;
9
+ //# sourceMappingURL=toolCategoryPolicy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolCategoryPolicy.d.ts","sourceRoot":"","sources":["../src/toolCategoryPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAA;AAerF,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,wBAAwB,GAAG,GAAG,CAAC,MAAM,CAAC,CAE3F;AAED,4GAA4G;AAC5G,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE;IAAE,SAAS,IAAI,MAAM,EAAE,CAAC;IAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAA;CAAE,EAAE,YAAY,EAAE,wBAAwB,GAAG,MAAM,IAAI,CAWhN"}
@@ -0,0 +1,36 @@
1
+ // These are actual tool definitions/aliases in the SDK and host registry, not UI labels.
2
+ const TOOLS = {
3
+ terminal: ['Bash', 'TaskInput', 'TaskOutput', 'TaskStop', 'TerminalList', 'TerminalReadOutput', 'TerminalWriteInput'],
4
+ fileRead: ['Read', 'View', 'Glob', 'GlobTool', 'Grep', 'GrepTool', 'LS', 'ReadImage', 'NotebookRead', 'ReadNotebook', 'MemoryRead', 'SqliteAnalyze', 'SQLiteAnalyze', 'GcodeAnalyze', 'ElfAnalyze', 'GitStatus', 'GitDiff', 'GitLog', 'LspDefinition', 'LspDiagnostics', 'LspHover', 'LspReferences'],
5
+ fileWrite: ['Write', 'WriteFiles', 'Edit', 'Replace', 'NotebookEdit', 'NotebookEditCell', 'MemoryWrite', 'GitCommit', 'GitBranch'],
6
+ appLaunch: ['OpenApp'],
7
+ webSearch: ['WebSearch', 'WebFetch'],
8
+ // A general-purpose shell can execute code too. Denying code execution must deny that route.
9
+ codeExecution: ['Bash', 'TaskInput', 'TerminalWriteInput'],
10
+ imageGeneration: ['GenerateImage'],
11
+ dataAnalysis: ['SqliteAnalyze', 'SQLiteAnalyze', 'GcodeAnalyze', 'ElfAnalyze', 'ArtifactCompare'],
12
+ };
13
+ export function deniedCategoryToolNames(capabilities) {
14
+ return new Set(Object.keys(TOOLS).flatMap((key) => capabilities[key] === false ? [...TOOLS[key]] : []));
15
+ }
16
+ /** Also reapply after dynamic registration: a late MCP/host registration may not restore a denied alias. */
17
+ export function enforceToolCategoryPolicy(registry, capabilities) {
18
+ const denied = deniedCategoryToolNames(capabilities);
19
+ let applying = false;
20
+ const apply = () => {
21
+ if (applying)
22
+ return;
23
+ applying = true;
24
+ try {
25
+ for (const name of registry.listNames())
26
+ if (denied.has(name))
27
+ registry.unregister(name);
28
+ }
29
+ finally {
30
+ applying = false;
31
+ }
32
+ };
33
+ apply();
34
+ return registry.onChange(apply);
35
+ }
36
+ //# sourceMappingURL=toolCategoryPolicy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolCategoryPolicy.js","sourceRoot":"","sources":["../src/toolCategoryPolicy.ts"],"names":[],"mappings":"AAEA,yFAAyF;AACzF,MAAM,KAAK,GAAG;IACZ,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,oBAAoB,EAAE,oBAAoB,CAAC;IACrH,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAE,eAAe,CAAC;IACrS,SAAS,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,CAAC;IAClI,SAAS,EAAE,CAAC,SAAS,CAAC;IACtB,SAAS,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;IACpC,6FAA6F;IAC7F,aAAa,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,oBAAoB,CAAC;IAC1D,eAAe,EAAE,CAAC,eAAe,CAAC;IAClC,YAAY,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,CAAC;CACrB,CAAA;AAE9E,MAAM,UAAU,uBAAuB,CAAC,YAAsC;IAC5E,OAAO,IAAI,GAAG,CAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAA+B,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACxI,CAAC;AAED,4GAA4G;AAC5G,MAAM,UAAU,yBAAyB,CAAC,QAAkH,EAAE,YAAsC;IAClM,MAAM,MAAM,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAA;IACpD,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,QAAQ;YAAE,OAAM;QACpB,QAAQ,GAAG,IAAI,CAAA;QACf,IAAI,CAAC;YAAC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,SAAS,EAAE;gBAAE,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAAC,CAAC;gBACxF,CAAC;YAAC,QAAQ,GAAG,KAAK,CAAA;QAAC,CAAC;IAC9B,CAAC,CAAA;IACD,KAAK,EAAE,CAAA;IACP,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AACjC,CAAC"}
@@ -0,0 +1,7 @@
1
+ /** Redacts before tool results return to the model, including late-registered tools. */
2
+ export declare function protectWorkspaceToolResults(registry: {
3
+ listNames(): string[];
4
+ get(name: string): unknown;
5
+ onChange(listener: () => void): () => void;
6
+ }, redact: (value: Record<string, unknown>) => Record<string, unknown>): () => void;
7
+ //# sourceMappingURL=workspaceEnvironmentTools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaceEnvironmentTools.d.ts","sourceRoot":"","sources":["../src/workspaceEnvironmentTools.ts"],"names":[],"mappings":"AACA,wFAAwF;AACxF,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE;IAAE,SAAS,IAAI,MAAM,EAAE,CAAC;IAAC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAA;CAAE,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,IAAI,CAexO"}
@@ -0,0 +1,24 @@
1
+ /** Redacts before tool results return to the model, including late-registered tools. */
2
+ export function protectWorkspaceToolResults(registry, redact) {
3
+ const wrapped = new WeakSet();
4
+ const apply = () => {
5
+ for (const name of registry.listNames()) {
6
+ const tool = registry.get(name);
7
+ if (!tool || typeof tool.execute !== 'function' || wrapped.has(tool))
8
+ continue;
9
+ const execute = tool.execute.bind(tool);
10
+ tool.execute = async (...args) => {
11
+ try {
12
+ return redact({ result: await execute(...args) }).result;
13
+ }
14
+ catch {
15
+ throw new Error('Tool execution failed; private environment details were suppressed.');
16
+ }
17
+ };
18
+ wrapped.add(tool);
19
+ }
20
+ };
21
+ apply();
22
+ return registry.onChange(apply);
23
+ }
24
+ //# sourceMappingURL=workspaceEnvironmentTools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaceEnvironmentTools.js","sourceRoot":"","sources":["../src/workspaceEnvironmentTools.ts"],"names":[],"mappings":"AACA,wFAAwF;AACxF,MAAM,UAAU,2BAA2B,CAAC,QAA2G,EAAE,MAAmE;IAC1N,MAAM,OAAO,GAAG,IAAI,OAAO,EAAU,CAAA;IACrC,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;YACxC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAqB,CAAA;YACnD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAQ;YAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACvC,IAAI,CAAC,OAAO,GAAG,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE;gBAC/B,IAAI,CAAC;oBAAC,OAAO,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAA;gBAAC,CAAC;gBAChE,MAAM,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAA;gBAAC,CAAC;YAClG,CAAC,CAAA;YACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACnB,CAAC;IACH,CAAC,CAAA;IACD,KAAK,EAAE,CAAC;IAAC,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC1C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xenosystem/agent-interface-electron-host",
3
- "version": "0.1.25",
3
+ "version": "0.1.27",
4
4
  "license": "UNLICENSED",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -29,7 +29,7 @@
29
29
  "dependencies": {
30
30
  "@xenosystem/agent-sdk": "0.9.25",
31
31
  "@xenosystem/web-context-client": "0.1.1",
32
- "@xenosystem/agent-interface-host": "0.1.25"
32
+ "@xenosystem/agent-interface-host": "0.1.27"
33
33
  },
34
34
  "peerDependencies": {
35
35
  "electron": ">=44"