@tianshu-ai/tianshu 0.64.0 → 0.65.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/node_modules/@tianshu-ai/plugin-sdk/package.json +1 -1
  2. package/package.json +9 -9
  3. package/packages/plugin-sdk/package.json +1 -1
  4. package/packages/server/dist/chat/active-harnesses.d.ts +17 -6
  5. package/packages/server/dist/chat/active-harnesses.d.ts.map +1 -1
  6. package/packages/server/dist/chat/active-harnesses.js +6 -6
  7. package/packages/server/dist/chat/active-harnesses.js.map +1 -1
  8. package/packages/server/dist/chat/agent-loop.d.ts.map +1 -1
  9. package/packages/server/dist/chat/agent-loop.js +112 -57
  10. package/packages/server/dist/chat/agent-loop.js.map +1 -1
  11. package/packages/server/dist/chat/compact-decision.d.ts +6 -2
  12. package/packages/server/dist/chat/compact-decision.d.ts.map +1 -1
  13. package/packages/server/dist/chat/compact-decision.js +30 -15
  14. package/packages/server/dist/chat/compact-decision.js.map +1 -1
  15. package/packages/server/dist/chat/handler.d.ts.map +1 -1
  16. package/packages/server/dist/chat/handler.js +297 -115
  17. package/packages/server/dist/chat/handler.js.map +1 -1
  18. package/packages/server/dist/chat/host-tools.d.ts +5 -1
  19. package/packages/server/dist/chat/host-tools.d.ts.map +1 -1
  20. package/packages/server/dist/chat/host-tools.js +5 -0
  21. package/packages/server/dist/chat/host-tools.js.map +1 -1
  22. package/packages/server/dist/chat/progressive-history.d.ts +24 -12
  23. package/packages/server/dist/chat/progressive-history.d.ts.map +1 -1
  24. package/packages/server/dist/chat/progressive-history.js +92 -86
  25. package/packages/server/dist/chat/progressive-history.js.map +1 -1
  26. package/packages/server/dist/chat/session-inbox.d.ts.map +1 -1
  27. package/packages/server/dist/chat/session-inbox.js +5 -3
  28. package/packages/server/dist/chat/session-inbox.js.map +1 -1
  29. package/packages/server/dist/chat/sqlite-session-repo.d.ts +21 -8
  30. package/packages/server/dist/chat/sqlite-session-repo.d.ts.map +1 -1
  31. package/packages/server/dist/chat/sqlite-session-repo.js +136 -76
  32. package/packages/server/dist/chat/sqlite-session-repo.js.map +1 -1
  33. package/packages/server/dist/chat/sqlite-session-storage.d.ts +13 -11
  34. package/packages/server/dist/chat/sqlite-session-storage.d.ts.map +1 -1
  35. package/packages/server/dist/chat/sqlite-session-storage.js +27 -21
  36. package/packages/server/dist/chat/sqlite-session-storage.js.map +1 -1
  37. package/packages/server/dist/chat/sqlite-storage.d.ts +31 -0
  38. package/packages/server/dist/chat/sqlite-storage.d.ts.map +1 -0
  39. package/packages/server/dist/chat/sqlite-storage.js +609 -0
  40. package/packages/server/dist/chat/sqlite-storage.js.map +1 -0
  41. package/packages/server/dist/chat/stub-execution-env.d.ts.map +1 -1
  42. package/packages/server/dist/chat/stub-execution-env.js +10 -0
  43. package/packages/server/dist/chat/stub-execution-env.js.map +1 -1
  44. package/packages/server/dist/chat/ws-protocol.js +8 -2
  45. package/packages/server/dist/chat/ws-protocol.js.map +1 -1
  46. package/packages/server/dist/core/migrations/015-pi-storage-v2.d.ts +4 -0
  47. package/packages/server/dist/core/migrations/015-pi-storage-v2.d.ts.map +1 -0
  48. package/packages/server/dist/core/migrations/015-pi-storage-v2.js +147 -0
  49. package/packages/server/dist/core/migrations/015-pi-storage-v2.js.map +1 -0
  50. package/packages/server/dist/core/migrations/016-toolresult-to-tool.d.ts +4 -0
  51. package/packages/server/dist/core/migrations/016-toolresult-to-tool.d.ts.map +1 -0
  52. package/packages/server/dist/core/migrations/016-toolresult-to-tool.js +32 -0
  53. package/packages/server/dist/core/migrations/016-toolresult-to-tool.js.map +1 -0
  54. package/packages/server/dist/core/migrations/index.d.ts.map +1 -1
  55. package/packages/server/dist/core/migrations/index.js +7 -0
  56. package/packages/server/dist/core/migrations/index.js.map +1 -1
  57. package/packages/server/dist/core/pi-models.d.ts +7 -0
  58. package/packages/server/dist/core/pi-models.d.ts.map +1 -1
  59. package/packages/server/dist/core/pi-models.js +60 -1
  60. package/packages/server/dist/core/pi-models.js.map +1 -1
  61. package/packages/server/package.json +3 -3
  62. package/packages/web/dist/assets/{DataSourceConfigForm-Bqv5gcLV.js → DataSourceConfigForm-Z8nbAGTn.js} +1 -1
  63. package/packages/web/dist/assets/{bundle-web-BnKFy6cq.js → bundle-web-BD-4HiDx.js} +1 -1
  64. package/packages/web/dist/assets/index-sNjG7p-K.js +273 -0
  65. package/packages/web/dist/assets/{react-force-graph-2d-BDKPaz8J.js → react-force-graph-2d-DL58tQmv.js} +1 -1
  66. package/packages/web/dist/index.html +1 -1
  67. package/packages/web/package.json +3 -3
  68. package/plugins/board/dist/server.js +898 -704
  69. package/plugins/board/dist/server.js.map +4 -4
  70. package/plugins/board/package.json +2 -2
  71. package/plugins/cron/dist/server.js +898 -704
  72. package/plugins/cron/dist/server.js.map +4 -4
  73. package/plugins/cron/package.json +2 -2
  74. package/plugins/files/package.json +2 -2
  75. package/plugins/microsandbox/dist/server.js +2011 -930
  76. package/plugins/microsandbox/dist/server.js.map +4 -4
  77. package/plugins/microsandbox/package.json +3 -3
  78. package/plugins/openshell/package.json +2 -2
  79. package/plugins/wechat/package.json +2 -2
  80. package/plugins/wiki/dist/server.js +898 -704
  81. package/plugins/wiki/dist/server.js.map +4 -4
  82. package/plugins/wiki/package.json +2 -2
  83. package/plugins/workboard/package.json +2 -2
  84. package/plugins/workforce-studio/package.json +2 -2
  85. package/packages/web/dist/assets/index-BRPuhuQp.js +0 -273
@@ -26,7 +26,7 @@
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/node": "^26.1.1",
29
- "@types/react": "^19.2.18",
29
+ "@types/react": "^19.3.0",
30
30
  "typescript": "^7.0.2",
31
31
  "vitest": "^5.0.1"
32
32
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tianshu-ai/tianshu",
3
- "version": "0.64.0",
3
+ "version": "0.65.1",
4
4
  "description": "An open AI agent platform with a sidecar browser. Built in public.",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://github.com/tianshu-ai/tianshu",
@@ -69,8 +69,8 @@
69
69
  "dependencies": {
70
70
  "@andresaya/edge-tts": "^1.8.0",
71
71
  "@clack/prompts": "^1.5.1",
72
- "@earendil-works/pi-agent-core": "0.82.1",
73
- "@earendil-works/pi-ai": "0.82.1",
72
+ "@earendil-works/pi-agent-core": "^0.87.1",
73
+ "@earendil-works/pi-ai": "^0.87.1",
74
74
  "@modelcontextprotocol/sdk": "^1.29.0",
75
75
  "@tianshu-ai/plugin-sdk": "*",
76
76
  "better-sqlite3": "^13.0.3",
@@ -78,17 +78,17 @@
78
78
  "dotenv": "^17.4.2",
79
79
  "express": "^5.1.0",
80
80
  "fast-glob": "^3.3.3",
81
+ "ffmpeg-static": "^5.2.0",
82
+ "mysql2": "^3.14.0",
83
+ "neo4j-driver": "^5.28.1",
81
84
  "sharp": "^0.35.1",
82
85
  "sqlite-vec": "^0.1.9",
86
+ "tar-fs": "^3.0.9",
87
+ "unbzip2-stream": "^1.4.3",
83
88
  "vscode-jsonrpc": "^9.0.0",
84
89
  "vscode-languageserver-protocol": "^3.18.0",
85
90
  "vscode-languageserver-types": "^3.18.0",
86
- "ws": "^8.18.0",
87
- "neo4j-driver": "^5.28.1",
88
- "mysql2": "^3.14.0",
89
- "unbzip2-stream": "^1.4.3",
90
- "tar-fs": "^3.0.9",
91
- "ffmpeg-static": "^5.2.0"
91
+ "ws": "^8.18.0"
92
92
  },
93
93
  "bundleDependencies": [
94
94
  "@tianshu-ai/plugin-sdk"
@@ -26,7 +26,7 @@
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/node": "^26.1.1",
29
- "@types/react": "^19.2.18",
29
+ "@types/react": "^19.3.0",
30
30
  "typescript": "^7.0.2",
31
31
  "vitest": "^5.0.1"
32
32
  },
@@ -1,18 +1,29 @@
1
- import type { AgentHarness } from "@earendil-works/pi-agent-core";
1
+ import type { AgentHarness, AgentLane, Context } from "@earendil-works/pi-agent-core";
2
2
  import type { ServerMsg } from "./ws-protocol.js";
3
+ /**
4
+ * pi 0.85 split lane-scoped ops (prompt/abort/waitForIdle/followUp/
5
+ * compact) off the harness onto AgentLane. The session-inbox needs
6
+ * `lane.followUp(msg, images, context)`, so the registry stores the
7
+ * three-tuple {harness, lane, context} instead of just the harness.
8
+ */
9
+ export interface ActiveHarnessEntry {
10
+ harness: AgentHarness;
11
+ lane: AgentLane;
12
+ context: Context;
13
+ }
3
14
  /**
4
15
  * Register an active harness for a session. Returns a thunk the
5
16
  * caller MUST run when the harness is no longer reachable (turn
6
17
  * complete, abort, exception path).
7
18
  */
8
- export declare function registerActiveHarness(sessionId: string, harness: AgentHarness): () => void;
19
+ export declare function registerActiveHarness(sessionId: string, entry: ActiveHarnessEntry): () => void;
9
20
  /**
10
- * Look up the active harness for a session, if any. Callers must
11
- * be defensive: even when this returns a value, the harness may
12
- * be in the process of shutting down. Use `harness.followUp(...)`
21
+ * Look up the active harness entry for a session, if any. Callers
22
+ * must be defensive: even when this returns a value, the harness may
23
+ * be in the process of shutting down. Use `entry.lane.followUp(...)`
13
24
  * inside try/catch.
14
25
  */
15
- export declare function getActiveHarness(sessionId: string): AgentHarness | undefined;
26
+ export declare function getActiveHarness(sessionId: string): ActiveHarnessEntry | undefined;
16
27
  /**
17
28
  * Register a `send` thunk for both the user-scoped and
18
29
  * tenant-scoped broadcast channels. handler.ts calls this once
@@ -1 +1 @@
1
- {"version":3,"file":"active-harnesses.d.ts","sourceRoot":"","sources":["../../src/chat/active-harnesses.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAgClD;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,YAAY,GACpB,MAAM,IAAI,CAUZ;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAE5E;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,GAC7B,MAAM,IAAI,CAyBZ;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,CAcpE;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,SAAS,GACb,IAAI,CAcN;AAED,2EAA2E;AAC3E,wBAAgB,qBAAqB,IAAI,IAAI,CAI5C"}
1
+ {"version":3,"file":"active-harnesses.d.ts","sourceRoot":"","sources":["../../src/chat/active-harnesses.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EACV,YAAY,EACZ,SAAS,EACT,OAAO,EACR,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAgCD;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,kBAAkB,GACxB,MAAM,IAAI,CAUZ;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAElF;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,GAC7B,MAAM,IAAI,CAyBZ;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,CAcpE;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,SAAS,GACb,IAAI,CAcN;AAED,2EAA2E;AAC3E,wBAAgB,qBAAqB,IAAI,IAAI,CAI5C"}
@@ -60,21 +60,21 @@ const tenantSendChannels = new Map();
60
60
  * caller MUST run when the harness is no longer reachable (turn
61
61
  * complete, abort, exception path).
62
62
  */
63
- export function registerActiveHarness(sessionId, harness) {
64
- active.set(sessionId, harness);
63
+ export function registerActiveHarness(sessionId, entry) {
64
+ active.set(sessionId, entry);
65
65
  return () => {
66
66
  // Only delete if still pointing at the same instance — guards
67
67
  // against a stale unregister thunk fired after the slot was
68
68
  // re-claimed by a new harness for the same session.
69
- if (active.get(sessionId) === harness) {
69
+ if (active.get(sessionId) === entry) {
70
70
  active.delete(sessionId);
71
71
  }
72
72
  };
73
73
  }
74
74
  /**
75
- * Look up the active harness for a session, if any. Callers must
76
- * be defensive: even when this returns a value, the harness may
77
- * be in the process of shutting down. Use `harness.followUp(...)`
75
+ * Look up the active harness entry for a session, if any. Callers
76
+ * must be defensive: even when this returns a value, the harness may
77
+ * be in the process of shutting down. Use `entry.lane.followUp(...)`
78
78
  * inside try/catch.
79
79
  */
80
80
  export function getActiveHarness(sessionId) {
@@ -1 +1 @@
1
- {"version":3,"file":"active-harnesses.js","sourceRoot":"","sources":["../../src/chat/active-harnesses.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"active-harnesses.js","sourceRoot":"","sources":["../../src/chat/active-harnesses.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../../src/chat/agent-loop.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA4BtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAMlE,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,aAAa,CAAC;IACnB,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC7B,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5B,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC9B,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;oDAEgD;IAChD,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gCAAgC;IAChC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC;;;2CAGuC;IACvC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;yDAGqD;IACrD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;iEAE6D;IAC7D,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,gDAAgD;IAChD,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,QAAQ,CAAC,EAAE;QACT,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,6BAA6B;IAC7B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,iEAAiE;IACjE,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C;0EACsE;IACtE,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,wBAAwB,EAAE,WAAW,KAAK,IAAI,CAAC;IAC9E;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EACF,eAAe,GACf,eAAe,GACf,wBAAwB,GACxB,cAAc,GACd,iBAAiB,GACjB,SAAS,GACT,cAAc,GACd,WAAW,CAAC;CACjB;AAeD,wBAAsB,YAAY,CAChC,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC,eAAe,CAAC,CAooB1B"}
1
+ {"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../../src/chat/agent-loop.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA4BtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAMlE,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,aAAa,CAAC;IACnB,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC7B,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5B,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC9B,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;oDAEgD;IAChD,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gCAAgC;IAChC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC;;;2CAGuC;IACvC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;yDAGqD;IACrD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;iEAE6D;IAC7D,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,gDAAgD;IAChD,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,QAAQ,CAAC,EAAE;QACT,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,6BAA6B;IAC7B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,iEAAiE;IACjE,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C;0EACsE;IACtE,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,wBAAwB,EAAE,WAAW,KAAK,IAAI,CAAC;IAC9E;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EACF,eAAe,GACf,eAAe,GACf,wBAAwB,GACxB,cAAc,GACd,iBAAiB,GACjB,SAAS,GACT,cAAc,GACd,WAAW,CAAC;CACjB;AAeD,wBAAsB,YAAY,CAChC,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC,eAAe,CAAC,CA8sB1B"}
@@ -20,7 +20,7 @@
20
20
  // regular plugin registry, run through `agent-tool-adapter`, and
21
21
  // land in the harness as the same AgentTool[] the chat handler
22
22
  // uses.
23
- import { AgentHarness, } from "@earendil-works/pi-agent-core";
23
+ import { AgentHarness, BACKGROUND_CONTEXT, withAbortSignal, } from "@earendil-works/pi-agent-core";
24
24
  import { buildModel, buildModels, findModel, getDefaultModel, resolveApiKey, } from "../core/index.js";
25
25
  import { buildToolset } from "../tools/index.js";
26
26
  import { dumpSystemPrompt } from "./dump-system-prompt.js";
@@ -47,6 +47,14 @@ const DEFAULT_MAX_RUN_MS = 1_800_000;
47
47
  // the worker shouldn't either.
48
48
  export async function runAgentLoop(req) {
49
49
  const { ctx, userId, initialUserMessage, pluginRegistry, homeDir, signal: externalSignal, } = req;
50
+ // pi 0.85: every harness/lane/session/repo method requires a
51
+ // `Context`. We build it early so the session repo can consume
52
+ // it in open/create below. Cancellation follows the caller's
53
+ // externalSignal; a stricter innerCtl-scoped context is derived
54
+ // downstream once the loop's abort controller exists.
55
+ let piContext = externalSignal
56
+ ? withAbortSignal(externalSignal, BACKGROUND_CONTEXT)
57
+ : BACKGROUND_CONTEXT;
50
58
  const repo = new SqliteSessionRepo(ctx);
51
59
  // Resume vs. fresh:
52
60
  // - When the caller (e.g. workboard's retry path) passes
@@ -71,14 +79,15 @@ export async function runAgentLoop(req) {
71
79
  // session belonging to another tenant.
72
80
  session = await repo.open({
73
81
  id: req.resumeSessionId,
74
- createdAt: new Date(0).toISOString(),
82
+ createdAt: 0,
83
+ storageVersion: 1,
75
84
  tenantId: ctx.tenantId,
76
85
  userId,
77
86
  kind: "worker",
78
87
  workerRole: req.workerRole ?? null,
79
- parentSessionId: req.parentSessionId ?? null,
88
+ parentSessionId: req.parentSessionId ?? undefined,
80
89
  title: req.sessionTitle ?? null,
81
- });
90
+ }, piContext);
82
91
  resumed = true;
83
92
  }
84
93
  catch (err) {
@@ -91,11 +100,11 @@ export async function runAgentLoop(req) {
91
100
  userId,
92
101
  kind: "worker",
93
102
  workerRole: req.workerRole ?? null,
94
- parentSessionId: req.parentSessionId ?? null,
103
+ parentSessionId: req.parentSessionId ?? undefined,
95
104
  title: req.sessionTitle ?? null,
96
- });
105
+ }, piContext);
97
106
  }
98
- const sessionMeta = await session.getMetadata();
107
+ const sessionMeta = session.metadata;
99
108
  // Notify caller of the freshly-created session row so callers
100
109
  // (e.g. the workboard plugin) can link long-running tasks to
101
110
  // their session id before the LLM loop runs. We swallow errors
@@ -222,6 +231,10 @@ export async function runAgentLoop(req) {
222
231
  const innerCtl = new AbortController();
223
232
  const onExternalAbort = () => innerCtl.abort();
224
233
  externalSignal?.addEventListener("abort", onExternalAbort, { once: true });
234
+ // Tighten the context to the loop's inner abort controller now
235
+ // that it exists. innerCtl fires on both externalSignal aborts
236
+ // (via the listener above) and on internal timeouts/turn caps.
237
+ piContext = withAbortSignal(innerCtl.signal, BACKGROUND_CONTEXT);
225
238
  const workerCompactionSettings = {
226
239
  enabled: true, reserveTokens: 16384, keepRecentTokens: 20000, triggerPercent: 80,
227
240
  ...(ctx.config.models?.compaction ?? {}),
@@ -423,10 +436,15 @@ export async function runAgentLoop(req) {
423
436
  return;
424
437
  }
425
438
  }, TICK_MS);
426
- // pi 0.80: harness resolves auth via a `Models` instance instead of
427
- // the old `getApiKeyAndHeaders` callback. See core/pi-models.ts.
428
- const harness = new AgentHarness({
439
+ // pi 0.85: `AgentHarness` is no longer a class — use the static
440
+ // `AgentHarness.create(options, context)` factory. It returns
441
+ // `{ harness, open }`; we ignore the `open` operations list
442
+ // because we start fresh on each call.
443
+ const { harness } = await AgentHarness.create({
429
444
  session,
445
+ // pi 0.85 typed AgentHarnessTool[] more strictly than our
446
+ // adapter yields; a runtime cast is safe here because our
447
+ // AgentTool shape matches AgentHarnessTool structurally.
430
448
  tools: adapted.tools,
431
449
  systemPrompt,
432
450
  model: piModel,
@@ -435,11 +453,18 @@ export async function runAgentLoop(req) {
435
453
  reResolveApiKey: () => resolveApiKey(modelInfo),
436
454
  onRetry: req.onModelRetry,
437
455
  }),
438
- });
456
+ }, piContext);
457
+ // pi 0.85: all lane-scoped operations (prompt/abort/waitForIdle)
458
+ // are on the AgentLane, not the harness. We use one default lane
459
+ // named "main" for the whole worker session; tianshu doesn't need
460
+ // multiple lanes yet.
461
+ const lane = await harness.lane("main", piContext);
439
462
  // Bind compact_context deferred ref.
440
463
  const workerCompactRef = getCompactRef(workerHostTools);
441
464
  workerCompactRef.piSession = session;
442
465
  workerCompactRef.harness = harness;
466
+ workerCompactRef.lane = lane;
467
+ workerCompactRef.context = piContext;
443
468
  // Watch harness events for two purposes:
444
469
  // 1. Reset the watchdog whenever something happens (timestamps
445
470
  // drive first-response / idle timeouts below).
@@ -459,43 +484,66 @@ export async function runAgentLoop(req) {
459
484
  // chat path is naturally serial because the turn loop drains
460
485
  // before the next turn_end fires.
461
486
  let compactInFlight = false;
462
- const unsubscribe = harness.subscribe((event) => {
487
+ // pi 0.85: `harness.events.on(type, listener)` replaces
488
+ // `harness.subscribe(fn)`. Since we only care about turn_end for
489
+ // auto-compact and watchdog activity, subscribe only to that
490
+ // event type. The general "any activity" watchdog reset now hooks
491
+ // more specific events (message_update, tool_start, tool_end).
492
+ const unsubscribeTurnEnd = harness.events.on("turn_end", () => {
463
493
  lastEventAt = Date.now();
464
494
  sawAnyEvent = true;
465
- if (event.type === "turn_end") {
466
- assistantTurns += 1;
467
- // Auto-compact for workers: fire-and-forget after every
468
- // assistant turn. Same threshold as the chat path; the
469
- // worker had been stalling on no_completion when a single
470
- // task accumulated >70% of the model's context window
471
- // (e.g. a research worker reading 5 large source files).
472
- // We reach for compact ASAP rather than waiting for the
473
- // next prompt because the worker is autonomously chaining
474
- // turns — if we let context grow until the next call, the
475
- // call itself fails.
476
- if (!compactInFlight && modelInfo.contextWindow) {
477
- compactInFlight = true;
478
- void (async () => {
479
- try {
480
- const r = await tryAutoCompact({
481
- piSession: session,
482
- harness,
483
- contextWindow: modelInfo.contextWindow,
484
- });
485
- if (r.compacted) {
486
- console.log(`[agent-loop] worker auto-compact ran (tokensBefore=${r.tokensBefore})`);
487
- }
488
- else if (r.error) {
489
- console.warn(`[agent-loop] worker auto-compact failed: ${r.error}`);
490
- }
495
+ assistantTurns += 1;
496
+ // Auto-compact for workers: fire-and-forget after every
497
+ // assistant turn. Same threshold as the chat path.
498
+ if (!compactInFlight && modelInfo.contextWindow) {
499
+ compactInFlight = true;
500
+ void (async () => {
501
+ try {
502
+ const r = await tryAutoCompact({
503
+ piSession: session,
504
+ harness,
505
+ lane,
506
+ context: piContext,
507
+ contextWindow: modelInfo.contextWindow,
508
+ });
509
+ if (r.compacted) {
510
+ console.log(`[agent-loop] worker auto-compact ran (tokensBefore=${r.tokensBefore})`);
491
511
  }
492
- finally {
493
- compactInFlight = false;
512
+ else if (r.error) {
513
+ console.warn(`[agent-loop] worker auto-compact failed: ${r.error}`);
494
514
  }
495
- })();
496
- }
515
+ }
516
+ finally {
517
+ compactInFlight = false;
518
+ }
519
+ })();
520
+ }
521
+ });
522
+ // Also watch for general activity to reset the idle watchdog.
523
+ const unsubscribeActivity1 = harness.events.on("message_update", () => {
524
+ lastEventAt = Date.now();
525
+ sawAnyEvent = true;
526
+ });
527
+ // Track task_complete args as they come in on tool_start. pi 0.85
528
+ // dropped `args` from the tool_end event (see harness/agent-
529
+ // harness.d.ts::HarnessEventPayload — tool_end only carries
530
+ // toolCallId/toolName/result/isError/terminate). We used to read
531
+ // e.args on tool_end; that field never existed in 0.85 and made
532
+ // task_complete look like it was never called, so orchestrator
533
+ // would report [no_completion] and re-queue the task.
534
+ const pendingTaskCompleteArgs = new Map();
535
+ const unsubscribeActivity2 = harness.events.on("tool_start", (e) => {
536
+ lastEventAt = Date.now();
537
+ sawAnyEvent = true;
538
+ if (e.toolName === TASK_COMPLETE_TOOL) {
539
+ pendingTaskCompleteArgs.set(e.toolCallId, (e.args ?? {}));
497
540
  }
498
541
  });
542
+ const unsubscribe = () => {
543
+ unsubscribeTurnEnd();
544
+ unsubscribeActivity1();
545
+ unsubscribeActivity2();
546
+ };
499
547
  // Detect task_complete tool calls and capture the agent's args
500
548
  // into completionSink so the post-run code can resolve `done`.
501
549
  //
@@ -507,7 +555,9 @@ export async function runAgentLoop(req) {
507
555
  // call would land in the DB but `completionSink.summary` stayed
508
556
  // undefined, the run terminated as `no_completion`, and the
509
557
  // pool re-queued the task forever.
510
- const unhookToolResult = harness.on("tool_result", (e) => {
558
+ // pi 0.85 renamed "tool_result" → "tool_end" and put it on the
559
+ // main event bus (no separate hook channel).
560
+ const unhookToolResult = harness.events.on("tool_end", (e) => {
511
561
  if (e.toolName !== TASK_COMPLETE_TOOL)
512
562
  return;
513
563
  // task_complete is TERMINAL and captured ONCE. The tool result
@@ -523,7 +573,10 @@ export async function runAgentLoop(req) {
523
573
  // Already captured the terminal call; ignore any stragglers.
524
574
  return undefined;
525
575
  }
526
- const input = e.input;
576
+ // pi 0.85 tool_end carries no args — read the args we cached on
577
+ // the matching tool_start above.
578
+ const input = pendingTaskCompleteArgs.get(e.toolCallId) ?? {};
579
+ pendingTaskCompleteArgs.delete(e.toolCallId);
527
580
  if (typeof input.summary === "string") {
528
581
  completionSink.summary = input.summary;
529
582
  }
@@ -537,26 +590,28 @@ export async function runAgentLoop(req) {
537
590
  // looping until it happens to go idle; abort() stops generation
538
591
  // right after the terminal call, so exactly one task_complete
539
592
  // decides the outcome.
540
- try {
541
- harness.abort();
542
- }
543
- catch {
544
- // best-effort; waitForIdle() below still resolves the run.
545
- }
593
+ void (async () => {
594
+ try {
595
+ await lane.abort(piContext);
596
+ }
597
+ catch {
598
+ // best-effort; waitForIdle() below still resolves the run.
599
+ }
600
+ })();
546
601
  return undefined;
547
602
  });
548
603
  let result;
549
604
  try {
550
605
  // Wire the abort signal: when innerCtl aborts (timeout / turn
551
606
  // cap / external), tell the harness.
552
- const onAbort = () => void harness.abort();
607
+ const onAbort = () => void lane.abort(piContext);
553
608
  innerCtl.signal.addEventListener("abort", onAbort, { once: true });
554
- await harness.prompt(initialUserMessage);
609
+ await lane.prompt(initialUserMessage, undefined, piContext);
555
610
  // If aborted, give waitForIdle a grace period then force-resolve.
556
611
  // Without this, a long-running tool call can block abort indefinitely.
557
612
  if (innerCtl.signal.aborted) {
558
613
  await Promise.race([
559
- harness.waitForIdle(),
614
+ lane.waitForIdle(piContext),
560
615
  new Promise((r) => setTimeout(r, 3000)),
561
616
  ]);
562
617
  }
@@ -567,7 +622,7 @@ export async function runAgentLoop(req) {
567
622
  setTimeout(resolve, 3000);
568
623
  }, { once: true });
569
624
  });
570
- await Promise.race([harness.waitForIdle(), abortRace]);
625
+ await Promise.race([lane.waitForIdle(piContext), abortRace]);
571
626
  }
572
627
  if (timedOutReason) {
573
628
  result = {
@@ -609,7 +664,7 @@ export async function runAgentLoop(req) {
609
664
  // (best-effort reading from session). This used to be the
610
665
  // "max_turns" branch when the worker capped turns; now it's
611
666
  // the only "agent quietly gave up" path.
612
- const finalText = await lastAssistantText(session);
667
+ const finalText = await lastAssistantText(session, piContext);
613
668
  result = {
614
669
  status: "stalled",
615
670
  summary: finalText || "agent stopped without calling task_complete",
@@ -659,8 +714,8 @@ export async function runAgentLoop(req) {
659
714
  }
660
715
  return result;
661
716
  }
662
- async function lastAssistantText(session) {
663
- const entries = await session.getEntries();
717
+ async function lastAssistantText(session, context) {
718
+ const entries = await session.findEntries(undefined, context);
664
719
  for (let i = entries.length - 1; i >= 0; i--) {
665
720
  const e = entries[i];
666
721
  if (e.type !== "message")
@@ -1 +1 @@
1
- {"version":3,"file":"agent-loop.js","sourceRoot":"","sources":["../../src/chat/agent-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-loop.js","sourceRoot":"","sources":["../../src/chat/agent-loop.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { AgentHarness, Session as PiSession, type CompactionSettings, type SessionTreeEntry } from "@earendil-works/pi-agent-core";
1
+ import { type AgentHarness, type AgentLane, type CompactionSettings, type Context, type Entry, type Session as PiSession } from "@earendil-works/pi-agent-core";
2
2
  export interface ShouldCompactBranchInput {
3
- branch: SessionTreeEntry[];
3
+ branch: Entry[];
4
4
  contextWindow: number | undefined;
5
5
  settings?: CompactionSettings;
6
6
  }
@@ -25,6 +25,7 @@ export declare function shouldCompactBranch(input: ShouldCompactBranchInput): bo
25
25
  */
26
26
  export declare function branchStillOverWindow(args: {
27
27
  piSession: PiSession;
28
+ context: Context;
28
29
  contextWindow: number | undefined;
29
30
  }): Promise<boolean>;
30
31
  /**
@@ -76,6 +77,9 @@ export interface AutoCompactDecision {
76
77
  export declare function tryAutoCompact(args: {
77
78
  piSession: PiSession;
78
79
  harness: AgentHarness;
80
+ /** pi 0.85: compact() is now on AgentLane, not AgentHarness. */
81
+ lane: AgentLane;
82
+ context: Context;
79
83
  contextWindow: number | undefined;
80
84
  settings?: CompactionSettings;
81
85
  }): Promise<AutoCompactDecision>;
@@ -1 +1 @@
1
- {"version":3,"file":"compact-decision.d.ts","sourceRoot":"","sources":["../../src/chat/compact-decision.ts"],"names":[],"mappings":"AAsBA,OAAO,EACL,YAAY,EAEZ,OAAO,IAAI,SAAS,EAIpB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACtB,MAAM,+BAA+B,CAAC;AAuBvC,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAoBT;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,SAAS,EAAE,SAAS,CAAC;IACrB,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,EACH,WAAW,GACX,iBAAiB,GACjB,oBAAoB,GACpB,OAAO,CAAC;CACb;AAWD,wBAAsB,cAAc,CAAC,IAAI,EAAE;IACzC,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,YAAY,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAgD/B"}
1
+ {"version":3,"file":"compact-decision.d.ts","sourceRoot":"","sources":["../../src/chat/compact-decision.ts"],"names":[],"mappings":"AAsBA,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,SAAS,EAEd,KAAK,kBAAkB,EACvB,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,OAAO,IAAI,SAAS,EAC1B,MAAM,+BAA+B,CAAC;AAuBvC,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAoBT;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC,GAAG,OAAO,CAAC,OAAO,CAAC,CASnB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,EACH,WAAW,GACX,iBAAiB,GACjB,oBAAoB,GACpB,OAAO,CAAC;CACb;AAWD,wBAAsB,cAAc,CAAC,IAAI,EAAE;IACzC,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,YAAY,CAAC;IACtB,gEAAgE;IAChE,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA6D/B"}