@tencent-ai/agent-sdk 0.1.0 → 0.1.1-next.24f5d9f.20251221
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.
- package/cli/dist/codebuddy.js +1 -1
- package/cli/package.json +3 -2
- package/cli/product.cloudhosted.json +2 -2
- package/cli/product.internal.json +2 -2
- package/cli/product.ioa.json +2 -2
- package/cli/product.json +2 -2
- package/cli/product.selfhosted.json +2 -2
- package/lib/index.d.ts +3 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -3
- package/lib/index.js.map +1 -1
- package/lib/query.d.ts +1 -0
- package/lib/query.d.ts.map +1 -1
- package/lib/query.js +45 -1
- package/lib/query.js.map +1 -1
- package/lib/session.d.ts +4 -2
- package/lib/session.d.ts.map +1 -1
- package/lib/session.js +48 -6
- package/lib/session.js.map +1 -1
- package/lib/types.d.ts +81 -17
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js +0 -2
- package/lib/types.js.map +1 -1
- package/package.json +3 -2
package/cli/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tencent-ai/codebuddy-code",
|
|
3
|
-
"version": "2.22.0",
|
|
3
|
+
"version": "2.22.0-next.24f5d9f.20251221",
|
|
4
4
|
"description": "Use CodeBuddy, Tencent's AI assistant, right from your terminal. CodeBuddy can understand your codebase, edit files, run terminal commands, and handle entire workflows for you.",
|
|
5
5
|
"main": "lib/node/index.js",
|
|
6
6
|
"typings": "lib/node/index.d.ts",
|
|
@@ -29,7 +29,8 @@
|
|
|
29
29
|
"url": "https://cnb.cool/codebuddy/codebuddy-code/-/issues"
|
|
30
30
|
},
|
|
31
31
|
"publishConfig": {
|
|
32
|
-
"access": "public"
|
|
32
|
+
"access": "public",
|
|
33
|
+
"tag": "next"
|
|
33
34
|
},
|
|
34
35
|
"scripts": {},
|
|
35
36
|
"devDependencies": {},
|
|
@@ -237,6 +237,6 @@
|
|
|
237
237
|
"BillingNotice": false,
|
|
238
238
|
"CustomModelsJSON": true
|
|
239
239
|
},
|
|
240
|
-
"commit": "
|
|
241
|
-
"date": "2025-12-
|
|
240
|
+
"commit": "24f5d9f87c9b5e93dcae3879f12103b8f3150c21",
|
|
241
|
+
"date": "2025-12-20T16:02:50.315Z"
|
|
242
242
|
}
|
|
@@ -239,6 +239,6 @@
|
|
|
239
239
|
"BillingNotice": false,
|
|
240
240
|
"CustomModelsJSON": true
|
|
241
241
|
},
|
|
242
|
-
"commit": "
|
|
243
|
-
"date": "2025-12-
|
|
242
|
+
"commit": "24f5d9f87c9b5e93dcae3879f12103b8f3150c21",
|
|
243
|
+
"date": "2025-12-20T16:02:47.975Z"
|
|
244
244
|
}
|
package/cli/product.ioa.json
CHANGED
|
@@ -462,6 +462,6 @@
|
|
|
462
462
|
"BillingNotice": false,
|
|
463
463
|
"CustomModelsJSON": true
|
|
464
464
|
},
|
|
465
|
-
"commit": "
|
|
466
|
-
"date": "2025-12-
|
|
465
|
+
"commit": "24f5d9f87c9b5e93dcae3879f12103b8f3150c21",
|
|
466
|
+
"date": "2025-12-20T16:02:49.131Z"
|
|
467
467
|
}
|
package/cli/product.json
CHANGED
|
@@ -943,6 +943,6 @@
|
|
|
943
943
|
"description": "tool-ask-user-question-description"
|
|
944
944
|
}
|
|
945
945
|
],
|
|
946
|
-
"commit": "
|
|
947
|
-
"date": "2025-12-
|
|
946
|
+
"commit": "24f5d9f87c9b5e93dcae3879f12103b8f3150c21",
|
|
947
|
+
"date": "2025-12-20T16:02:46.797Z"
|
|
948
948
|
}
|
|
@@ -191,6 +191,6 @@
|
|
|
191
191
|
"BillingNotice": false,
|
|
192
192
|
"CustomModelsJSON": true
|
|
193
193
|
},
|
|
194
|
-
"commit": "
|
|
195
|
-
"date": "2025-12-
|
|
194
|
+
"commit": "24f5d9f87c9b5e93dcae3879f12103b8f3150c21",
|
|
195
|
+
"date": "2025-12-20T16:02:51.501Z"
|
|
196
196
|
}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Genie Agent SDK for JavaScript/TypeScript
|
|
3
3
|
*
|
|
4
|
-
* Compatible with Claude Code Agent SDK interface.
|
|
5
|
-
*
|
|
6
4
|
* @example
|
|
7
5
|
* ```typescript
|
|
8
|
-
* import { query } from '@
|
|
6
|
+
* import { query } from '@tencent-ai/genie-agent-sdk';
|
|
9
7
|
*
|
|
10
8
|
* const q = query({
|
|
11
9
|
* prompt: 'List all files in the current directory',
|
|
@@ -23,7 +21,7 @@ export { createSession as unstable_v2_createSession, resumeSession as unstable_v
|
|
|
23
21
|
export { HOOK_EVENTS, EXIT_REASONS } from './types';
|
|
24
22
|
export { AbortError } from './errors';
|
|
25
23
|
export type { Options, SessionOptions } from './types';
|
|
26
|
-
export type { PermissionMode, PermissionBehavior, PermissionResult, PermissionUpdate, CanUseTool, } from './types';
|
|
24
|
+
export type { PermissionMode, PermissionBehavior, PermissionResult, PermissionUpdate, CanUseTool, CanUseToolOptions, } from './types';
|
|
27
25
|
export type { HookEvent, HookCallback, HookCallbackMatcher, HookInput, HookJSONOutput, SyncHookJSONOutput, AsyncHookJSONOutput, BaseHookInput, PreToolUseHookInput, PostToolUseHookInput, PostToolUseFailureHookInput, NotificationHookInput, UserPromptSubmitHookInput, SessionStartHookInput, SessionEndHookInput, StopHookInput, SubagentStartHookInput, SubagentStopHookInput, PreCompactHookInput, PermissionRequestHookInput, } from './types';
|
|
28
26
|
export type { Message, SystemMessage, UserMessage, AssistantMessage, PartialAssistantMessage, ResultMessage, CompactBoundaryMessage, StatusMessage, ToolProgressMessage, PermissionDenial, } from './types';
|
|
29
27
|
export type { SlashCommand, ModelInfo, AccountInfo, McpServerStatus, } from './types';
|
|
@@ -31,6 +29,7 @@ export type { OutputFormat, JsonSchemaOutputFormat } from './types';
|
|
|
31
29
|
export type { RawMessageStreamEvent } from './types';
|
|
32
30
|
export type { McpServerConfig, McpStdioServerConfig, McpSSEServerConfig, McpHttpServerConfig, } from './types';
|
|
33
31
|
export type { AgentDefinition } from './types';
|
|
32
|
+
export type { AskUserQuestionOption, AskUserQuestionQuestion, AskUserQuestionInput, ToolInputMap, KnownToolName, } from './types';
|
|
34
33
|
export type { SandboxSettings } from './types';
|
|
35
34
|
export type { Session } from './types';
|
|
36
35
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EACH,aAAa,IAAI,yBAAyB,EAC1C,aAAa,IAAI,yBAAyB,EAC1C,MAAM,IAAI,kBAAkB,GAC/B,MAAM,WAAW,CAAC;AAInB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAIpD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAKtC,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGvD,YAAY,EACR,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,iBAAiB,GACpB,MAAM,SAAS,CAAC;AAGjB,YAAY,EACR,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,2BAA2B,EAC3B,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACb,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,0BAA0B,GAC7B,MAAM,SAAS,CAAC;AAGjB,YAAY,EACR,OAAO,EACP,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,uBAAuB,EACvB,aAAa,EACb,sBAAsB,EACtB,aAAa,EACb,mBAAmB,EACnB,gBAAgB,GACnB,MAAM,SAAS,CAAC;AAGjB,YAAY,EACR,YAAY,EACZ,SAAS,EACT,WAAW,EACX,eAAe,GAClB,MAAM,SAAS,CAAC;AAGjB,YAAY,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAGpE,YAAY,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAGrD,YAAY,EACR,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACtB,MAAM,SAAS,CAAC;AAGjB,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG/C,YAAY,EACR,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,YAAY,EACZ,aAAa,GAChB,MAAM,SAAS,CAAC;AAGjB,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG/C,YAAY,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -2,11 +2,9 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Genie Agent SDK for JavaScript/TypeScript
|
|
4
4
|
*
|
|
5
|
-
* Compatible with Claude Code Agent SDK interface.
|
|
6
|
-
*
|
|
7
5
|
* @example
|
|
8
6
|
* ```typescript
|
|
9
|
-
* import { query } from '@
|
|
7
|
+
* import { query } from '@tencent-ai/genie-agent-sdk';
|
|
10
8
|
*
|
|
11
9
|
* const q = query({
|
|
12
10
|
* prompt: 'List all files in the current directory',
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;AAEH,uCAAuC;AAEvC,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AAEd,oBAAoB;AACpB,qCAImB;AAHf,oHAAA,aAAa,OAA6B;AAC1C,oHAAA,aAAa,OAA6B;AAC1C,6GAAA,MAAM,OAAsB;AAGhC,wCAAwC;AAExC,iCAAoD;AAA3C,oGAAA,WAAW,OAAA;AAAE,qGAAA,YAAY,OAAA;AAElC,qCAAqC;AAErC,mCAAsC;AAA7B,oGAAA,UAAU,OAAA"}
|
package/lib/query.d.ts
CHANGED
|
@@ -38,6 +38,7 @@ export declare class Query implements AsyncGenerator<Message, void> {
|
|
|
38
38
|
private initialize;
|
|
39
39
|
private sendPrompt;
|
|
40
40
|
private handleControlRequest;
|
|
41
|
+
private handlePermissionRequest;
|
|
41
42
|
private handleHookCallback;
|
|
42
43
|
private registeredHooks?;
|
|
43
44
|
private registerHooks;
|
package/lib/query.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EACR,OAAO,EACP,WAAW,EACX,OAAO,EACP,cAAc,
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EACR,OAAO,EACP,WAAW,EACX,OAAO,EACP,cAAc,EAWd,YAAY,EACZ,SAAS,EACT,eAAe,EACf,WAAW,EACd,MAAM,SAAS,CAAC;AAGjB;;GAEG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE;IAC1B,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,KAAK,CAER;AAED;;GAEG;AACH,qBAAa,KAAM,YAAW,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC;IAQnD,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO,CAAC;IARpB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,aAAa,CAA0I;IAC/J,OAAO,CAAC,QAAQ,CAA8C;gBAGlD,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,EAC3C,OAAO,CAAC,EAAE,OAAO,YAAA;IAoC7B,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC;IAOjD,IAAI,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAI9C,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAKhD,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAOvD,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAa1B,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAOtD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOvC,oBAAoB,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IASrE,iBAAiB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAO5C,eAAe,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAOvC,eAAe,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAO7C,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;IAOnC,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;YAQrD,cAAc;YAmCf,UAAU;YAyBV,UAAU;YAUV,oBAAoB;YAUpB,uBAAuB;YA6DvB,kBAAkB;IAoBhC,OAAO,CAAC,eAAe,CAAC,CAAoD;IAE5E,OAAO,CAAC,aAAa;IAwBrB,OAAO,CAAC,gBAAgB;CAwB3B"}
|
package/lib/query.js
CHANGED
|
@@ -206,9 +206,53 @@ class Query {
|
|
|
206
206
|
await this.handleHookCallback(request);
|
|
207
207
|
}
|
|
208
208
|
else if (subtype === 'can_use_tool') {
|
|
209
|
+
await this.handlePermissionRequest(request);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
async handlePermissionRequest(request) {
|
|
213
|
+
var _a;
|
|
214
|
+
const permRequest = request.request;
|
|
215
|
+
const { tool_name, input, tool_use_id, agent_id, permission_suggestions, blocked_path, decision_reason, } = permRequest;
|
|
216
|
+
const canUseTool = (_a = this.options) === null || _a === void 0 ? void 0 : _a.canUseTool;
|
|
217
|
+
// If no canUseTool callback provided, deny by default
|
|
218
|
+
if (!canUseTool) {
|
|
219
|
+
this.transport.sendControlResponse(request.request_id, {
|
|
220
|
+
allowed: false,
|
|
221
|
+
reason: 'No permission handler provided',
|
|
222
|
+
tool_use_id,
|
|
223
|
+
});
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
try {
|
|
227
|
+
const result = await canUseTool(tool_name, input, {
|
|
228
|
+
signal: this.abortController.signal,
|
|
229
|
+
suggestions: permission_suggestions,
|
|
230
|
+
blockedPath: blocked_path,
|
|
231
|
+
decisionReason: decision_reason,
|
|
232
|
+
toolUseID: tool_use_id,
|
|
233
|
+
agentID: agent_id,
|
|
234
|
+
});
|
|
235
|
+
if (result.behavior === 'allow') {
|
|
236
|
+
this.transport.sendControlResponse(request.request_id, {
|
|
237
|
+
allowed: true,
|
|
238
|
+
updatedInput: result.updatedInput,
|
|
239
|
+
tool_use_id,
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
this.transport.sendControlResponse(request.request_id, {
|
|
244
|
+
allowed: false,
|
|
245
|
+
reason: result.message,
|
|
246
|
+
interrupt: result.interrupt,
|
|
247
|
+
tool_use_id,
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
catch (error) {
|
|
209
252
|
this.transport.sendControlResponse(request.request_id, {
|
|
210
253
|
allowed: false,
|
|
211
|
-
reason:
|
|
254
|
+
reason: error instanceof Error ? error.message : String(error),
|
|
255
|
+
tool_use_id,
|
|
212
256
|
});
|
|
213
257
|
}
|
|
214
258
|
}
|
package/lib/query.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":";AAAA;;GAEG;;;
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
|
package/lib/session.d.ts
CHANGED
|
@@ -26,6 +26,7 @@ export declare class SessionImpl {
|
|
|
26
26
|
private initialized;
|
|
27
27
|
private closed;
|
|
28
28
|
private messageIterator;
|
|
29
|
+
private abortController;
|
|
29
30
|
constructor(options: SessionOptions, resumeSessionId?: string);
|
|
30
31
|
/**
|
|
31
32
|
* The session ID. Available after receiving the first message.
|
|
@@ -36,9 +37,9 @@ export declare class SessionImpl {
|
|
|
36
37
|
*/
|
|
37
38
|
send(message: string | UserMessage): Promise<void>;
|
|
38
39
|
/**
|
|
39
|
-
*
|
|
40
|
+
* Stream messages from the agent.
|
|
40
41
|
*/
|
|
41
|
-
|
|
42
|
+
stream(): AsyncGenerator<Message, void>;
|
|
42
43
|
/**
|
|
43
44
|
* Close the session.
|
|
44
45
|
*/
|
|
@@ -49,5 +50,6 @@ export declare class SessionImpl {
|
|
|
49
50
|
[Symbol.asyncDispose](): Promise<void>;
|
|
50
51
|
private initialize;
|
|
51
52
|
private handleControlRequest;
|
|
53
|
+
private handlePermissionRequest;
|
|
52
54
|
}
|
|
53
55
|
//# sourceMappingURL=session.d.ts.map
|
package/lib/session.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACR,OAAO,EACP,WAAW,EACX,aAAa,EACb,cAAc,
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACR,OAAO,EACP,WAAW,EACX,aAAa,EACb,cAAc,EAKjB,MAAM,SAAS,CAAC;AAGjB;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,WAAW,CAElE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,WAAW,CAErF;AAED;;GAEG;AACH,wBAAsB,MAAM,CACxB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,cAAc,GACxB,OAAO,CAAC,aAAa,CAAC,CAgBxB;AAED;;GAEG;AACH,qBAAa,WAAW;IAShB,OAAO,CAAC,OAAO;IARnB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,eAAe,CAAwE;IAC/F,OAAO,CAAC,eAAe,CAAkB;gBAG7B,OAAO,EAAE,cAAc,EAC/B,eAAe,CAAC,EAAE,MAAM;IAU5B;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAKtB;IAED;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAYxD;;OAEG;IACI,MAAM,IAAI,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC;IA4C9C;;OAEG;IACH,KAAK,IAAI,IAAI;IASb;;OAEG;IACG,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;YAM9B,UAAU;YAcV,oBAAoB;YAWpB,uBAAuB;CA4DxC"}
|
package/lib/session.js
CHANGED
|
@@ -30,7 +30,7 @@ async function prompt(message, options) {
|
|
|
30
30
|
const session = createSession(options);
|
|
31
31
|
try {
|
|
32
32
|
await session.send(message);
|
|
33
|
-
for await (const msg of session.
|
|
33
|
+
for await (const msg of session.stream()) {
|
|
34
34
|
if (msg.type === 'result') {
|
|
35
35
|
return msg;
|
|
36
36
|
}
|
|
@@ -55,7 +55,7 @@ class SessionImpl {
|
|
|
55
55
|
env: options.env,
|
|
56
56
|
});
|
|
57
57
|
this._sessionId = resumeSessionId !== null && resumeSessionId !== void 0 ? resumeSessionId : '';
|
|
58
|
-
|
|
58
|
+
this.abortController = new AbortController();
|
|
59
59
|
}
|
|
60
60
|
/**
|
|
61
61
|
* The session ID. Available after receiving the first message.
|
|
@@ -79,9 +79,9 @@ class SessionImpl {
|
|
|
79
79
|
this.transport.sendUserMessage(message);
|
|
80
80
|
}
|
|
81
81
|
/**
|
|
82
|
-
*
|
|
82
|
+
* Stream messages from the agent.
|
|
83
83
|
*/
|
|
84
|
-
async *
|
|
84
|
+
async *stream() {
|
|
85
85
|
if (this.closed) {
|
|
86
86
|
return;
|
|
87
87
|
}
|
|
@@ -151,10 +151,52 @@ class SessionImpl {
|
|
|
151
151
|
this.transport.sendControlResponse(request.request_id, { continue: true });
|
|
152
152
|
}
|
|
153
153
|
else if (subtype === 'can_use_tool') {
|
|
154
|
-
|
|
154
|
+
await this.handlePermissionRequest(request);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
async handlePermissionRequest(request) {
|
|
158
|
+
const permRequest = request.request;
|
|
159
|
+
const { tool_name, input, tool_use_id, agent_id, permission_suggestions, blocked_path, decision_reason, } = permRequest;
|
|
160
|
+
const canUseTool = this.options.canUseTool;
|
|
161
|
+
// If no canUseTool callback provided, deny by default
|
|
162
|
+
if (!canUseTool) {
|
|
163
|
+
this.transport.sendControlResponse(request.request_id, {
|
|
164
|
+
allowed: false,
|
|
165
|
+
reason: 'No permission handler provided',
|
|
166
|
+
tool_use_id,
|
|
167
|
+
});
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
try {
|
|
171
|
+
const result = await canUseTool(tool_name, input, {
|
|
172
|
+
signal: this.abortController.signal,
|
|
173
|
+
suggestions: permission_suggestions,
|
|
174
|
+
blockedPath: blocked_path,
|
|
175
|
+
decisionReason: decision_reason,
|
|
176
|
+
toolUseID: tool_use_id,
|
|
177
|
+
agentID: agent_id,
|
|
178
|
+
});
|
|
179
|
+
if (result.behavior === 'allow') {
|
|
180
|
+
this.transport.sendControlResponse(request.request_id, {
|
|
181
|
+
allowed: true,
|
|
182
|
+
updatedInput: result.updatedInput,
|
|
183
|
+
tool_use_id,
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
this.transport.sendControlResponse(request.request_id, {
|
|
188
|
+
allowed: false,
|
|
189
|
+
reason: result.message,
|
|
190
|
+
interrupt: result.interrupt,
|
|
191
|
+
tool_use_id,
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
catch (error) {
|
|
155
196
|
this.transport.sendControlResponse(request.request_id, {
|
|
156
197
|
allowed: false,
|
|
157
|
-
reason:
|
|
198
|
+
reason: error instanceof Error ? error.message : String(error),
|
|
199
|
+
tool_use_id,
|
|
158
200
|
});
|
|
159
201
|
}
|
|
160
202
|
}
|
package/lib/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|
package/lib/types.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Genie Agent SDK Types
|
|
3
|
-
*
|
|
4
|
-
* Compatible with Claude Code Agent SDK interface.
|
|
5
3
|
*/
|
|
6
4
|
export declare const HOOK_EVENTS: readonly ["PreToolUse", "PostToolUse", "PostToolUseFailure", "Notification", "UserPromptSubmit", "SessionStart", "SessionEnd", "Stop", "SubagentStart", "SubagentStop", "PreCompact", "PermissionRequest"];
|
|
7
5
|
export declare const EXIT_REASONS: readonly ["user_exit", "interrupt", "error", "end_turn", "max_turns", "max_budget_usd"];
|
|
@@ -51,14 +49,28 @@ export type PermissionResult = {
|
|
|
51
49
|
interrupt?: boolean;
|
|
52
50
|
toolUseID?: string;
|
|
53
51
|
};
|
|
54
|
-
export type
|
|
52
|
+
export type CanUseToolOptions = {
|
|
55
53
|
signal: AbortSignal;
|
|
56
54
|
suggestions?: PermissionUpdate[];
|
|
57
55
|
blockedPath?: string;
|
|
58
56
|
decisionReason?: string;
|
|
59
57
|
toolUseID: string;
|
|
60
58
|
agentID?: string;
|
|
61
|
-
}
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Permission callback type.
|
|
62
|
+
*
|
|
63
|
+
* Use AskUserQuestionInput for type-safe access to AskUserQuestion tool input:
|
|
64
|
+
* ```ts
|
|
65
|
+
* const handler: CanUseTool = async (toolName, input, options) => {
|
|
66
|
+
* if (toolName === 'AskUserQuestion') {
|
|
67
|
+
* const askInput = input as AskUserQuestionInput;
|
|
68
|
+
* askInput.questions; // typed
|
|
69
|
+
* }
|
|
70
|
+
* };
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
export type CanUseTool = (toolName: string, input: Record<string, unknown>, options: CanUseToolOptions) => Promise<PermissionResult>;
|
|
62
74
|
export type HookEvent = (typeof HOOK_EVENTS)[number];
|
|
63
75
|
export type ExitReason = (typeof EXIT_REASONS)[number];
|
|
64
76
|
export type HookCallback = (input: HookInput, toolUseID: string | undefined, options: {
|
|
@@ -178,6 +190,39 @@ export type McpHttpServerConfig = {
|
|
|
178
190
|
headers?: Record<string, string>;
|
|
179
191
|
};
|
|
180
192
|
export type McpServerConfig = McpStdioServerConfig | McpSSEServerConfig | McpHttpServerConfig;
|
|
193
|
+
export interface AskUserQuestionOption {
|
|
194
|
+
/** The display text for this option (1-5 words) */
|
|
195
|
+
label: string;
|
|
196
|
+
/** Explanation of what this option means */
|
|
197
|
+
description: string;
|
|
198
|
+
}
|
|
199
|
+
export interface AskUserQuestionQuestion {
|
|
200
|
+
/** The complete question to ask (should end with ?) */
|
|
201
|
+
question: string;
|
|
202
|
+
/** Very short label displayed as a chip/tag (max 12 chars) */
|
|
203
|
+
header: string;
|
|
204
|
+
/** Available choices (2-4 options) */
|
|
205
|
+
options: AskUserQuestionOption[];
|
|
206
|
+
/** Allow multiple selections (default: false) */
|
|
207
|
+
multiSelect: boolean;
|
|
208
|
+
}
|
|
209
|
+
export interface AskUserQuestionInput {
|
|
210
|
+
/** Questions to ask the user (1-4 questions) */
|
|
211
|
+
questions: AskUserQuestionQuestion[];
|
|
212
|
+
/** User answers collected by the permission component */
|
|
213
|
+
answers?: Record<string, string>;
|
|
214
|
+
/** Index signature for Record<string, unknown> compatibility */
|
|
215
|
+
[key: string]: unknown;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Maps tool names to their input types.
|
|
219
|
+
* Extend this interface to add type-safe handling for additional tools.
|
|
220
|
+
*/
|
|
221
|
+
export interface ToolInputMap {
|
|
222
|
+
AskUserQuestion: AskUserQuestionInput;
|
|
223
|
+
}
|
|
224
|
+
/** Known tool names with typed inputs */
|
|
225
|
+
export type KnownToolName = keyof ToolInputMap;
|
|
181
226
|
export type AgentDefinition = {
|
|
182
227
|
description: string;
|
|
183
228
|
tools?: string[];
|
|
@@ -193,9 +238,15 @@ export type SandboxSettings = {
|
|
|
193
238
|
allowUnixSockets?: string[];
|
|
194
239
|
};
|
|
195
240
|
};
|
|
241
|
+
/**
|
|
242
|
+
* Information about an available skill (invoked via /command syntax).
|
|
243
|
+
*/
|
|
196
244
|
export type SlashCommand = {
|
|
245
|
+
/** Skill name (without the leading slash) */
|
|
197
246
|
name: string;
|
|
247
|
+
/** Description of what the skill does */
|
|
198
248
|
description: string;
|
|
249
|
+
/** Hint for skill arguments (e.g., "<file>") */
|
|
199
250
|
argumentHint: string;
|
|
200
251
|
};
|
|
201
252
|
export type ModelInfo = {
|
|
@@ -319,7 +370,7 @@ export type SystemMessage = {
|
|
|
319
370
|
permissionMode: PermissionMode;
|
|
320
371
|
slash_commands?: string[];
|
|
321
372
|
output_style?: string;
|
|
322
|
-
|
|
373
|
+
codebuddy_code_version?: string;
|
|
323
374
|
skills?: string[];
|
|
324
375
|
plugins?: Array<{
|
|
325
376
|
name: string;
|
|
@@ -422,6 +473,10 @@ export interface Query extends AsyncGenerator<Message, void> {
|
|
|
422
473
|
setPermissionMode(mode: PermissionMode): Promise<void>;
|
|
423
474
|
setModel(model?: string): Promise<void>;
|
|
424
475
|
setMaxThinkingTokens(maxThinkingTokens: number | null): Promise<void>;
|
|
476
|
+
/**
|
|
477
|
+
* Get the list of available skills for the current session.
|
|
478
|
+
* @returns Array of available skills with their names and descriptions
|
|
479
|
+
*/
|
|
425
480
|
supportedCommands(): Promise<SlashCommand[]>;
|
|
426
481
|
supportedModels(): Promise<ModelInfo[]>;
|
|
427
482
|
mcpServerStatus(): Promise<McpServerStatus[]>;
|
|
@@ -436,7 +491,11 @@ export type Options = {
|
|
|
436
491
|
additionalDirectories?: string[];
|
|
437
492
|
/** Custom subagent definitions */
|
|
438
493
|
agents?: Record<string, AgentDefinition>;
|
|
439
|
-
/**
|
|
494
|
+
/**
|
|
495
|
+
* List of tool names that are auto-allowed without prompting for permission.
|
|
496
|
+
* These tools will execute automatically without asking the user for approval.
|
|
497
|
+
* To restrict which tools are available, use the `tools` option instead.
|
|
498
|
+
*/
|
|
440
499
|
allowedTools?: string[];
|
|
441
500
|
/** Custom permission handler */
|
|
442
501
|
canUseTool?: CanUseTool;
|
|
@@ -444,13 +503,12 @@ export type Options = {
|
|
|
444
503
|
continue?: boolean;
|
|
445
504
|
/** Current working directory */
|
|
446
505
|
cwd?: string;
|
|
447
|
-
/**
|
|
506
|
+
/**
|
|
507
|
+
* List of tool names that are disallowed. When the model attempts to use
|
|
508
|
+
* these tools, the request will be denied. MCP tools matching this list
|
|
509
|
+
* are also filtered from the model's context.
|
|
510
|
+
*/
|
|
448
511
|
disallowedTools?: string[];
|
|
449
|
-
/** Tool configuration */
|
|
450
|
-
tools?: string[] | {
|
|
451
|
-
type: 'preset';
|
|
452
|
-
preset: 'claude_code';
|
|
453
|
-
};
|
|
454
512
|
/** Environment variables */
|
|
455
513
|
env?: Record<string, string | undefined>;
|
|
456
514
|
/** JavaScript runtime */
|
|
@@ -503,11 +561,14 @@ export type Options = {
|
|
|
503
561
|
stderr?: (data: string) => void;
|
|
504
562
|
/** Strict MCP config validation */
|
|
505
563
|
strictMcpConfig?: boolean;
|
|
506
|
-
/**
|
|
564
|
+
/**
|
|
565
|
+
* System prompt configuration.
|
|
566
|
+
*
|
|
567
|
+
* - `string`: Override the entire system prompt
|
|
568
|
+
* - `{ append: string }`: Append to the default system prompt
|
|
569
|
+
*/
|
|
507
570
|
systemPrompt?: string | {
|
|
508
|
-
|
|
509
|
-
preset: 'claude_code';
|
|
510
|
-
append?: string;
|
|
571
|
+
append: string;
|
|
511
572
|
};
|
|
512
573
|
};
|
|
513
574
|
export type SessionOptions = {
|
|
@@ -521,11 +582,14 @@ export type SessionOptions = {
|
|
|
521
582
|
executableArgs?: string[];
|
|
522
583
|
/** Environment variables */
|
|
523
584
|
env?: Record<string, string | undefined>;
|
|
585
|
+
/** Custom permission handler */
|
|
586
|
+
canUseTool?: CanUseTool;
|
|
524
587
|
};
|
|
525
588
|
export interface Session {
|
|
526
589
|
readonly sessionId: string;
|
|
527
590
|
send(message: string | UserMessage): Promise<void>;
|
|
528
|
-
|
|
591
|
+
/** Stream messages from the agent */
|
|
592
|
+
stream(): AsyncGenerator<Message, void>;
|
|
529
593
|
close(): void;
|
|
530
594
|
[Symbol.asyncDispose](): Promise<void>;
|
|
531
595
|
}
|