@dotcraft/sdk 0.5.9

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 (139) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +30 -0
  3. package/dist/app-binding.d.ts +4 -0
  4. package/dist/app-binding.d.ts.map +1 -0
  5. package/dist/app-binding.js +2 -0
  6. package/dist/app-binding.js.map +1 -0
  7. package/dist/appServerClient.d.ts +66 -0
  8. package/dist/appServerClient.d.ts.map +1 -0
  9. package/dist/appServerClient.js +140 -0
  10. package/dist/appServerClient.js.map +1 -0
  11. package/dist/client.d.ts +90 -0
  12. package/dist/client.d.ts.map +1 -0
  13. package/dist/client.js +418 -0
  14. package/dist/client.js.map +1 -0
  15. package/dist/client.test.d.ts +2 -0
  16. package/dist/client.test.d.ts.map +1 -0
  17. package/dist/client.test.js +244 -0
  18. package/dist/client.test.js.map +1 -0
  19. package/dist/contracts.d.ts +5 -0
  20. package/dist/contracts.d.ts.map +1 -0
  21. package/dist/contracts.js +5 -0
  22. package/dist/contracts.js.map +1 -0
  23. package/dist/dotcraft.d.ts +331 -0
  24. package/dist/dotcraft.d.ts.map +1 -0
  25. package/dist/dotcraft.js +819 -0
  26. package/dist/dotcraft.js.map +1 -0
  27. package/dist/dotcraft.test.d.ts +2 -0
  28. package/dist/dotcraft.test.d.ts.map +1 -0
  29. package/dist/dotcraft.test.js +423 -0
  30. package/dist/dotcraft.test.js.map +1 -0
  31. package/dist/dynamic-tools.d.ts +3 -0
  32. package/dist/dynamic-tools.d.ts.map +1 -0
  33. package/dist/dynamic-tools.js +2 -0
  34. package/dist/dynamic-tools.js.map +1 -0
  35. package/dist/errors.d.ts +50 -0
  36. package/dist/errors.d.ts.map +1 -0
  37. package/dist/errors.js +112 -0
  38. package/dist/errors.js.map +1 -0
  39. package/dist/generated/appserver/client-notifications.generated.d.ts +9 -0
  40. package/dist/generated/appserver/client-notifications.generated.d.ts.map +1 -0
  41. package/dist/generated/appserver/client-notifications.generated.js +3 -0
  42. package/dist/generated/appserver/client-notifications.generated.js.map +1 -0
  43. package/dist/generated/appserver/client-requests.generated.d.ts +785 -0
  44. package/dist/generated/appserver/client-requests.generated.d.ts.map +1 -0
  45. package/dist/generated/appserver/client-requests.generated.js +3 -0
  46. package/dist/generated/appserver/client-requests.generated.js.map +1 -0
  47. package/dist/generated/appserver/index.d.ts +9 -0
  48. package/dist/generated/appserver/index.d.ts.map +1 -0
  49. package/dist/generated/appserver/index.js +10 -0
  50. package/dist/generated/appserver/index.js.map +1 -0
  51. package/dist/generated/appserver/item-payloads.generated.d.ts +52 -0
  52. package/dist/generated/appserver/item-payloads.generated.d.ts.map +1 -0
  53. package/dist/generated/appserver/item-payloads.generated.js +35 -0
  54. package/dist/generated/appserver/item-payloads.generated.js.map +1 -0
  55. package/dist/generated/appserver/method-groups.generated.d.ts +8 -0
  56. package/dist/generated/appserver/method-groups.generated.d.ts.map +1 -0
  57. package/dist/generated/appserver/method-groups.generated.js +274 -0
  58. package/dist/generated/appserver/method-groups.generated.js.map +1 -0
  59. package/dist/generated/appserver/models.generated.d.ts +4415 -0
  60. package/dist/generated/appserver/models.generated.d.ts.map +1 -0
  61. package/dist/generated/appserver/models.generated.js +3 -0
  62. package/dist/generated/appserver/models.generated.js.map +1 -0
  63. package/dist/generated/appserver/protocol-info.generated.d.ts +6 -0
  64. package/dist/generated/appserver/protocol-info.generated.d.ts.map +1 -0
  65. package/dist/generated/appserver/protocol-info.generated.js +7 -0
  66. package/dist/generated/appserver/protocol-info.generated.js.map +1 -0
  67. package/dist/generated/appserver/server-notifications.generated.d.ts +197 -0
  68. package/dist/generated/appserver/server-notifications.generated.d.ts.map +1 -0
  69. package/dist/generated/appserver/server-notifications.generated.js +3 -0
  70. package/dist/generated/appserver/server-notifications.generated.js.map +1 -0
  71. package/dist/generated/appserver/server-requests.generated.d.ts +73 -0
  72. package/dist/generated/appserver/server-requests.generated.d.ts.map +1 -0
  73. package/dist/generated/appserver/server-requests.generated.js +3 -0
  74. package/dist/generated/appserver/server-requests.generated.js.map +1 -0
  75. package/dist/generatedAppServer.test.d.ts +2 -0
  76. package/dist/generatedAppServer.test.d.ts.map +1 -0
  77. package/dist/generatedAppServer.test.js +112 -0
  78. package/dist/generatedAppServer.test.js.map +1 -0
  79. package/dist/hub.d.ts +6 -0
  80. package/dist/hub.d.ts.map +1 -0
  81. package/dist/hub.js +5 -0
  82. package/dist/hub.js.map +1 -0
  83. package/dist/hubClient.d.ts +134 -0
  84. package/dist/hubClient.d.ts.map +1 -0
  85. package/dist/hubClient.js +372 -0
  86. package/dist/hubClient.js.map +1 -0
  87. package/dist/hubClient.test.d.ts +2 -0
  88. package/dist/hubClient.test.d.ts.map +1 -0
  89. package/dist/hubClient.test.js +220 -0
  90. package/dist/hubClient.test.js.map +1 -0
  91. package/dist/index.d.ts +7 -0
  92. package/dist/index.d.ts.map +1 -0
  93. package/dist/index.js +5 -0
  94. package/dist/index.js.map +1 -0
  95. package/dist/meta.d.ts +2 -0
  96. package/dist/meta.d.ts.map +1 -0
  97. package/dist/meta.js +2 -0
  98. package/dist/meta.js.map +1 -0
  99. package/dist/models.d.ts +44 -0
  100. package/dist/models.d.ts.map +1 -0
  101. package/dist/models.js +96 -0
  102. package/dist/models.js.map +1 -0
  103. package/dist/protocolBaseline.test.d.ts +2 -0
  104. package/dist/protocolBaseline.test.d.ts.map +1 -0
  105. package/dist/protocolBaseline.test.js +77 -0
  106. package/dist/protocolBaseline.test.js.map +1 -0
  107. package/dist/publicApi.test.d.ts +2 -0
  108. package/dist/publicApi.test.d.ts.map +1 -0
  109. package/dist/publicApi.test.js +29 -0
  110. package/dist/publicApi.test.js.map +1 -0
  111. package/dist/test-contract-fixtures.d.ts +6 -0
  112. package/dist/test-contract-fixtures.d.ts.map +1 -0
  113. package/dist/test-contract-fixtures.js +33 -0
  114. package/dist/test-contract-fixtures.js.map +1 -0
  115. package/dist/testing.d.ts +3 -0
  116. package/dist/testing.d.ts.map +1 -0
  117. package/dist/testing.js +3 -0
  118. package/dist/testing.js.map +1 -0
  119. package/dist/transport.d.ts +54 -0
  120. package/dist/transport.d.ts.map +1 -0
  121. package/dist/transport.js +214 -0
  122. package/dist/transport.js.map +1 -0
  123. package/dist/transport.test.d.ts +2 -0
  124. package/dist/transport.test.d.ts.map +1 -0
  125. package/dist/transport.test.js +105 -0
  126. package/dist/transport.test.js.map +1 -0
  127. package/dist/turnReply.d.ts +25 -0
  128. package/dist/turnReply.d.ts.map +1 -0
  129. package/dist/turnReply.js +143 -0
  130. package/dist/turnReply.js.map +1 -0
  131. package/dist/turnReply.test.d.ts +2 -0
  132. package/dist/turnReply.test.d.ts.map +1 -0
  133. package/dist/turnReply.test.js +41 -0
  134. package/dist/turnReply.test.js.map +1 -0
  135. package/dist/wire.d.ts +8 -0
  136. package/dist/wire.d.ts.map +1 -0
  137. package/dist/wire.js +6 -0
  138. package/dist/wire.js.map +1 -0
  139. package/package.json +102 -0
@@ -0,0 +1,244 @@
1
+ import assert from "node:assert/strict";
2
+ import test from "node:test";
3
+ import { WebSocketServer } from "ws";
4
+ import { DotCraftWireClient } from "./client.js";
5
+ import { InternalAppServerClient } from "./appServerClient.js";
6
+ import { TurnInProgressError } from "./errors.js";
7
+ import { RequestTimeoutError } from "./errors.js";
8
+ import { ERR_TURN_IN_PROGRESS } from "./models.js";
9
+ import { TransportClosed } from "./transport.js";
10
+ import { WebSocketTransport } from "./transport.js";
11
+ class QueueTransport {
12
+ written = [];
13
+ incoming = [];
14
+ readers = [];
15
+ writeWaiters = [];
16
+ closed = false;
17
+ push(message) {
18
+ const reader = this.readers.shift();
19
+ if (reader) {
20
+ reader.resolve(message);
21
+ return;
22
+ }
23
+ this.incoming.push(message);
24
+ }
25
+ async nextWrite() {
26
+ while (this.written.length === 0) {
27
+ await new Promise((resolve) => this.writeWaiters.push(resolve));
28
+ }
29
+ return this.written.shift();
30
+ }
31
+ async readMessage() {
32
+ if (this.closed)
33
+ throw new TransportClosed();
34
+ const queued = this.incoming.shift();
35
+ if (queued)
36
+ return queued;
37
+ return await new Promise((resolve, reject) => {
38
+ this.readers.push({ resolve, reject });
39
+ });
40
+ }
41
+ async writeMessage(message) {
42
+ if (this.closed)
43
+ throw new TransportClosed();
44
+ this.written.push(message);
45
+ this.writeWaiters.shift()?.();
46
+ }
47
+ async close() {
48
+ this.closed = true;
49
+ for (const reader of this.readers.splice(0))
50
+ reader.reject(new TransportClosed());
51
+ }
52
+ }
53
+ function assertWireSurfaceIsProtocolOnly(client) {
54
+ if (false) {
55
+ // @ts-expect-error Thread helpers belong to InternalAppServerClient.
56
+ void client.threadStart({ channelName: "test", userId: "user" });
57
+ }
58
+ }
59
+ test("DotCraftWireClient excludes high-level Thread operations", () => {
60
+ const client = new DotCraftWireClient(new QueueTransport());
61
+ assertWireSurfaceIsProtocolOnly(client);
62
+ assert.equal("threadStart" in client, false);
63
+ assert.equal("streamEvents" in client, false);
64
+ });
65
+ test("DotCraftWireClient correlates responses and maps common JSON-RPC errors", async () => {
66
+ const transport = new QueueTransport();
67
+ const client = new DotCraftWireClient(transport);
68
+ await client.start();
69
+ const first = client.requestRaw("alpha");
70
+ const firstWrite = await transport.nextWrite();
71
+ const second = client.requestRaw("beta");
72
+ const secondWrite = await transport.nextWrite();
73
+ transport.push({ jsonrpc: "2.0", id: secondWrite.id, result: { ok: "second" } });
74
+ transport.push({
75
+ jsonrpc: "2.0",
76
+ id: firstWrite.id,
77
+ error: { code: ERR_TURN_IN_PROGRESS, message: "busy" },
78
+ });
79
+ assert.deepEqual(await second, { ok: "second" });
80
+ await assert.rejects(first, (error) => error instanceof TurnInProgressError);
81
+ await client.stop();
82
+ });
83
+ test("DotCraftWireClient applies the default request timeout", async () => {
84
+ const transport = new QueueTransport();
85
+ const client = new DotCraftWireClient(transport, { defaultTimeoutMs: 5 });
86
+ await client.start();
87
+ await assert.rejects(client.requestRaw("fixture/timeout"), RequestTimeoutError);
88
+ await client.stop();
89
+ });
90
+ test("DotCraftWireClient reinitializes before releasing reconnect-queued requests", async () => {
91
+ const server = new WebSocketServer({ port: 0 });
92
+ await new Promise((resolve) => server.once("listening", resolve));
93
+ const address = server.address();
94
+ if (!address || typeof address === "string")
95
+ throw new Error("Expected a TCP listener address.");
96
+ const port = address.port;
97
+ let connectionCount = 0;
98
+ server.on("connection", (socket) => {
99
+ connectionCount += 1;
100
+ const connectionNumber = connectionCount;
101
+ socket.on("message", (data) => {
102
+ const message = JSON.parse(data.toString());
103
+ if (message.method === "initialize") {
104
+ socket.send(JSON.stringify({
105
+ jsonrpc: "2.0",
106
+ id: message.id,
107
+ result: {
108
+ serverInfo: { name: "fixture", version: "1", protocolVersion: "1" },
109
+ capabilities: {},
110
+ },
111
+ }));
112
+ }
113
+ else if (message.method === "initialized" && connectionNumber === 1) {
114
+ socket.close();
115
+ }
116
+ else if (message.method === "fixture/queued") {
117
+ socket.send(JSON.stringify({ jsonrpc: "2.0", id: message.id, result: { ok: true } }));
118
+ }
119
+ });
120
+ });
121
+ const transport = new WebSocketTransport({ url: `ws://127.0.0.1:${port}` });
122
+ const client = new DotCraftWireClient(transport, {
123
+ autoReconnect: true,
124
+ reconnectBaseDelayMs: 1,
125
+ reconnectMaxDelayMs: 1,
126
+ random: () => 0.5,
127
+ });
128
+ const reconnecting = new Promise((resolve) => {
129
+ client.onStateChanged((state) => {
130
+ if (state === "reconnecting")
131
+ resolve();
132
+ });
133
+ });
134
+ await client.connect();
135
+ await client.initialize({ clientName: "fixture", clientVersion: "1" });
136
+ await reconnecting;
137
+ assert.deepEqual(await client.requestRaw("fixture/queued", {}), { ok: true });
138
+ assert.equal(connectionCount, 2);
139
+ await client.stop();
140
+ await new Promise((resolve) => server.close(() => resolve()));
141
+ });
142
+ test("DotCraftWireClient omits params when a request has no parameters", async () => {
143
+ const transport = new QueueTransport();
144
+ const client = new DotCraftWireClient(transport);
145
+ await client.start();
146
+ const pending = client.requestRaw("config/mcpServer/reload");
147
+ const written = await transport.nextWrite();
148
+ assert.equal("params" in written, false);
149
+ transport.push({ jsonrpc: "2.0", id: written.id, result: {} });
150
+ assert.deepEqual(await pending, {});
151
+ await client.stop();
152
+ });
153
+ test("InternalAppServerClient sends workspace scope for thread list requests", async () => {
154
+ const transport = new QueueTransport();
155
+ const client = new InternalAppServerClient(transport);
156
+ await client.start();
157
+ const pending = client.threadListPage({
158
+ channelName: "desktop",
159
+ userId: "local-user",
160
+ workspacePath: "C:\\workspace",
161
+ scope: "workspace",
162
+ });
163
+ const written = await transport.nextWrite();
164
+ assert.equal(written.method, "thread/list");
165
+ assert.equal(written.params.scope, "workspace");
166
+ transport.push({
167
+ jsonrpc: "2.0",
168
+ id: written.id,
169
+ result: { data: [], nextCursor: null, totalMatched: 0 },
170
+ });
171
+ assert.deepEqual((await pending).data, []);
172
+ await client.stop();
173
+ });
174
+ test("DotCraftWireClient dispatches server requests without blocking the reader", async () => {
175
+ const transport = new QueueTransport();
176
+ const client = new DotCraftWireClient(transport);
177
+ const calls = [];
178
+ await client.start();
179
+ client.registerServerRequestHandler("item/approval/request", async () => {
180
+ calls.push("approval");
181
+ return { decision: "decline" };
182
+ });
183
+ client.registerServerRequestHandler("item/tool/call", async (_id, params) => {
184
+ calls.push(String(params.tool));
185
+ return {
186
+ success: true,
187
+ contentItems: [{ type: "text", text: "Tool completed" }],
188
+ structuredContent: params.arguments,
189
+ };
190
+ });
191
+ transport.push({ jsonrpc: "2.0", id: "approval-1", method: "item/approval/request", params: {} });
192
+ transport.push({
193
+ jsonrpc: "2.0",
194
+ id: "tool-1",
195
+ method: "item/tool/call",
196
+ params: { tool: "Echo", arguments: { text: "hi" } },
197
+ });
198
+ assert.deepEqual(await transport.nextWrite(), {
199
+ jsonrpc: "2.0",
200
+ id: "approval-1",
201
+ result: { decision: "decline" },
202
+ });
203
+ assert.deepEqual(await transport.nextWrite(), {
204
+ jsonrpc: "2.0",
205
+ id: "tool-1",
206
+ result: {
207
+ success: true,
208
+ contentItems: [{ type: "text", text: "Tool completed" }],
209
+ structuredContent: { text: "hi" },
210
+ },
211
+ });
212
+ assert.deepEqual(calls, ["approval", "Echo"]);
213
+ await client.stop();
214
+ });
215
+ test("DotCraftWireClient initialize sends initialized notification", async () => {
216
+ const transport = new QueueTransport();
217
+ const client = new DotCraftWireClient(transport);
218
+ client.registerServerRequestHandler("item/tool/requestUserInput", async () => ({ answers: {} }));
219
+ const initialized = client.initialize({
220
+ clientName: "test-client",
221
+ clientVersion: "1.0.0",
222
+ requestUserInputSupport: true,
223
+ configChange: true,
224
+ });
225
+ const request = await transport.nextWrite();
226
+ assert.equal(request.method, "initialize");
227
+ assert.deepEqual(request.params.clientInfo, {
228
+ name: "test-client",
229
+ version: "1.0.0",
230
+ });
231
+ transport.push({
232
+ jsonrpc: "2.0",
233
+ id: request.id,
234
+ result: {
235
+ serverInfo: { name: "dotcraft", version: "test", protocolVersion: "1.0" },
236
+ capabilities: { requestUserInput: true, configOverride: true },
237
+ },
238
+ });
239
+ const notification = await transport.nextWrite();
240
+ assert.equal(notification.method, "initialized");
241
+ assert.equal((await initialized).serverInfo.name, "dotcraft");
242
+ await client.stop();
243
+ });
244
+ //# sourceMappingURL=client.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.test.js","sourceRoot":"","sources":["../src/client.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated AppServer contracts with no transport or runtime dependencies.
3
+ */
4
+ export * from "./generated/appserver/index.js";
5
+ //# sourceMappingURL=contracts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,gCAAgC,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated AppServer contracts with no transport or runtime dependencies.
3
+ */
4
+ export * from "./generated/appserver/index.js";
5
+ //# sourceMappingURL=contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,gCAAgC,CAAC"}
@@ -0,0 +1,331 @@
1
+ import { type NotificationHandler, type Unsubscribe } from "./client.js";
2
+ import { InternalAppServerClient } from "./appServerClient.js";
3
+ import { JsonRpcMessage } from "./models.js";
4
+ import { type HubBinaryMatchPolicy } from "./hubClient.js";
5
+ import type { AppBindingRequestGetResult, AppBinding, AppConnectionRevokeResult, AppConnectionStatusResult, AppConnectionConnectResult, AppConnectionStartResult, AppInfo, AppSocialBindingResolveParams, AppSocialBindingResolveResult, AppSurface, AppSurfacePublishParams, AppSurfaceResolveParams, AppThreadInputEnqueueResult, ClientRequestMethods, DynamicToolCallResult, InputPart, JsonValue, McpServerOAuthLoginParams, McpServerOAuthLoginResult, McpServerReloadResult, McpServerResourceReadParams, McpServerResourceReadResult, McpServerStatusListParams, McpServerStatusListResult, McpServerToolCallParams, McpServerToolCallResult, RuntimeAdditionalContextEntry, SenderContext as ContractSenderContext, ServerNotificationMethods, ServerCapabilities, ServerInfo, SessionIdentity, SessionThread, SessionTurn, SocialChannelTarget, ThreadAppBindingEnableResult, ThreadListResult, ThreadItemsListResult, ThreadSummary, ThreadTurnsListResult, ThreadSocialBindingRequestCreateResult, ModelCatalogItem } from "./generated/appserver/index.js";
6
+ export type ApprovalDecision = "accept" | "acceptForSession" | "acceptAlways" | "decline" | "cancel";
7
+ export type ApprovalHandler = (request: Record<string, unknown>) => Promise<ApprovalDecision> | ApprovalDecision;
8
+ export type UserInputHandler = (request: Record<string, unknown>) => Promise<Record<string, unknown>> | Record<string, unknown>;
9
+ export type SenderContext = Partial<ContractSenderContext> & Pick<ContractSenderContext, "senderId">;
10
+ export interface DotCraftCapabilityOptions {
11
+ [key: string]: unknown;
12
+ }
13
+ export interface DotCraftLocalOptions {
14
+ workspacePath: string;
15
+ clientName?: string;
16
+ clientVersion?: string;
17
+ clientTitle?: string;
18
+ executable?: string;
19
+ expectedExecutable?: string;
20
+ binaryMatchPolicy?: HubBinaryMatchPolicy;
21
+ hubStartupTimeoutMs?: number;
22
+ homeDir?: string;
23
+ approvalHandler?: ApprovalHandler;
24
+ userInputHandler?: UserInputHandler;
25
+ capabilities?: DotCraftCapabilityOptions;
26
+ }
27
+ export type DotCraftLocalChatOptions = Omit<DotCraftLocalOptions, "workspacePath">;
28
+ export interface DotCraftRemoteOptions {
29
+ url: string;
30
+ token?: string | null;
31
+ clientName?: string;
32
+ clientVersion?: string;
33
+ clientTitle?: string;
34
+ approvalHandler?: ApprovalHandler;
35
+ userInputHandler?: UserInputHandler;
36
+ capabilities?: DotCraftCapabilityOptions;
37
+ }
38
+ export interface ThreadIdentityOptions {
39
+ channelName?: string;
40
+ userId?: string;
41
+ workspacePath?: string;
42
+ channelContext?: string;
43
+ }
44
+ export interface DynamicToolFunctionSpec {
45
+ type: "function";
46
+ name: string;
47
+ description: string;
48
+ inputSchema: Record<string, unknown>;
49
+ deferLoading?: boolean;
50
+ approval?: Record<string, unknown>;
51
+ }
52
+ export interface DynamicToolNamespaceSpec {
53
+ type: "namespace";
54
+ name: string;
55
+ description: string;
56
+ tools: DynamicToolFunctionSpec[];
57
+ }
58
+ export type DynamicToolSpec = DynamicToolFunctionSpec | DynamicToolNamespaceSpec;
59
+ export interface DynamicToolCallRequest {
60
+ threadId: string;
61
+ turnId: string;
62
+ callId: string;
63
+ namespace?: string | null;
64
+ tool: string;
65
+ arguments: Record<string, unknown>;
66
+ }
67
+ export type DynamicToolHandler = (request: DynamicToolCallRequest) => Promise<DynamicToolCallResult> | DynamicToolCallResult;
68
+ export type DynamicToolFunctionBinding = DynamicToolFunctionSpec & {
69
+ handler: DynamicToolHandler;
70
+ };
71
+ export type DynamicToolNamespaceBinding = Omit<DynamicToolNamespaceSpec, "tools"> & {
72
+ tools: DynamicToolFunctionBinding[];
73
+ };
74
+ export type DynamicToolBinding = DynamicToolFunctionBinding | DynamicToolNamespaceBinding;
75
+ export type McpServerOriginKind = "workspace" | "plugin" | "thread" | "binding" | (string & {});
76
+ export interface McpServerElicitationRequest {
77
+ threadId?: string | null;
78
+ turnId?: string | null;
79
+ serverName: string;
80
+ mode: "form" | "url";
81
+ elicitationId?: string | null;
82
+ message?: string | null;
83
+ url?: string | null;
84
+ requestedSchema?: Record<string, unknown> | null;
85
+ _meta?: unknown;
86
+ }
87
+ export interface McpRuntimeManager {
88
+ listStatus(params?: McpServerStatusListParams): Promise<McpServerStatusListResult>;
89
+ readResource(params: McpServerResourceReadParams): Promise<McpServerResourceReadResult>;
90
+ callTool(params: McpServerToolCallParams): Promise<McpServerToolCallResult>;
91
+ loginOAuth(params: McpServerOAuthLoginParams): Promise<McpServerOAuthLoginResult>;
92
+ reload(): Promise<McpServerReloadResult>;
93
+ }
94
+ export type AppBindingKind = "app" | "socialChannel" | "managedApp" | (string & {});
95
+ export type SocialBindingTargetSelection = "confirmInChannel" | "currentConversation" | (string & {});
96
+ export interface AppBindingManager {
97
+ listApps(params?: {
98
+ threadId?: string;
99
+ includeDisabled?: boolean;
100
+ includeCatalog?: boolean;
101
+ forceRefresh?: boolean;
102
+ }): Promise<AppInfo[]>;
103
+ viewApp(appId: string, params?: {
104
+ threadId?: string;
105
+ }): Promise<AppInfo>;
106
+ startConnection(appId: string, params?: {
107
+ handoffMode?: string;
108
+ returnTo?: string;
109
+ }): Promise<AppConnectionStartResult>;
110
+ connect(params: {
111
+ connectionRequestId: string;
112
+ requestToken: string;
113
+ accountLabel?: string;
114
+ }): Promise<AppConnectionConnectResult>;
115
+ connectionStatus(appId: string): Promise<AppConnectionStatusResult>;
116
+ revokeConnection(appId: string, reason?: string): Promise<AppConnectionRevokeResult>;
117
+ publishSurface(params: AppSurfacePublishParams): Promise<AppSurface>;
118
+ resolveSurface(params: AppSurfaceResolveParams): Promise<AppSurface>;
119
+ authenticate(appId: string, credential: string): Promise<Record<string, unknown>>;
120
+ refreshCredential(): Promise<Record<string, unknown>>;
121
+ activate(params: {
122
+ bindingRequestId: string;
123
+ endpoint: string;
124
+ bearer: string;
125
+ bearerExpiresAt?: string;
126
+ }): Promise<Record<string, unknown>>;
127
+ rebind(params: {
128
+ bindingId: string;
129
+ authorityRevision: number;
130
+ endpoint: string;
131
+ bearer: string;
132
+ bearerExpiresAt?: string;
133
+ }): Promise<Record<string, unknown>>;
134
+ confirmCapabilities(threadId: string, bindingId: string, candidateRevision: number, decision: "accept" | "reject"): Promise<Record<string, unknown>>;
135
+ enable(threadId: string, appId: string): Promise<ThreadAppBindingEnableResult>;
136
+ createSocialBindingRequest(params: {
137
+ threadId: string;
138
+ channelName: string;
139
+ }): Promise<ThreadSocialBindingRequestCreateResult>;
140
+ getBindingRequest(params: {
141
+ bindingRequestId?: string;
142
+ requestToken?: string;
143
+ bindCode?: string;
144
+ }): Promise<AppBindingRequestGetResult>;
145
+ acceptSocialBinding(params: {
146
+ requestToken: string;
147
+ socialTarget: SocialChannelTarget;
148
+ }): Promise<AppBinding>;
149
+ resolveSocialBinding(params: AppSocialBindingResolveParams): Promise<AppSocialBindingResolveResult>;
150
+ enqueueThreadInput(params: {
151
+ bindingId: string;
152
+ input: InputPart[];
153
+ displayText?: string;
154
+ triggerLabel?: string;
155
+ triggerRefId?: string;
156
+ startPolicy?: string;
157
+ sender?: SenderContext;
158
+ }): Promise<AppThreadInputEnqueueResult>;
159
+ listThreadBindings(threadId: string, includeRevoked?: boolean): Promise<AppBinding[]>;
160
+ revokeThreadBinding(threadId: string, bindingId: string, reason?: string): Promise<AppBinding>;
161
+ refreshThreadBindings(threadId: string, bindingId?: string): Promise<AppBinding[]>;
162
+ }
163
+ export declare const APP_BINDING_ERROR_CODES: {
164
+ readonly offline: "AppBindingOffline";
165
+ readonly expired: "AppBindingExpired";
166
+ readonly revoked: "AppBindingRevoked";
167
+ readonly scopeDenied: "AppBindingScopeDenied";
168
+ readonly toolUnavailable: "AppBindingToolUnavailable";
169
+ readonly protocolViolation: "AppBindingProtocolViolation";
170
+ };
171
+ export type AppBindingErrorCode = typeof APP_BINDING_ERROR_CODES[keyof typeof APP_BINDING_ERROR_CODES];
172
+ export declare function appBindingToolError(errorCode: AppBindingErrorCode, errorMessage: string, structuredContent?: JsonValue): DynamicToolCallResult;
173
+ export declare function appBindingUnavailableError(state: "offline" | "expired" | "revoked" | string, message?: string): DynamicToolCallResult;
174
+ /** A parsed App Binding deep-link handoff. Parallel to the .NET and Python SDK helpers. */
175
+ export interface ParsedAppBindingHandoff {
176
+ scheme: string;
177
+ operation: string;
178
+ appId: string;
179
+ requestId: string;
180
+ requestToken: string;
181
+ appServerUrl?: string;
182
+ }
183
+ /**
184
+ * Parse an App Binding handoff URL such as
185
+ * `app://dotcraft/connect?app=...&request=...&token=...&endpoint=...`.
186
+ *
187
+ * Deep links are activation hints, not authorization: always inspect the request
188
+ * over AppServer before rendering confirmation or accepting.
189
+ */
190
+ export declare function parseAppBindingHandoff(url: string, options?: {
191
+ expectedScheme?: string;
192
+ expectedAppId?: string;
193
+ }): ParsedAppBindingHandoff;
194
+ export interface StartThreadOptions extends ThreadIdentityOptions {
195
+ displayName?: string | null;
196
+ historyMode?: string;
197
+ config?: Record<string, unknown> | null;
198
+ dynamicTools?: DynamicToolBinding[];
199
+ additionalContext?: Record<string, RuntimeAdditionalContextEntry>;
200
+ }
201
+ export interface ResumeThreadOptions {
202
+ dynamicTools?: DynamicToolBinding[];
203
+ additionalContext?: Record<string, RuntimeAdditionalContextEntry>;
204
+ }
205
+ export interface GetOrCreateThreadOptions extends StartThreadOptions {
206
+ includeArchived?: boolean;
207
+ }
208
+ export interface ListThreadOptions extends ThreadIdentityOptions {
209
+ scope?: "identity" | "workspace";
210
+ includeArchived?: boolean;
211
+ query?: string;
212
+ limit?: number;
213
+ cursor?: string;
214
+ }
215
+ export interface ThreadHistoryPageOptions {
216
+ cursor?: string;
217
+ limit?: number;
218
+ sortDirection?: "ascending" | "descending";
219
+ }
220
+ export interface ThreadItemPageOptions extends ThreadHistoryPageOptions {
221
+ turnId?: string;
222
+ }
223
+ export interface SubscribeOptions {
224
+ replayRecent?: boolean;
225
+ }
226
+ export interface ThreadSubscription {
227
+ threadId: string;
228
+ unsubscribe(): Promise<void>;
229
+ }
230
+ export type RunInput = string | InputPart[] | {
231
+ input: InputPart[];
232
+ sender?: SenderContext;
233
+ };
234
+ export interface RunOptions {
235
+ sender?: SenderContext;
236
+ collectRawEvents?: boolean;
237
+ abortSignal?: AbortSignal;
238
+ enqueueIfBusy?: boolean;
239
+ }
240
+ export interface EnqueueOptions {
241
+ sender?: SenderContext;
242
+ }
243
+ export interface QueuedInputResult {
244
+ queuedInput?: unknown;
245
+ queuedInputs?: unknown[];
246
+ raw: Record<string, unknown>;
247
+ }
248
+ export interface DotCraftRunResult {
249
+ thread: SessionThread;
250
+ turn: SessionTurn | null;
251
+ text: string;
252
+ items: unknown[];
253
+ usage?: Record<string, unknown> | null;
254
+ rawEvents?: JsonRpcMessage[];
255
+ queuedInput?: unknown;
256
+ }
257
+ export interface DotCraftRunEventBase {
258
+ type: string;
259
+ threadId: string;
260
+ turnId?: string;
261
+ raw: JsonRpcMessage;
262
+ }
263
+ export type DotCraftRunEvent = DotCraftRunEventBase & {
264
+ delta?: string;
265
+ item?: unknown;
266
+ turn?: SessionTurn;
267
+ result?: DotCraftRunResult;
268
+ error?: string;
269
+ queuedInput?: unknown;
270
+ };
271
+ export interface ThreadManager {
272
+ getOrCreate(options?: GetOrCreateThreadOptions): Promise<DotCraftThread>;
273
+ start(options?: StartThreadOptions): Promise<DotCraftThread>;
274
+ resume(threadId: string, options?: ResumeThreadOptions): Promise<DotCraftThread>;
275
+ list(options?: ListThreadOptions): Promise<ThreadSummary[]>;
276
+ listPage(options?: ListThreadOptions): Promise<ThreadListResult>;
277
+ read(threadId: string): Promise<SessionThread>;
278
+ listTurns(threadId: string, options?: ThreadHistoryPageOptions): Promise<ThreadTurnsListResult>;
279
+ listItems(threadId: string, options?: ThreadItemPageOptions): Promise<ThreadItemsListResult>;
280
+ }
281
+ export interface ModelManager {
282
+ list(): Promise<ModelCatalogItem[]>;
283
+ }
284
+ export declare class DotCraft {
285
+ readonly wire: InternalAppServerClient;
286
+ readonly serverInfo: ServerInfo;
287
+ readonly capabilities: ServerCapabilities;
288
+ private readonly approvalHandler?;
289
+ private readonly userInputHandler?;
290
+ readonly threads: ThreadManager;
291
+ readonly appBindings: AppBindingManager;
292
+ readonly models: ModelManager;
293
+ readonly mcpRuntime: McpRuntimeManager;
294
+ private constructor();
295
+ static local(options: DotCraftLocalOptions): Promise<DotCraft>;
296
+ static localChat(options?: DotCraftLocalChatOptions): Promise<DotCraft>;
297
+ static remote(options: DotCraftRemoteOptions): Promise<DotCraft>;
298
+ request<M extends keyof ClientRequestMethods>(method: M, params: ClientRequestMethods[M]["params"]): Promise<ClientRequestMethods[M]["result"]>;
299
+ requestRaw<T = unknown>(method: string, params?: unknown): Promise<T>;
300
+ on<M extends keyof ServerNotificationMethods>(event: M, handler: (params: ServerNotificationMethods[M]["params"]) => void | Promise<void>): Unsubscribe;
301
+ onRaw(event: string, handler: NotificationHandler): Unsubscribe;
302
+ close(): Promise<void>;
303
+ registerDynamicToolHandler(threadId: string, namespace: string | null | undefined, name: string, handler: DynamicToolHandler): Unsubscribe;
304
+ private readonly dynamicToolHandlers;
305
+ private static connect;
306
+ private installServerRequestHandlers;
307
+ }
308
+ export declare class DotCraftThread {
309
+ private readonly sdk;
310
+ readonly identity: SessionIdentity;
311
+ readonly id: string;
312
+ private cached;
313
+ private readonly dynamicToolUnsubscribes;
314
+ constructor(sdk: DotCraft, snapshot: SessionThread, identity: SessionIdentity);
315
+ snapshot(): SessionThread;
316
+ refresh(): Promise<SessionThread>;
317
+ listTurns(options?: ThreadHistoryPageOptions): Promise<ThreadTurnsListResult>;
318
+ listItems(options?: ThreadItemPageOptions): Promise<ThreadItemsListResult>;
319
+ subscribe(options?: SubscribeOptions): Promise<ThreadSubscription>;
320
+ unsubscribe(): Promise<void>;
321
+ run(input: RunInput, options?: RunOptions): Promise<DotCraftRunResult>;
322
+ runStreamed(input: RunInput, options?: RunOptions): AsyncIterable<DotCraftRunEvent>;
323
+ enqueue(input: RunInput, options?: EnqueueOptions): Promise<QueuedInputResult>;
324
+ interrupt(turnId: string): Promise<void>;
325
+ setMode(mode: string): Promise<void>;
326
+ archive(): Promise<void>;
327
+ delete(): Promise<void>;
328
+ onToolCall(namespace: string | null, name: string, handler: DynamicToolHandler): Unsubscribe;
329
+ bindDynamicTools(tools: DynamicToolBinding[] | undefined): void;
330
+ }
331
+ //# sourceMappingURL=dotcraft.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dotcraft.d.ts","sourceRoot":"","sources":["../src/dotcraft.ts"],"names":[],"mappings":"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"}