@superblocksteam/vite-plugin-file-sync 2.0.68-next.0 → 2.0.68-next.1
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/dist/ai-service/agent/tools/apis/test-api.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.js +28 -17
- package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -1
- package/dist/ai-service/agent/tools/build-delete-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-delete-file.js +29 -0
- package/dist/ai-service/agent/tools/build-delete-file.js.map +1 -1
- package/dist/ai-service/agent/tools/integrations/execute-request.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/integrations/execute-request.js +5 -4
- package/dist/ai-service/agent/tools/integrations/execute-request.js.map +1 -1
- package/dist/ai-service/agent/tools.d.ts.map +1 -1
- package/dist/ai-service/agent/tools.js +17 -6
- package/dist/ai-service/agent/tools.js.map +1 -1
- package/dist/ai-service/agent/tools2/entity-permissions.d.ts +23 -20
- package/dist/ai-service/agent/tools2/entity-permissions.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/entity-permissions.js +15 -11
- package/dist/ai-service/agent/tools2/entity-permissions.js.map +1 -1
- package/dist/ai-service/agent/tools2/example.js +2 -2
- package/dist/ai-service/agent/tools2/example.js.map +1 -1
- package/dist/ai-service/agent/tools2/index.d.ts +1 -1
- package/dist/ai-service/agent/tools2/index.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/index.js +1 -1
- package/dist/ai-service/agent/tools2/index.js.map +1 -1
- package/dist/ai-service/agent/tools2/registry.d.ts +4 -4
- package/dist/ai-service/agent/tools2/registry.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/registry.js +42 -29
- package/dist/ai-service/agent/tools2/registry.js.map +1 -1
- package/dist/ai-service/agent/tools2/types.d.ts +36 -15
- package/dist/ai-service/agent/tools2/types.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/types.js.map +1 -1
- package/dist/ai-service/chat/chat-session-store.d.ts +5 -7
- package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
- package/dist/ai-service/chat/chat-session-store.js +36 -17
- package/dist/ai-service/chat/chat-session-store.js.map +1 -1
- package/dist/ai-service/chat/extract-history.d.ts +0 -85
- package/dist/ai-service/chat/extract-history.d.ts.map +1 -1
- package/dist/ai-service/chat/extract-history.js +3 -239
- package/dist/ai-service/chat/extract-history.js.map +1 -1
- package/dist/ai-service/index.d.ts +3 -2
- package/dist/ai-service/index.d.ts.map +1 -1
- package/dist/ai-service/index.js +26 -4
- package/dist/ai-service/index.js.map +1 -1
- package/dist/ai-service/llm/context/constants.d.ts +7 -0
- package/dist/ai-service/llm/context/constants.d.ts.map +1 -1
- package/dist/ai-service/llm/context/constants.js +7 -0
- package/dist/ai-service/llm/context/constants.js.map +1 -1
- package/dist/ai-service/llm/context/context.d.ts +8 -1
- package/dist/ai-service/llm/context/context.d.ts.map +1 -1
- package/dist/ai-service/llm/context/context.js +47 -12
- package/dist/ai-service/llm/context/context.js.map +1 -1
- package/dist/ai-service/llm/context/internal-types.d.ts +1 -0
- package/dist/ai-service/llm/context/internal-types.d.ts.map +1 -1
- package/dist/ai-service/llm/context/internal-types.js.map +1 -1
- package/dist/ai-service/llm/context/manager.d.ts +2 -1
- package/dist/ai-service/llm/context/manager.d.ts.map +1 -1
- package/dist/ai-service/llm/context/manager.js +2 -1
- package/dist/ai-service/llm/context/manager.js.map +1 -1
- package/dist/ai-service/llm/context/utils/message-utils.d.ts +10 -0
- package/dist/ai-service/llm/context/utils/message-utils.d.ts.map +1 -1
- package/dist/ai-service/llm/context/utils/message-utils.js +74 -0
- package/dist/ai-service/llm/context/utils/message-utils.js.map +1 -1
- package/dist/ai-service/llm/error.d.ts +1 -1
- package/dist/ai-service/state-machine/clark-fsm.d.ts +4 -1
- package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.js +3 -1
- package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/idle.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/idle.js +3 -1
- package/dist/ai-service/state-machine/handlers/idle.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/runtime-reviewing.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/runtime-reviewing.js +4 -1
- package/dist/ai-service/state-machine/handlers/runtime-reviewing.js.map +1 -1
- package/dist/ai-service/state-machine/helpers/context-id.d.ts +1 -1
- package/dist/ai-service/state-machine/helpers/context-id.d.ts.map +1 -1
- package/dist/ai-service/state-machine/helpers/context-id.js +6 -7
- package/dist/ai-service/state-machine/helpers/context-id.js.map +1 -1
- package/dist/ai-service/state-machine/mocks.d.ts +1 -0
- package/dist/ai-service/state-machine/mocks.d.ts.map +1 -1
- package/dist/ai-service/state-machine/mocks.js +5 -1
- package/dist/ai-service/state-machine/mocks.js.map +1 -1
- package/dist/socket-manager.d.ts.map +1 -1
- package/dist/socket-manager.js +18 -6
- package/dist/socket-manager.js.map +1 -1
- package/dist/sync-service/index.d.ts +5 -0
- package/dist/sync-service/index.d.ts.map +1 -1
- package/dist/sync-service/index.js +13 -1
- package/dist/sync-service/index.js.map +1 -1
- package/package.json +6 -6
|
@@ -86,7 +86,7 @@ export function setupExampleRegistry() {
|
|
|
86
86
|
// Or use a preset
|
|
87
87
|
// registry.addAccessRule(...presets.production());
|
|
88
88
|
// 2. Setup prompt handler
|
|
89
|
-
registry.setPromptHandler(async (tool, input, context) => {
|
|
89
|
+
registry.setPromptHandler(async (tool, input, _permissions, context) => {
|
|
90
90
|
console.log(`\n=== User Confirmation Required ===`);
|
|
91
91
|
console.log(`Tool: ${tool.name}`);
|
|
92
92
|
// Use tool formatting methods if available
|
|
@@ -113,7 +113,7 @@ export function setupExampleRegistry() {
|
|
|
113
113
|
console.log(`===================================\n`);
|
|
114
114
|
// In real implementation, show dialog and wait for user response
|
|
115
115
|
// For example: return await showConfirmDialog({ tool, input });
|
|
116
|
-
return ToolPermissionResponse.ALLOW; // Mock: auto-approve for demo
|
|
116
|
+
return { response: ToolPermissionResponse.ALLOW }; // Mock: auto-approve for demo
|
|
117
117
|
});
|
|
118
118
|
// 3. Register and instantiate tools with dependencies
|
|
119
119
|
const mockDeps = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example.js","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools2/example.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"example.js","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools2/example.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
export type { Tool, ToolFactory, ToolExecutionResult, AccessControlContext, AccessControlRule, PromptHandler, EntityReference, } from "./types.js";
|
|
11
11
|
export { PermissionLevel, ToolCategory, ToolPermissionResponse, createToolFactory, } from "./types.js";
|
|
12
12
|
export type { EntityPermissionStore } from "./entity-permissions.js";
|
|
13
|
-
export { SessionEntityPermissionStore } from "./entity-permissions.js";
|
|
13
|
+
export { SessionEntityPermissionStore, PermissionKeyStrategy, ActionBasedPermissionKeyStrategy, type PermissionScope, type PermissionKey, } from "./entity-permissions.js";
|
|
14
14
|
export { ToolRegistry } from "./registry.js";
|
|
15
15
|
export { blockTools, promptForTools, requireRole, combineRules, forTools, forCategory, presets, } from "./access-control.js";
|
|
16
16
|
import { ToolRegistry } from "./registry.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools2/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,YAAY,EACV,IAAI,EACJ,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,eAAe,EACf,YAAY,EACZ,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools2/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,YAAY,EACV,IAAI,EACJ,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,eAAe,EACf,YAAY,EACZ,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EACL,4BAA4B,EAC5B,qBAAqB,EACrB,gCAAgC,EAChC,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,EACL,UAAU,EACV,cAAc,EACd,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,OAAO,GACR,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,eAAO,MAAM,eAAe,cAAqB,CAAC"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* - Type-safe tool definitions
|
|
9
9
|
*/
|
|
10
10
|
export { PermissionLevel, ToolCategory, ToolPermissionResponse, createToolFactory, } from "./types.js";
|
|
11
|
-
export { SessionEntityPermissionStore } from "./entity-permissions.js";
|
|
11
|
+
export { SessionEntityPermissionStore, PermissionKeyStrategy, ActionBasedPermissionKeyStrategy, } from "./entity-permissions.js";
|
|
12
12
|
// Export registry
|
|
13
13
|
export { ToolRegistry } from "./registry.js";
|
|
14
14
|
// Export access control utilities
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools2/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAaH,OAAO,EACL,eAAe,EACf,YAAY,EACZ,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAIpB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools2/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAaH,OAAO,EACL,eAAe,EACf,YAAY,EACZ,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAIpB,OAAO,EACL,4BAA4B,EAC5B,qBAAqB,EACrB,gCAAgC,GAGjC,MAAM,yBAAyB,CAAC;AAEjC,kBAAkB;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,kCAAkC;AAClC,OAAO,EACL,UAAU,EACV,cAAc,EACd,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,OAAO,GACR,MAAM,qBAAqB,CAAC;AAE7B,4CAA4C;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,YAAY,EAAE,CAAC"}
|
|
@@ -118,9 +118,9 @@ export declare class ToolRegistry {
|
|
|
118
118
|
/**
|
|
119
119
|
* Set entity permission store for tracking per-entity approvals.
|
|
120
120
|
*
|
|
121
|
-
* When set, tools with `
|
|
122
|
-
* check if
|
|
123
|
-
* If any
|
|
121
|
+
* When set, tools with `getRequiredPermissions` defined will automatically
|
|
122
|
+
* check if required permissions have been approved before execution.
|
|
123
|
+
* If any permission is not approved, the user will be prompted.
|
|
124
124
|
*
|
|
125
125
|
* @param store - Entity permission store instance
|
|
126
126
|
*/
|
|
@@ -134,7 +134,7 @@ export declare class ToolRegistry {
|
|
|
134
134
|
* @param tool - Tool to get scope for
|
|
135
135
|
* @returns Permission scope string
|
|
136
136
|
*/
|
|
137
|
-
private
|
|
137
|
+
private getPermissionScope;
|
|
138
138
|
/**
|
|
139
139
|
* Check permission level for tool execution.
|
|
140
140
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools2/registry.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,KAAK,IAAI,EACT,KAAK,WAAW,EAChB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,eAAe,EAGf,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools2/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { OperationQueue } from "../../../util/operation-queue.js";
|
|
2
|
-
import {
|
|
2
|
+
import { ActionBasedPermissionKeyStrategy, } from "./entity-permissions.js";
|
|
3
3
|
import { PermissionLevel, ToolPermissionResponse, ToolExecutionError, } from "./types.js";
|
|
4
4
|
/**
|
|
5
5
|
* Central registry for tools with access control.
|
|
@@ -18,7 +18,7 @@ export class ToolRegistry {
|
|
|
18
18
|
promptHandler;
|
|
19
19
|
promptQueue = new OperationQueue();
|
|
20
20
|
entityPermissionStore;
|
|
21
|
-
scopeStrategy = new
|
|
21
|
+
scopeStrategy = new ActionBasedPermissionKeyStrategy();
|
|
22
22
|
/**
|
|
23
23
|
* Register a tool factory and optionally instantiate it immediately.
|
|
24
24
|
*
|
|
@@ -169,14 +169,14 @@ export class ToolRegistry {
|
|
|
169
169
|
* @param handler - Prompt handler function
|
|
170
170
|
*/
|
|
171
171
|
setPromptHandler(handler) {
|
|
172
|
-
this.promptHandler = (tool, input, context) => this.promptQueue.enqueue(() => handler(tool, input, context));
|
|
172
|
+
this.promptHandler = (tool, input, permissions, context) => this.promptQueue.enqueue(() => handler(tool, input, permissions, context));
|
|
173
173
|
}
|
|
174
174
|
/**
|
|
175
175
|
* Set entity permission store for tracking per-entity approvals.
|
|
176
176
|
*
|
|
177
|
-
* When set, tools with `
|
|
178
|
-
* check if
|
|
179
|
-
* If any
|
|
177
|
+
* When set, tools with `getRequiredPermissions` defined will automatically
|
|
178
|
+
* check if required permissions have been approved before execution.
|
|
179
|
+
* If any permission is not approved, the user will be prompted.
|
|
180
180
|
*
|
|
181
181
|
* @param store - Entity permission store instance
|
|
182
182
|
*/
|
|
@@ -192,8 +192,8 @@ export class ToolRegistry {
|
|
|
192
192
|
* @param tool - Tool to get scope for
|
|
193
193
|
* @returns Permission scope string
|
|
194
194
|
*/
|
|
195
|
-
|
|
196
|
-
const key = this.scopeStrategy.
|
|
195
|
+
async getPermissionScope(permission, input) {
|
|
196
|
+
const key = await this.scopeStrategy.getPermissionKey(permission, input);
|
|
197
197
|
return this.scopeStrategy.formatScope(key);
|
|
198
198
|
}
|
|
199
199
|
/**
|
|
@@ -263,7 +263,7 @@ export class ToolRegistry {
|
|
|
263
263
|
// Handle PROMPT
|
|
264
264
|
if (permission === PermissionLevel.PROMPT) {
|
|
265
265
|
// Check if we need to prompt (or if entities are already approved)
|
|
266
|
-
const needsPrompt = this.shouldPromptForEntities(tool, input, context);
|
|
266
|
+
const needsPrompt = await this.shouldPromptForEntities(tool, input, context);
|
|
267
267
|
if (needsPrompt) {
|
|
268
268
|
// Ensure prompt handler exists
|
|
269
269
|
if (!this.promptHandler) {
|
|
@@ -272,18 +272,24 @@ export class ToolRegistry {
|
|
|
272
272
|
error: new ToolExecutionError(`Tool "${toolName}" requires user confirmation but no prompt handler registered`, { toolName, input, context }),
|
|
273
273
|
};
|
|
274
274
|
}
|
|
275
|
+
const permissions = (await Promise.all(((await tool.getRequiredPermissions?.(input)) ?? []).map(async (permission) => ({
|
|
276
|
+
permission,
|
|
277
|
+
isApproved: this.entityPermissionStore?.isApproved(permission.entityType, permission.entityId, await this.getPermissionScope(permission, input)),
|
|
278
|
+
}))))
|
|
279
|
+
.filter(({ isApproved }) => !isApproved)
|
|
280
|
+
.map(({ permission }) => permission);
|
|
275
281
|
// Prompt user for approval
|
|
276
|
-
const
|
|
282
|
+
const promptResult = await this.promptHandler(tool, input, permissions, context);
|
|
277
283
|
// Handle DENY
|
|
278
|
-
if (response === ToolPermissionResponse.DENY) {
|
|
284
|
+
if (promptResult.response === ToolPermissionResponse.DENY) {
|
|
279
285
|
return {
|
|
280
286
|
type: "error",
|
|
281
287
|
error: new ToolExecutionError(`Tool "${toolName}" execution rejected by user`, { toolName, input, context }),
|
|
282
288
|
};
|
|
283
289
|
}
|
|
284
290
|
// Handle ALWAYS_ALLOW - store entity approvals for future use
|
|
285
|
-
if (response === ToolPermissionResponse.ALWAYS_ALLOW) {
|
|
286
|
-
this.approveEntitiesAfterPrompt(tool, input);
|
|
291
|
+
if (promptResult.response === ToolPermissionResponse.ALWAYS_ALLOW) {
|
|
292
|
+
await this.approveEntitiesAfterPrompt(tool, input, promptResult.alwaysAllowPermissions);
|
|
287
293
|
}
|
|
288
294
|
// Handle ALLOW - proceed to execution without storing permission
|
|
289
295
|
// (no special action needed, just continue to execution)
|
|
@@ -325,23 +331,25 @@ export class ToolRegistry {
|
|
|
325
331
|
* @param input - Tool input to extract entities from
|
|
326
332
|
* @returns True if we should prompt user, false if we can skip
|
|
327
333
|
*/
|
|
328
|
-
shouldPromptForEntities(tool, input, _context) {
|
|
334
|
+
async shouldPromptForEntities(tool, input, _context) {
|
|
329
335
|
// No entity system configured, use standard prompting
|
|
330
336
|
const entityPermissionStore = this.entityPermissionStore;
|
|
331
|
-
if (!tool.
|
|
337
|
+
if (!tool.getRequiredPermissions || !entityPermissionStore) {
|
|
332
338
|
return true;
|
|
333
339
|
}
|
|
334
|
-
const
|
|
340
|
+
const permissions = await tool.getRequiredPermissions(input);
|
|
335
341
|
// No entities extracted, use standard prompting
|
|
336
|
-
if (
|
|
342
|
+
if (permissions.length === 0) {
|
|
337
343
|
return true;
|
|
338
344
|
}
|
|
339
|
-
// Compute scope for this tool
|
|
340
|
-
const scope = this.getToolPermissionScope(tool);
|
|
341
345
|
// Check if any entities are not approved for this scope
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
346
|
+
// Map each permission to a promise that resolves to true if not approved
|
|
347
|
+
const approvalChecks = await Promise.all(permissions.map(async (permission) => {
|
|
348
|
+
const scope = await this.getPermissionScope(permission, input);
|
|
349
|
+
return !entityPermissionStore.isApproved(permission.entityType, permission.entityId, scope);
|
|
350
|
+
}));
|
|
351
|
+
// Return true if any permission is not approved (needs prompt)
|
|
352
|
+
return approvalChecks.some((needsPrompt) => needsPrompt);
|
|
345
353
|
}
|
|
346
354
|
/**
|
|
347
355
|
* Store entity approvals after successful user prompt.
|
|
@@ -353,16 +361,21 @@ export class ToolRegistry {
|
|
|
353
361
|
* @param tool - Tool that was approved
|
|
354
362
|
* @param input - Tool input to extract entities from
|
|
355
363
|
*/
|
|
356
|
-
approveEntitiesAfterPrompt(tool, input) {
|
|
364
|
+
async approveEntitiesAfterPrompt(tool, input, alwaysAllowPermissions) {
|
|
357
365
|
// No entity system configured
|
|
358
|
-
if (!tool.
|
|
366
|
+
if (!tool.getRequiredPermissions || !this.entityPermissionStore) {
|
|
359
367
|
return;
|
|
360
368
|
}
|
|
361
|
-
|
|
362
|
-
const
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
369
|
+
const permissions = await tool.getRequiredPermissions(input);
|
|
370
|
+
const permissionsToApprove = alwaysAllowPermissions
|
|
371
|
+
? permissions.filter((permission) => alwaysAllowPermissions.some((alwaysAllow) => alwaysAllow.entityType === permission.entityType &&
|
|
372
|
+
alwaysAllow.entityId === permission.entityId &&
|
|
373
|
+
alwaysAllow.permissionType === permission.permissionType))
|
|
374
|
+
: [];
|
|
375
|
+
for (const permission of permissionsToApprove) {
|
|
376
|
+
// Compute scope for each permission individually
|
|
377
|
+
const scope = await this.getPermissionScope(permission, input);
|
|
378
|
+
this.entityPermissionStore.approve(permission.entityType, permission.entityId, scope);
|
|
366
379
|
}
|
|
367
380
|
}
|
|
368
381
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools2/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools2/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SubagentType } from "../subagents/types.js";
|
|
2
|
-
import type { AiMode, AiEntityType, PlanContext, PromptContextEntity, PromptContextIntegration } from "@superblocksteam/library-shared/types";
|
|
2
|
+
import type { AiMode, AiEntityType, PlanContext, PromptContextEntity, PromptContextIntegration, AiPermissionType, AiToolPermission } from "@superblocksteam/library-shared/types";
|
|
3
3
|
import type { ToolCallOptions } from "ai";
|
|
4
4
|
import type z from "zod";
|
|
5
5
|
/**
|
|
@@ -55,22 +55,19 @@ export interface Tool<Input = any, Output = any> {
|
|
|
55
55
|
/** Optional function to transform output for the model */
|
|
56
56
|
toModelOutput?: (output: Output) => any;
|
|
57
57
|
/**
|
|
58
|
-
* Optional function to
|
|
59
|
-
*
|
|
60
|
-
* When defined, the registry will automatically check if all extracted
|
|
61
|
-
* entities have been approved before executing the tool. If any entity
|
|
62
|
-
* is not approved, the user will be prompted for permission.
|
|
58
|
+
* Optional function to get the required permissions for the tool.
|
|
63
59
|
*
|
|
64
60
|
* @param input - Validated tool input
|
|
65
|
-
* @returns Array of
|
|
61
|
+
* @returns Array of required permissions
|
|
66
62
|
*
|
|
67
63
|
* @example
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
64
|
+
* getRequiredPermissions: (input) => [{
|
|
65
|
+
* entityType: AiEntityType.PAGE,
|
|
66
|
+
* entityId: input.filePath,
|
|
67
|
+
* permissionType: AiPermissionType.DELETE,
|
|
71
68
|
* }]
|
|
72
69
|
*/
|
|
73
|
-
|
|
70
|
+
getRequiredPermissions?: (input: Input) => Promise<AiToolPermission[]> | AiToolPermission[];
|
|
74
71
|
/**
|
|
75
72
|
* Optional function to get action name in different tenses.
|
|
76
73
|
*
|
|
@@ -112,6 +109,23 @@ export interface Tool<Input = any, Output = any> {
|
|
|
112
109
|
details?: string;
|
|
113
110
|
summary?: string;
|
|
114
111
|
};
|
|
112
|
+
/**
|
|
113
|
+
* Optional function to determine the permission type (read or write) for this tool.
|
|
114
|
+
*
|
|
115
|
+
* If not provided, defaults to "read" if the tool is readOnly, otherwise "write".
|
|
116
|
+
* This allows tools to dynamically determine permission type based on input.
|
|
117
|
+
*
|
|
118
|
+
* @param input - Validated tool input
|
|
119
|
+
* @returns "read" or "write" permission type
|
|
120
|
+
*
|
|
121
|
+
* @example
|
|
122
|
+
* getPermissionType: async (input) => {
|
|
123
|
+
* const apiSource = await readApiSource(services, input.apiName);
|
|
124
|
+
* const hasMutations = extractMutations(apiSource.content).length > 0;
|
|
125
|
+
* return hasMutations ? "write" : "read";
|
|
126
|
+
* }
|
|
127
|
+
*/
|
|
128
|
+
getPermissionType?: (input: Input) => Promise<AiPermissionType>;
|
|
115
129
|
}
|
|
116
130
|
/**
|
|
117
131
|
* Permission levels for tool execution.
|
|
@@ -185,7 +199,7 @@ export declare function createToolFactory<TInputSchema extends z.ZodTypeAny, TDe
|
|
|
185
199
|
outputSchema?: TOutputSchema;
|
|
186
200
|
execute: (input: TInput, options: ToolCallOptions) => Promise<TOutput>;
|
|
187
201
|
toModelOutput?: (output: TOutput) => any;
|
|
188
|
-
|
|
202
|
+
getRequiredPermissions?: (input: TInput) => Promise<AiToolPermission[]> | AiToolPermission[];
|
|
189
203
|
getActionName?: () => {
|
|
190
204
|
future: string;
|
|
191
205
|
present: string;
|
|
@@ -231,6 +245,13 @@ export interface AccessControlContext {
|
|
|
231
245
|
* Rules are evaluated in order, most restrictive wins.
|
|
232
246
|
*/
|
|
233
247
|
export type AccessControlRule = (tool: Tool, context: AccessControlContext, input?: any) => PermissionLevel | Promise<PermissionLevel>;
|
|
248
|
+
/**
|
|
249
|
+
* Result from a prompt handler, including the response and which permissions to always allow.
|
|
250
|
+
*/
|
|
251
|
+
export interface PromptHandlerResult {
|
|
252
|
+
response: ToolPermissionResponse;
|
|
253
|
+
alwaysAllowPermissions?: AiToolPermission[];
|
|
254
|
+
}
|
|
234
255
|
/**
|
|
235
256
|
* Handler for prompting user for confirmation.
|
|
236
257
|
*
|
|
@@ -241,14 +262,14 @@ export type AccessControlRule = (tool: Tool, context: AccessControlContext, inpu
|
|
|
241
262
|
* - tool.name, tool.description, tool.category for context
|
|
242
263
|
* - tool.getActionName() for tense-based display (if defined)
|
|
243
264
|
* - tool.formatInput(input) for human-readable input summary (if defined)
|
|
244
|
-
* - tool.
|
|
265
|
+
* - tool.getRequiredPermissions(input) to see what entities will be accessed (if defined)
|
|
245
266
|
*
|
|
246
267
|
* Returns:
|
|
247
268
|
* - ALLOW: Execute once, don't store permission
|
|
248
|
-
* - ALWAYS_ALLOW: Execute and store permission for future use
|
|
269
|
+
* - ALWAYS_ALLOW: Execute and store permission for future use (with alwaysAllowPermissions indicating which specific permissions to store)
|
|
249
270
|
* - DENY: Block execution
|
|
250
271
|
*/
|
|
251
|
-
export type PromptHandler = (tool: Tool, input: any, context: AccessControlContext, options?: ToolCallOptions) => Promise<
|
|
272
|
+
export type PromptHandler = (tool: Tool, input: any, permissions: AiToolPermission[], context: AccessControlContext, options?: ToolCallOptions) => Promise<PromptHandlerResult>;
|
|
252
273
|
/**
|
|
253
274
|
* Middleware function that can transform tools.
|
|
254
275
|
* Receives the tool name and tool instance, returns transformed tool.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools2/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EACV,MAAM,EACN,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,wBAAwB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools2/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools2/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools2/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { type AiChangeInfoPush, type AiMessagePush, type AiChatMessage, type AiChatSummary, type Attachment } from "@superblocksteam/library-shared/types";
|
|
1
2
|
import { type Logger } from "../../util/logger.js";
|
|
2
3
|
import type { AutoConnectingRpcClient } from "../../server-rpc/index.js";
|
|
3
|
-
import type { AiChangeInfoPush, AiMessagePush, AiChatMessage, AiChatSummary, Attachment } from "@superblocksteam/library-shared/types";
|
|
4
4
|
export type AiChatItem = AiChatMessage | AiChatSummary;
|
|
5
5
|
export type AiChatSummaryWithOutcome = AiChatSummary & {
|
|
6
6
|
outcome: "accepted" | "rejected" | "unknown";
|
|
@@ -13,7 +13,6 @@ interface ChatSessionStoreConfig {
|
|
|
13
13
|
logger: Logger;
|
|
14
14
|
}
|
|
15
15
|
export declare class ChatSessionStore {
|
|
16
|
-
private static readonly CHARS_PER_TOKEN;
|
|
17
16
|
private applicationId;
|
|
18
17
|
private rpcClient;
|
|
19
18
|
private logger;
|
|
@@ -35,12 +34,11 @@ export declare class ChatSessionStore {
|
|
|
35
34
|
private validateChatItemV1;
|
|
36
35
|
private ensureLoadedFromServer;
|
|
37
36
|
getLastUserMessage(): AiChatMessage | undefined;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}[];
|
|
42
|
-
getMessages(): Promise<AiChatMessage[]>;
|
|
37
|
+
getMessages(options?: {
|
|
38
|
+
force?: boolean;
|
|
39
|
+
}): Promise<AiChatMessage[]>;
|
|
43
40
|
newChat(): Promise<void>;
|
|
41
|
+
truncateAfterTimestamp(sinceTimestamp: number): Promise<void>;
|
|
44
42
|
recordUser(text: string, options?: {
|
|
45
43
|
attachments?: Array<Attachment>;
|
|
46
44
|
}): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-session-store.d.ts","sourceRoot":"","sources":["../../../src/ai-service/chat/chat-session-store.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"chat-session-store.d.ts","sourceRoot":"","sources":["../../../src/ai-service/chat/chat-session-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,9 +32,10 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn,
|
|
|
32
32
|
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
33
33
|
done = true;
|
|
34
34
|
};
|
|
35
|
+
import { EXCLUDED_MESSAGE_TYPES, } from "@superblocksteam/library-shared/types";
|
|
35
36
|
import { getErrorMeta } from "../../util/logger.js";
|
|
36
37
|
import llmobs from "../llmobs/index.js";
|
|
37
|
-
import {
|
|
38
|
+
import { getLastUserMessage } from "./extract-history.js";
|
|
38
39
|
export function isAiChatMessage(item) {
|
|
39
40
|
return "role" in item && "content" in item;
|
|
40
41
|
}
|
|
@@ -68,8 +69,6 @@ let ChatSessionStore = (() => {
|
|
|
68
69
|
__esDecorate(this, null, _getLatestSummary_decorators, { kind: "method", name: "getLatestSummary", static: false, private: false, access: { has: obj => "getLatestSummary" in obj, get: obj => obj.getLatestSummary }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
69
70
|
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
70
71
|
}
|
|
71
|
-
// Approximate number of characters per token for estimating token usage
|
|
72
|
-
static CHARS_PER_TOKEN = 3.5;
|
|
73
72
|
applicationId = __runInitializers(this, _instanceExtraInitializers);
|
|
74
73
|
rpcClient;
|
|
75
74
|
logger;
|
|
@@ -148,9 +147,7 @@ let ChatSessionStore = (() => {
|
|
|
148
147
|
const status = typeof msg.status === "string" ? msg.status : undefined;
|
|
149
148
|
const action = typeof msg.action === "string" ? msg.action : undefined;
|
|
150
149
|
const title = typeof msg.title === "string" ? msg.title : undefined;
|
|
151
|
-
const streaming = typeof msg.streaming === "boolean"
|
|
152
|
-
? msg.streaming
|
|
153
|
-
: undefined;
|
|
150
|
+
const streaming = typeof msg.streaming === "boolean" ? msg.streaming : undefined;
|
|
154
151
|
const integrations = Array.isArray(msg.integrations)
|
|
155
152
|
? msg.integrations
|
|
156
153
|
: undefined;
|
|
@@ -341,7 +338,11 @@ let ChatSessionStore = (() => {
|
|
|
341
338
|
}
|
|
342
339
|
return null;
|
|
343
340
|
}
|
|
344
|
-
async ensureLoadedFromServer() {
|
|
341
|
+
async ensureLoadedFromServer(options = { forceReload: false }) {
|
|
342
|
+
const { forceReload } = options;
|
|
343
|
+
if (forceReload) {
|
|
344
|
+
this.loadedFromServer = "no";
|
|
345
|
+
}
|
|
345
346
|
// NOTE: we will want to re-evaluate this if/when the auth token associated with this sandbox is changed
|
|
346
347
|
// the existing solution is that each time the page loaded by the client, we re-fetch from the server,
|
|
347
348
|
// so this may be a non-issue.
|
|
@@ -383,16 +384,10 @@ let ChatSessionStore = (() => {
|
|
|
383
384
|
const messages = this.messages.filter(isAiChatMessage);
|
|
384
385
|
return getLastUserMessage(messages);
|
|
385
386
|
}
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
return extractProductiveHistoryForContext(messages, {
|
|
390
|
-
maxAcceptedExchanges: 2,
|
|
391
|
-
includeRecentUnknown: true,
|
|
387
|
+
async getMessages(options) {
|
|
388
|
+
await this.ensureLoadedFromServer({
|
|
389
|
+
forceReload: options?.force ?? false,
|
|
392
390
|
});
|
|
393
|
-
}
|
|
394
|
-
async getMessages() {
|
|
395
|
-
await this.ensureLoadedFromServer();
|
|
396
391
|
return this.messages.filter(isAiChatMessage);
|
|
397
392
|
}
|
|
398
393
|
async newChat() {
|
|
@@ -407,6 +402,24 @@ let ChatSessionStore = (() => {
|
|
|
407
402
|
this.logger.error("[ai-service] Failed to create new chat", getErrorMeta(error));
|
|
408
403
|
}
|
|
409
404
|
}
|
|
405
|
+
async truncateAfterTimestamp(sinceTimestamp) {
|
|
406
|
+
try {
|
|
407
|
+
// Truncate chat messages on server
|
|
408
|
+
await this.rpcClient.call(async (client) => {
|
|
409
|
+
const applicationId = this.applicationId;
|
|
410
|
+
return await client.call.v1.ai.chat.truncateAfterTimestamp({
|
|
411
|
+
applicationId,
|
|
412
|
+
sinceTimestamp,
|
|
413
|
+
});
|
|
414
|
+
});
|
|
415
|
+
// Reload messages from server after truncation
|
|
416
|
+
await this.ensureLoadedFromServer({ forceReload: true });
|
|
417
|
+
}
|
|
418
|
+
catch (error) {
|
|
419
|
+
this.logger.error("[ai-service] Failed to truncate chat messages", getErrorMeta(error));
|
|
420
|
+
throw error;
|
|
421
|
+
}
|
|
422
|
+
}
|
|
410
423
|
async recordUser(text, options = {}) {
|
|
411
424
|
const message = {
|
|
412
425
|
role: "user",
|
|
@@ -513,7 +526,7 @@ let ChatSessionStore = (() => {
|
|
|
513
526
|
else {
|
|
514
527
|
message = {
|
|
515
528
|
role: "assistant",
|
|
516
|
-
content: payload.text,
|
|
529
|
+
content: "text" in payload ? payload.text : "",
|
|
517
530
|
type: payload.type || "text",
|
|
518
531
|
group: "group" in payload ? payload.group : "",
|
|
519
532
|
status: payload.status,
|
|
@@ -569,6 +582,12 @@ let ChatSessionStore = (() => {
|
|
|
569
582
|
const payload = {
|
|
570
583
|
...message,
|
|
571
584
|
};
|
|
585
|
+
// Skip sending excluded message types to the server
|
|
586
|
+
if ("type" in payload &&
|
|
587
|
+
typeof payload.type === "string" &&
|
|
588
|
+
EXCLUDED_MESSAGE_TYPES.includes(payload.type)) {
|
|
589
|
+
return;
|
|
590
|
+
}
|
|
572
591
|
try {
|
|
573
592
|
await this.rpcClient.call(async (client) => {
|
|
574
593
|
const applicationId = this.applicationId;
|