@kingcrab/pi-imessage 0.0.41 → 0.0.42
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 +4 -1
- package/dist/agent.d.ts +32 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +295 -39
- package/dist/agent.js.map +1 -1
- package/dist/main.js +13 -1
- package/dist/main.js.map +1 -1
- package/dist/memory.d.ts +53 -0
- package/dist/memory.d.ts.map +1 -0
- package/dist/memory.js +196 -0
- package/dist/memory.js.map +1 -0
- package/dist/model-health.d.ts +11 -0
- package/dist/model-health.d.ts.map +1 -0
- package/dist/model-health.js +67 -0
- package/dist/model-health.js.map +1 -0
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +5 -1
- package/dist/pipeline.js.map +1 -1
- package/dist/send.d.ts +6 -0
- package/dist/send.d.ts.map +1 -1
- package/dist/send.js +166 -13
- package/dist/send.js.map +1 -1
- package/dist/store.js +1 -1
- package/dist/store.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/web/index.d.ts +2 -0
- package/dist/web/index.d.ts.map +1 -1
- package/dist/web/index.js +19 -7
- package/dist/web/index.js.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -45,8 +45,9 @@ The agent is aware of these endpoints via its system prompt and can use them as
|
|
|
45
45
|
|
|
46
46
|
| Endpoint | Description | Example |
|
|
47
47
|
|---|---|---|
|
|
48
|
-
| `POST /send` | Send a
|
|
48
|
+
| `POST /send` | Send text and/or a local file attachment to a chat (bypasses the agent) | `curl -X POST localhost:7750/send -d '{"chatGuid": "iMessage;-;+11234567890", "text": "hello"}'`<br>→ `{"ok": true}` |
|
|
49
49
|
| `POST /prompt` | Feed a prompt to the agent asynchronously; replies are sent to the chat when ready | `curl -X POST localhost:7750/prompt -d '{"chatGuid": "iMessage;-;+11234567890", "prompt": "say hello"}'`<br>→ `{"ok": true}` |
|
|
50
|
+
| `GET /health/model` | Make a live request to the configured default AI model; returns HTTP 200 when healthy or 503 on failure | `curl localhost:7750/health/model`<br>→ `{"ok":true,"model":"openai/gpt-5","latencyMs":842,"checkedAt":"..."}` |
|
|
50
51
|
|
|
51
52
|
## Commands
|
|
52
53
|
|
|
@@ -90,6 +91,8 @@ All fields are optional.
|
|
|
90
91
|
| `WEB_HOST` | no | `localhost` | Web UI host |
|
|
91
92
|
| `WEB_PORT` | no | `7750` | Web UI port |
|
|
92
93
|
| `WORKING_DIR` | no | `~/.pi/imessage` | Workspace directory |
|
|
94
|
+
| `AGENT_IDLE_TIMEOUT_MS` | no | `120000` | Abort only after this much continuous agent inactivity; model and tool events reset the timer |
|
|
95
|
+
| `AGENT_MAX_PROMPT_DURATION_MS` | no | `1800000` | Absolute ceiling for one prompt, independent of activity |
|
|
93
96
|
|
|
94
97
|
# Development
|
|
95
98
|
|
package/dist/agent.d.ts
CHANGED
|
@@ -10,10 +10,42 @@
|
|
|
10
10
|
*
|
|
11
11
|
* Model: uses ~/.pi/agent/ defaults (via createAgentSession).
|
|
12
12
|
*/
|
|
13
|
+
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
13
14
|
import type { AgentReply, IncomingMessage } from "./types.js";
|
|
15
|
+
/**
|
|
16
|
+
* Abort a prompt only after this much continuous inactivity. Any agent event —
|
|
17
|
+
* including streamed model output and tool start/end events — refreshes it.
|
|
18
|
+
*/
|
|
19
|
+
export declare const AGENT_IDLE_TIMEOUT_MS: number;
|
|
20
|
+
/** Absolute safety ceiling that activity cannot extend. */
|
|
21
|
+
export declare const AGENT_MAX_PROMPT_DURATION_MS: number;
|
|
22
|
+
export declare const AUTO_COMPACT_TOKEN_THRESHOLD: number;
|
|
23
|
+
/** Enable OpenAI priority processing without enabling user-discovered extensions. */
|
|
24
|
+
export declare function openAiCodexFastExtension(pi: ExtensionAPI): void;
|
|
14
25
|
export interface AgentManagerConfig {
|
|
15
26
|
workingDir: string;
|
|
16
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Race an async operation against a wall-clock timeout.
|
|
30
|
+
*
|
|
31
|
+
* If `operation()` settles first, its result (or rejection) is passed through
|
|
32
|
+
* and the timer is cleared. If the timeout fires first, `onTimeout()` is invoked
|
|
33
|
+
* (best-effort — e.g. to abort the underlying request) and the returned promise
|
|
34
|
+
* rejects with a timeout Error. A failure inside `onTimeout()` never masks the
|
|
35
|
+
* timeout rejection.
|
|
36
|
+
*
|
|
37
|
+
* Note: this does not cancel `operation()` itself — cancellation must happen via
|
|
38
|
+
* `onTimeout` (the SDK exposes `AgentSession.abort()`). The timeout rejects
|
|
39
|
+
* immediately without waiting for cancellation, because a stuck abort must not
|
|
40
|
+
* keep the caller blocked.
|
|
41
|
+
*/
|
|
42
|
+
export declare function runWithTimeout<T>(operation: () => Promise<T>, onTimeout: () => Promise<void> | void, timeoutMs: number): Promise<T>;
|
|
43
|
+
export type ActivityTimeoutKind = "idle" | "max_duration";
|
|
44
|
+
/**
|
|
45
|
+
* Race an operation against a sliding inactivity timeout and a separate hard
|
|
46
|
+
* duration ceiling. Calling `markActivity()` refreshes only the idle timer.
|
|
47
|
+
*/
|
|
48
|
+
export declare function runWithActivityTimeout<T>(operation: (markActivity: () => void) => Promise<T>, onTimeout: (kind: ActivityTimeoutKind) => Promise<void> | void, idleTimeoutMs: number, maxDurationMs: number): Promise<T>;
|
|
17
49
|
export declare function createAgentManager(config: AgentManagerConfig): Promise<{
|
|
18
50
|
processMessage: (msg: IncomingMessage, handler: (reply: AgentReply) => Promise<void>, options?: {
|
|
19
51
|
streamingBehavior?: "steer" | "followUp";
|
package/dist/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,KAAK,EAAoB,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAatF,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAI9D;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAAqE,CAAC;AAExG,2DAA2D;AAC3D,eAAO,MAAM,4BAA4B,QAA6E,CAAC;AACvH,eAAO,MAAM,4BAA4B,QAAyE,CAAC;AAInH,qFAAqF;AACrF,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAU/D;AAED,MAAM,WAAW,kBAAkB;IAClC,UAAU,EAAE,MAAM,CAAC;CACnB;AAWD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,cAAc,CAAC,CAAC,EACrC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EACrC,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,CAAC,CAAC,CAiBZ;AAED,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,cAAc,CAAC;AAE1D;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,CAAC,EAC7C,SAAS,EAAE,CAAC,YAAY,EAAE,MAAM,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,EACnD,SAAS,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EAC9D,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,GACnB,OAAO,CAAC,CAAC,CAAC,CA6CZ;AA0SD,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB;0BAkE5D,eAAe,WACX,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,YACnC;QAAE,iBAAiB,CAAC,EAAE,OAAO,GAAG,UAAU,CAAA;KAAE,KACpD,OAAO,CAAC,IAAI,CAAC;2BAgLoB,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;iCAkBhB,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;uBAuClC,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;qBAzFxB,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;wBAWnB,MAAM,uBAAuB,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;GA0GtF;AAWD,MAAM,MAAM,YAAY,GAAG,IAAI,CAC9B,OAAO,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,EAC9C,gBAAgB,GAAG,YAAY,GAAG,kBAAkB,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CACpF,CAAC"}
|
package/dist/agent.js
CHANGED
|
@@ -12,8 +12,121 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import { existsSync, mkdirSync, readFileSync, unlinkSync } from "node:fs";
|
|
14
14
|
import { join } from "node:path";
|
|
15
|
-
import {
|
|
15
|
+
import { Type } from "@earendil-works/pi-ai";
|
|
16
|
+
import { AuthStorage, DefaultResourceLoader, ModelRegistry, SessionManager, SettingsManager, createAgentSession, defineTool, getAgentDir, } from "@earendil-works/pi-coding-agent";
|
|
17
|
+
import { listMemoryNamespaces, loadMemoryNamespaces, readCoreMemory, saveMemory, searchMemory } from "./memory.js";
|
|
18
|
+
// ── Config & Types ────────────────────────────────────────────────────────────
|
|
19
|
+
/**
|
|
20
|
+
* Abort a prompt only after this much continuous inactivity. Any agent event —
|
|
21
|
+
* including streamed model output and tool start/end events — refreshes it.
|
|
22
|
+
*/
|
|
23
|
+
export const AGENT_IDLE_TIMEOUT_MS = Number.parseInt(process.env.AGENT_IDLE_TIMEOUT_MS || "120000", 10);
|
|
24
|
+
/** Absolute safety ceiling that activity cannot extend. */
|
|
25
|
+
export const AGENT_MAX_PROMPT_DURATION_MS = Number.parseInt(process.env.AGENT_MAX_PROMPT_DURATION_MS || "1800000", 10);
|
|
26
|
+
export const AUTO_COMPACT_TOKEN_THRESHOLD = Number.parseInt(process.env.AGENT_AUTO_COMPACT_TOKENS || "100000", 10);
|
|
27
|
+
const FAST_OPENAI_CODEX_MODELS = /^gpt-5\.6-(?:sol|terra|luna)$/;
|
|
28
|
+
/** Enable OpenAI priority processing without enabling user-discovered extensions. */
|
|
29
|
+
export function openAiCodexFastExtension(pi) {
|
|
30
|
+
pi.on("before_provider_request", (event, ctx) => {
|
|
31
|
+
if (ctx.model?.provider !== "openai-codex" || !FAST_OPENAI_CODEX_MODELS.test(ctx.model.id)) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (typeof event.payload !== "object" || event.payload === null || Array.isArray(event.payload)) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
return { ...event.payload, service_tier: "priority" };
|
|
38
|
+
});
|
|
39
|
+
}
|
|
16
40
|
// ── Helpers ────────────────────────────────────────────────────────────────────
|
|
41
|
+
/**
|
|
42
|
+
* Race an async operation against a wall-clock timeout.
|
|
43
|
+
*
|
|
44
|
+
* If `operation()` settles first, its result (or rejection) is passed through
|
|
45
|
+
* and the timer is cleared. If the timeout fires first, `onTimeout()` is invoked
|
|
46
|
+
* (best-effort — e.g. to abort the underlying request) and the returned promise
|
|
47
|
+
* rejects with a timeout Error. A failure inside `onTimeout()` never masks the
|
|
48
|
+
* timeout rejection.
|
|
49
|
+
*
|
|
50
|
+
* Note: this does not cancel `operation()` itself — cancellation must happen via
|
|
51
|
+
* `onTimeout` (the SDK exposes `AgentSession.abort()`). The timeout rejects
|
|
52
|
+
* immediately without waiting for cancellation, because a stuck abort must not
|
|
53
|
+
* keep the caller blocked.
|
|
54
|
+
*/
|
|
55
|
+
export async function runWithTimeout(operation, onTimeout, timeoutMs) {
|
|
56
|
+
let timer;
|
|
57
|
+
const timeout = new Promise((_resolve, reject) => {
|
|
58
|
+
timer = setTimeout(() => {
|
|
59
|
+
try {
|
|
60
|
+
void Promise.resolve(onTimeout()).catch(() => { });
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
// A cleanup failure must never suppress the timeout.
|
|
64
|
+
}
|
|
65
|
+
reject(new Error(`operation timed out after ${timeoutMs}ms`));
|
|
66
|
+
}, timeoutMs);
|
|
67
|
+
});
|
|
68
|
+
try {
|
|
69
|
+
return await Promise.race([operation(), timeout]);
|
|
70
|
+
}
|
|
71
|
+
finally {
|
|
72
|
+
if (timer)
|
|
73
|
+
clearTimeout(timer);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Race an operation against a sliding inactivity timeout and a separate hard
|
|
78
|
+
* duration ceiling. Calling `markActivity()` refreshes only the idle timer.
|
|
79
|
+
*/
|
|
80
|
+
export async function runWithActivityTimeout(operation, onTimeout, idleTimeoutMs, maxDurationMs) {
|
|
81
|
+
let idleTimer;
|
|
82
|
+
let maxTimer;
|
|
83
|
+
let settled = false;
|
|
84
|
+
let rejectTimeout = () => { };
|
|
85
|
+
const clearTimers = () => {
|
|
86
|
+
if (idleTimer)
|
|
87
|
+
clearTimeout(idleTimer);
|
|
88
|
+
if (maxTimer)
|
|
89
|
+
clearTimeout(maxTimer);
|
|
90
|
+
};
|
|
91
|
+
const fireTimeout = (kind, timeoutMs) => {
|
|
92
|
+
if (settled)
|
|
93
|
+
return;
|
|
94
|
+
settled = true;
|
|
95
|
+
clearTimers();
|
|
96
|
+
try {
|
|
97
|
+
void Promise.resolve(onTimeout(kind)).catch(() => { });
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
// A cleanup failure must never suppress the timeout.
|
|
101
|
+
}
|
|
102
|
+
const message = kind === "idle"
|
|
103
|
+
? `operation idle timed out after ${timeoutMs}ms`
|
|
104
|
+
: `operation exceeded maximum duration of ${timeoutMs}ms`;
|
|
105
|
+
rejectTimeout(new Error(message));
|
|
106
|
+
};
|
|
107
|
+
const markActivity = () => {
|
|
108
|
+
if (settled)
|
|
109
|
+
return;
|
|
110
|
+
if (idleTimer)
|
|
111
|
+
clearTimeout(idleTimer);
|
|
112
|
+
idleTimer = setTimeout(() => fireTimeout("idle", idleTimeoutMs), idleTimeoutMs);
|
|
113
|
+
};
|
|
114
|
+
const timeout = new Promise((_resolve, reject) => {
|
|
115
|
+
rejectTimeout = reject;
|
|
116
|
+
markActivity();
|
|
117
|
+
if (maxDurationMs > 0) {
|
|
118
|
+
maxTimer = setTimeout(() => fireTimeout("max_duration", maxDurationMs), maxDurationMs);
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
const operationPromise = Promise.resolve().then(() => operation(markActivity));
|
|
122
|
+
try {
|
|
123
|
+
return await Promise.race([operationPromise, timeout]);
|
|
124
|
+
}
|
|
125
|
+
finally {
|
|
126
|
+
settled = true;
|
|
127
|
+
clearTimers();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
17
130
|
/**
|
|
18
131
|
* Format a prompt with sender/chat context prefix.
|
|
19
132
|
*
|
|
@@ -57,19 +170,6 @@ function readFileIfExists(path) {
|
|
|
57
170
|
return undefined;
|
|
58
171
|
}
|
|
59
172
|
}
|
|
60
|
-
/** Read global and chat-specific MEMORY.md files, returning combined content. */
|
|
61
|
-
function getMemory(workingDir, chatDir) {
|
|
62
|
-
const parts = [];
|
|
63
|
-
const global = readFileIfExists(join(workingDir, "MEMORY.md"));
|
|
64
|
-
if (global)
|
|
65
|
-
parts.push(`### Global Memory\n${global}`);
|
|
66
|
-
if (chatDir) {
|
|
67
|
-
const chat = readFileIfExists(join(chatDir, "MEMORY.md"));
|
|
68
|
-
if (chat)
|
|
69
|
-
parts.push(`### Chat Memory\n${chat}`);
|
|
70
|
-
}
|
|
71
|
-
return parts.length > 0 ? parts.join("\n\n") : "(no memory yet)";
|
|
72
|
-
}
|
|
73
173
|
function getCustomPrompt(workingDir, chatDir) {
|
|
74
174
|
const parts = [];
|
|
75
175
|
const global = readFileIfExists(join(workingDir, "SYSTEM.md"));
|
|
@@ -83,7 +183,10 @@ function getCustomPrompt(workingDir, chatDir) {
|
|
|
83
183
|
return parts.join("\n\n");
|
|
84
184
|
}
|
|
85
185
|
function buildSystemPrompt(workingDir, chatDir) {
|
|
86
|
-
const
|
|
186
|
+
const coreMemory = readCoreMemory(workingDir);
|
|
187
|
+
const namespaces = listMemoryNamespaces(workingDir)
|
|
188
|
+
.map((item) => `${item.namespace} (${item.active} active)`)
|
|
189
|
+
.join(", ");
|
|
87
190
|
const customPrompt = getCustomPrompt(workingDir, chatDir);
|
|
88
191
|
return `You are the user's best friend communicating via iMessage. Be concise. No emojis.
|
|
89
192
|
|
|
@@ -99,11 +202,11 @@ You are running directly on the host machine.
|
|
|
99
202
|
## Workspace Layout
|
|
100
203
|
${workingDir}/
|
|
101
204
|
├── settings.json # Bot configuration (see below)
|
|
102
|
-
├── MEMORY.md #
|
|
205
|
+
├── MEMORY.md # Legacy memory archive; do not write new entries
|
|
103
206
|
├── SYSTEM.md # System configuration log
|
|
104
|
-
├── skills/
|
|
207
|
+
├── skills/file-memory/ # Structured memory store and CLI
|
|
105
208
|
└── <chatId>/ # Each iMessage chat gets a directory
|
|
106
|
-
├── MEMORY.md #
|
|
209
|
+
├── MEMORY.md # Legacy chat memory archive
|
|
107
210
|
├── context.jsonl # LLM context (session persistence)
|
|
108
211
|
├── log.jsonl # Message history
|
|
109
212
|
├── attachments/ # User-shared files
|
|
@@ -111,18 +214,23 @@ ${workingDir}/
|
|
|
111
214
|
└── skills/ # Chat-specific tools
|
|
112
215
|
|
|
113
216
|
## Memory
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
217
|
+
Structured memory is the only active read/write memory. Legacy MEMORY.md files are read-only archives.
|
|
218
|
+
|
|
219
|
+
Read:
|
|
220
|
+
- Use the typed load_memory tool when prior context may help. You choose one or more relevant namespaces from meaning and conversation context, not fixed keywords.
|
|
221
|
+
- load_memory returns every active record in each selected namespace. A namespace is injected only once per session; later calls return only newly added records.
|
|
222
|
+
- Available namespaces: ${namespaces || "(none yet)"}
|
|
223
|
+
- Use search_memory only to find a specific old record, especially before a correction. Do not use it as automatic per-record retrieval.
|
|
224
|
+
- Treat retrieved memory as context, not as a substitute for the current message or verified facts.
|
|
117
225
|
|
|
118
|
-
|
|
119
|
-
-
|
|
120
|
-
-
|
|
121
|
-
-
|
|
122
|
-
-
|
|
226
|
+
Write:
|
|
227
|
+
- When you learn something important and durable, call save_memory with concise atomic text, namespace, kind, subjects, factual event date when known, and a specific source.
|
|
228
|
+
- Do not store every message, guesses, short-lived states, secrets, or duplicate facts.
|
|
229
|
+
- For corrections, find the old ID and set supersedes_id. Never silently overwrite history.
|
|
230
|
+
- Do not edit JSONL or legacy MEMORY.md directly.
|
|
123
231
|
|
|
124
|
-
###
|
|
125
|
-
${
|
|
232
|
+
### Core Memory
|
|
233
|
+
${coreMemory}
|
|
126
234
|
|
|
127
235
|
## System Configuration Log
|
|
128
236
|
Maintain ${workingDir}/SYSTEM.md to log all environment modifications:
|
|
@@ -136,11 +244,15 @@ Update this file whenever you modify the environment.
|
|
|
136
244
|
## Messaging API
|
|
137
245
|
A local HTTP server runs at http://localhost:7750 with two endpoints for sending messages:
|
|
138
246
|
|
|
139
|
-
### POST /send — send a message directly
|
|
247
|
+
### POST /send — send a message or local file attachment directly
|
|
140
248
|
\`\`\`bash
|
|
141
249
|
curl -X POST http://localhost:7750/send \\
|
|
142
250
|
-H "Content-Type: application/json" \\
|
|
143
251
|
-d '{"chatGuid":"<chatGuid>","text":"hello"}'
|
|
252
|
+
|
|
253
|
+
curl -X POST http://localhost:7750/send \\
|
|
254
|
+
-H "Content-Type: application/json" \\
|
|
255
|
+
-d '{"chatGuid":"<chatGuid>","filePath":"/path/to/image.png"}'
|
|
144
256
|
\`\`\`
|
|
145
257
|
|
|
146
258
|
### POST /prompt — send a prompt to the agent, send the agent's reply to the chat
|
|
@@ -212,12 +324,94 @@ function extractToolResultText(result) {
|
|
|
212
324
|
function extractToolLabel(toolName, args) {
|
|
213
325
|
if (toolName === "bash" && typeof args.command === "string")
|
|
214
326
|
return args.command;
|
|
327
|
+
if (toolName === "load_memory" && Array.isArray(args.namespaces))
|
|
328
|
+
return `memory: ${args.namespaces.join(", ")}`;
|
|
215
329
|
if (typeof args.path === "string")
|
|
216
330
|
return `${toolName}: ${args.path}`;
|
|
217
331
|
if (typeof args.label === "string")
|
|
218
332
|
return args.label;
|
|
219
333
|
return toolName;
|
|
220
334
|
}
|
|
335
|
+
function createMemoryExtension(workingDir, loadedIds) {
|
|
336
|
+
return (pi) => {
|
|
337
|
+
pi.registerTool(defineTool({
|
|
338
|
+
name: "load_memory",
|
|
339
|
+
label: "Load Memory",
|
|
340
|
+
description: "Load all active records from one or more semantically relevant namespaces. Select namespaces yourself from the conversation. Repeated calls return only records not already loaded in this session.",
|
|
341
|
+
parameters: Type.Object({
|
|
342
|
+
namespaces: Type.Array(Type.String(), { minItems: 1 }),
|
|
343
|
+
}),
|
|
344
|
+
async execute(_toolCallId, params) {
|
|
345
|
+
const records = loadMemoryNamespaces(workingDir, params.namespaces);
|
|
346
|
+
const delta = records.filter((item) => !loadedIds.has(item.id));
|
|
347
|
+
for (const item of delta)
|
|
348
|
+
loadedIds.add(item.id);
|
|
349
|
+
return {
|
|
350
|
+
content: [
|
|
351
|
+
{
|
|
352
|
+
type: "text",
|
|
353
|
+
text: JSON.stringify({
|
|
354
|
+
namespaces: params.namespaces,
|
|
355
|
+
records: delta,
|
|
356
|
+
already_loaded: records.length - delta.length,
|
|
357
|
+
}),
|
|
358
|
+
},
|
|
359
|
+
],
|
|
360
|
+
details: { namespaces: params.namespaces, loaded: delta.length },
|
|
361
|
+
};
|
|
362
|
+
},
|
|
363
|
+
}));
|
|
364
|
+
pi.registerTool(defineTool({
|
|
365
|
+
name: "search_memory",
|
|
366
|
+
label: "Search Memory",
|
|
367
|
+
description: "Find a specific active memory record, primarily to locate its ID before saving a correction.",
|
|
368
|
+
parameters: Type.Object({
|
|
369
|
+
query: Type.String(),
|
|
370
|
+
namespaces: Type.Optional(Type.Array(Type.String())),
|
|
371
|
+
limit: Type.Optional(Type.Number({ minimum: 1, maximum: 50 })),
|
|
372
|
+
}),
|
|
373
|
+
async execute(_toolCallId, params) {
|
|
374
|
+
const records = searchMemory(workingDir, params.query, {
|
|
375
|
+
namespaces: params.namespaces,
|
|
376
|
+
limit: params.limit,
|
|
377
|
+
});
|
|
378
|
+
return {
|
|
379
|
+
content: [{ type: "text", text: JSON.stringify({ records }) }],
|
|
380
|
+
details: { matches: records.length },
|
|
381
|
+
};
|
|
382
|
+
},
|
|
383
|
+
}));
|
|
384
|
+
pi.registerTool(defineTool({
|
|
385
|
+
name: "save_memory",
|
|
386
|
+
label: "Save Memory",
|
|
387
|
+
description: "Validate and append one durable atomic record to the structured memory source of truth.",
|
|
388
|
+
parameters: Type.Object({
|
|
389
|
+
text: Type.String(),
|
|
390
|
+
namespace: Type.String(),
|
|
391
|
+
kind: Type.Union([
|
|
392
|
+
Type.Literal("fact"),
|
|
393
|
+
Type.Literal("event"),
|
|
394
|
+
Type.Literal("preference"),
|
|
395
|
+
Type.Literal("procedure"),
|
|
396
|
+
]),
|
|
397
|
+
subjects: Type.Array(Type.String()),
|
|
398
|
+
event_time: Type.Union([Type.String(), Type.Null()]),
|
|
399
|
+
source: Type.String(),
|
|
400
|
+
importance: Type.Number({ minimum: 0, maximum: 1 }),
|
|
401
|
+
confidence: Type.Number({ minimum: 0, maximum: 1 }),
|
|
402
|
+
supersedes_id: Type.Optional(Type.String()),
|
|
403
|
+
}),
|
|
404
|
+
async execute(_toolCallId, params) {
|
|
405
|
+
const result = await saveMemory(workingDir, params);
|
|
406
|
+
loadedIds.add(result.item.id);
|
|
407
|
+
return {
|
|
408
|
+
content: [{ type: "text", text: JSON.stringify(result) }],
|
|
409
|
+
details: { added: result.added, id: result.item.id },
|
|
410
|
+
};
|
|
411
|
+
},
|
|
412
|
+
}));
|
|
413
|
+
};
|
|
414
|
+
}
|
|
221
415
|
// ── Agent Manager ─────────────────────────────────────────────────────────────
|
|
222
416
|
export async function createAgentManager(config) {
|
|
223
417
|
const { workingDir } = config;
|
|
@@ -229,26 +423,43 @@ export async function createAgentManager(config) {
|
|
|
229
423
|
const chatDir = join(workingDir, sanitizeChatGuid(chatGuid));
|
|
230
424
|
mkdirSync(chatDir, { recursive: true });
|
|
231
425
|
const sessionManager = SessionManager.open(join(chatDir, "context.jsonl"), chatDir);
|
|
426
|
+
const loadedMemoryIds = new Set();
|
|
427
|
+
// Force SSE for pi-imessage. Large Codex contexts frequently exceed the
|
|
428
|
+
// WebSocket frame limit or leave an auto-selected socket half-open.
|
|
429
|
+
const settingsManager = SettingsManager.create(workingDir, agentDir);
|
|
430
|
+
settingsManager.applyOverrides({ transport: "sse" });
|
|
232
431
|
// Per-chat resource loader so the system prompt can reference chatDir.
|
|
233
432
|
const resourceLoader = new DefaultResourceLoader({
|
|
234
433
|
cwd: workingDir,
|
|
235
434
|
agentDir,
|
|
435
|
+
settingsManager,
|
|
236
436
|
systemPrompt: buildSystemPrompt(workingDir, chatDir),
|
|
437
|
+
// Keep extension discovery disabled, but install this one controlled
|
|
438
|
+
// inline hook so Codex 5.6 fast mode still applies to iMessage.
|
|
439
|
+
extensionFactories: [
|
|
440
|
+
{ name: "openai-codex-fast", factory: openAiCodexFastExtension },
|
|
441
|
+
{ name: "structured-memory", factory: createMemoryExtension(workingDir, loadedMemoryIds) },
|
|
442
|
+
],
|
|
237
443
|
noExtensions: true,
|
|
238
444
|
noSkills: true,
|
|
239
445
|
noPromptTemplates: true,
|
|
240
446
|
noThemes: true,
|
|
241
447
|
});
|
|
242
448
|
await resourceLoader.reload();
|
|
449
|
+
const extensionErrors = resourceLoader.getExtensions().errors;
|
|
450
|
+
if (extensionErrors.length > 0) {
|
|
451
|
+
throw new Error(`Failed to enable Codex fast mode: ${extensionErrors.map((item) => item.error).join("; ")}`);
|
|
452
|
+
}
|
|
243
453
|
const { session } = await createAgentSession({
|
|
244
454
|
cwd: workingDir,
|
|
245
455
|
agentDir,
|
|
246
456
|
modelRegistry,
|
|
247
457
|
sessionManager,
|
|
458
|
+
settingsManager,
|
|
248
459
|
resourceLoader,
|
|
249
460
|
});
|
|
250
461
|
const modelLabel = session.model ? `${session.model.provider}/${session.model.id}` : "default";
|
|
251
|
-
console.log(`[agent] session created: ${chatGuid} model=${modelLabel}`);
|
|
462
|
+
console.log(`[agent] session created: ${chatGuid} model=${modelLabel} transport=sse sol_fast=priority`);
|
|
252
463
|
const entry = { session, chatGuid, chain: Promise.resolve() };
|
|
253
464
|
sessionMap.set(chatGuid, entry);
|
|
254
465
|
return entry;
|
|
@@ -280,7 +491,18 @@ export async function createAgentManager(config) {
|
|
|
280
491
|
let firstAssistantStartMs = null;
|
|
281
492
|
let assistantDurationMs = null;
|
|
282
493
|
const pendingTools = new Map();
|
|
494
|
+
let markActivity = () => { };
|
|
495
|
+
const queueReply = (reply) => {
|
|
496
|
+
replyChain = replyChain
|
|
497
|
+
.then(() => handler(reply))
|
|
498
|
+
.catch((error) => {
|
|
499
|
+
console.error(`[agent] reply handler error: ${chatGuid}`, error);
|
|
500
|
+
});
|
|
501
|
+
};
|
|
283
502
|
const unsubscribe = session.subscribe((event) => {
|
|
503
|
+
// Every session event proves the run is alive. This includes streamed
|
|
504
|
+
// message updates as well as tool lifecycle events.
|
|
505
|
+
markActivity();
|
|
284
506
|
if (event.type === "message_start" && event.message.role === "assistant") {
|
|
285
507
|
firstAssistantStartMs ??= Date.now() - promptStart;
|
|
286
508
|
console.log(`[agent] message start: ${chatGuid} role=assistant first_token_ms=${Date.now() - promptStart}`);
|
|
@@ -294,15 +516,18 @@ export async function createAgentManager(config) {
|
|
|
294
516
|
` first_token_ms=${firstAssistantStartMs ?? "n/a"} generation_ms=${assistantDurationMs ?? "n/a"}` +
|
|
295
517
|
` chars=${text?.length ?? 0} text="${(text ?? "(empty)").substring(0, 60)}"`);
|
|
296
518
|
if (text) {
|
|
297
|
-
|
|
519
|
+
queueReply({ kind: "assistant", text });
|
|
298
520
|
}
|
|
299
521
|
}
|
|
300
522
|
else if (event.type === "tool_execution_start") {
|
|
301
523
|
const toolArgs = event.args;
|
|
302
524
|
const label = extractToolLabel(event.toolName, toolArgs);
|
|
303
|
-
|
|
525
|
+
const hidden = ["load_memory", "search_memory", "save_memory"].includes(event.toolName) ||
|
|
526
|
+
(event.toolName === "bash" && label.includes("skills/file-memory/memory_cli.py"));
|
|
527
|
+
pendingTools.set(event.toolCallId, { toolName: event.toolName, startTime: Date.now(), hidden });
|
|
304
528
|
console.log(`[agent] tool start: ${chatGuid} → ${label}`);
|
|
305
|
-
|
|
529
|
+
if (!hidden)
|
|
530
|
+
queueReply({ kind: "tool_start", label });
|
|
306
531
|
}
|
|
307
532
|
else if (event.type === "tool_execution_end") {
|
|
308
533
|
const resultText = extractToolResultText(event.result);
|
|
@@ -312,11 +537,42 @@ export async function createAgentManager(config) {
|
|
|
312
537
|
const symbol = event.isError ? "✗" : "✓";
|
|
313
538
|
console.log(`[agent] tool end: ${chatGuid} ${symbol} ${event.toolName} (${duration}s)` +
|
|
314
539
|
` result="${resultText.substring(0, 60)}"`);
|
|
315
|
-
|
|
540
|
+
if (!pending?.hidden) {
|
|
541
|
+
queueReply({ kind: "tool_end", toolName: event.toolName, symbol, duration, result: resultText });
|
|
542
|
+
}
|
|
316
543
|
}
|
|
317
544
|
});
|
|
318
545
|
try {
|
|
319
|
-
await
|
|
546
|
+
await runWithActivityTimeout(async (activity) => {
|
|
547
|
+
markActivity = activity;
|
|
548
|
+
activity();
|
|
549
|
+
const contextUsage = session.getContextUsage();
|
|
550
|
+
if (typeof contextUsage?.tokens === "number" && contextUsage.tokens >= AUTO_COMPACT_TOKEN_THRESHOLD) {
|
|
551
|
+
console.log(`[agent] auto compact start: ${chatGuid} tokens=${contextUsage.tokens} ` +
|
|
552
|
+
`threshold=${AUTO_COMPACT_TOKEN_THRESHOLD}`);
|
|
553
|
+
try {
|
|
554
|
+
const result = await session.compact();
|
|
555
|
+
console.log(`[agent] auto compact end: ${chatGuid} tokens_before=${result.tokensBefore}`);
|
|
556
|
+
}
|
|
557
|
+
catch (error) {
|
|
558
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
559
|
+
const safelySkippable = message.includes("Already compacted") || message.includes("Nothing to compact");
|
|
560
|
+
if (!safelySkippable)
|
|
561
|
+
throw error;
|
|
562
|
+
console.log(`[agent] auto compact skipped: ${chatGuid} ${message}`);
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
await session.prompt(promptText, { images, streamingBehavior: options?.streamingBehavior });
|
|
566
|
+
}, (kind) => {
|
|
567
|
+
const timeoutMs = kind === "idle" ? AGENT_IDLE_TIMEOUT_MS : AGENT_MAX_PROMPT_DURATION_MS;
|
|
568
|
+
const label = kind === "idle" ? "idle timeout" : "maximum duration exceeded";
|
|
569
|
+
console.error(`[agent] prompt ${label}: ${chatGuid} after ${timeoutMs}ms — detaching session and aborting in background`);
|
|
570
|
+
if (sessionMap.get(chatGuid) === entry)
|
|
571
|
+
sessionMap.delete(chatGuid);
|
|
572
|
+
void session.abort().catch((error) => {
|
|
573
|
+
console.error(`[agent] background abort failed: ${chatGuid}`, error);
|
|
574
|
+
});
|
|
575
|
+
}, AGENT_IDLE_TIMEOUT_MS, AGENT_MAX_PROMPT_DURATION_MS);
|
|
320
576
|
const sessionEnd = Date.now();
|
|
321
577
|
await replyChain;
|
|
322
578
|
const replyEnd = Date.now();
|
|
@@ -325,10 +581,10 @@ export async function createAgentManager(config) {
|
|
|
325
581
|
`generation_ms=${assistantDurationMs ?? "n/a"}`);
|
|
326
582
|
}
|
|
327
583
|
catch (error) {
|
|
328
|
-
//
|
|
329
|
-
//
|
|
330
|
-
//
|
|
331
|
-
|
|
584
|
+
// Never await cleanup here: the provider's abort path may be the part
|
|
585
|
+
// that is stuck. A timed-out session is already detached above, so a
|
|
586
|
+
// retry creates a clean session while this cleanup runs in background.
|
|
587
|
+
void session.steer("stop").catch(() => { });
|
|
332
588
|
throw error;
|
|
333
589
|
}
|
|
334
590
|
finally {
|
package/dist/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|