@sage-protocol/pi-adapter 0.4.3 → 0.5.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/README.md +21 -0
- package/USAGE.md +21 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6723 -51
- package/dist/intercom-storage.d.ts +20 -0
- package/dist/intercom-storage.d.ts.map +1 -0
- package/dist/intercom.d.ts +72 -0
- package/dist/intercom.d.ts.map +1 -0
- package/dist/sage-pi-adapter.d.ts +13 -0
- package/dist/sage-pi-adapter.d.ts.map +1 -1
- package/dist/wallet-status.d.ts +37 -0
- package/dist/wallet-status.d.ts.map +1 -0
- package/extensions/index.ts +27 -1
- package/package.json +8 -7
- package/dist/behavior/index.js +0 -9
- package/dist/behavior/index.js.map +0 -1
- package/dist/behavior/pi-executor.js +0 -188
- package/dist/behavior/pi-executor.js.map +0 -1
- package/dist/behavior/resolver.js +0 -171
- package/dist/behavior/resolver.js.map +0 -1
- package/dist/behavior/types.js +0 -16
- package/dist/behavior/types.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/sage-pi-adapter.js +0 -2862
- package/dist/sage-pi-adapter.js.map +0 -1
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** Private adapter state contains credentials, never peer message bodies. */
|
|
2
|
+
export declare class IntercomStorage {
|
|
3
|
+
readonly stableKey: string;
|
|
4
|
+
readonly directory: string;
|
|
5
|
+
private currentAuthFile?;
|
|
6
|
+
constructor(root: string, profile: string, stableKey: string);
|
|
7
|
+
private file;
|
|
8
|
+
token(): string;
|
|
9
|
+
get authFile(): string | undefined;
|
|
10
|
+
saveAuth(auth: {
|
|
11
|
+
sessionId: string;
|
|
12
|
+
token: string;
|
|
13
|
+
generation: number;
|
|
14
|
+
}): void;
|
|
15
|
+
/** Repeating a tool invocation after a lost reply uses the same server idempotency key. */
|
|
16
|
+
operationId(callId: string, payload: unknown): string;
|
|
17
|
+
}
|
|
18
|
+
/** Pi emits message_end before writing. Only complete, persisted JSONL records count. */
|
|
19
|
+
export declare function persistedInboxIds(path: string | undefined, sessionId: string): Set<string>;
|
|
20
|
+
//# sourceMappingURL=intercom-storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intercom-storage.d.ts","sourceRoot":"","sources":["../src/intercom-storage.ts"],"names":[],"mappings":"AAaA,6EAA6E;AAC7E,qBAAa,eAAe;IAGgB,QAAQ,CAAC,SAAS,EAAE,MAAM;IAFrE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,eAAe,CAAC,CAAS;gBACrB,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAW,SAAS,EAAE,MAAM;IAQrE,OAAO,CAAC,IAAI;IAkBZ,KAAK,IAAI,MAAM;IAMf,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAAiC;IACnE,QAAQ,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAU9E,2FAA2F;IAC3F,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM;CAMrD;AAED,yFAAyF;AACzF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAe1F"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
export type InboxAuth = {
|
|
2
|
+
sessionId: string;
|
|
3
|
+
token: string;
|
|
4
|
+
generation: number;
|
|
5
|
+
};
|
|
6
|
+
export type InboxMessage = {
|
|
7
|
+
id: string;
|
|
8
|
+
from: string;
|
|
9
|
+
to: string;
|
|
10
|
+
body: string;
|
|
11
|
+
kind: "message" | "ask" | "reply";
|
|
12
|
+
replyTo: string | null;
|
|
13
|
+
status: string;
|
|
14
|
+
replyId?: string | null;
|
|
15
|
+
};
|
|
16
|
+
export type InboxTransport = (operation: Record<string, unknown>, signal?: AbortSignal) => Promise<any>;
|
|
17
|
+
export type InboxContext = {
|
|
18
|
+
sessionManager: {
|
|
19
|
+
getSessionId(): string;
|
|
20
|
+
getSessionFile(): string | undefined;
|
|
21
|
+
};
|
|
22
|
+
cwd: string;
|
|
23
|
+
isIdle(): boolean;
|
|
24
|
+
ui?: {
|
|
25
|
+
setStatus?(key: string, value?: string): void;
|
|
26
|
+
select?(title: string, choices: string[]): Promise<string | undefined>;
|
|
27
|
+
input?(title: string): Promise<string | undefined>;
|
|
28
|
+
notify?(message: string, level?: string): void;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
export type InboxPi = {
|
|
32
|
+
on(event: string, handler: (event: any, context: InboxContext) => any): void;
|
|
33
|
+
sendMessage(message: any, options: any): void;
|
|
34
|
+
registerTool(tool: any): void;
|
|
35
|
+
registerCommand(name: string, definition: any): void;
|
|
36
|
+
};
|
|
37
|
+
export declare function cliInboxTransport(binary: string, profile?: string): InboxTransport;
|
|
38
|
+
/** Durable broker state and Pi transcript receipts are separate from model handling. */
|
|
39
|
+
export declare class PiIntercom {
|
|
40
|
+
private pi;
|
|
41
|
+
private transport;
|
|
42
|
+
private root;
|
|
43
|
+
private profile;
|
|
44
|
+
private auth?;
|
|
45
|
+
private context?;
|
|
46
|
+
private storage?;
|
|
47
|
+
private epoch;
|
|
48
|
+
private polling;
|
|
49
|
+
private queued;
|
|
50
|
+
private recovered;
|
|
51
|
+
private recoveryPending;
|
|
52
|
+
private timer?;
|
|
53
|
+
constructor(pi: Pick<InboxPi, "sendMessage">, transport: InboxTransport, root: string, profile?: string);
|
|
54
|
+
start(context: InboxContext): Promise<void>;
|
|
55
|
+
private stopTimer;
|
|
56
|
+
stop(): Promise<void>;
|
|
57
|
+
private showError;
|
|
58
|
+
poll(recover?: boolean): Promise<void>;
|
|
59
|
+
private validateMessage;
|
|
60
|
+
private inject;
|
|
61
|
+
get authFile(): string | undefined;
|
|
62
|
+
get scopeVersion(): number;
|
|
63
|
+
execute(callId: string, params: Record<string, unknown>, signal?: AbortSignal): Promise<any>;
|
|
64
|
+
private waitForReply;
|
|
65
|
+
}
|
|
66
|
+
export declare function installPiIntercom(pi: InboxPi, options?: {
|
|
67
|
+
binary?: string;
|
|
68
|
+
profile?: string;
|
|
69
|
+
stateRoot?: string;
|
|
70
|
+
transport?: InboxTransport;
|
|
71
|
+
}): PiIntercom;
|
|
72
|
+
//# sourceMappingURL=intercom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intercom.d.ts","sourceRoot":"","sources":["../src/intercom.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export { createSageWalletStatusTool } from "./wallet-status.js";
|
|
2
|
+
export type { SageWalletStatusToolOptions } from "./wallet-status.js";
|
|
1
3
|
export declare function unicodeSafe(text: string): string;
|
|
2
4
|
export type SageDomain = "prompts" | "behaviors" | "skills" | "builder" | "governance" | "chat" | "social" | "rlm" | "library_sync" | "security" | "meta" | "hub" | "activation" | "wallet" | "library" | "help" | "external";
|
|
3
5
|
export interface ToolResult {
|
|
@@ -47,6 +49,16 @@ export interface SageP2Config {
|
|
|
47
49
|
enableProvision?: boolean;
|
|
48
50
|
enableRlmFeedback?: boolean;
|
|
49
51
|
enableSecurityHooks?: boolean;
|
|
52
|
+
/** Glove-provided guest-visible Unix socket endpoint for status-only wallet observation. */
|
|
53
|
+
gloveGuestChannelEndpoint?: string;
|
|
54
|
+
/** Canonical filesystem authority root for the Glove guest channel. */
|
|
55
|
+
gloveGuestChannelRoot?: string;
|
|
56
|
+
/** UID that must own the Glove guest channel socket. */
|
|
57
|
+
gloveGuestChannelOwnerUid?: number;
|
|
58
|
+
/** Exact Glove v1 JSON alias-to-inherited-descriptor map. */
|
|
59
|
+
gloveLocalServiceFdsV1?: string;
|
|
60
|
+
/** Exact alias selecting the inherited wallet-status descriptor. */
|
|
61
|
+
gloveGuestChannelServiceAlias?: string;
|
|
50
62
|
env?: Record<string, string>;
|
|
51
63
|
source?: string;
|
|
52
64
|
commandRunner?: SageCommandRunner;
|
|
@@ -291,6 +303,7 @@ export interface SageToolWrapOptions {
|
|
|
291
303
|
getSessionId?: () => string | undefined;
|
|
292
304
|
}
|
|
293
305
|
export declare function wrapToolsWithSageSecurity(tools: ToolDefinition[], options: SageToolWrapOptions): ToolDefinition[];
|
|
306
|
+
export declare function createOptionalSageWalletStatusTool(config: SageP2Config): ToolDefinition | undefined;
|
|
294
307
|
export declare function createSageExtensions(options: SageP2SessionOptions): {
|
|
295
308
|
customTools: ToolDefinition[];
|
|
296
309
|
/** @deprecated Pi now handles native skill discovery and loading. This is a no-op. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sage-pi-adapter.d.ts","sourceRoot":"","sources":["../src/sage-pi-adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sage-pi-adapter.d.ts","sourceRoot":"","sources":["../src/sage-pi-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { ToolDefinition } from "./sage-pi-adapter.js";
|
|
2
|
+
interface WalletStatusLimits {
|
|
3
|
+
/** One absolute authentication/connect/write/read deadline. */
|
|
4
|
+
timeoutMs?: number;
|
|
5
|
+
/** Maximum response JSON payload, excluding the four-byte frame header. */
|
|
6
|
+
maxResponseBytes?: number;
|
|
7
|
+
/** Maximum accepted observation age. */
|
|
8
|
+
maxAgeMs?: number;
|
|
9
|
+
}
|
|
10
|
+
export interface SageWalletStatusToolOptions extends WalletStatusLimits {
|
|
11
|
+
/** Glove-provided guest-visible Unix socket endpoint. */
|
|
12
|
+
endpoint: string;
|
|
13
|
+
/** Canonical directory whose descendants may contain the endpoint. */
|
|
14
|
+
trustedRoot: string;
|
|
15
|
+
/** UID that must own the endpoint socket and differ from the Pi process UID. */
|
|
16
|
+
expectedOwnerUid: number;
|
|
17
|
+
}
|
|
18
|
+
export interface SageInheritedWalletStatusToolOptions extends WalletStatusLimits {
|
|
19
|
+
/** Connected AF_UNIX stream descriptor inherited from Glove. */
|
|
20
|
+
fd: number;
|
|
21
|
+
}
|
|
22
|
+
interface WalletStatusToolHooks {
|
|
23
|
+
now: () => number;
|
|
24
|
+
requestIdFactory: () => string;
|
|
25
|
+
allowCurrentProcessOwner: boolean;
|
|
26
|
+
allowTmpAncestor: boolean;
|
|
27
|
+
afterConnectBeforeRevalidate?: () => void | Promise<void>;
|
|
28
|
+
}
|
|
29
|
+
export declare function parseInheritedWalletStatusFd(fdMapJson: string, serviceAlias: string): number;
|
|
30
|
+
/** Production constructor: no test bypasses or injectable deterministic seams. */
|
|
31
|
+
export declare function createSageWalletStatusTool(options: SageWalletStatusToolOptions): ToolDefinition;
|
|
32
|
+
/** Production-only inherited connected-descriptor transport. */
|
|
33
|
+
export declare function createSageInheritedWalletStatusTool(options: SageInheritedWalletStatusToolOptions): ToolDefinition;
|
|
34
|
+
/** @internal Direct-test-only constructor; not re-exported by the package entry point. */
|
|
35
|
+
export declare function createSageWalletStatusToolForTesting(options: SageWalletStatusToolOptions, hooks?: Partial<WalletStatusToolHooks>): ToolDefinition;
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=wallet-status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-status.d.ts","sourceRoot":"","sources":["../src/wallet-status.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,sBAAsB,CAAC;AA2CvE,UAAU,kBAAkB;IAC3B,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,2BAA4B,SAAQ,kBAAkB;IACtE,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,WAAW,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,gBAAgB,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,oCAAqC,SAAQ,kBAAkB;IAC/E,gEAAgE;IAChE,EAAE,EAAE,MAAM,CAAC;CACX;AAED,UAAU,qBAAqB;IAC9B,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,MAAM,CAAC;IAC/B,wBAAwB,EAAE,OAAO,CAAC;IAClC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,4BAA4B,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D;AAkHD,wBAAgB,4BAA4B,CAC3C,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GACrC,MAAM,CA6CR;AA6hBD,kFAAkF;AAClF,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,2BAA2B,GAAG,cAAc,CAO/F;AAED,gEAAgE;AAChE,wBAAgB,mCAAmC,CAClD,OAAO,EAAE,oCAAoC,GAC3C,cAAc,CAgBhB;AAED,0FAA0F;AAC1F,wBAAgB,oCAAoC,CACnD,OAAO,EAAE,2BAA2B,EACpC,KAAK,GAAE,OAAO,CAAC,qBAAqB,CAAM,GACxC,cAAc,CAQhB"}
|
package/extensions/index.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
2
|
import {
|
|
3
|
+
installPiIntercom,
|
|
3
4
|
SageHookRuntime,
|
|
4
5
|
SageMcpBridge,
|
|
5
6
|
PiBehaviorExecutor,
|
|
@@ -9,6 +10,7 @@ import {
|
|
|
9
10
|
createHubStatusTool,
|
|
10
11
|
createHubStopServerTool,
|
|
11
12
|
createSageExecuteTool,
|
|
13
|
+
createOptionalSageWalletStatusTool,
|
|
12
14
|
createSageSearchTool,
|
|
13
15
|
createSageStatusTool,
|
|
14
16
|
unicodeSafe,
|
|
@@ -84,6 +86,14 @@ function parseNumber(value: string | undefined, fallback: number): number {
|
|
|
84
86
|
return parsed;
|
|
85
87
|
}
|
|
86
88
|
|
|
89
|
+
function parseNonnegativeDecimal(value: string | undefined): number | undefined {
|
|
90
|
+
if (value === undefined || !/^(?:0|[1-9][0-9]*)$/.test(value)) {
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
93
|
+
const parsed = Number(value);
|
|
94
|
+
return Number.isSafeInteger(parsed) ? parsed : undefined;
|
|
95
|
+
}
|
|
96
|
+
|
|
87
97
|
function tokenizeShellish(command: string): string[] {
|
|
88
98
|
return command.match(/(?:[^\s"'`]+|"[^"]*"|'[^']*'|`[^`]*`)+/g) ?? [];
|
|
89
99
|
}
|
|
@@ -349,12 +359,25 @@ function skillNameFromReadEvent(
|
|
|
349
359
|
|
|
350
360
|
export default function sagePiAdapterExtension(pi: ExtensionApi): void {
|
|
351
361
|
const allowBashSageCli = parseBoolean(process.env.SAGE_ALLOW_BASH_CLI, true);
|
|
352
|
-
const
|
|
362
|
+
const guestChannelOwner = process.env.GLOVE_GUEST_CHANNEL_OWNER_UID;
|
|
363
|
+
const config: SageP2Config & {
|
|
364
|
+
gloveLocalServiceFdsV1?: string;
|
|
365
|
+
gloveGuestChannelServiceAlias?: string;
|
|
366
|
+
} = {
|
|
353
367
|
sageBin: process.env.SAGE_BIN ?? "sage",
|
|
354
368
|
sageProfile: process.env.SAGE_PROFILE,
|
|
355
369
|
timeoutMs: parseNumber(process.env.SAGE_TIMEOUT_MS, 20_000),
|
|
356
370
|
enableRlmFeedback: parseBoolean(process.env.SAGE_RLM_FEEDBACK, true),
|
|
357
371
|
enableSecurityHooks: parseBoolean(process.env.SAGE_SECURITY_HOOKS, true),
|
|
372
|
+
gloveGuestChannelEndpoint: process.env.GLOVE_GUEST_CHANNEL_ENDPOINT,
|
|
373
|
+
gloveGuestChannelRoot: process.env.GLOVE_GUEST_CHANNEL_ROOT,
|
|
374
|
+
gloveGuestChannelOwnerUid:
|
|
375
|
+
guestChannelOwner === undefined
|
|
376
|
+
? undefined
|
|
377
|
+
: (parseNonnegativeDecimal(guestChannelOwner) ?? Number.NaN),
|
|
378
|
+
gloveLocalServiceFdsV1: process.env.GLOVE_LOCAL_SERVICE_FDS_V1,
|
|
379
|
+
gloveGuestChannelServiceAlias:
|
|
380
|
+
process.env.GLOVE_GUEST_CHANNEL_SERVICE_ALIAS,
|
|
358
381
|
source: process.env.SAGE_SOURCE ?? "pi",
|
|
359
382
|
};
|
|
360
383
|
|
|
@@ -440,6 +463,8 @@ export default function sagePiAdapterExtension(pi: ExtensionApi): void {
|
|
|
440
463
|
pi.registerTool(createSageSearchTool(bridge));
|
|
441
464
|
pi.registerTool(createSageExecuteTool(bridge));
|
|
442
465
|
pi.registerTool(createSageStatusTool(bridge));
|
|
466
|
+
const walletStatusTool = createOptionalSageWalletStatusTool(config);
|
|
467
|
+
if (walletStatusTool) pi.registerTool(walletStatusTool);
|
|
443
468
|
|
|
444
469
|
// Behavior plan tool — resolves and injects a controller plan (not a completed run).
|
|
445
470
|
// Smithers-style: plan is authority + step menu; agent owns step execution.
|
|
@@ -1460,4 +1485,5 @@ Use these tools proactively when the user asks for documentation, current inform
|
|
|
1460
1485
|
activityTimers.clear();
|
|
1461
1486
|
await bridge.stop();
|
|
1462
1487
|
});
|
|
1488
|
+
installPiIntercom(pi, { binary: process.env.SAGE_BIN ?? "sage", profile: process.env.SAGE_PROFILE });
|
|
1463
1489
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sage-protocol/pi-adapter",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "Sage Protocol MCP integration for pi coding agent",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -20,11 +20,13 @@
|
|
|
20
20
|
],
|
|
21
21
|
"pi": {
|
|
22
22
|
"extensions": [
|
|
23
|
-
"./extensions"
|
|
23
|
+
"./extensions/index.ts"
|
|
24
24
|
]
|
|
25
25
|
},
|
|
26
26
|
"scripts": {
|
|
27
|
-
"build": "
|
|
27
|
+
"build": "npm run build:types && npm run build:bundle",
|
|
28
|
+
"build:types": "tsc -p tsconfig.build.json --emitDeclarationOnly",
|
|
29
|
+
"build:bundle": "esbuild src/index.ts --bundle --platform=node --format=esm --outfile=dist/index.js --legal-comments=none",
|
|
28
30
|
"dev": "tsc -p tsconfig.build.json --watch",
|
|
29
31
|
"clean": "rm -rf dist",
|
|
30
32
|
"typecheck": "tsc -p tsconfig.build.json --noEmit",
|
|
@@ -32,11 +34,8 @@
|
|
|
32
34
|
"prepare": "npm run build",
|
|
33
35
|
"prepublishOnly": "npm run clean && npm run build"
|
|
34
36
|
},
|
|
35
|
-
"dependencies": {
|
|
36
|
-
"@sinclair/typebox": "^0.34.0"
|
|
37
|
-
},
|
|
38
37
|
"peerDependencies": {
|
|
39
|
-
"@earendil-works/pi-coding-agent": ">=0.64.0 <0.
|
|
38
|
+
"@earendil-works/pi-coding-agent": ">=0.64.0 <0.86.0",
|
|
40
39
|
"@earendil-works/pi-tui": "*"
|
|
41
40
|
},
|
|
42
41
|
"peerDependenciesMeta": {
|
|
@@ -45,7 +44,9 @@
|
|
|
45
44
|
}
|
|
46
45
|
},
|
|
47
46
|
"devDependencies": {
|
|
47
|
+
"@sinclair/typebox": "^0.34.0",
|
|
48
48
|
"@types/node": "^24.0.0",
|
|
49
|
+
"esbuild": "^0.25.0",
|
|
49
50
|
"typescript": "^5.7.0",
|
|
50
51
|
"vitest": "^4.1.8"
|
|
51
52
|
},
|
package/dist/behavior/index.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file behavior/index.ts
|
|
3
|
-
*
|
|
4
|
-
* Responsibility: Public API surface for the behavior execution subsystem.
|
|
5
|
-
* Re-exports types and implementations — nothing else.
|
|
6
|
-
*/
|
|
7
|
-
export { resolveBehaviorPlan } from "./resolver.js";
|
|
8
|
-
export { PiBehaviorExecutor } from "./pi-executor.js";
|
|
9
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/behavior/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgBH,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAyB,MAAM,kBAAkB,CAAC"}
|
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file behavior/pi-executor.ts
|
|
3
|
-
*
|
|
4
|
-
* Responsibility: Pi-specific implementation of the BehaviorExecutor interface.
|
|
5
|
-
* Executes behavior plan steps as pi subagent invocations.
|
|
6
|
-
*
|
|
7
|
-
* Invariants:
|
|
8
|
-
* - Each step runs in an isolated subagent context (explorer for read-only, worker for mutations).
|
|
9
|
-
* - Inter-step results are threaded via the subagent task message.
|
|
10
|
-
* - MCP servers from the plan's mcp_servers_union are provisioned before execution.
|
|
11
|
-
* - Cancellation via AbortSignal is respected between steps (not mid-step).
|
|
12
|
-
* - This file is the ONLY place that depends on pi's subagent API.
|
|
13
|
-
*/
|
|
14
|
-
import { resolveBehaviorPlan } from "./resolver.js";
|
|
15
|
-
/**
|
|
16
|
-
* Pi-specific BehaviorExecutor.
|
|
17
|
-
*
|
|
18
|
-
* Executes behavior plan steps sequentially, threading output from each step
|
|
19
|
-
* as context into the next. In pi, each step maps to a subagent task — but
|
|
20
|
-
* since the adapter runs as an extension (not the agent loop controller),
|
|
21
|
-
* we execute via tool result injection: the plan is rendered as a structured
|
|
22
|
-
* controller prompt that the agent follows step-by-step.
|
|
23
|
-
*
|
|
24
|
-
* Why not spawn_agent directly?
|
|
25
|
-
* The pi extension API doesn't expose spawn_agent — that's a tool available
|
|
26
|
-
* to the agent itself. The executor prepares the plan for the agent to execute,
|
|
27
|
-
* optionally with subagent delegation hints.
|
|
28
|
-
*
|
|
29
|
-
* Execution modes:
|
|
30
|
-
* 1. **Controller prompt** (default): Render the plan as a structured prompt
|
|
31
|
-
* the agent follows. Steps include skill content and dependency hints.
|
|
32
|
-
* The agent decides whether to use subagents based on step complexity.
|
|
33
|
-
*
|
|
34
|
-
* 2. **Explicit delegation** (future): For plans with `isolation: "subagent"`
|
|
35
|
-
* on steps, the executor would need the agent to call spawn_agent per step.
|
|
36
|
-
* This requires the agent loop, not the extension layer.
|
|
37
|
-
*/
|
|
38
|
-
export class PiBehaviorExecutor {
|
|
39
|
-
name = "pi-behavior-executor";
|
|
40
|
-
bridge;
|
|
41
|
-
sendMessage;
|
|
42
|
-
constructor(config) {
|
|
43
|
-
this.bridge = config.bridge;
|
|
44
|
-
this.sendMessage = config.sendMessage;
|
|
45
|
-
}
|
|
46
|
-
async resolve(key) {
|
|
47
|
-
return resolveBehaviorPlan(this.bridge, key);
|
|
48
|
-
}
|
|
49
|
-
canExecute(plan) {
|
|
50
|
-
// We can execute any linear plan. Reject empty plans.
|
|
51
|
-
return plan.steps.length > 0;
|
|
52
|
-
}
|
|
53
|
-
async execute(plan, context) {
|
|
54
|
-
const startTime = Date.now();
|
|
55
|
-
const results = [];
|
|
56
|
-
// Render the plan as a controller prompt for the agent.
|
|
57
|
-
// This is plan injection (Smithers-style), not step completion.
|
|
58
|
-
const controllerPrompt = this.renderControllerPrompt(plan, context);
|
|
59
|
-
// Report plan to the agent via hook message
|
|
60
|
-
if (this.sendMessage) {
|
|
61
|
-
this.sendMessage({
|
|
62
|
-
customType: "sage-behavior-plan",
|
|
63
|
-
content: controllerPrompt,
|
|
64
|
-
display: true,
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
// Steps remain awaiting_agent until the host has real step results.
|
|
68
|
-
// Never claim completed solely because the plan was rendered.
|
|
69
|
-
for (const step of plan.steps) {
|
|
70
|
-
const stepStart = Date.now();
|
|
71
|
-
context.onProgress?.(step.id, "awaiting_agent");
|
|
72
|
-
results.push({
|
|
73
|
-
stepId: step.id,
|
|
74
|
-
status: "awaiting_agent",
|
|
75
|
-
durationMs: Date.now() - stepStart,
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
return {
|
|
79
|
-
status: "awaiting_agent",
|
|
80
|
-
steps: results,
|
|
81
|
-
totalDurationMs: Date.now() - startTime,
|
|
82
|
-
output: controllerPrompt,
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Render a behavior plan as a structured controller prompt.
|
|
87
|
-
*
|
|
88
|
-
* The controller prompt is designed to be injected into the agent's context,
|
|
89
|
-
* giving it a step-by-step execution plan with:
|
|
90
|
-
* - Skill content for each step
|
|
91
|
-
* - Dependency hints (which steps feed into which)
|
|
92
|
-
* - MCP server requirements
|
|
93
|
-
* - Subagent delegation hints for complex steps
|
|
94
|
-
*/
|
|
95
|
-
renderControllerPrompt(plan, context) {
|
|
96
|
-
const lines = [];
|
|
97
|
-
// Smithers-inspired: plan is an authority envelope + step menu, not a runtime.
|
|
98
|
-
// Status stays awaiting_agent until steps are actually done.
|
|
99
|
-
lines.push("# Behavior Plan (controller inject — not a completed run)");
|
|
100
|
-
lines.push("");
|
|
101
|
-
lines.push("This is a **durable step plan** for you (the agent) to execute with tools.");
|
|
102
|
-
lines.push("The adapter has **not** completed these steps. Status: `awaiting_agent`.");
|
|
103
|
-
lines.push("");
|
|
104
|
-
lines.push(`**Task:** ${context.task}`);
|
|
105
|
-
lines.push(`**Steps:** ${plan.steps.length}`);
|
|
106
|
-
lines.push("");
|
|
107
|
-
lines.push("## Load rule (per step)");
|
|
108
|
-
lines.push("");
|
|
109
|
-
lines.push("1. Load the **full** skill procedure for the step (`/skill:<key>`, read SKILL.md, or skills.get).");
|
|
110
|
-
lines.push("2. Freestyle tools **under that skill's constraints** — ranking/plan text is not enough.");
|
|
111
|
-
lines.push("3. Only after step work is done, move to the next step in order.");
|
|
112
|
-
lines.push("4. Report outcomes with `sage suggest feedback outcome <skill-key> --status passed|failed` when a procedure guided work.");
|
|
113
|
-
lines.push("");
|
|
114
|
-
if (context.mcpServersRequired.length > 0) {
|
|
115
|
-
lines.push("## Required MCP Servers");
|
|
116
|
-
for (const server of context.mcpServersRequired) {
|
|
117
|
-
lines.push(`- \`${server}\``);
|
|
118
|
-
}
|
|
119
|
-
lines.push("");
|
|
120
|
-
}
|
|
121
|
-
lines.push("## Execution Steps");
|
|
122
|
-
lines.push("");
|
|
123
|
-
lines.push("Execute the following steps **in order**. Each step builds on the previous.");
|
|
124
|
-
lines.push("For complex steps, consider delegating to a subagent (explorer for analysis, worker for implementation).");
|
|
125
|
-
lines.push("");
|
|
126
|
-
for (let i = 0; i < plan.steps.length; i++) {
|
|
127
|
-
const step = plan.steps[i];
|
|
128
|
-
lines.push(`### Step ${i + 1}: ${step.title}`);
|
|
129
|
-
lines.push("");
|
|
130
|
-
lines.push(`**Skill:** \`${step.skill_key}\``);
|
|
131
|
-
lines.push(`**Status:** awaiting_agent`);
|
|
132
|
-
lines.push(`**Load:** \`/skill:${step.skill_key}\` or \`sage library inspect skill get ${step.skill_key}\` or skills.get before freestyle`);
|
|
133
|
-
if (step.uses.length > 0) {
|
|
134
|
-
lines.push(`**Depends on:** ${step.uses.join(", ")}`);
|
|
135
|
-
}
|
|
136
|
-
lines.push("");
|
|
137
|
-
if (step.instruction) {
|
|
138
|
-
lines.push(step.instruction);
|
|
139
|
-
lines.push("");
|
|
140
|
-
}
|
|
141
|
-
else {
|
|
142
|
-
lines.push(`_No body in plan — load full skill \`${step.skill_key}\` before acting._`);
|
|
143
|
-
lines.push("");
|
|
144
|
-
}
|
|
145
|
-
// Subagent delegation hint for steps that benefit from isolation
|
|
146
|
-
if (this.shouldSuggestSubagent(step, plan.steps.length)) {
|
|
147
|
-
lines.push(`> 💡 **Subagent hint:** This step may benefit from running in an isolated subagent.`);
|
|
148
|
-
lines.push(`> Use \`explorer\` for analysis/read-only steps, \`worker\` for implementation steps.`);
|
|
149
|
-
lines.push("");
|
|
150
|
-
}
|
|
151
|
-
if (i < plan.steps.length - 1) {
|
|
152
|
-
lines.push("---");
|
|
153
|
-
lines.push("");
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
lines.push("");
|
|
157
|
-
lines.push("## Completion");
|
|
158
|
-
lines.push("");
|
|
159
|
-
lines.push("After completing all steps, synthesize the results into a coherent response.");
|
|
160
|
-
lines.push("Reference findings from each step and note any cross-step insights.");
|
|
161
|
-
lines.push("Do not treat plan injection alone as success; only completed step work counts.");
|
|
162
|
-
return lines.join("\n");
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Heuristic: suggest subagent delegation for steps that benefit from isolation.
|
|
166
|
-
*
|
|
167
|
-
* - Plans with 4+ steps: suggest subagents for analysis-heavy steps
|
|
168
|
-
* - Steps with large instruction bodies (>2000 chars): benefit from dedicated context
|
|
169
|
-
* - Steps that are read-only analysis: explorer subagent
|
|
170
|
-
*/
|
|
171
|
-
shouldSuggestSubagent(step, totalSteps) {
|
|
172
|
-
if (totalSteps < 3)
|
|
173
|
-
return false; // Small plans don't need subagent overhead
|
|
174
|
-
if (step.instruction.length > 2000)
|
|
175
|
-
return true; // Large skill content benefits from isolation
|
|
176
|
-
// Analysis/review skills benefit from subagent isolation
|
|
177
|
-
const analysisKeywords = [
|
|
178
|
-
"review",
|
|
179
|
-
"audit",
|
|
180
|
-
"analysis",
|
|
181
|
-
"assess",
|
|
182
|
-
"evaluate",
|
|
183
|
-
"critique",
|
|
184
|
-
];
|
|
185
|
-
return analysisKeywords.some((kw) => step.skill_key.includes(kw) || step.title.toLowerCase().includes(kw));
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
//# sourceMappingURL=pi-executor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pi-executor.js","sourceRoot":"","sources":["../../src/behavior/pi-executor.ts"],"names":[],"mappings":"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"}
|