asyar-sdk 2.4.0 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/dist/contracts/runs.d.ts +48 -0
  2. package/dist/contracts/runs.d.ts.map +1 -0
  3. package/dist/contracts/runs.js +2 -0
  4. package/dist/contracts/runs.js.map +1 -0
  5. package/dist/contracts/runs.test.d.ts +2 -0
  6. package/dist/contracts/runs.test.d.ts.map +1 -0
  7. package/dist/contracts/runs.test.js +27 -0
  8. package/dist/contracts/runs.test.js.map +1 -0
  9. package/dist/contracts/tools.d.ts +22 -0
  10. package/dist/contracts/tools.d.ts.map +1 -0
  11. package/dist/contracts/tools.js +2 -0
  12. package/dist/contracts/tools.js.map +1 -0
  13. package/dist/contracts/tools.test.d.ts +2 -0
  14. package/dist/contracts/tools.test.d.ts.map +1 -0
  15. package/dist/contracts/tools.test.js +96 -0
  16. package/dist/contracts/tools.test.js.map +1 -0
  17. package/dist/contracts.d.ts +3 -0
  18. package/dist/contracts.d.ts.map +1 -1
  19. package/dist/contracts.js +1 -0
  20. package/dist/contracts.js.map +1 -1
  21. package/dist/icons/IconRenderer.test.js +12 -0
  22. package/dist/icons/IconRenderer.test.js.map +1 -1
  23. package/dist/icons/iconData.d.ts.map +1 -1
  24. package/dist/icons/iconData.js +43 -0
  25. package/dist/icons/iconData.js.map +1 -1
  26. package/dist/ipc/namespaces.d.ts +1 -1
  27. package/dist/ipc/namespaces.d.ts.map +1 -1
  28. package/dist/ipc/namespaces.js +2 -0
  29. package/dist/ipc/namespaces.js.map +1 -1
  30. package/dist/ipc/namespaces.test.js +1 -1
  31. package/dist/ipc/namespaces.test.js.map +1 -1
  32. package/dist/ipc/namespaces.tools.test.d.ts +2 -0
  33. package/dist/ipc/namespaces.tools.test.d.ts.map +1 -0
  34. package/dist/ipc/namespaces.tools.test.js +8 -0
  35. package/dist/ipc/namespaces.tools.test.js.map +1 -0
  36. package/dist/services/BaseServiceProxy.d.ts.map +1 -1
  37. package/dist/services/BaseServiceProxy.js +8 -0
  38. package/dist/services/BaseServiceProxy.js.map +1 -1
  39. package/dist/services/CommandServiceProxy.d.ts +13 -1
  40. package/dist/services/CommandServiceProxy.d.ts.map +1 -1
  41. package/dist/services/CommandServiceProxy.js +24 -0
  42. package/dist/services/CommandServiceProxy.js.map +1 -1
  43. package/dist/services/CommandServiceProxy.test.js +66 -1
  44. package/dist/services/CommandServiceProxy.test.js.map +1 -1
  45. package/dist/services/ICommandService.d.ts +15 -1
  46. package/dist/services/ICommandService.d.ts.map +1 -1
  47. package/dist/services/RunServiceProxy.d.ts +9 -0
  48. package/dist/services/RunServiceProxy.d.ts.map +1 -0
  49. package/dist/services/RunServiceProxy.js +93 -0
  50. package/dist/services/RunServiceProxy.js.map +1 -0
  51. package/dist/services/RunServiceProxy.test.d.ts +2 -0
  52. package/dist/services/RunServiceProxy.test.d.ts.map +1 -0
  53. package/dist/services/RunServiceProxy.test.js +180 -0
  54. package/dist/services/RunServiceProxy.test.js.map +1 -0
  55. package/dist/services/ToolsServiceProxy.d.ts +11 -0
  56. package/dist/services/ToolsServiceProxy.d.ts.map +1 -0
  57. package/dist/services/ToolsServiceProxy.js +45 -0
  58. package/dist/services/ToolsServiceProxy.js.map +1 -0
  59. package/dist/services/ToolsServiceProxy.test.d.ts +2 -0
  60. package/dist/services/ToolsServiceProxy.test.d.ts.map +1 -0
  61. package/dist/services/ToolsServiceProxy.test.js +142 -0
  62. package/dist/services/ToolsServiceProxy.test.js.map +1 -0
  63. package/dist/types/ActionType.d.ts +2 -0
  64. package/dist/types/ActionType.d.ts.map +1 -1
  65. package/dist/types/ActionType.js.map +1 -1
  66. package/dist/types/ClipboardType.d.ts +9 -0
  67. package/dist/types/ClipboardType.d.ts.map +1 -1
  68. package/dist/types/CommandType.d.ts +31 -0
  69. package/dist/types/CommandType.d.ts.map +1 -1
  70. package/dist/types/ExtensionType.d.ts +10 -0
  71. package/dist/types/ExtensionType.d.ts.map +1 -1
  72. package/dist/types/ExtensionType.tools.test.d.ts +2 -0
  73. package/dist/types/ExtensionType.tools.test.d.ts.map +1 -0
  74. package/dist/types/ExtensionType.tools.test.js +57 -0
  75. package/dist/types/ExtensionType.tools.test.js.map +1 -0
  76. package/dist/worker.d.ts.map +1 -1
  77. package/dist/worker.js +62 -1
  78. package/dist/worker.js.map +1 -1
  79. package/dist/worker.test.js +2 -0
  80. package/dist/worker.test.js.map +1 -1
  81. package/dist/worker.tools.test.d.ts +2 -0
  82. package/dist/worker.tools.test.d.ts.map +1 -0
  83. package/dist/worker.tools.test.js +100 -0
  84. package/dist/worker.tools.test.js.map +1 -0
  85. package/package.json +1 -1
@@ -7,7 +7,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { describe, it, expect, vi, beforeEach } from 'vitest';
10
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
11
11
  import { messageBroker } from '../ipc/MessageBroker';
12
12
  vi.mock('../ipc/MessageBroker', () => ({
13
13
  messageBroker: { invoke: vi.fn().mockResolvedValue(undefined), on: vi.fn(), off: vi.fn() },
@@ -99,4 +99,69 @@ describe('CommandServiceProxy canonical namespace', () => {
99
99
  expect(call).toBeDefined();
100
100
  }));
101
101
  });
102
+ describe('CommandServiceProxy.replaceDynamicCommands', () => {
103
+ beforeEach(() => {
104
+ vi.clearAllMocks();
105
+ window.__ASYAR_ROLE__ = 'worker';
106
+ });
107
+ afterEach(() => {
108
+ delete window.__ASYAR_ROLE__;
109
+ });
110
+ it('invokes commands:replaceDynamicCommands with extensionId and regs payload', () => __awaiter(void 0, void 0, void 0, function* () {
111
+ const { proxy, mockInvoke } = makeProxy();
112
+ mockInvoke.mockResolvedValueOnce(undefined);
113
+ const regs = [
114
+ { id: 'sc-1', name: 'Run lights', arguments: [{ name: 'value', type: 'text' }] },
115
+ { id: 'sc-2', name: 'Send report' },
116
+ ];
117
+ yield proxy.replaceDynamicCommands(regs);
118
+ const [cmd, payload] = mockInvoke.mock.calls[0];
119
+ expect(cmd).toBe('commands:replaceDynamicCommands');
120
+ expect(payload).toEqual({ extensionId: 'com.example.ext', regs });
121
+ }));
122
+ it('resolves when broker resolves', () => __awaiter(void 0, void 0, void 0, function* () {
123
+ const { proxy, mockInvoke } = makeProxy();
124
+ mockInvoke.mockResolvedValueOnce(undefined);
125
+ yield expect(proxy.replaceDynamicCommands([])).resolves.toBeUndefined();
126
+ }));
127
+ it('rejects when broker rejects with the broker error', () => __awaiter(void 0, void 0, void 0, function* () {
128
+ const { proxy, mockInvoke } = makeProxy();
129
+ mockInvoke.mockRejectedValueOnce(new Error('argument validation failed'));
130
+ yield expect(proxy.replaceDynamicCommands([{ id: 'x', name: 'X' }])).rejects.toThrow('argument validation failed');
131
+ }));
132
+ it('throws when called from view role', () => __awaiter(void 0, void 0, void 0, function* () {
133
+ ;
134
+ window.__ASYAR_ROLE__ = 'view';
135
+ const { proxy } = makeProxy();
136
+ yield expect(proxy.replaceDynamicCommands([])).rejects.toThrow(/worker-only/i);
137
+ }));
138
+ it('throws when called with no role set (untrusted context)', () => __awaiter(void 0, void 0, void 0, function* () {
139
+ delete window.__ASYAR_ROLE__;
140
+ const { proxy } = makeProxy();
141
+ yield expect(proxy.replaceDynamicCommands([])).rejects.toThrow(/worker-only/i);
142
+ }));
143
+ it('does not invoke broker when worker-only assertion fails', () => __awaiter(void 0, void 0, void 0, function* () {
144
+ ;
145
+ window.__ASYAR_ROLE__ = 'view';
146
+ const { proxy, mockInvoke } = makeProxy();
147
+ yield expect(proxy.replaceDynamicCommands([])).rejects.toThrow();
148
+ expect(mockInvoke).not.toHaveBeenCalled();
149
+ }));
150
+ });
151
+ describe('CommandServiceProxy canonical namespace — replaceDynamicCommands', () => {
152
+ beforeEach(() => {
153
+ vi.clearAllMocks();
154
+ window.__ASYAR_ROLE__ = 'worker';
155
+ });
156
+ afterEach(() => {
157
+ delete window.__ASYAR_ROLE__;
158
+ });
159
+ it('replaceDynamicCommands → "commands:replaceDynamicCommands"', () => __awaiter(void 0, void 0, void 0, function* () {
160
+ const { proxy, mockInvoke } = makeProxy();
161
+ mockInvoke.mockResolvedValue(undefined);
162
+ yield proxy.replaceDynamicCommands([]);
163
+ const call = mockInvoke.mock.calls.find(c => c[0] === 'commands:replaceDynamicCommands');
164
+ expect(call).toBeDefined();
165
+ }));
166
+ });
102
167
  //# sourceMappingURL=CommandServiceProxy.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CommandServiceProxy.test.js","sourceRoot":"","sources":["../../src/services/CommandServiceProxy.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CommandServiceProxy.test.js","sourceRoot":"","sources":["../../src/services/CommandServiceProxy.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { CommandHandler, ExtensionAction } from '../types';
1
+ import type { CommandHandler, DynamicCommandRegistration, ExtensionAction } from '../types';
2
2
  export interface ICommandService {
3
3
  registerCommand(commandId: string, handler: CommandHandler, extensionId: string, actions?: Omit<ExtensionAction, 'extensionId'>[]): void;
4
4
  unregisterCommand(commandId: string): void;
@@ -9,5 +9,19 @@ export interface ICommandService {
9
9
  updateCommandMetadata(commandId: string, metadata: {
10
10
  subtitle?: string;
11
11
  }): Promise<void>;
12
+ /**
13
+ * Replace this extension's dynamic command list with the given set.
14
+ * Worker-only — the proxy method asserts `__ASYAR_ROLE__ === 'worker'`
15
+ * at call time. Calling from the view iframe rejects.
16
+ *
17
+ * The SDK proxy and the launcher's host-side `CommandService` have
18
+ * different argument shapes (the proxy injects extensionId from the
19
+ * wire envelope; the host receives it as a positional arg from the
20
+ * IPC router). The host class therefore deviates structurally from
21
+ * this signature in the same way `updateCommandMetadata` does — an
22
+ * accepted pattern in the launcher. Extension authors only see this
23
+ * proxy-side signature.
24
+ */
25
+ replaceDynamicCommands(regs: DynamicCommandRegistration[]): Promise<void>;
12
26
  }
13
27
  //# sourceMappingURL=ICommandService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ICommandService.d.ts","sourceRoot":"","sources":["../../src/services/ICommandService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhE,MAAM,WAAW,eAAe;IAC9B,eAAe,CACb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,EAAE,GAC/C,IAAI,CAAC;IACR,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACpF,WAAW,IAAI,MAAM,EAAE,CAAC;IACxB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACvD,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACrD,qBAAqB,CACnB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9B,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB"}
1
+ {"version":3,"file":"ICommandService.d.ts","sourceRoot":"","sources":["../../src/services/ICommandService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,0BAA0B,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE5F,MAAM,WAAW,eAAe;IAC9B,eAAe,CACb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,EAAE,GAC/C,IAAI,CAAC;IACR,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACpF,WAAW,IAAI,MAAM,EAAE,CAAC;IACxB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACvD,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACrD,qBAAqB,CACnB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9B,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB;;;;;;;;;;;;OAYG;IACH,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3E"}
@@ -0,0 +1,9 @@
1
+ import { BaseServiceProxy } from './BaseServiceProxy';
2
+ import type { IRunService, RunStartInput, RunHandle } from '../contracts/runs';
3
+ /** SDK-side proxy for the Run Tracker service. */
4
+ export declare class RunServiceProxy extends BaseServiceProxy implements IRunService {
5
+ /** Start a new run and return a handle for writing output and signalling completion. */
6
+ start(input: RunStartInput): Promise<RunHandle>;
7
+ private buildHandle;
8
+ }
9
+ //# sourceMappingURL=RunServiceProxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunServiceProxy.d.ts","sourceRoot":"","sources":["../../src/services/RunServiceProxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAI/E,kDAAkD;AAClD,qBAAa,eAAgB,SAAQ,gBAAiB,YAAW,WAAW;IAC1E,wFAAwF;IAClF,KAAK,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;IAWrD,OAAO,CAAC,WAAW;CAgEpB"}
@@ -0,0 +1,93 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { BaseServiceProxy } from './BaseServiceProxy';
11
+ const CANCEL_EVENT = 'asyar:event:runs:cancel';
12
+ /** SDK-side proxy for the Run Tracker service. */
13
+ export class RunServiceProxy extends BaseServiceProxy {
14
+ /** Start a new run and return a handle for writing output and signalling completion. */
15
+ start(input) {
16
+ return __awaiter(this, void 0, void 0, function* () {
17
+ var _a;
18
+ const id = crypto.randomUUID();
19
+ const kind = input.kind;
20
+ const label = input.label;
21
+ const cancellable = (_a = input.cancellable) !== null && _a !== void 0 ? _a : false;
22
+ yield this.broker.invoke('runs:start', { id, kind, label, cancellable });
23
+ return this.buildHandle(id);
24
+ });
25
+ }
26
+ buildHandle(id) {
27
+ const broker = this.broker;
28
+ let cancelled = false;
29
+ const callbacks = new Set();
30
+ const handler = (payload) => {
31
+ const p = payload;
32
+ if ((p === null || p === void 0 ? void 0 : p.id) !== id)
33
+ return;
34
+ cancelled = true;
35
+ for (const cb of callbacks)
36
+ cb();
37
+ broker.off(CANCEL_EVENT, handler);
38
+ };
39
+ broker.on(CANCEL_EVENT, handler);
40
+ const unsubscribeAll = () => {
41
+ broker.off(CANCEL_EVENT, handler);
42
+ };
43
+ return {
44
+ get id() { return id; },
45
+ get cancelled() { return cancelled; },
46
+ /** Write a line of output to this run. */
47
+ write(line) {
48
+ return __awaiter(this, void 0, void 0, function* () {
49
+ yield broker.invoke('runs:write', { id, line });
50
+ });
51
+ },
52
+ /** Signal that the run completed successfully. */
53
+ done() {
54
+ return __awaiter(this, void 0, void 0, function* () {
55
+ yield broker.invoke('runs:done', { id });
56
+ unsubscribeAll();
57
+ });
58
+ },
59
+ /** Signal that the run failed with the given error message. */
60
+ fail(error) {
61
+ return __awaiter(this, void 0, void 0, function* () {
62
+ yield broker.invoke('runs:fail', { id, error });
63
+ unsubscribeAll();
64
+ });
65
+ },
66
+ /** Request cancellation of this run. */
67
+ cancel() {
68
+ return __awaiter(this, void 0, void 0, function* () {
69
+ try {
70
+ yield broker.invoke('runs:cancel', { id });
71
+ }
72
+ finally {
73
+ // Release the cancel-event subscription regardless of whether the
74
+ // broker call resolved. On success the launcher emits
75
+ // `asyar:event:runs:cancel` and the handler self-unsubs anyway;
76
+ // on failure (unknown id, etc.) no event ever arrives — without
77
+ // this `finally` the subscription would leak for the lifetime of
78
+ // the worker iframe.
79
+ unsubscribeAll();
80
+ }
81
+ });
82
+ },
83
+ /** Register a callback that fires when this run is cancelled. Returns an unsubscribe function. */
84
+ onCancel(cb) {
85
+ callbacks.add(cb);
86
+ return () => {
87
+ callbacks.delete(cb);
88
+ };
89
+ },
90
+ };
91
+ }
92
+ }
93
+ //# sourceMappingURL=RunServiceProxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunServiceProxy.js","sourceRoot":"","sources":["../../src/services/RunServiceProxy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=RunServiceProxy.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunServiceProxy.test.d.ts","sourceRoot":"","sources":["../../src/services/RunServiceProxy.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,180 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
11
+ import { messageBroker } from '../ipc/MessageBroker';
12
+ import { RunServiceProxy } from './RunServiceProxy';
13
+ describe('RunServiceProxy', () => {
14
+ let invokeSpy;
15
+ let onSpy;
16
+ beforeEach(() => {
17
+ invokeSpy = vi.spyOn(messageBroker, 'invoke').mockResolvedValue(undefined);
18
+ onSpy = vi.spyOn(messageBroker, 'on').mockImplementation(() => { });
19
+ });
20
+ afterEach(() => {
21
+ invokeSpy.mockRestore();
22
+ onSpy.mockRestore();
23
+ });
24
+ it('start_dispatches_runs_start_with_input_envelope', () => __awaiter(void 0, void 0, void 0, function* () {
25
+ const proxy = new RunServiceProxy();
26
+ yield proxy.start({ label: 'My Script', kind: 'shell-script' }).catch(() => { });
27
+ expect(invokeSpy).toHaveBeenCalledWith('runs:start', expect.objectContaining({
28
+ id: expect.any(String),
29
+ kind: 'shell-script',
30
+ label: 'My Script',
31
+ cancellable: expect.any(Boolean),
32
+ }));
33
+ }));
34
+ it('start_returns_handle_with_id', () => __awaiter(void 0, void 0, void 0, function* () {
35
+ const proxy = new RunServiceProxy();
36
+ const handle = yield proxy.start({ label: 'Job', kind: 'agent' }).catch(() => null);
37
+ // With not-implemented throw, handle will be null — this test fails correctly
38
+ expect(handle).not.toBeNull();
39
+ expect(typeof handle.id).toBe('string');
40
+ expect(handle.id.length).toBeGreaterThan(0);
41
+ }));
42
+ it('start_returned_handle_id_matches_invoke_payload', () => __awaiter(void 0, void 0, void 0, function* () {
43
+ const proxy = new RunServiceProxy();
44
+ const handle = yield proxy.start({ label: 'Job', kind: 'agent' }).catch(() => null);
45
+ expect(handle).not.toBeNull();
46
+ const [, payload] = invokeSpy.mock.calls[0];
47
+ const sentId = payload.id;
48
+ expect(handle.id).toBe(sentId);
49
+ }));
50
+ it('start_default_cancellable_is_false', () => __awaiter(void 0, void 0, void 0, function* () {
51
+ const proxy = new RunServiceProxy();
52
+ yield proxy.start({ label: 'Job', kind: 'agent' }).catch(() => { });
53
+ expect(invokeSpy).toHaveBeenCalledWith('runs:start', expect.objectContaining({ cancellable: false }));
54
+ }));
55
+ it('start_explicit_cancellable_passed_through', () => __awaiter(void 0, void 0, void 0, function* () {
56
+ const proxy = new RunServiceProxy();
57
+ yield proxy.start({ label: 'Chat', kind: 'ai-chat', cancellable: true }).catch(() => { });
58
+ expect(invokeSpy).toHaveBeenCalledWith('runs:start', expect.objectContaining({ cancellable: true }));
59
+ }));
60
+ describe('handle methods', () => {
61
+ let proxy;
62
+ let capturedOnHandler;
63
+ beforeEach(() => {
64
+ proxy = new RunServiceProxy();
65
+ // Capture the handler registered via broker.on so tests can fire events
66
+ onSpy.mockImplementation((_event, handler) => {
67
+ capturedOnHandler = handler;
68
+ });
69
+ });
70
+ function getHandle() {
71
+ return __awaiter(this, void 0, void 0, function* () {
72
+ return proxy.start({ label: 'X', kind: 'custom' });
73
+ });
74
+ }
75
+ it('handle_write_dispatches_runs_write', () => __awaiter(void 0, void 0, void 0, function* () {
76
+ const handle = yield getHandle().catch(() => null);
77
+ expect(handle).not.toBeNull();
78
+ yield handle.write('line one').catch(() => { });
79
+ expect(invokeSpy).toHaveBeenCalledWith('runs:write', expect.objectContaining({ id: handle.id, line: 'line one' }));
80
+ }));
81
+ it('handle_done_dispatches_runs_done', () => __awaiter(void 0, void 0, void 0, function* () {
82
+ const handle = yield getHandle().catch(() => null);
83
+ expect(handle).not.toBeNull();
84
+ yield handle.done().catch(() => { });
85
+ expect(invokeSpy).toHaveBeenCalledWith('runs:done', expect.objectContaining({ id: handle.id }));
86
+ }));
87
+ it('handle_fail_dispatches_runs_fail_with_error', () => __awaiter(void 0, void 0, void 0, function* () {
88
+ const handle = yield getHandle().catch(() => null);
89
+ expect(handle).not.toBeNull();
90
+ yield handle.fail('boom').catch(() => { });
91
+ expect(invokeSpy).toHaveBeenCalledWith('runs:fail', expect.objectContaining({ id: handle.id, error: 'boom' }));
92
+ }));
93
+ it('handle_cancel_dispatches_runs_cancel', () => __awaiter(void 0, void 0, void 0, function* () {
94
+ const handle = yield getHandle().catch(() => null);
95
+ expect(handle).not.toBeNull();
96
+ yield handle.cancel().catch(() => { });
97
+ expect(invokeSpy).toHaveBeenCalledWith('runs:cancel', expect.objectContaining({ id: handle.id }));
98
+ }));
99
+ it('handle_cancelled_starts_false', () => __awaiter(void 0, void 0, void 0, function* () {
100
+ const handle = yield getHandle().catch(() => null);
101
+ expect(handle).not.toBeNull();
102
+ expect(handle.cancelled).toBe(false);
103
+ }));
104
+ it('handle_cancelled_becomes_true_when_cancel_event_received', () => __awaiter(void 0, void 0, void 0, function* () {
105
+ const handle = yield getHandle().catch(() => null);
106
+ expect(handle).not.toBeNull();
107
+ expect(capturedOnHandler).toBeDefined();
108
+ capturedOnHandler({ id: handle.id });
109
+ expect(handle.cancelled).toBe(true);
110
+ }));
111
+ it('handle_onCancel_callback_fires_on_cancel_event', () => __awaiter(void 0, void 0, void 0, function* () {
112
+ const handle = yield getHandle().catch(() => null);
113
+ expect(handle).not.toBeNull();
114
+ const cb = vi.fn();
115
+ handle.onCancel(cb);
116
+ expect(capturedOnHandler).toBeDefined();
117
+ capturedOnHandler({ id: handle.id });
118
+ expect(cb).toHaveBeenCalledOnce();
119
+ }));
120
+ it('handle_onCancel_unsubscribe_stops_callback', () => __awaiter(void 0, void 0, void 0, function* () {
121
+ const handle = yield getHandle().catch(() => null);
122
+ expect(handle).not.toBeNull();
123
+ const cb = vi.fn();
124
+ const unsubscribe = handle.onCancel(cb);
125
+ unsubscribe();
126
+ expect(capturedOnHandler).toBeDefined();
127
+ capturedOnHandler({ id: handle.id });
128
+ expect(cb).not.toHaveBeenCalled();
129
+ }));
130
+ it('handle_cancel_event_for_different_id_does_not_fire_callback', () => __awaiter(void 0, void 0, void 0, function* () {
131
+ const handle = yield getHandle().catch(() => null);
132
+ expect(handle).not.toBeNull();
133
+ const cb = vi.fn();
134
+ handle.onCancel(cb);
135
+ expect(capturedOnHandler).toBeDefined();
136
+ capturedOnHandler({ id: 'some-other-run-id' });
137
+ expect(cb).not.toHaveBeenCalled();
138
+ }));
139
+ it('handle_cancel_unsubscribes_handler_even_when_broker_invoke_rejects', () => __awaiter(void 0, void 0, void 0, function* () {
140
+ // Doc contract: cancel() must release the cancel-event subscription —
141
+ // analogous to done() and fail() — even when the broker call fails
142
+ // (e.g. unknown run id). Without try/finally the handler leaks because
143
+ // the launcher never emits the event the handler was waiting for.
144
+ const handle = yield getHandle().catch(() => null);
145
+ expect(handle).not.toBeNull();
146
+ expect(capturedOnHandler).toBeDefined();
147
+ const offSpy = vi.spyOn(messageBroker, 'off').mockImplementation(() => { });
148
+ invokeSpy.mockImplementationOnce(() => __awaiter(void 0, void 0, void 0, function* () {
149
+ throw new Error('run not found');
150
+ }));
151
+ yield expect(handle.cancel()).rejects.toThrow('run not found');
152
+ expect(offSpy).toHaveBeenCalledWith('asyar:event:runs:cancel', capturedOnHandler);
153
+ offSpy.mockRestore();
154
+ }));
155
+ });
156
+ });
157
+ describe('RunServiceProxy with setExtensionId', () => {
158
+ it('handle methods use the per-instance broker (not global) after setExtensionId', () => __awaiter(void 0, void 0, void 0, function* () {
159
+ const globalInvokeSpy = vi.spyOn(messageBroker, 'invoke').mockResolvedValue(undefined);
160
+ vi.spyOn(messageBroker, 'on').mockImplementation(() => { });
161
+ const proxy = new RunServiceProxy();
162
+ proxy.setExtensionId('test.extension');
163
+ // After setExtensionId, this.broker is a clone — spy on the clone instead
164
+ const instanceBroker = proxy.broker;
165
+ const instanceInvokeSpy = vi.spyOn(instanceBroker, 'invoke').mockResolvedValue(undefined);
166
+ vi.spyOn(instanceBroker, 'on').mockImplementation(() => { });
167
+ vi.spyOn(instanceBroker, 'off').mockImplementation(() => { });
168
+ // Reset global spy AFTER start() (because start() may call invoke; we only care about handle methods)
169
+ globalInvokeSpy.mockClear();
170
+ const handle = yield proxy.start({ label: 'X', kind: 'shell-script' });
171
+ instanceInvokeSpy.mockClear();
172
+ globalInvokeSpy.mockClear();
173
+ yield handle.write('line');
174
+ expect(instanceInvokeSpy).toHaveBeenCalledWith('runs:write', expect.objectContaining({ id: handle.id, line: 'line' }));
175
+ expect(globalInvokeSpy).not.toHaveBeenCalled();
176
+ instanceInvokeSpy.mockRestore();
177
+ globalInvokeSpy.mockRestore();
178
+ }));
179
+ });
180
+ //# sourceMappingURL=RunServiceProxy.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunServiceProxy.test.js","sourceRoot":"","sources":["../../src/services/RunServiceProxy.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { BaseServiceProxy } from './BaseServiceProxy';
2
+ import type { IToolsService, ManifestTool, ToolDescriptor, ToolHandler } from '../contracts/tools';
3
+ /** SDK-side proxy for the Tools service. */
4
+ export declare class ToolsServiceProxy extends BaseServiceProxy implements IToolsService {
5
+ private handlers;
6
+ registerTool(tool: ManifestTool, handler: ToolHandler): Promise<void>;
7
+ unregisterTool(id: string): Promise<void>;
8
+ listTools(): Promise<ToolDescriptor[]>;
9
+ invokeHandler(id: string, args: unknown): Promise<unknown>;
10
+ }
11
+ //# sourceMappingURL=ToolsServiceProxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolsServiceProxy.d.ts","sourceRoot":"","sources":["../../src/services/ToolsServiceProxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEnG,4CAA4C;AAC5C,qBAAa,iBAAkB,SAAQ,gBAAiB,YAAW,aAAa;IAC9E,OAAO,CAAC,QAAQ,CAAkC;IAE5C,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrE,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzC,SAAS,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAItC,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAOjE"}
@@ -0,0 +1,45 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { BaseServiceProxy } from './BaseServiceProxy';
11
+ /** SDK-side proxy for the Tools service. */
12
+ export class ToolsServiceProxy extends BaseServiceProxy {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.handlers = new Map();
16
+ }
17
+ registerTool(tool, handler) {
18
+ return __awaiter(this, void 0, void 0, function* () {
19
+ this.handlers.set(tool.id, handler);
20
+ return this.broker.invoke('tools:registerTool', { tool });
21
+ });
22
+ }
23
+ unregisterTool(id) {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ const result = yield this.broker.invoke('tools:unregisterTool', { id });
26
+ this.handlers.delete(id);
27
+ return result;
28
+ });
29
+ }
30
+ listTools() {
31
+ return __awaiter(this, void 0, void 0, function* () {
32
+ return this.broker.invoke('tools:listTools');
33
+ });
34
+ }
35
+ invokeHandler(id, args) {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ const handler = this.handlers.get(id);
38
+ if (!handler) {
39
+ throw new Error(`[asyar-sdk/tools] No handler registered for tool id: "${id}"`);
40
+ }
41
+ return handler(args);
42
+ });
43
+ }
44
+ }
45
+ //# sourceMappingURL=ToolsServiceProxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolsServiceProxy.js","sourceRoot":"","sources":["../../src/services/ToolsServiceProxy.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,4CAA4C;AAC5C,MAAM,OAAO,iBAAkB,SAAQ,gBAAgB;IAAvD;;QACU,aAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;IAwBpD,CAAC;IAtBO,YAAY,CAAC,IAAkB,EAAE,OAAoB;;YACzD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;KAAA;IAEK,cAAc,CAAC,EAAU;;YAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAO,sBAAsB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAC9E,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACzB,OAAO,MAAM,CAAC;QAChB,CAAC;KAAA;IAEK,SAAS;;YACb,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAmB,iBAAiB,CAAC,CAAC;QACjE,CAAC;KAAA;IAEK,aAAa,CAAC,EAAU,EAAE,IAAa;;YAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACtC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,yDAAyD,EAAE,GAAG,CAAC,CAAC;YAClF,CAAC;YACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;KAAA;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ToolsServiceProxy.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolsServiceProxy.test.d.ts","sourceRoot":"","sources":["../../src/services/ToolsServiceProxy.test.ts"],"names":[],"mappings":""}