@brainpilot/runtime 0.0.9 → 0.0.11

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.
Files changed (68) hide show
  1. package/dist/agent-factory.d.ts.map +1 -1
  2. package/dist/agent-factory.js +5 -2
  3. package/dist/agent-factory.js.map +1 -1
  4. package/dist/events.d.ts +19 -1
  5. package/dist/events.d.ts.map +1 -1
  6. package/dist/events.js +19 -0
  7. package/dist/events.js.map +1 -1
  8. package/dist/extensions/agent-status.d.ts +13 -11
  9. package/dist/extensions/agent-status.d.ts.map +1 -1
  10. package/dist/extensions/agent-status.js +37 -21
  11. package/dist/extensions/agent-status.js.map +1 -1
  12. package/dist/extensions/trace-reminder.d.ts +7 -19
  13. package/dist/extensions/trace-reminder.d.ts.map +1 -1
  14. package/dist/extensions/trace-reminder.js +57 -33
  15. package/dist/extensions/trace-reminder.js.map +1 -1
  16. package/dist/mas-agent.d.ts +16 -0
  17. package/dist/mas-agent.d.ts.map +1 -1
  18. package/dist/mas-agent.js +93 -4
  19. package/dist/mas-agent.js.map +1 -1
  20. package/dist/mock-agent.d.ts +5 -2
  21. package/dist/mock-agent.d.ts.map +1 -1
  22. package/dist/mock-agent.js +17 -1
  23. package/dist/mock-agent.js.map +1 -1
  24. package/dist/personas.d.ts +1 -1
  25. package/dist/personas.d.ts.map +1 -1
  26. package/dist/personas.js +101 -22
  27. package/dist/personas.js.map +1 -1
  28. package/dist/server.d.ts.map +1 -1
  29. package/dist/server.js +22 -9
  30. package/dist/server.js.map +1 -1
  31. package/dist/session-manager.d.ts +56 -1
  32. package/dist/session-manager.d.ts.map +1 -1
  33. package/dist/session-manager.js +235 -34
  34. package/dist/session-manager.js.map +1 -1
  35. package/dist/tools/kb/paths.d.ts +24 -0
  36. package/dist/tools/kb/paths.d.ts.map +1 -0
  37. package/dist/tools/kb/paths.js +69 -0
  38. package/dist/tools/kb/paths.js.map +1 -0
  39. package/dist/tools/kb/python.d.ts +2 -0
  40. package/dist/tools/kb/python.d.ts.map +1 -0
  41. package/dist/tools/kb/python.js +42 -0
  42. package/dist/tools/kb/python.js.map +1 -0
  43. package/dist/tools/kb/retrieve.d.ts +20 -0
  44. package/dist/tools/kb/retrieve.d.ts.map +1 -0
  45. package/dist/tools/kb/retrieve.js +128 -0
  46. package/dist/tools/kb/retrieve.js.map +1 -0
  47. package/dist/tools/kb/search-papers.d.ts +39 -0
  48. package/dist/tools/kb/search-papers.d.ts.map +1 -0
  49. package/dist/tools/kb/search-papers.js +188 -0
  50. package/dist/tools/kb/search-papers.js.map +1 -0
  51. package/dist/tools/kb/sidecar.d.ts +11 -0
  52. package/dist/tools/kb/sidecar.d.ts.map +1 -0
  53. package/dist/tools/kb/sidecar.js +161 -0
  54. package/dist/tools/kb/sidecar.js.map +1 -0
  55. package/dist/tools/kb/store.d.ts +46 -0
  56. package/dist/tools/kb/store.d.ts.map +1 -0
  57. package/dist/tools/kb/store.js +191 -0
  58. package/dist/tools/kb/store.js.map +1 -0
  59. package/dist/tools/kb/tools.d.ts +24 -0
  60. package/dist/tools/kb/tools.d.ts.map +1 -0
  61. package/dist/tools/kb/tools.js +192 -0
  62. package/dist/tools/kb/tools.js.map +1 -0
  63. package/dist/tools/system-tools.d.ts.map +1 -1
  64. package/dist/tools/system-tools.js +41 -6
  65. package/dist/tools/system-tools.js.map +1 -1
  66. package/dist/types.d.ts +33 -1
  67. package/dist/types.d.ts.map +1 -1
  68. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"agent-factory.d.ts","sourceRoot":"","sources":["../src/agent-factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAA2C,MAAM,YAAY,CAAC;AAM/F,wBAAgB,UAAU,CAAC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GAAG,OAAO,CAEzF;AAED,eAAO,MAAM,gBAAgB,EAAE,mBAE9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,mBA8E9B,CAAC;AAEF,wBAAgB,aAAa,IAAI,mBAAmB,CAEnD"}
1
+ {"version":3,"file":"agent-factory.d.ts","sourceRoot":"","sources":["../src/agent-factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAA0D,MAAM,YAAY,CAAC;AAM9G,wBAAgB,UAAU,CAAC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GAAG,OAAO,CAEzF;AAED,eAAO,MAAM,gBAAgB,EAAE,mBAE9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,mBA8E9B,CAAC;AAEF,wBAAgB,aAAa,IAAI,mBAAmB,CAEnD"}
@@ -119,11 +119,14 @@ class RealAgentSession {
119
119
  get sessionId() {
120
120
  return this.s.sessionId;
121
121
  }
122
+ get isStreaming() {
123
+ return this.s.isStreaming;
124
+ }
122
125
  subscribe(listener) {
123
126
  return this.s.subscribe((e) => listener(e));
124
127
  }
125
- prompt(text) {
126
- return this.s.prompt(text);
128
+ prompt(text, opts) {
129
+ return this.s.prompt(text, opts);
127
130
  }
128
131
  abort() {
129
132
  return this.s.abort();
@@ -1 +1 @@
1
- {"version":3,"file":"agent-factory.js","sourceRoot":"","sources":["../src/agent-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-factory.js","sourceRoot":"","sources":["../src/agent-factory.ts"],"names":[],"mappings":"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"}
package/dist/events.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { AgUiEvent } from "@brainpilot/protocol";
1
+ import type { AgUiEvent, CompactionReason } from "@brainpilot/protocol";
2
2
  interface Ctx {
3
3
  sessionId: string;
4
4
  agentName?: string;
@@ -56,8 +56,26 @@ export declare const ev: {
56
56
  agent?: string;
57
57
  details?: string;
58
58
  recoverable?: boolean;
59
+ id?: string;
59
60
  }): AgUiEvent;
60
61
  custom(ctx: Ctx, name: string, value: unknown): AgUiEvent;
62
+ /**
63
+ * Pi SDK auto/manual compaction — the runtime translates Pi's internal
64
+ * `compaction_start` / `compaction_end` events onto the AG-UI CUSTOM channel
65
+ * so clients can render a "context being compacted" indicator instead of
66
+ * silently seeing the assistant's history collapse. Wire form:
67
+ * { type:"CUSTOM", name:"compaction", value: { op:"start", reason, ... } }
68
+ */
69
+ compactionStart(ctx: Ctx, reason: CompactionReason): AgUiEvent;
70
+ compactionEnd(ctx: Ctx, v: {
71
+ reason: CompactionReason;
72
+ aborted: boolean;
73
+ willRetry: boolean;
74
+ errorMessage?: string;
75
+ tokensBefore?: number;
76
+ estimatedTokensAfter?: number;
77
+ firstKeptEntryId?: string;
78
+ }): AgUiEvent;
61
79
  };
62
80
  export {};
63
81
  //# sourceMappingURL=events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAMtD,UAAU,GAAG;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAgBD,wBAAgB,YAAY,IAAI,MAAM,CAErC;AACD,wBAAgB,QAAQ,IAAI,MAAM,CAEjC;AAED,eAAO,MAAM,EAAE;oBACG,GAAG,gBAAgB,MAAM,GAAG,SAAS;qBAGpC,GAAG,WAAW,OAAO,GAAG,SAAS;kBAGpC,GAAG,WAAW,MAAM,kBAA2B,SAAS;0BAGhD,GAAG,aAAa,MAAM,kBAAuB,SAAS;4BAGpD,GAAG,aAAa,MAAM,SAAS,MAAM,GAAG,SAAS;wBAGrD,GAAG,aAAa,MAAM,GAAG,SAAS;IAGtD;;;;;;;;;OASG;0BACmB,GAAG,aAAa,MAAM,SAAS,MAAM,kBAAuB,SAAS;+BAGhE,GAAG,aAAa,MAAM,GAAG,SAAS;iCAGhC,GAAG,aAAa,MAAM,SAAS,MAAM,GAAG,SAAS;6BAGrD,GAAG,aAAa,MAAM,GAAG,SAAS;uBAGxC,GAAG,cAAc,MAAM,YAAY,MAAM,oBAAoB,MAAM,GAAG,SAAS;sBAShF,GAAG,cAAc,MAAM,SAAS,MAAM,GAAG,SAAS;qBAGnD,GAAG,cAAc,MAAM,GAAG,SAAS;wBAGhC,GAAG,cAAc,MAAM,WAAW,MAAM,iCAA+B,MAAM,GAAG,SAAS;2BAWtG,GAAG,QACF,MAAM,UACJ,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,UACxC;QACN,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;QAChC,SAAS,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,gBAAgB,EAAE,MAAM,CAAA;SAAE,CAAC;KAC9E,GACA,SAAS;0BAoBL,GAAG,OACH;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GAC1G,SAAS;2BAWW,GAAG,OAAO;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS;6BAStE,MAAM,SACV,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,WACpC,MAAM,SACR;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GACjE,SAAS;gBAYA,GAAG,QAAQ,MAAM,SAAS,OAAO,GAAG,SAAS;CAG1D,CAAC"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,SAAS,EAET,gBAAgB,EAEjB,MAAM,sBAAsB,CAAC;AAO9B,UAAU,GAAG;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAgBD,wBAAgB,YAAY,IAAI,MAAM,CAErC;AACD,wBAAgB,QAAQ,IAAI,MAAM,CAEjC;AAED,eAAO,MAAM,EAAE;oBACG,GAAG,gBAAgB,MAAM,GAAG,SAAS;qBAGpC,GAAG,WAAW,OAAO,GAAG,SAAS;kBAGpC,GAAG,WAAW,MAAM,kBAA2B,SAAS;0BAGhD,GAAG,aAAa,MAAM,kBAAuB,SAAS;4BAGpD,GAAG,aAAa,MAAM,SAAS,MAAM,GAAG,SAAS;wBAGrD,GAAG,aAAa,MAAM,GAAG,SAAS;IAGtD;;;;;;;;;OASG;0BACmB,GAAG,aAAa,MAAM,SAAS,MAAM,kBAAuB,SAAS;+BAGhE,GAAG,aAAa,MAAM,GAAG,SAAS;iCAGhC,GAAG,aAAa,MAAM,SAAS,MAAM,GAAG,SAAS;6BAGrD,GAAG,aAAa,MAAM,GAAG,SAAS;uBAGxC,GAAG,cAAc,MAAM,YAAY,MAAM,oBAAoB,MAAM,GAAG,SAAS;sBAShF,GAAG,cAAc,MAAM,SAAS,MAAM,GAAG,SAAS;qBAGnD,GAAG,cAAc,MAAM,GAAG,SAAS;wBAGhC,GAAG,cAAc,MAAM,WAAW,MAAM,iCAA+B,MAAM,GAAG,SAAS;2BAWtG,GAAG,QACF,MAAM,UACJ,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,UACxC;QACN,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;QAChC,SAAS,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,gBAAgB,EAAE,MAAM,CAAA;SAAE,CAAC;KAC9E,GACA,SAAS;0BAoBL,GAAG,OACH;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GAC1G,SAAS;2BAWW,GAAG,OAAO;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS;6BAStE,MAAM,SACV,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,WACpC,MAAM,SACR;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9E,SAAS;gBAeA,GAAG,QAAQ,MAAM,SAAS,OAAO,GAAG,SAAS;IAGzD;;;;;;OAMG;yBACkB,GAAG,UAAU,gBAAgB,GAAG,SAAS;uBAKvD,GAAG,KACL;QACD,MAAM,EAAE,gBAAgB,CAAC;QACzB,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,GACA,SAAS;CAIb,CAAC"}
package/dist/events.js CHANGED
@@ -8,6 +8,7 @@
8
8
  * `agent_name` + `_ts`; `run_id` when known.
9
9
  */
10
10
  import { randomUUID } from "node:crypto";
11
+ import { CUSTOM_EVENT } from "@brainpilot/protocol";
11
12
  function ts() {
12
13
  return new Date().toISOString();
13
14
  }
@@ -136,6 +137,9 @@ export const ev = {
136
137
  return {
137
138
  type: "system_message",
138
139
  session_id: sessionId,
140
+ // #167: optional stable id lets the client coalesce repeated messages
141
+ // (e.g. retry warnings) into one updating bubble instead of appending.
142
+ ...(opts?.id ? { id: opts.id } : {}),
139
143
  agent: opts?.agent,
140
144
  level,
141
145
  message,
@@ -147,5 +151,20 @@ export const ev = {
147
151
  custom(ctx, name, value) {
148
152
  return { type: "CUSTOM", ...envelope(ctx), name, value };
149
153
  },
154
+ /**
155
+ * Pi SDK auto/manual compaction — the runtime translates Pi's internal
156
+ * `compaction_start` / `compaction_end` events onto the AG-UI CUSTOM channel
157
+ * so clients can render a "context being compacted" indicator instead of
158
+ * silently seeing the assistant's history collapse. Wire form:
159
+ * { type:"CUSTOM", name:"compaction", value: { op:"start", reason, ... } }
160
+ */
161
+ compactionStart(ctx, reason) {
162
+ const value = { op: "start", reason };
163
+ return { type: "CUSTOM", ...envelope(ctx), name: CUSTOM_EVENT.COMPACTION, value };
164
+ },
165
+ compactionEnd(ctx, v) {
166
+ const value = { op: "end", ...v };
167
+ return { type: "CUSTOM", ...envelope(ctx), name: CUSTOM_EVENT.COMPACTION, value };
168
+ },
150
169
  };
151
170
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
@@ -19,8 +19,8 @@
19
19
  * - `context` handler receives `{ messages }` (a safe-to-mutate copy) and may
20
20
  * return `{ messages }` to replace what the model sees this turn.
21
21
  * - Because the host appends a NEW block each turn, we first STRIP any block we
22
- * injected on a previous turn (identified by the `<agent_status>` opener) so
23
- * the model only ever sees the latest snapshot, not a pile of old ones.
22
+ * injected on a previous turn (identified by the status-block opener) so the
23
+ * model only ever sees the latest snapshot, not a pile of old ones.
24
24
  *
25
25
  * Only the real factory loads this — the mock has no Pi event loop, so the
26
26
  * behavioural injection is verified in real mode. The pure block renderer
@@ -36,13 +36,14 @@ export interface AgentStatusLine {
36
36
  unread: number;
37
37
  }
38
38
  /**
39
- * Build the team-status block as a natural-language list (#97, option B). The
40
- * wording is self-explanatory so the model needs no schema knowledge: each line
41
- * names an agent, its status, and how many messages are still waiting unread in
42
- * its inbox. Returns "" when there is nothing to report (caller skips injection).
39
+ * Build the team-status block as an internal coordination hint. The wording
40
+ * tells the model not to surface this block to the user, while still showing
41
+ * active work or pending agent replies that may affect coordination. Returns ""
42
+ * when there is nothing to report (caller skips injection).
43
43
  *
44
44
  * `lines` should already be filtered by the caller (trace agent excluded,
45
- * stopped agents excluded). Order is preserved.
45
+ * stopped agents excluded, idle agents with no pending messages excluded).
46
+ * Order is preserved.
46
47
  */
47
48
  export declare function renderAgentStatusBlock(lines: readonly AgentStatusLine[]): string;
48
49
  /** Minimal structural surface of an agent the collector reads. */
@@ -53,10 +54,11 @@ export interface StatusAgentLike {
53
54
  }
54
55
  /**
55
56
  * Collect the status lines for a team snapshot from the live agents (#97).
56
- * Includes every agent — INCLUDING the principal, so it sees its own backlog —
57
- * except the trace agent (an internal recorder) and any stopped agent
58
- * (destroyed; irrelevant to coordination). `unreadOf` returns the number of
59
- * messages still queued unread in that agent's inbox. Order follows iteration.
57
+ * Includes every active or pending agent — INCLUDING the principal, so it sees
58
+ * its own backlog — except the trace agent (an internal recorder), any stopped
59
+ * agent (destroyed; irrelevant to coordination), and idle agents with no unread
60
+ * messages. `unreadOf` returns the number of messages still queued unread in
61
+ * that agent's inbox. Order follows iteration.
60
62
  */
61
63
  export declare function collectAgentStatusLines(agents: Iterable<StatusAgentLike>, unreadOf: (name: string) => number): AgentStatusLine[];
62
64
  /** Minimal structural surface of Pi's ExtensionAPI we depend on. */
@@ -1 +1 @@
1
- {"version":3,"file":"agent-status.d.ts","sourceRoot":"","sources":["../../src/extensions/agent-status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,2DAA2D;AAC3D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;CAChB;AAMD;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,GAAG,MAAM,CAehF;AAED,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,EACjC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GACjC,eAAe,EAAE,CAQnB;AAED,oEAAoE;AACpE,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AACD,UAAU,cAAc;IACtB,EAAE,CACA,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,CAAC,CAAC,EAAE;QACX,QAAQ,EAAE,gBAAgB,EAAE,CAAC;KAC9B,KAAK;QAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAA;KAAE,GAAG,IAAI,GAC5C,IAAI,CAAC;CACT;AAED,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,YAAY,EAAE,MAAM,MAAM,CAAC;CAC5B;AAUD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,CAAC,EAAE,EAAE,cAAc,KAAK,IAAI,CAoBtF"}
1
+ {"version":3,"file":"agent-status.d.ts","sourceRoot":"","sources":["../../src/extensions/agent-status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,2DAA2D;AAC3D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;CAChB;AAOD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,GAAG,MAAM,CAqBhF;AAED,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,EACjC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GACjC,eAAe,EAAE,CAUnB;AAED,oEAAoE;AACpE,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AACD,UAAU,cAAc;IACtB,EAAE,CACA,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,CAAC,CAAC,EAAE;QACX,QAAQ,EAAE,gBAAgB,EAAE,CAAC;KAC9B,KAAK;QAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAA;KAAE,GAAG,IAAI,GAC5C,IAAI,CAAC;CACT;AAED,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,YAAY,EAAE,MAAM,MAAM,CAAC;CAC5B;AAeD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,CAAC,EAAE,EAAE,cAAc,KAAK,IAAI,CAoBtF"}
@@ -19,8 +19,8 @@
19
19
  * - `context` handler receives `{ messages }` (a safe-to-mutate copy) and may
20
20
  * return `{ messages }` to replace what the model sees this turn.
21
21
  * - Because the host appends a NEW block each turn, we first STRIP any block we
22
- * injected on a previous turn (identified by the `<agent_status>` opener) so
23
- * the model only ever sees the latest snapshot, not a pile of old ones.
22
+ * injected on a previous turn (identified by the status-block opener) so the
23
+ * model only ever sees the latest snapshot, not a pile of old ones.
24
24
  *
25
25
  * Only the real factory loads this — the mock has no Pi event loop, so the
26
26
  * behavioural injection is verified in real mode. The pure block renderer
@@ -28,38 +28,48 @@
28
28
  * a fake `pi`.
29
29
  */
30
30
  /** Opening tag — also the marker used to recognise a block we injected before. */
31
- const TAG_OPEN = "<agent_status>";
32
- const TAG_CLOSE = "</agent_status>";
31
+ const TAG_OPEN = "<internal_agent_status>";
32
+ const TAG_CLOSE = "</internal_agent_status>";
33
+ const LEGACY_TAG_OPEN = "<agent_status>";
33
34
  /**
34
- * Build the team-status block as a natural-language list (#97, option B). The
35
- * wording is self-explanatory so the model needs no schema knowledge: each line
36
- * names an agent, its status, and how many messages are still waiting unread in
37
- * its inbox. Returns "" when there is nothing to report (caller skips injection).
35
+ * Build the team-status block as an internal coordination hint. The wording
36
+ * tells the model not to surface this block to the user, while still showing
37
+ * active work or pending agent replies that may affect coordination. Returns ""
38
+ * when there is nothing to report (caller skips injection).
38
39
  *
39
40
  * `lines` should already be filtered by the caller (trace agent excluded,
40
- * stopped agents excluded). Order is preserved.
41
+ * stopped agents excluded, idle agents with no pending messages excluded).
42
+ * Order is preserved.
41
43
  */
42
44
  export function renderAgentStatusBlock(lines) {
43
- if (lines.length === 0)
45
+ const visibleLines = lines.filter((l) => l.status !== "idle" || l.unread > 0);
46
+ if (visibleLines.length === 0)
44
47
  return "";
45
- const body = lines
48
+ const body = visibleLines
46
49
  .map((l) => {
47
- const n = l.unread;
48
- const msg = `${n} unread message${n === 1 ? "" : "s"}`;
49
- return `- ${l.name}: ${l.status}, ${msg}`;
50
+ const parts = [];
51
+ if (l.status !== "idle")
52
+ parts.push(`status=${l.status}`);
53
+ if (l.unread > 0) {
54
+ parts.push(`${l.unread} pending message${l.unread === 1 ? "" : "s"}`);
55
+ }
56
+ return `- ${l.name}: ${parts.join(", ")}`;
50
57
  })
51
58
  .join("\n");
52
59
  return (`${TAG_OPEN}\n` +
53
- `Current agents (status, and how many messages are still waiting unread in each inbox):\n` +
60
+ `Internal coordination state. Use this only to decide whether to wait for pending agent work. ` +
61
+ `Never mention, quote, or summarize it in user-facing text.\n` +
62
+ `Pending or active agents:\n` +
54
63
  `${body}\n` +
55
64
  `${TAG_CLOSE}`);
56
65
  }
57
66
  /**
58
67
  * Collect the status lines for a team snapshot from the live agents (#97).
59
- * Includes every agent — INCLUDING the principal, so it sees its own backlog —
60
- * except the trace agent (an internal recorder) and any stopped agent
61
- * (destroyed; irrelevant to coordination). `unreadOf` returns the number of
62
- * messages still queued unread in that agent's inbox. Order follows iteration.
68
+ * Includes every active or pending agent — INCLUDING the principal, so it sees
69
+ * its own backlog — except the trace agent (an internal recorder), any stopped
70
+ * agent (destroyed; irrelevant to coordination), and idle agents with no unread
71
+ * messages. `unreadOf` returns the number of messages still queued unread in
72
+ * that agent's inbox. Order follows iteration.
63
73
  */
64
74
  export function collectAgentStatusLines(agents, unreadOf) {
65
75
  const lines = [];
@@ -68,14 +78,20 @@ export function collectAgentStatusLines(agents, unreadOf) {
68
78
  continue;
69
79
  if (a.status === "stopped")
70
80
  continue;
71
- lines.push({ name: a.name, status: a.status, unread: unreadOf(a.name) });
81
+ const unread = unreadOf(a.name);
82
+ if (a.status === "idle" && unread === 0)
83
+ continue;
84
+ lines.push({ name: a.name, status: a.status, unread });
72
85
  }
73
86
  return lines;
74
87
  }
75
88
  /** True for a `user` message whose text is a status block we injected earlier. */
76
89
  function isStatusMessage(m) {
77
90
  return (m.role === "user" &&
78
- m.content.some((c) => c.type === "text" && (c.text ?? "").startsWith(TAG_OPEN)));
91
+ m.content.some((c) => {
92
+ const text = c.text ?? "";
93
+ return (c.type === "text" && (text.startsWith(TAG_OPEN) || text.startsWith(LEGACY_TAG_OPEN)));
94
+ }));
79
95
  }
80
96
  /**
81
97
  * Build the extension factory for one agent. The returned function is what Pi
@@ -1 +1 @@
1
- {"version":3,"file":"agent-status.js","sourceRoot":"","sources":["../../src/extensions/agent-status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAWH,kFAAkF;AAClF,MAAM,QAAQ,GAAG,gBAAgB,CAAC;AAClC,MAAM,SAAS,GAAG,iBAAiB,CAAC;AAEpC;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAiC;IACtE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,KAAK;SACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;QACnB,MAAM,GAAG,GAAG,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACvD,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;IAC5C,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,CACL,GAAG,QAAQ,IAAI;QACf,0FAA0F;QAC1F,GAAG,IAAI,IAAI;QACX,GAAG,SAAS,EAAE,CACf,CAAC;AACJ,CAAC;AASD;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAAiC,EACjC,QAAkC;IAElC,MAAM,KAAK,GAAsB,EAAE,CAAC;IACpC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;YAAE,SAAS;QACjC,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;YAAE,SAAS;QACrC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAyBD,kFAAkF;AAClF,SAAS,eAAe,CAAC,CAAmB;IAC1C,OAAO,CACL,CAAC,CAAC,IAAI,KAAK,MAAM;QACjB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAChF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAqB;IACtD,OAAO,CAAC,EAAE,EAAE,EAAE;QACZ,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;YACrB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YAClC,oEAAoE;YACpE,wEAAwE;YACxE,sBAAsB;YACtB,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/D,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;YAE1D,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,oEAAoE;gBACpE,iEAAiE;gBACjE,OAAO,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1D,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1E,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"agent-status.js","sourceRoot":"","sources":["../../src/extensions/agent-status.ts"],"names":[],"mappings":"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"}
@@ -8,10 +8,10 @@
8
8
  * - 意图二 (expert results flow back): if an expert run produced work but never
9
9
  * send_message'd the principal, nudge; if it still won't, the host writes a
10
10
  * fallback note into the principal's mailbox so the PI never dead-waits.
11
- * - 意图三 (PI keeps to delegation): if the principal does substantive work
12
- * directly without delegating, append a soft reminder to the tool result.
13
- * - 意图四 (resource awareness): on a tool error, append a soft hint that the
14
- * knowledge tools / record_trace exist. (Static identity lives in personas.)
11
+ * - 意图三 (PI keeps to delegation): if the principal did substantive work
12
+ * directly (a write/run/external tool, not a read or coordination call)
13
+ * without delegating, nudge it at run end via a followUp (same channel as
14
+ * 意图一/二) the tool result itself is left untouched.
15
15
  *
16
16
  * 意图一 and 意图二 are ORTHOGONAL checks (B): an expert can owe both a trace
17
17
  * and a reply. They limit independently (A — separate counters), but when BOTH
@@ -29,8 +29,9 @@
29
29
  * {deliverAs:"followUp"})` inside `agent_end`: it releases the current stop
30
30
  * and starts a NEW agent loop (a fresh agent_start) — which is why the
31
31
  * anti-loop counters must NOT reset on agent_start.
32
- * - `tool_result` MAY return `{content}` to rewrite the result text used for
33
- * the soft reminders (意图三/四).
32
+ * - Host-injected text (every followUp this file sends) is wrapped in a paired
33
+ * `[SYSTEM-MESSAGE:kind] [/SYSTEM-MESSAGE]` marker via the `SYS()` helper, so
34
+ * a consumer can strip it with one regex and the wrapping has a single source.
34
35
  */
35
36
  import type { AgentRole } from "../types.js";
36
37
  /** Minimal structural surface of Pi's ExtensionAPI we depend on. */
@@ -44,19 +45,6 @@ interface PiExtensionApi {
44
45
  toolName: string;
45
46
  isError: boolean;
46
47
  }) => void): void;
47
- on(event: "tool_result", handler: (e: {
48
- toolName: string;
49
- isError: boolean;
50
- content: Array<{
51
- type: string;
52
- text?: string;
53
- }>;
54
- }) => {
55
- content: Array<{
56
- type: "text";
57
- text: string;
58
- }>;
59
- } | void): void;
60
48
  on(event: "agent_end", handler: (e: AgentEndLike) => void): void;
61
49
  sendUserMessage(content: string, options?: {
62
50
  deliverAs?: "steer" | "followUp";
@@ -1 +1 @@
1
- {"version":3,"file":"trace-reminder.d.ts","sourceRoot":"","sources":["../../src/extensions/trace-reminder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,oEAAoE;AACpE,UAAU,cAAc;IACtB,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACpD,EAAE,CAAC,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IACpG,EAAE,CAAC,KAAK,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IACpG,EAAE,CACA,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,CAAC,CAAC,EAAE;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACjD,KAAK;QAAE,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,GAAG,IAAI,GAC9D,IAAI,CAAC;IACR,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI,CAAC;IACjE,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,GAAG,UAAU,CAAA;KAAE,GAAG,IAAI,CAAC;CACxF;AAED;;;;;;;GAOG;AACH,UAAU,YAAY;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1D;AAeD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AA2BD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,iBAAiB,GAAG,CAAC,EAAE,EAAE,cAAc,KAAK,IAAI,CAyH1F"}
1
+ {"version":3,"file":"trace-reminder.d.ts","sourceRoot":"","sources":["../../src/extensions/trace-reminder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,oEAAoE;AACpE,UAAU,cAAc;IACtB,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACpD,EAAE,CAAC,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IACpG,EAAE,CAAC,KAAK,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IACpG,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI,CAAC;IACjE,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,GAAG,UAAU,CAAA;KAAE,GAAG,IAAI,CAAC;CACxF;AAED;;;;;;;GAOG;AACH,UAAU,YAAY;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1D;AAeD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AA2DD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,iBAAiB,GAAG,CAAC,EAAE,EAAE,cAAc,KAAK,IAAI,CAuH1F"}
@@ -12,10 +12,24 @@ function endedInError(e) {
12
12
  return false;
13
13
  }
14
14
  /**
15
- * Management/coordination tools that are legitimate for a principal to call
16
- * directly they don't count as "doing the work itself" (意图三 exemption).
15
+ * Tools a principal may call directly WITHOUT it counting as "doing the work
16
+ * itself" (意图三 exemption): information-gathering / read-only tools plus the
17
+ * management/coordination tools. Anything NOT in this set — a write/edit/run, or
18
+ * any external MCP tool (domain work a principal should delegate) — counts as
19
+ * substantive work and arms the delegate reminder.
17
20
  */
18
- const MGMT_TOOLS = new Set([
21
+ const PI_ALLOWED_TOOLS = new Set([
22
+ // information-gathering / read-only. These MUST be Pi's real emitted tool
23
+ // names, which are lowercase (see BUILTIN_TOOL_CONFIG in tools/system-tools.ts:
24
+ // principal = ["read","write","edit","bash","grep","find","glob","ls"]). Names
25
+ // are matched case-insensitively below, but keep them lowercase to match the
26
+ // source of truth. (The principal has no WebFetch/WebSearch tool — omitted.)
27
+ "read",
28
+ "grep",
29
+ "glob",
30
+ "ls",
31
+ "find",
32
+ // management / coordination
19
33
  "create_agent",
20
34
  "destroy_agent",
21
35
  "record_trace",
@@ -23,13 +37,22 @@ const MGMT_TOOLS = new Set([
23
37
  "ask_user",
24
38
  "get_trace_graph",
25
39
  ]);
26
- const TRACE_REMINDER = "你本轮做了实质工作但尚未调用 record_trace。如果这步值得留痕,请调用 record_trace 记录后再结束。";
27
- const EXPERT_REPLY_REMINDER = "你尚未通过 send_message(to=\"principal\", ...) 把结果回交给 Principal。请回交结果,否则 Principal 收不到你的产出。";
28
- const MERGED_REMINDER = "你本轮尚未回交结果,也未记录关键决策。结束前请:" +
29
- "① send_message(to=\"principal\", ...) 回交结果;" +
30
- "② record_trace 记录关键决策。";
31
- const DELEGATE_REMINDER = "[提醒:作为 Principal,实质工作应委派给专家,而不是自己埋头执行。]";
32
- const TOOL_FAILURE_REMINDER = "[提醒:该工具调用失败。可用 record_trace 记录这次失败,或借助知识库/检索工具寻找替代方案。]";
40
+ /**
41
+ * Paired marker wrapping EVERY host-injected message, so a consumer can strip it
42
+ * with a single regex (`\[SYSTEM-MESSAGE.*?\][\s\S]*?\[/SYSTEM-MESSAGE\]`) and the
43
+ * wrapping style has one source of truth. `kind` sub-tags the message for
44
+ * filtering/metrics; the namespace is intentionally generic (not "REMINDER") so
45
+ * future host injections of any sort reuse the same envelope.
46
+ */
47
+ const SYS = (kind, body) => `[SYSTEM-MESSAGE:${kind}] ${body} [/SYSTEM-MESSAGE]`;
48
+ const TRACE_REMINDER = SYS("trace", "You did substantive work this run but have not called record_trace. " +
49
+ "If this step is worth recording, call record_trace before finishing.");
50
+ const EXPERT_REPLY_REMINDER = SYS("reply", 'You have not returned your result to the Principal via send_message(to="principal", ...). ' +
51
+ "Please report back, otherwise the Principal will not receive your output.");
52
+ const MERGED_REMINDER = SYS("merged", "Before finishing this run: " +
53
+ '(1) return your result via send_message(to="principal", ...); ' +
54
+ "(2) record the key decision via record_trace.");
55
+ const DELEGATE_REMINDER = SYS("delegate", "As the Principal, substantive work should be delegated to an expert rather than done directly.");
33
56
  /**
34
57
  * Build the extension factory for one agent. The returned function is what Pi
35
58
  * calls with the per-session `ExtensionAPI`.
@@ -45,21 +68,25 @@ export function makeTraceReminderExt(deps) {
45
68
  let traced = false;
46
69
  let replied = false;
47
70
  let delegated = false;
48
- let delegateRemindCount = 0;
71
+ // 意图三: did the principal do substantive (non-read, non-coordination) work
72
+ // directly this run? Set in tool_execution_end, read in agent_end.
73
+ let didSubstantiveWork = false;
49
74
  // ⚠️ Cross-run-CHAIN counters — MUST NOT reset on agent_start/turn_start nor
50
75
  // at the top of agent_end. sendUserMessage(followUp) starts a NEW agent loop
51
76
  // (verified: a followUp fires a fresh agent_start) whose end re-enters
52
77
  // agent_end; if these were cleared we would re-remind forever. They are reset
53
78
  // ONLY at the terminal exits below (dimension satisfied, or already reminded
54
- // once → fallback/let-go). Decoupled per dimension (A) so a trace reminder
55
- // and a reply reminder limit independently.
79
+ // once → fallback/let-go). Decoupled per dimension (A) so a trace reminder,
80
+ // a reply reminder, and a delegate reminder limit independently. delegate
81
+ // moved here (from a run-scoped flag) because it now fires via followUp too.
56
82
  let traceRemindCount = 0;
57
83
  let replyRemindCount = 0;
84
+ let delegateRemindCount = 0;
58
85
  pi.on("agent_start", () => {
59
86
  traced = false;
60
87
  replied = false;
61
88
  delegated = false;
62
- delegateRemindCount = 0;
89
+ didSubstantiveWork = false;
63
90
  });
64
91
  // tool_execution_start: nothing required for accounting (we key off
65
92
  // tool_execution_end which carries success/failure). Kept as a no-op anchor
@@ -74,25 +101,12 @@ export function makeTraceReminderExt(deps) {
74
101
  replied = true;
75
102
  if (t === "create_agent")
76
103
  delegated = true;
77
- });
78
- pi.on("tool_result", (e) => {
79
- // 意图四 (failure hint) takes precedence; 意图三 (over-step) can stack.
80
- let suffix = "";
81
- if (e.isError) {
82
- suffix += `\n${TOOL_FAILURE_REMINDER}`;
83
- }
84
- if (deps.role === "principal" &&
85
- !delegated &&
86
- !MGMT_TOOLS.has(e.toolName) &&
87
- delegateRemindCount < 1) {
88
- delegateRemindCount++;
89
- suffix += `\n${DELEGATE_REMINDER}`;
90
- }
91
- if (!suffix)
92
- return; // no rewrite — leave the result untouched
93
- // Rewrite by appending to the existing text content; the tool still ran.
94
- const text = e.content.map((c) => (c.type === "text" ? c.text ?? "" : "")).join("");
95
- return { content: [{ type: "text", text: `${text}${suffix}` }] };
104
+ // 意图三: any successful call NOT in the allow-set (a write/run, or an
105
+ // external MCP/domain tool) is the principal doing the work itself. Match
106
+ // case-insensitively Pi emits builtins lowercase, but normalizing here
107
+ // keeps the exemption working if a tool ever surfaces in another case.
108
+ if (deps.role === "principal" && !PI_ALLOWED_TOOLS.has(t.toLowerCase()))
109
+ didSubstantiveWork = true;
96
110
  });
97
111
  pi.on("agent_end", (e) => {
98
112
  if (deps.role === "trace")
@@ -135,6 +149,16 @@ export function makeTraceReminderExt(deps) {
135
149
  pi.sendUserMessage(TRACE_REMINDER, { deliverAs: "followUp" });
136
150
  return;
137
151
  }
152
+ // 意图三 (PI delegation): the principal did substantive work itself this run
153
+ // without delegating. Nudge once via followUp (NOT merged with trace —
154
+ // separate limiter, worst case one extra round-trip). Cross-run-chain
155
+ // limited like the others. Only reachable for a principal once its trace
156
+ // dimension is settled (a principal has no reply dimension).
157
+ if (deps.role === "principal" && didSubstantiveWork && !delegated && delegateRemindCount < 1) {
158
+ delegateRemindCount++;
159
+ pi.sendUserMessage(DELEGATE_REMINDER, { deliverAs: "followUp" });
160
+ return;
161
+ }
138
162
  // Nothing left to nudge (each lapsed dimension was already reminded once).
139
163
  // Terminal handling per dimension:
140
164
  // - reply has a host fallback so the principal never dead-waits;
@@ -1 +1 @@
1
- {"version":3,"file":"trace-reminder.js","sourceRoot":"","sources":["../../src/extensions/trace-reminder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trace-reminder.js","sourceRoot":"","sources":["../../src/extensions/trace-reminder.ts"],"names":[],"mappings":"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"}
@@ -104,6 +104,20 @@ export declare class MasAgent {
104
104
  * The settled promise is tracked in `currentPrompt` so `abort()` can await it.
105
105
  */
106
106
  prompt(text: string): Promise<void>;
107
+ /** True while a run is streaming — a plain prompt() would be rejected. */
108
+ get isStreaming(): boolean;
109
+ /**
110
+ * Queue a user message onto the *in-flight* run instead of starting a new one
111
+ * (#: concurrent send). The SDK's agent loop drains follow-ups before it emits
112
+ * agent_end, so the message is handled after the current turn without a fresh
113
+ * RUN_STARTED/runId — the events keep flowing under the current run. Unlike
114
+ * `prompt()`, this does NOT open a new run lifecycle. Error-isolated: a queue
115
+ * failure is surfaced as a run error, never thrown to the caller.
116
+ *
117
+ * Falls back to a normal `prompt()` if the run has already drained (not
118
+ * streaming anymore) by the time this lands, so a race can't drop the message.
119
+ */
120
+ followUp(text: string): Promise<void>;
107
121
  private runPrompt;
108
122
  /**
109
123
  * Abort the active run and wait for it to fully settle (#101).
@@ -118,6 +132,8 @@ export declare class MasAgent {
118
132
  */
119
133
  abort(): Promise<void>;
120
134
  stop(): void;
135
+ /** Emit a compaction-related system_message with the agent tag pre-filled. */
136
+ private emitCompactionSystemMessage;
121
137
  private recordError;
122
138
  /** Translate one Pi event into zero or more AG-UI events (§6). */
123
139
  private onPiEvent;
@@ -1 +1 @@
1
- {"version":3,"file":"mas-agent.d.ts","sourceRoot":"","sources":["../src/mas-agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAA2C,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAChG,OAAO,KAAK,EACV,SAAS,EACT,aAAa,EAGb,OAAO,EACR,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAEnE,qEAAqE;AACrE,wBAAgB,eAAe,IAAI,UAAU,CAE5C;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,CAY5E;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,aAAa,CAAC;IACvB,GAAG,EAAE,QAAQ,CAAC;IACd,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IAC7D;;;;;OAKG;IACH,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;CAC7E;AAED,qBAAa,QAAQ;IAmCP,OAAO,CAAC,QAAQ,CAAC,IAAI;IAlCjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAW;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IAEzC,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,oBAAoB,CAAqB;IACjD,OAAO,CAAC,SAAS,CAA0B;IAC3C;;;;OAIG;IACH,OAAO,CAAC,eAAe,CAAiC;IACxD;;;;;OAKG;IACH,OAAO,CAAC,cAAc,CAA6B;IACnD;;;;;OAKG;IACH,OAAO,CAAC,aAAa,CAA4B;gBAEpB,IAAI,EAAE,YAAY;IAS/C,IAAI,MAAM,IAAI,WAAW,CAExB;IAED;;;;OAIG;IACH,IAAI,aAAa,IAAI,cAAc,GAAG,SAAS,CAE9C;IAED;;;;OAIG;IACH,KAAK,IAAI,UAAU;IAInB;;;OAGG;IACH,SAAS,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI;IAI1C,wCAAwC;IACxC,KAAK,IAAI,UAAU;IAQnB,OAAO,CAAC,SAAS;IAajB;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YASrB,SAAS;IAkCvB;;;;;;;;;;OAUG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB5B,IAAI,IAAI,IAAI;IAMZ,OAAO,CAAC,WAAW;IAgBnB,kEAAkE;IAClE,OAAO,CAAC,SAAS;IA4HjB,OAAO,CAAC,gBAAgB;CA+CzB;AAYD,YAAY,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"mas-agent.d.ts","sourceRoot":"","sources":["../src/mas-agent.ts"],"names":[],"mappings":"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"}