@brainpilot/runtime 0.0.8 → 0.0.10

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 (80) hide show
  1. package/dist/agent-error.d.ts.map +1 -1
  2. package/dist/agent-error.js +10 -3
  3. package/dist/agent-error.js.map +1 -1
  4. package/dist/events.d.ts +18 -1
  5. package/dist/events.d.ts.map +1 -1
  6. package/dist/events.js +16 -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/index.d.ts +1 -0
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +1 -0
  19. package/dist/index.js.map +1 -1
  20. package/dist/mas-agent.d.ts +2 -0
  21. package/dist/mas-agent.d.ts.map +1 -1
  22. package/dist/mas-agent.js +54 -3
  23. package/dist/mas-agent.js.map +1 -1
  24. package/dist/mcp-bridge.d.ts +21 -0
  25. package/dist/mcp-bridge.d.ts.map +1 -1
  26. package/dist/mcp-bridge.js +31 -1
  27. package/dist/mcp-bridge.js.map +1 -1
  28. package/dist/personas.d.ts.map +1 -1
  29. package/dist/personas.js +66 -14
  30. package/dist/personas.js.map +1 -1
  31. package/dist/platform.d.ts +32 -0
  32. package/dist/platform.d.ts.map +1 -0
  33. package/dist/platform.js +33 -0
  34. package/dist/platform.js.map +1 -0
  35. package/dist/server.d.ts +0 -12
  36. package/dist/server.d.ts.map +1 -1
  37. package/dist/server.js +27 -11
  38. package/dist/server.js.map +1 -1
  39. package/dist/session-manager.d.ts +50 -3
  40. package/dist/session-manager.d.ts.map +1 -1
  41. package/dist/session-manager.js +162 -36
  42. package/dist/session-manager.js.map +1 -1
  43. package/dist/tools/kb/paths.d.ts +24 -0
  44. package/dist/tools/kb/paths.d.ts.map +1 -0
  45. package/dist/tools/kb/paths.js +69 -0
  46. package/dist/tools/kb/paths.js.map +1 -0
  47. package/dist/tools/kb/python.d.ts +2 -0
  48. package/dist/tools/kb/python.d.ts.map +1 -0
  49. package/dist/tools/kb/python.js +42 -0
  50. package/dist/tools/kb/python.js.map +1 -0
  51. package/dist/tools/kb/retrieve.d.ts +20 -0
  52. package/dist/tools/kb/retrieve.d.ts.map +1 -0
  53. package/dist/tools/kb/retrieve.js +122 -0
  54. package/dist/tools/kb/retrieve.js.map +1 -0
  55. package/dist/tools/kb/search-papers.d.ts +39 -0
  56. package/dist/tools/kb/search-papers.d.ts.map +1 -0
  57. package/dist/tools/kb/search-papers.js +188 -0
  58. package/dist/tools/kb/search-papers.js.map +1 -0
  59. package/dist/tools/kb/sidecar.d.ts +11 -0
  60. package/dist/tools/kb/sidecar.d.ts.map +1 -0
  61. package/dist/tools/kb/sidecar.js +161 -0
  62. package/dist/tools/kb/sidecar.js.map +1 -0
  63. package/dist/tools/kb/store.d.ts +45 -0
  64. package/dist/tools/kb/store.d.ts.map +1 -0
  65. package/dist/tools/kb/store.js +157 -0
  66. package/dist/tools/kb/store.js.map +1 -0
  67. package/dist/tools/kb/tools.d.ts +24 -0
  68. package/dist/tools/kb/tools.d.ts.map +1 -0
  69. package/dist/tools/kb/tools.js +192 -0
  70. package/dist/tools/kb/tools.js.map +1 -0
  71. package/dist/tools/skill-search.d.ts +8 -1
  72. package/dist/tools/skill-search.d.ts.map +1 -1
  73. package/dist/tools/skill-search.js +54 -12
  74. package/dist/tools/skill-search.js.map +1 -1
  75. package/dist/tools/system-tools.d.ts.map +1 -1
  76. package/dist/tools/system-tools.js +41 -6
  77. package/dist/tools/system-tools.js.map +1 -1
  78. package/dist/types.d.ts +16 -0
  79. package/dist/types.d.ts.map +1 -1
  80. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"agent-error.d.ts","sourceRoot":"","sources":["../src/agent-error.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,8EAA8E;AAC9E,MAAM,WAAW,oBAAoB;IACnC,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,OAAO,CAAC;AAiBnD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAK9D;AAuGD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,CAMrE"}
1
+ {"version":3,"file":"agent-error.d.ts","sourceRoot":"","sources":["../src/agent-error.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,8EAA8E;AAC9E,MAAM,WAAW,oBAAoB;IACnC,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,OAAO,CAAC;AAiBnD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAK9D;AA8GD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,CAMrE"}
@@ -124,6 +124,12 @@ function pickMessage(obj) {
124
124
  * keeping its semantic content. Best-effort — drops lines that are purely an
125
125
  * absolute node_modules doc path or a `/login` hint, and scrubs any inline
126
126
  * absolute path that reaches into node_modules.
127
+ *
128
+ * Cross-platform (#157): the path separator class allows BOTH `/` and `\`, and
129
+ * the leading anchor optionally accepts a Windows drive prefix (`C:\…`). The
130
+ * original POSIX-only regex hardcoded forward slashes, so a native Windows path
131
+ * like `C:\Users\alice\…\node_modules\@pkg\docs\providers.md` slipped through
132
+ * verbatim and leaked the username into the chat bubble + events.jsonl.
127
133
  */
128
134
  function redact(raw) {
129
135
  return raw
@@ -133,13 +139,14 @@ function redact(raw) {
133
139
  if (/use \/login/i.test(t))
134
140
  return false;
135
141
  // A line that is just an absolute path into node_modules (doc pointer).
136
- if (/^\/?\S*node_modules\/\S+$/.test(t))
142
+ // Allows a Windows drive prefix and either separator style.
143
+ if (/^(?:[A-Za-z]:)?[\\/]?\S*node_modules[\\/]\S+$/.test(t))
137
144
  return false;
138
145
  return true;
139
146
  })
140
147
  .map((line) =>
141
- // Scrub any remaining inline absolute node_modules path.
142
- line.replace(/\/\S*node_modules\/\S+/g, "").trimEnd())
148
+ // Scrub any remaining inline absolute node_modules path (POSIX or Windows).
149
+ line.replace(/(?:[A-Za-z]:)?[\\/]\S*node_modules[\\/]\S+/g, "").trimEnd())
143
150
  .join("\n")
144
151
  .replace(/\n{2,}/g, "\n")
145
152
  .trim();
@@ -1 +1 @@
1
- {"version":3,"file":"agent-error.js","sourceRoot":"","sources":["../src/agent-error.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAmBH;;;;GAIG;AACH,MAAM,QAAQ,GACZ,iIAAiI,CAAC;AAEpI;;;GAGG;AACH,MAAM,YAAY,GAChB,oKAAoK,CAAC;AAEvK;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,IAAI,CAAC,GAAG;QAAE,OAAO,WAAW,CAAC;IAC7B,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IACvC,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,WAAW,CAAC;IAC/C,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,iEAAiE;AACjE,MAAM,mBAAmB,GACvB,kDAAkD,CAAC;AAErD,2EAA2E;AAC3E,SAAS,iBAAiB,CAAC,GAAW;IACpC,OAAO,sEAAsE,CAAC,IAAI,CAChF,GAAG,CACJ,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,kBAAkB,CAAC,GAAW;IACrC,2EAA2E;IAC3E,wEAAwE;IACxE,sEAAsE;IACtE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACzC,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC3C,IAAI,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACzB,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpB,IAAI,WAAW,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC9C,sEAAsE;IACtE,+EAA+E;IAC/E,IAAI,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;QAAE,WAAW,GAAG,SAAS,CAAC;IAErE,MAAM,QAAQ,GAAG,WAAW;QAC1B,CAAC,CAAC,kBAAkB,MAAM,MAAM,WAAW,EAAE;QAC7C,CAAC,CAAC,uBAAuB,MAAM,YAAY,CAAC;IAE9C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;AACpD,CAAC;AAED;;;;GAIG;AACH,SAAS,sBAAsB,CAAC,GAAW;IACzC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,IAAI,KAAK;QAAE,OAAO,SAAS,CAAC;IACjE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAY,CAAC;QAC7D,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC7B,OAAO,GAAG,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,GAAY;IAC/B,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACtD,MAAM,CAAC,GAAG,GAA8B,CAAC;IACzC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,OAAO,CAAC;IACpD,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC;IACpB,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IACxC,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,CAAC,GAAG,GAA8B,CAAC;QACzC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC,OAAO,CAAC;IACtD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,SAAS,MAAM,CAAC,GAAW;IACzB,OAAO,GAAG;SACP,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACf,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACtB,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACzC,wEAAwE;QACxE,IAAI,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;IACZ,yDAAyD;IACzD,IAAI,CAAC,OAAO,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CACtD;SACA,IAAI,CAAC,IAAI,CAAC;SACV,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC;SACxB,IAAI,EAAE,CAAC;AACZ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAClC,IAAI,iBAAiB,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;IACpE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"agent-error.js","sourceRoot":"","sources":["../src/agent-error.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;
@@ -58,6 +58,23 @@ export declare const ev: {
58
58
  recoverable?: boolean;
59
59
  }): AgUiEvent;
60
60
  custom(ctx: Ctx, name: string, value: unknown): AgUiEvent;
61
+ /**
62
+ * Pi SDK auto/manual compaction — the runtime translates Pi's internal
63
+ * `compaction_start` / `compaction_end` events onto the AG-UI CUSTOM channel
64
+ * so clients can render a "context being compacted" indicator instead of
65
+ * silently seeing the assistant's history collapse. Wire form:
66
+ * { type:"CUSTOM", name:"compaction", value: { op:"start", reason, ... } }
67
+ */
68
+ compactionStart(ctx: Ctx, reason: CompactionReason): AgUiEvent;
69
+ compactionEnd(ctx: Ctx, v: {
70
+ reason: CompactionReason;
71
+ aborted: boolean;
72
+ willRetry: boolean;
73
+ errorMessage?: string;
74
+ tokensBefore?: number;
75
+ estimatedTokensAfter?: number;
76
+ firstKeptEntryId?: string;
77
+ }): AgUiEvent;
61
78
  };
62
79
  export {};
63
80
  //# 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,CAAA;KAAE,GACjE,SAAS;gBAYA,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
  }
@@ -147,5 +148,20 @@ export const ev = {
147
148
  custom(ctx, name, value) {
148
149
  return { type: "CUSTOM", ...envelope(ctx), name, value };
149
150
  },
151
+ /**
152
+ * Pi SDK auto/manual compaction — the runtime translates Pi's internal
153
+ * `compaction_start` / `compaction_end` events onto the AG-UI CUSTOM channel
154
+ * so clients can render a "context being compacted" indicator instead of
155
+ * silently seeing the assistant's history collapse. Wire form:
156
+ * { type:"CUSTOM", name:"compaction", value: { op:"start", reason, ... } }
157
+ */
158
+ compactionStart(ctx, reason) {
159
+ const value = { op: "start", reason };
160
+ return { type: "CUSTOM", ...envelope(ctx), name: CUSTOM_EVENT.COMPACTION, value };
161
+ },
162
+ compactionEnd(ctx, v) {
163
+ const value = { op: "end", ...v };
164
+ return { type: "CUSTOM", ...envelope(ctx), name: CUSTOM_EVENT.COMPACTION, value };
165
+ },
150
166
  };
151
167
  //# 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":"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"}
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":"AA0DA,0EAA0E;AAC1E,SAAS,YAAY,CAAC,CAAe;IACnC,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC;IACxB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;YAC5B,OAAO,CAAC,CAAC,UAAU,KAAK,OAAO,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC;QAChE,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAYD;;;;;;GAMG;AACH,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,0EAA0E;IAC1E,gFAAgF;IAChF,+EAA+E;IAC/E,6EAA6E;IAC7E,6EAA6E;IAC7E,MAAM;IACN,MAAM;IACN,MAAM;IACN,IAAI;IACJ,MAAM;IACN,4BAA4B;IAC5B,cAAc;IACd,eAAe;IACf,cAAc;IACd,cAAc;IACd,UAAU;IACV,iBAAiB;CAClB,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,IAAY,EAAU,EAAE,CAAC,mBAAmB,IAAI,KAAK,IAAI,oBAAoB,CAAC;AAEzG,MAAM,cAAc,GAAG,GAAG,CACxB,OAAO,EACP,sEAAsE;IACpE,sEAAsE,CACzE,CAAC;AACF,MAAM,qBAAqB,GAAG,GAAG,CAC/B,OAAO,EACP,4FAA4F;IAC1F,2EAA2E,CAC9E,CAAC;AACF,MAAM,eAAe,GAAG,GAAG,CACzB,QAAQ,EACR,6BAA6B;IAC3B,gEAAgE;IAChE,+CAA+C,CAClD,CAAC;AACF,MAAM,iBAAiB,GAAG,GAAG,CAC3B,UAAU,EACV,gGAAgG,CACjG,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAuB;IAC1D,OAAO,CAAC,EAAE,EAAE,EAAE;QACZ,2EAA2E;QAC3E,6EAA6E;QAC7E,6EAA6E;QAC7E,0EAA0E;QAC1E,6EAA6E;QAC7E,2EAA2E;QAC3E,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,0EAA0E;QAC1E,mEAAmE;QACnE,IAAI,kBAAkB,GAAG,KAAK,CAAC;QAE/B,6EAA6E;QAC7E,6EAA6E;QAC7E,uEAAuE;QACvE,8EAA8E;QAC9E,6EAA6E;QAC7E,4EAA4E;QAC5E,0EAA0E;QAC1E,6EAA6E;QAC7E,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,IAAI,mBAAmB,GAAG,CAAC,CAAC;QAE5B,EAAE,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;YACxB,MAAM,GAAG,KAAK,CAAC;YACf,OAAO,GAAG,KAAK,CAAC;YAChB,SAAS,GAAG,KAAK,CAAC;YAClB,kBAAkB,GAAG,KAAK,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,oEAAoE;QACpE,4EAA4E;QAC5E,kEAAkE;QAElE,EAAE,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,CAAC,EAAE,EAAE;YAChC,IAAI,CAAC,CAAC,OAAO;gBAAE,OAAO,CAAC,oDAAoD;YAC3E,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;YACrB,IAAI,CAAC,KAAK,cAAc,IAAI,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC;gBAAE,MAAM,GAAG,IAAI,CAAC;YACxE,IAAI,CAAC,KAAK,cAAc;gBAAE,OAAO,GAAG,IAAI,CAAC;YACzC,IAAI,CAAC,KAAK,cAAc;gBAAE,SAAS,GAAG,IAAI,CAAC;YAC3C,oEAAoE;YACpE,0EAA0E;YAC1E,yEAAyE;YACzE,uEAAuE;YACvE,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBAAE,kBAAkB,GAAG,IAAI,CAAC;QACrG,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;YACvB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;gBAAE,OAAO,CAAC,qCAAqC;YAExE,uEAAuE;YACvE,4EAA4E;YAC5E,2EAA2E;YAC3E,2EAA2E;YAC3E,IAAI,YAAY,CAAC,CAAC,CAAC;gBAAE,OAAO;YAE5B,0EAA0E;YAC1E,sDAAsD;YACtD,wEAAwE;YACxE,wCAAwC;YACxC,mEAAmE;YACnE,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC;YAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,OAAO,CAAC;YAExD,yEAAyE;YACzE,kBAAkB;YAClB,IAAI,CAAC,SAAS;gBAAE,gBAAgB,GAAG,CAAC,CAAC;YACrC,IAAI,CAAC,SAAS;gBAAE,gBAAgB,GAAG,CAAC,CAAC;YAErC,MAAM,QAAQ,GAAG,SAAS,IAAI,gBAAgB,GAAG,CAAC,CAAC;YACnD,MAAM,QAAQ,GAAG,SAAS,IAAI,gBAAgB,GAAG,CAAC,CAAC;YAEnD,wEAAwE;YACxE,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;gBACzB,gBAAgB,EAAE,CAAC;gBACnB,gBAAgB,EAAE,CAAC;gBACnB,EAAE,CAAC,eAAe,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;gBAC/D,OAAO;YACT,CAAC;YACD,IAAI,QAAQ,EAAE,CAAC;gBACb,gBAAgB,EAAE,CAAC;gBACnB,EAAE,CAAC,eAAe,CAAC,qBAAqB,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;gBACrE,OAAO;YACT,CAAC;YACD,IAAI,QAAQ,EAAE,CAAC;gBACb,gBAAgB,EAAE,CAAC;gBACnB,EAAE,CAAC,eAAe,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;gBAC9D,OAAO;YACT,CAAC;YAED,0EAA0E;YAC1E,uEAAuE;YACvE,sEAAsE;YACtE,yEAAyE;YACzE,6DAA6D;YAC7D,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,kBAAkB,IAAI,CAAC,SAAS,IAAI,mBAAmB,GAAG,CAAC,EAAE,CAAC;gBAC7F,mBAAmB,EAAE,CAAC;gBACtB,EAAE,CAAC,eAAe,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;gBACjE,OAAO;YACT,CAAC;YAED,2EAA2E;YAC3E,mCAAmC;YACnC,kEAAkE;YAClE,+DAA+D;YAC/D,oEAAoE;YACpE,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5B,gBAAgB,GAAG,CAAC,CAAC;YACvB,CAAC;YACD,IAAI,SAAS,EAAE,CAAC;gBACd,gBAAgB,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -25,5 +25,6 @@ export { McpBridge, loadMcpServersConfig, defaultMcpConnect } from "./mcp-bridge
25
25
  export type { McpServersConfig, McpServerSpec, McpClientLike, McpConnectFn } from "./mcp-bridge.js";
26
26
  export { materializeSkills, resolveBundledSkillsDir } from "./materialize-skills.js";
27
27
  export type { MaterializeSkillsResult } from "./materialize-skills.js";
28
+ export { isWindows, isMacOS, isLinux, gracefulSignalsSupported } from "./platform.js";
28
29
  export type { AgentRole, IAgentSession, AgentSessionFactory, PiAgentEvent, PiAssistantMessageEvent, SystemTool, SystemToolResult, EventListener, } from "./types.js";
29
30
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,YAAY,wBAAwB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EACL,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EACL,QAAQ,EACR,qBAAqB,EACrB,UAAU,GACX,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACxD,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACrF,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpG,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACrF,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEvE,YAAY,EACV,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,uBAAuB,EACvB,UAAU,EACV,gBAAgB,EAChB,aAAa,GACd,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,YAAY,wBAAwB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EACL,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EACL,QAAQ,EACR,qBAAqB,EACrB,UAAU,GACX,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACxD,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACrF,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpG,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACrF,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEvE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEtF,YAAY,EACV,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,uBAAuB,EACvB,UAAU,EACV,gBAAgB,EAChB,aAAa,GACd,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -18,4 +18,5 @@ export { PERSONAS, BUILTIN_PERSONA_NAMES, personaFor, } from "./personas.js";
18
18
  export { createServer, startServer } from "./server.js";
19
19
  export { McpBridge, loadMcpServersConfig, defaultMcpConnect } from "./mcp-bridge.js";
20
20
  export { materializeSkills, resolveBundledSkillsDir } from "./materialize-skills.js";
21
+ export { isWindows, isMacOS, isLinux, gracefulSignalsSupported } from "./platform.js";
21
22
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,qBAAqB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EACL,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,QAAQ,EACR,qBAAqB,EACrB,UAAU,GACX,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGxD,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGrF,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,qBAAqB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EACL,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,QAAQ,EACR,qBAAqB,EACrB,UAAU,GACX,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGxD,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGrF,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAGrF,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC"}
@@ -118,6 +118,8 @@ export declare class MasAgent {
118
118
  */
119
119
  abort(): Promise<void>;
120
120
  stop(): void;
121
+ /** Emit a compaction-related system_message with the agent tag pre-filled. */
122
+ private emitCompactionSystemMessage;
121
123
  private recordError;
122
124
  /** Translate one Pi event into zero or more AG-UI events (§6). */
123
125
  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":"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,8EAA8E;IAC9E,OAAO,CAAC,2BAA2B;IAMnC,OAAO,CAAC,WAAW;IAgBnB,kEAAkE;IAClE,OAAO,CAAC,SAAS;IA0KjB,OAAO,CAAC,gBAAgB;CA+CzB;AAuBD,YAAY,EAAE,SAAS,EAAE,CAAC"}