@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.
@@ -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":"AAMA,MAAM,MAAM,SAAS,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AACjF,MAAM,MAAM,YAAY,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AACtL,MAAM,MAAM,cAAc,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AACxG,MAAM,MAAM,YAAY,GAAG;IAC1B,cAAc,EAAE;QAAE,YAAY,IAAI,MAAM,CAAC;QAAC,cAAc,IAAI,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IACjF,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,IAAI,OAAO,CAAC;IAClB,EAAE,CAAC,EAAE;QAAE,SAAS,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QAAC,KAAK,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QAAC,MAAM,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CACnO,CAAC;AACF,MAAM,MAAM,OAAO,GAAG;IACrB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,KAAK,GAAG,GAAG,IAAI,CAAC;IAC7E,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC;IAC9C,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC;IAC9B,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,IAAI,CAAC;CACrD,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,cAAc,CAelF;AAYD,wFAAwF;AACxF,qBAAa,UAAU;IAUV,OAAO,CAAC,EAAE;IAAgC,OAAO,CAAC,SAAS;IAAkB,OAAO,CAAC,IAAI;IAAU,OAAO,CAAC,OAAO;IAT9H,OAAO,CAAC,IAAI,CAAC,CAAY;IACzB,OAAO,CAAC,OAAO,CAAC,CAAe;IAC/B,OAAO,CAAC,OAAO,CAAC,CAAkB;IAClC,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,KAAK,CAAC,CAAiC;gBAC3B,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,EAAU,SAAS,EAAE,cAAc,EAAU,IAAI,EAAE,MAAM,EAAU,OAAO,SAAY;IAEpI,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBjD,OAAO,CAAC,SAAS;IACX,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,OAAO,CAAC,SAAS;IAMX,IAAI,CAAC,OAAO,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAsC1C,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,MAAM;IAId,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAA2D;IAC7F,IAAI,YAAY,IAAI,MAAM,CAAuB;IAC3C,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;YAsBpF,YAAY;CA8B1B;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,cAAc,CAAA;CAAO,GAAG,UAAU,CAoC9J"}
@@ -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":"AA8BA,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOhD;AAED,MAAM,MAAM,UAAU,GACnB,SAAS,GACT,WAAW,GACX,QAAQ,GACR,SAAS,GACT,YAAY,GACZ,MAAM,GACN,QAAQ,GACR,KAAK,GACL,cAAc,GACd,UAAU,GACV,MAAM,GACN,KAAK,GACL,YAAY,GACZ,QAAQ,GACR,SAAS,GACT,MAAM,GACN,UAAU,CAAC;AAEd,MAAM,WAAW,UAAU;IAC1B,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,6GAA6G;IAC7G,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0FAA0F;IAC1F,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC;IACnE,YAAY,CAAC,EAAE,CACd,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,EAClD,KAAK,EAAE,GAAG,EACV,OAAO,CAAC,EAAE,GAAG,KACT,OAAO,CAAC;IACb,OAAO,EAAE,CACR,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,CAAC,EAAE,WAAW,EACpB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,EACvC,GAAG,CAAC,EAAE,OAAO,KACT,OAAO,CAAC,UAAU,CAAC,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;IAC9D,eAAe,CAAC,EAAE,CACjB,OAAO,EAAE,WAAW,EACpB,WAAW,CAAC,EAAE,OAAO,KACjB,OAAO,CAAC,IAAI,CAAC,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6FAA6F;IAC7F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6FAA6F;IAC7F,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6FAA6F;IAC7F,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,iBAAiB,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CAClB;AAmBD,MAAM,WAAW,iBAAiB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,+BAA+B,GAAG,YAAY,GAAG,iBAAiB,CAAC;AAE/E,MAAM,MAAM,yBAAyB,GAClC;IACA,MAAM,EAAE,kCAAkC,CAAC;IAC3C,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,IAAI,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,iBAAiB,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC;CACpB,GACD;IACA,MAAM,EAAE,kCAAkC,CAAC;IAC3C,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACf,GACD;IACA,MAAM,EAAE,kCAAkC,CAAC;IAC3C,MAAM,EAAE,QAAQ,CAAC;IACjB,QAAQ,EAAE,KAAK,CAAC;CACf,CAAC;AAEL,MAAM,WAAW,wBAAwB;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,+BAA+B,CAAC;IACpD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,wBAAwB;IACxC,MAAM,EAAE,0BAA0B,CAAC;IACnC,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,UAAU,CAAC;IAC5B,IAAI,EAAE,wBAAwB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,yBAAyB;IACzC,IAAI,EACD,4BAA4B,GAC5B,8BAA8B,GAC9B,oBAAoB,GACpB,yBAAyB,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,yBAAyB,GAClC;IAAE,MAAM,EAAE,wBAAwB,CAAC;IAAC,OAAO,EAAE,IAAI,CAAA;CAAE,GACnD;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,yBAAyB,GAAG,IAAI,CAAA;CAAE,CAAC;AAiB/D,MAAM,MAAM,iBAAiB,GAAG,CAC/B,OAAO,EAAE,kBAAkB,KACvB,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAmChC,KAAK,gBAAgB,GAAG;IACvB,QAAQ,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AA2bF,wBAAsB,wBAAwB,CAC7C,OAAO,EAAE,kBAAkB,GACzB,OAAO,CAAC,iBAAiB,CAAC,CAgF5B;AAmLD,uEAAuE;AACvE,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAWnD;AAED,+EAA+E;AAC/E,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAgCvE;AAED,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpE;AA8tBD,qBAAa,aAAa;IAaxB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,gBAAgB;IAfzB,OAAO,CAAC,IAAI,CAA+C;IAC3D,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,mBAAmB,CAAuB;IAClD,OAAO,CAAC,eAAe,CAAgB;gBAG9B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EAChC,gBAAgB,SAAS;IAGlC,OAAO,IAAI,OAAO;IAIlB,UAAU,IAAI,OAAO;IAIrB,iBAAiB,IAAI;QACpB,eAAe,EAAE,OAAO,CAAC;QACzB,QAAQ,EAAE,OAAO,CAAC;QAClB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;QACnC,kBAAkB,EAAE,MAAM,CAAC;QAC3B,kBAAkB,EAAE,MAAM,EAAE,CAAC;KAC7B;IAWK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBtB,WAAW,CAChB,SAAS,SAAyC,GAChD,OAAO,CAAC,OAAO,CAAC;IAgBb,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAWrB,SAAS,CACd,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAOnD,QAAQ,CACb,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,OAAO,CAAC,OAAO,CAAC;IAqBb,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAUnE,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAU1E,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,qBAAqB;YAgBf,gBAAgB;YAoBhB,UAAU;YAWV,KAAK;IAsDnB,OAAO,CAAC,OAAO;IAoCf,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,UAAU;IAwBlB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,gBAAgB;CAKxB;AAED,qBAAa,eAAe;IAW1B,OAAO,CAAC,MAAM;IAVf,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,mBAAmB,CAA6B;IACxD,OAAO,CAAC,oBAAoB,CAAsC;IAClE,OAAO,CAAC,gBAAgB,CAGpB;gBAGK,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,WAAW,CAAC,CAAC,GACpE,YAAY;IAKd,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAKvC,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,cAAc;IAuBhB,iBAAiB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAmB5D;;;;;;OAMG;IACG,yBAAyB,IAAI,OAAO,CAAC,qBAAqB,CAAC;IA+EjE;;;OAGG;IACG,YAAY,CACjB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC;IAiCZ,aAAa,CAClB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAyBxB,eAAe,CACpB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,EAC1C,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC;IA4Bb,mBAAmB,CACxB,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,CAAC;IAgCnB;;;;;OAKG;IACG,oBAAoB,CACzB,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC;IAIrC,2BAA2B,CAChC,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,yBAAyB,CAAC;IAsDrC;;;;;;OAMG;IACG,qBAAqB,CAC1B,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,EAClB,GAAG,GAAE,OAAO,GAAG,MAAgB,GAC7B,OAAO,CAAC,yBAAyB,CAAC;IA4C/B,oBAAoB,CACzB,SAAS,CAAC,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC;IAmBV,sBAAsB,CAC3B,SAAS,CAAC,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC;IAmBV,sBAAsB,CAC3B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,EACvC,YAAY,CAAC,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,MAAM,EACtB,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC;IA2BV,WAAW,CAChB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAwB7B,YAAY,CACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,UAAU,EAAE,OAAO,EACnB,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAyBnC;;;;;;;;OAQG;IACG,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IA6BlE;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY,CAGhB;IAEE,iBAAiB,CACtB,QAAQ,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAkC3D,uEAAuE;IACvE,eAAe,CACd,QAAQ,EAAE,MAAM,GACd;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAKlD;;;OAGG;IACG,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YAI7C,GAAG;CAoEjB;AAyBD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,aAAa,GAAG,cAAc,CAgF7E;AAED,wBAAgB,qBAAqB,CACpC,SAAS,EAAE,aAAa,GACtB,cAAc,CA+EhB;AA+ED,wBAAgB,wBAAwB,CACvC,SAAS,EAAE,aAAa,GACtB,cAAc,CAyDhB;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,aAAa,GAAG,cAAc,CAyD5E;AAED,wBAAgB,wBAAwB,CACvC,SAAS,EAAE,aAAa,GACtB,cAAc,CA2EhB;AAED,wBAAgB,uBAAuB,CACtC,SAAS,EAAE,aAAa,GACtB,cAAc,CAuEhB;AAED,wBAAgB,wBAAwB,CACvC,SAAS,EAAE,aAAa,GACtB,cAAc,CAwEhB;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,aAAa,GAAG,cAAc,CAwG7E;AAED,MAAM,WAAW,oBAAoB;IACpC,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,aAAa,CAAC;IACzB,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IACnC,WAAW,EAAE,eAAe,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,wBAAgB,yBAAyB,CACxC,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,EAAE,mBAAmB,GAC1B,cAAc,EAAE,CA8DlB;AA0BD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,GAAG;IACpE,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,sFAAsF;IACtF,oBAAoB,EAAE,CACrB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,YAAY,EACtB,SAAS,CAAC,EAAE,MAAM,KACd,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,kBAAkB,EAAE,MAAM,MAAM,CAAC;CACjC,CA0CA;AAED,wBAAsB,uBAAuB,CAC5C,MAAM,GAAE,YAAiB,GACvB,OAAO,CAAC;IACV,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,MAAM,IAAI,CAAC;IAClD,qBAAqB,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,CAAC;CACrE,CAAC,CA+HD;;;;;;;;AAED,wBAME"}
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"}
@@ -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 config: SageP2Config = {
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.4.3",
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": "tsc -p tsconfig.build.json",
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.85.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
  },
@@ -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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"}