pilotswarm-sdk 0.5.64 → 0.5.65

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 (231) hide show
  1. package/dist/activity-routing.d.ts +21 -0
  2. package/dist/activity-routing.d.ts.map +1 -0
  3. package/dist/activity-routing.js +32 -0
  4. package/dist/activity-routing.js.map +1 -0
  5. package/dist/agent-discovery.d.ts +35 -0
  6. package/dist/agent-discovery.d.ts.map +1 -0
  7. package/dist/agent-discovery.js +107 -0
  8. package/dist/agent-discovery.js.map +1 -0
  9. package/dist/client.d.ts +9 -1
  10. package/dist/client.d.ts.map +1 -1
  11. package/dist/client.js +94 -12
  12. package/dist/client.js.map +1 -1
  13. package/dist/managed-session.d.ts.map +1 -1
  14. package/dist/managed-session.js +21 -13
  15. package/dist/managed-session.js.map +1 -1
  16. package/dist/native-subagents.d.ts +1 -1
  17. package/dist/native-subagents.d.ts.map +1 -1
  18. package/dist/native-subagents.js +11 -6
  19. package/dist/native-subagents.js.map +1 -1
  20. package/dist/orchestration/agents.d.ts +8 -3
  21. package/dist/orchestration/agents.d.ts.map +1 -1
  22. package/dist/orchestration/agents.js +87 -36
  23. package/dist/orchestration/agents.js.map +1 -1
  24. package/dist/orchestration/index.d.ts +2 -2
  25. package/dist/orchestration/index.js +1 -1
  26. package/dist/orchestration/lifecycle.js +1 -1
  27. package/dist/orchestration/lifecycle.js.map +1 -1
  28. package/dist/orchestration/runtime.d.ts +1 -1
  29. package/dist/orchestration/runtime.d.ts.map +1 -1
  30. package/dist/orchestration/runtime.js +18 -4
  31. package/dist/orchestration/runtime.js.map +1 -1
  32. package/dist/orchestration/turn.d.ts.map +1 -1
  33. package/dist/orchestration/turn.js +3 -5
  34. package/dist/orchestration/turn.js.map +1 -1
  35. package/dist/orchestration-registry.d.ts.map +1 -1
  36. package/dist/orchestration-registry.js +12 -2
  37. package/dist/orchestration-registry.js.map +1 -1
  38. package/dist/orchestration-version.d.ts +1 -1
  39. package/dist/orchestration-version.js +1 -1
  40. package/dist/orchestration.d.ts +2 -2
  41. package/dist/orchestration.js +1 -1
  42. package/dist/orchestration_1_0_46.d.ts +1 -1
  43. package/dist/orchestration_1_0_47.d.ts +1 -1
  44. package/dist/orchestration_1_0_48.d.ts +1 -1
  45. package/dist/orchestration_1_0_49.d.ts +1 -1
  46. package/dist/orchestration_1_0_50.d.ts +1 -1
  47. package/dist/orchestration_1_0_73/agents.d.ts +61 -0
  48. package/dist/orchestration_1_0_73/agents.d.ts.map +1 -0
  49. package/dist/orchestration_1_0_73/agents.js +843 -0
  50. package/dist/orchestration_1_0_73/agents.js.map +1 -0
  51. package/dist/orchestration_1_0_73/index.d.ts +24 -0
  52. package/dist/orchestration_1_0_73/index.d.ts.map +1 -0
  53. package/dist/orchestration_1_0_73/index.js +13 -0
  54. package/dist/orchestration_1_0_73/index.js.map +1 -0
  55. package/dist/orchestration_1_0_73/lifecycle.d.ts +51 -0
  56. package/dist/orchestration_1_0_73/lifecycle.d.ts.map +1 -0
  57. package/dist/orchestration_1_0_73/lifecycle.js +981 -0
  58. package/dist/orchestration_1_0_73/lifecycle.js.map +1 -0
  59. package/dist/orchestration_1_0_73/queue.d.ts +20 -0
  60. package/dist/orchestration_1_0_73/queue.d.ts.map +1 -0
  61. package/dist/orchestration_1_0_73/queue.js +894 -0
  62. package/dist/orchestration_1_0_73/queue.js.map +1 -0
  63. package/dist/orchestration_1_0_73/runtime.d.ts +31 -0
  64. package/dist/orchestration_1_0_73/runtime.d.ts.map +1 -0
  65. package/dist/orchestration_1_0_73/runtime.js +230 -0
  66. package/dist/orchestration_1_0_73/runtime.js.map +1 -0
  67. package/dist/orchestration_1_0_73/state.d.ts +214 -0
  68. package/dist/orchestration_1_0_73/state.d.ts.map +1 -0
  69. package/dist/orchestration_1_0_73/state.js +178 -0
  70. package/dist/orchestration_1_0_73/state.js.map +1 -0
  71. package/dist/orchestration_1_0_73/turn.d.ts +34 -0
  72. package/dist/orchestration_1_0_73/turn.d.ts.map +1 -0
  73. package/dist/orchestration_1_0_73/turn.js +1435 -0
  74. package/dist/orchestration_1_0_73/turn.js.map +1 -0
  75. package/dist/orchestration_1_0_73/utils.d.ts +39 -0
  76. package/dist/orchestration_1_0_73/utils.d.ts.map +1 -0
  77. package/dist/orchestration_1_0_73/utils.js +322 -0
  78. package/dist/orchestration_1_0_73/utils.js.map +1 -0
  79. package/dist/orchestration_1_0_74/agents.d.ts +61 -0
  80. package/dist/orchestration_1_0_74/agents.d.ts.map +1 -0
  81. package/dist/orchestration_1_0_74/agents.js +889 -0
  82. package/dist/orchestration_1_0_74/agents.js.map +1 -0
  83. package/dist/orchestration_1_0_74/index.d.ts +24 -0
  84. package/dist/orchestration_1_0_74/index.d.ts.map +1 -0
  85. package/dist/orchestration_1_0_74/index.js +13 -0
  86. package/dist/orchestration_1_0_74/index.js.map +1 -0
  87. package/dist/orchestration_1_0_74/lifecycle.d.ts +51 -0
  88. package/dist/orchestration_1_0_74/lifecycle.d.ts.map +1 -0
  89. package/dist/orchestration_1_0_74/lifecycle.js +981 -0
  90. package/dist/orchestration_1_0_74/lifecycle.js.map +1 -0
  91. package/dist/orchestration_1_0_74/queue.d.ts +20 -0
  92. package/dist/orchestration_1_0_74/queue.d.ts.map +1 -0
  93. package/dist/orchestration_1_0_74/queue.js +894 -0
  94. package/dist/orchestration_1_0_74/queue.js.map +1 -0
  95. package/dist/orchestration_1_0_74/runtime.d.ts +31 -0
  96. package/dist/orchestration_1_0_74/runtime.d.ts.map +1 -0
  97. package/dist/orchestration_1_0_74/runtime.js +232 -0
  98. package/dist/orchestration_1_0_74/runtime.js.map +1 -0
  99. package/dist/orchestration_1_0_74/state.d.ts +214 -0
  100. package/dist/orchestration_1_0_74/state.d.ts.map +1 -0
  101. package/dist/orchestration_1_0_74/state.js +178 -0
  102. package/dist/orchestration_1_0_74/state.js.map +1 -0
  103. package/dist/orchestration_1_0_74/turn.d.ts +34 -0
  104. package/dist/orchestration_1_0_74/turn.d.ts.map +1 -0
  105. package/dist/orchestration_1_0_74/turn.js +1435 -0
  106. package/dist/orchestration_1_0_74/turn.js.map +1 -0
  107. package/dist/orchestration_1_0_74/utils.d.ts +39 -0
  108. package/dist/orchestration_1_0_74/utils.d.ts.map +1 -0
  109. package/dist/orchestration_1_0_74/utils.js +322 -0
  110. package/dist/orchestration_1_0_74/utils.js.map +1 -0
  111. package/dist/orchestration_1_0_75/agents.d.ts +61 -0
  112. package/dist/orchestration_1_0_75/agents.d.ts.map +1 -0
  113. package/dist/orchestration_1_0_75/agents.js +887 -0
  114. package/dist/orchestration_1_0_75/agents.js.map +1 -0
  115. package/dist/orchestration_1_0_75/index.d.ts +24 -0
  116. package/dist/orchestration_1_0_75/index.d.ts.map +1 -0
  117. package/dist/orchestration_1_0_75/index.js +13 -0
  118. package/dist/orchestration_1_0_75/index.js.map +1 -0
  119. package/dist/orchestration_1_0_75/lifecycle.d.ts +51 -0
  120. package/dist/orchestration_1_0_75/lifecycle.d.ts.map +1 -0
  121. package/dist/orchestration_1_0_75/lifecycle.js +981 -0
  122. package/dist/orchestration_1_0_75/lifecycle.js.map +1 -0
  123. package/dist/orchestration_1_0_75/queue.d.ts +20 -0
  124. package/dist/orchestration_1_0_75/queue.d.ts.map +1 -0
  125. package/dist/orchestration_1_0_75/queue.js +894 -0
  126. package/dist/orchestration_1_0_75/queue.js.map +1 -0
  127. package/dist/orchestration_1_0_75/runtime.d.ts +31 -0
  128. package/dist/orchestration_1_0_75/runtime.d.ts.map +1 -0
  129. package/dist/orchestration_1_0_75/runtime.js +239 -0
  130. package/dist/orchestration_1_0_75/runtime.js.map +1 -0
  131. package/dist/orchestration_1_0_75/state.d.ts +214 -0
  132. package/dist/orchestration_1_0_75/state.d.ts.map +1 -0
  133. package/dist/orchestration_1_0_75/state.js +178 -0
  134. package/dist/orchestration_1_0_75/state.js.map +1 -0
  135. package/dist/orchestration_1_0_75/turn.d.ts +34 -0
  136. package/dist/orchestration_1_0_75/turn.d.ts.map +1 -0
  137. package/dist/orchestration_1_0_75/turn.js +1435 -0
  138. package/dist/orchestration_1_0_75/turn.js.map +1 -0
  139. package/dist/orchestration_1_0_75/utils.d.ts +39 -0
  140. package/dist/orchestration_1_0_75/utils.d.ts.map +1 -0
  141. package/dist/orchestration_1_0_75/utils.js +322 -0
  142. package/dist/orchestration_1_0_75/utils.js.map +1 -0
  143. package/dist/orchestration_1_0_76/agents.d.ts +61 -0
  144. package/dist/orchestration_1_0_76/agents.d.ts.map +1 -0
  145. package/dist/orchestration_1_0_76/agents.js +865 -0
  146. package/dist/orchestration_1_0_76/agents.js.map +1 -0
  147. package/dist/orchestration_1_0_76/index.d.ts +24 -0
  148. package/dist/orchestration_1_0_76/index.d.ts.map +1 -0
  149. package/dist/orchestration_1_0_76/index.js +13 -0
  150. package/dist/orchestration_1_0_76/index.js.map +1 -0
  151. package/dist/orchestration_1_0_76/lifecycle.d.ts +51 -0
  152. package/dist/orchestration_1_0_76/lifecycle.d.ts.map +1 -0
  153. package/dist/orchestration_1_0_76/lifecycle.js +981 -0
  154. package/dist/orchestration_1_0_76/lifecycle.js.map +1 -0
  155. package/dist/orchestration_1_0_76/queue.d.ts +20 -0
  156. package/dist/orchestration_1_0_76/queue.d.ts.map +1 -0
  157. package/dist/orchestration_1_0_76/queue.js +894 -0
  158. package/dist/orchestration_1_0_76/queue.js.map +1 -0
  159. package/dist/orchestration_1_0_76/runtime.d.ts +31 -0
  160. package/dist/orchestration_1_0_76/runtime.d.ts.map +1 -0
  161. package/dist/orchestration_1_0_76/runtime.js +239 -0
  162. package/dist/orchestration_1_0_76/runtime.js.map +1 -0
  163. package/dist/orchestration_1_0_76/state.d.ts +214 -0
  164. package/dist/orchestration_1_0_76/state.d.ts.map +1 -0
  165. package/dist/orchestration_1_0_76/state.js +178 -0
  166. package/dist/orchestration_1_0_76/state.js.map +1 -0
  167. package/dist/orchestration_1_0_76/turn.d.ts +34 -0
  168. package/dist/orchestration_1_0_76/turn.d.ts.map +1 -0
  169. package/dist/orchestration_1_0_76/turn.js +1435 -0
  170. package/dist/orchestration_1_0_76/turn.js.map +1 -0
  171. package/dist/orchestration_1_0_76/utils.d.ts +39 -0
  172. package/dist/orchestration_1_0_76/utils.d.ts.map +1 -0
  173. package/dist/orchestration_1_0_76/utils.js +322 -0
  174. package/dist/orchestration_1_0_76/utils.js.map +1 -0
  175. package/dist/orchestration_1_0_77/agents.d.ts +66 -0
  176. package/dist/orchestration_1_0_77/agents.d.ts.map +1 -0
  177. package/dist/orchestration_1_0_77/agents.js +895 -0
  178. package/dist/orchestration_1_0_77/agents.js.map +1 -0
  179. package/dist/orchestration_1_0_77/index.d.ts +24 -0
  180. package/dist/orchestration_1_0_77/index.d.ts.map +1 -0
  181. package/dist/orchestration_1_0_77/index.js +13 -0
  182. package/dist/orchestration_1_0_77/index.js.map +1 -0
  183. package/dist/orchestration_1_0_77/lifecycle.d.ts +51 -0
  184. package/dist/orchestration_1_0_77/lifecycle.d.ts.map +1 -0
  185. package/dist/orchestration_1_0_77/lifecycle.js +981 -0
  186. package/dist/orchestration_1_0_77/lifecycle.js.map +1 -0
  187. package/dist/orchestration_1_0_77/queue.d.ts +20 -0
  188. package/dist/orchestration_1_0_77/queue.d.ts.map +1 -0
  189. package/dist/orchestration_1_0_77/queue.js +894 -0
  190. package/dist/orchestration_1_0_77/queue.js.map +1 -0
  191. package/dist/orchestration_1_0_77/runtime.d.ts +31 -0
  192. package/dist/orchestration_1_0_77/runtime.d.ts.map +1 -0
  193. package/dist/orchestration_1_0_77/runtime.js +239 -0
  194. package/dist/orchestration_1_0_77/runtime.js.map +1 -0
  195. package/dist/orchestration_1_0_77/state.d.ts +214 -0
  196. package/dist/orchestration_1_0_77/state.d.ts.map +1 -0
  197. package/dist/orchestration_1_0_77/state.js +178 -0
  198. package/dist/orchestration_1_0_77/state.js.map +1 -0
  199. package/dist/orchestration_1_0_77/turn.d.ts +34 -0
  200. package/dist/orchestration_1_0_77/turn.d.ts.map +1 -0
  201. package/dist/orchestration_1_0_77/turn.js +1433 -0
  202. package/dist/orchestration_1_0_77/turn.js.map +1 -0
  203. package/dist/orchestration_1_0_77/utils.d.ts +39 -0
  204. package/dist/orchestration_1_0_77/utils.d.ts.map +1 -0
  205. package/dist/orchestration_1_0_77/utils.js +322 -0
  206. package/dist/orchestration_1_0_77/utils.js.map +1 -0
  207. package/dist/reserved-tool-names.d.ts +5 -0
  208. package/dist/reserved-tool-names.d.ts.map +1 -0
  209. package/dist/reserved-tool-names.js +102 -0
  210. package/dist/reserved-tool-names.js.map +1 -0
  211. package/dist/session-manager.d.ts +25 -1
  212. package/dist/session-manager.d.ts.map +1 -1
  213. package/dist/session-manager.js +275 -93
  214. package/dist/session-manager.js.map +1 -1
  215. package/dist/session-proxy.d.ts +28 -3
  216. package/dist/session-proxy.d.ts.map +1 -1
  217. package/dist/session-proxy.js +174 -70
  218. package/dist/session-proxy.js.map +1 -1
  219. package/dist/session-store.d.ts +2 -0
  220. package/dist/session-store.d.ts.map +1 -1
  221. package/dist/session-store.js +18 -2
  222. package/dist/session-store.js.map +1 -1
  223. package/dist/types.d.ts +17 -3
  224. package/dist/types.d.ts.map +1 -1
  225. package/dist/types.js.map +1 -1
  226. package/dist/worker.d.ts +9 -3
  227. package/dist/worker.d.ts.map +1 -1
  228. package/dist/worker.js +110 -99
  229. package/dist/worker.js.map +1 -1
  230. package/package.json +4 -3
  231. package/plugins/system/agents/default.agent.md +4 -3
@@ -0,0 +1,21 @@
1
+ /** Capability routing for the complete named-agent handoff contract.
2
+ *
3
+ * Old orchestration callers omit this contract and retain their exact activity
4
+ * names, inputs and descriptors. Orchestrations 1.0.75 and later opt into it.
5
+ */
6
+ export declare const AGENT_HANDOFF_CAPABILITY = "pilotswarm.agent-handoff.v2";
7
+ export type ActivityRoutingContract = "agent-handoff-v2";
8
+ export declare const HANDOFF_ACTIVITY_NAMES: {
9
+ readonly runTurn: "runTurnV3";
10
+ readonly runTurn2: "runTurnEpochV3";
11
+ readonly resolveAgentConfig: "resolveAgentConfigV2";
12
+ readonly resolveAgentForRequiredTool: "resolveAgentForRequiredToolV2";
13
+ readonly spawnChildSession: "spawnChildSessionV2";
14
+ readonly getSessionStatus: "getSessionStatusV2";
15
+ readonly listChildSessions: "listChildSessionsV2";
16
+ };
17
+ export declare function routedActivityName(name: keyof typeof HANDOFF_ACTIVITY_NAMES, contract?: ActivityRoutingContract): string;
18
+ export declare function routeHandoffActivity(task: any, contract?: ActivityRoutingContract): any;
19
+ /** Retain legacy handlers for already-scheduled work while registering the new contract. */
20
+ export declare function registerHandoffActivity(runtime: any, name: keyof typeof HANDOFF_ACTIVITY_NAMES, handler: any, versionedHandler?: any): void;
21
+ //# sourceMappingURL=activity-routing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-routing.d.ts","sourceRoot":"","sources":["../src/activity-routing.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,gCAAgC,CAAC;AACtE,MAAM,MAAM,uBAAuB,GAAG,kBAAkB,CAAC;AACzD,eAAO,MAAM,sBAAsB;;;;;;;;CAQzB,CAAC;AAEX,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,OAAO,sBAAsB,EAAE,QAAQ,CAAC,EAAE,uBAAuB,GAAG,MAAM,CAExH;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,uBAAuB,GAAG,GAAG,CAMvF;AAED,4FAA4F;AAC5F,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,OAAO,sBAAsB,EAAE,OAAO,EAAE,GAAG,EAAE,gBAAgB,MAAU,GAAG,IAAI,CAG/I"}
@@ -0,0 +1,32 @@
1
+ /** Capability routing for the complete named-agent handoff contract.
2
+ *
3
+ * Old orchestration callers omit this contract and retain their exact activity
4
+ * names, inputs and descriptors. Orchestrations 1.0.75 and later opt into it.
5
+ */
6
+ export const AGENT_HANDOFF_CAPABILITY = "pilotswarm.agent-handoff.v2";
7
+ export const HANDOFF_ACTIVITY_NAMES = {
8
+ runTurn: "runTurnV3",
9
+ runTurn2: "runTurnEpochV3",
10
+ resolveAgentConfig: "resolveAgentConfigV2",
11
+ resolveAgentForRequiredTool: "resolveAgentForRequiredToolV2",
12
+ spawnChildSession: "spawnChildSessionV2",
13
+ getSessionStatus: "getSessionStatusV2",
14
+ listChildSessions: "listChildSessionsV2",
15
+ };
16
+ export function routedActivityName(name, contract) {
17
+ return contract ? HANDOFF_ACTIVITY_NAMES[name] : name;
18
+ }
19
+ export function routeHandoffActivity(task, contract) {
20
+ if (!contract)
21
+ return task;
22
+ if (typeof task.withTag !== "function") {
23
+ throw new Error("Agent handoff requires Duroxide activity tag routing support");
24
+ }
25
+ return task.withTag(AGENT_HANDOFF_CAPABILITY);
26
+ }
27
+ /** Retain legacy handlers for already-scheduled work while registering the new contract. */
28
+ export function registerHandoffActivity(runtime, name, handler, versionedHandler = handler) {
29
+ runtime.registerActivity(name, handler);
30
+ runtime.registerActivity(HANDOFF_ACTIVITY_NAMES[name], versionedHandler);
31
+ }
32
+ //# sourceMappingURL=activity-routing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-routing.js","sourceRoot":"","sources":["../src/activity-routing.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,6BAA6B,CAAC;AAEtE,MAAM,CAAC,MAAM,sBAAsB,GAAG;IAClC,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,gBAAgB;IAC1B,kBAAkB,EAAE,sBAAsB;IAC1C,2BAA2B,EAAE,+BAA+B;IAC5D,iBAAiB,EAAE,qBAAqB;IACxC,gBAAgB,EAAE,oBAAoB;IACtC,iBAAiB,EAAE,qBAAqB;CAClC,CAAC;AAEX,MAAM,UAAU,kBAAkB,CAAC,IAAyC,EAAE,QAAkC;IAC5G,OAAO,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAS,EAAE,QAAkC;IAC9E,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAClD,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,uBAAuB,CAAC,OAAY,EAAE,IAAyC,EAAE,OAAY,EAAE,gBAAgB,GAAG,OAAO;IACrI,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACxC,OAAO,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC,CAAC;AAC7E,CAAC"}
@@ -0,0 +1,35 @@
1
+ /** A selectable blueprint, with metadata from exactly the copy spawning binds. */
2
+ export interface AgentDiscoveryEntry {
3
+ /** Pass this reference unchanged to spawn_agent. */
4
+ agent_name: string;
5
+ name: string;
6
+ qualifiedName: string;
7
+ namespace: string | null;
8
+ description: string | null;
9
+ tools: string[];
10
+ skills: string[];
11
+ /** Server names only. Connection details and credentials are never listed. */
12
+ mcpServers: string[];
13
+ initialRequiredTool: string | null;
14
+ source: "static" | "published";
15
+ scope: "cluster" | "user";
16
+ system: boolean;
17
+ creatable: boolean;
18
+ id: string | null;
19
+ parent: string | null;
20
+ }
21
+ export declare function listAgentDefinitionsForCaller(opts: {
22
+ userAgents: any[];
23
+ systemAgents?: any[];
24
+ getCallerOwnerKey: () => Promise<string | null>;
25
+ systemOnly?: boolean;
26
+ }): Promise<AgentDiscoveryEntry[]>;
27
+ /** Live getters keep discovery consistent with worker package polling. */
28
+ export declare function createAgentDiscoveryTool(opts: {
29
+ getUserAgents: () => any[];
30
+ getSystemAgents: () => any[];
31
+ getCallerOwnerKey: (durableSessionId?: string) => Promise<string | null>;
32
+ }): import("@github/copilot-sdk").Tool<{
33
+ systemOnly?: boolean;
34
+ }>;
35
+ //# sourceMappingURL=agent-discovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-discovery.d.ts","sourceRoot":"","sources":["../src/agent-discovery.ts"],"names":[],"mappings":"AAGA,kFAAkF;AAClF,MAAM,WAAW,mBAAmB;IAChC,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,8EAA8E;IAC9E,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,MAAM,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC/B,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,wBAAsB,6BAA6B,CAAC,IAAI,EAAE;IACtD,UAAU,EAAE,GAAG,EAAE,CAAC;IAClB,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC;IACrB,iBAAiB,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAChD,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAqEjC;AAED,0EAA0E;AAC1E,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC3C,aAAa,EAAE,MAAM,GAAG,EAAE,CAAC;IAC3B,eAAe,EAAE,MAAM,GAAG,EAAE,CAAC;IAC7B,iBAAiB,EAAE,CAAC,gBAAgB,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC5E;iBAgB4C,OAAO;GAUnD"}
@@ -0,0 +1,107 @@
1
+ import { defineTool } from "@github/copilot-sdk";
2
+ import { resolveAgentDefinitionForCaller } from "./session-proxy.js";
3
+ export async function listAgentDefinitionsForCaller(opts) {
4
+ // Snapshot the arrays: worker package refresh mutates them in place while
5
+ // owner lookup awaits the catalog. A listing must use one coherent set.
6
+ const userAgents = [...opts.userAgents];
7
+ const systemAgents = [...(opts.systemAgents ?? [])];
8
+ let ownerKey;
9
+ const getCallerOwnerKey = () => ownerKey ??= Promise.resolve()
10
+ .then(opts.getCallerOwnerKey).catch(() => null);
11
+ const candidates = [];
12
+ for (const candidate of opts.systemOnly ? systemAgents : userAgents) {
13
+ // Do not even generate aliases from invisible metadata. A foreign
14
+ // name can fuzzy-match a public role; returning that reference would
15
+ // disclose the foreign name despite selecting a public definition.
16
+ const visible = await resolveAgentDefinitionForCaller({
17
+ agentName: candidate.name,
18
+ userAgents: opts.systemOnly ? [] : [candidate],
19
+ systemAgents: opts.systemOnly ? [candidate] : [],
20
+ getCallerOwnerKey,
21
+ });
22
+ if (visible)
23
+ candidates.push(candidate);
24
+ }
25
+ const references = new Set();
26
+ for (const agent of candidates) {
27
+ if (!agent.name)
28
+ continue;
29
+ references.add(agent.name);
30
+ if (agent.namespace)
31
+ references.add(`${agent.namespace}:${agent.name}`);
32
+ if (agent.packageScope !== "user")
33
+ references.add(`__shared:${agent.name}`);
34
+ }
35
+ // IDs are existing resolver aliases. They can reach a public copy hidden
36
+ // behind both an own-copy shadow and another namespace's same-name role.
37
+ for (const agent of candidates) {
38
+ if (!agent.id)
39
+ continue;
40
+ references.add(agent.id);
41
+ if (agent.packageScope !== "user")
42
+ references.add(`__shared:${agent.id}`);
43
+ }
44
+ const seen = new Set();
45
+ const entries = [];
46
+ for (const agentName of references) {
47
+ const resolved = await resolveAgentDefinitionForCaller({
48
+ agentName, userAgents: opts.systemOnly ? [] : userAgents, systemAgents, getCallerOwnerKey,
49
+ });
50
+ if (!resolved || (opts.systemOnly ? resolved.creatable !== false : resolved.creatable === false))
51
+ continue;
52
+ const selected = candidates.find(agent => agent.name === resolved.name
53
+ && agent.packageId === resolved.packageId
54
+ && agent.namespace === resolved.namespace
55
+ && agent.prompt === resolved.prompt);
56
+ if (!selected || seen.has(selected))
57
+ continue;
58
+ seen.add(selected);
59
+ entries.push({
60
+ agent_name: agentName,
61
+ name: resolved.name,
62
+ qualifiedName: agentName,
63
+ namespace: resolved.namespace ?? null,
64
+ description: selected.description || null,
65
+ tools: [...(resolved.tools ?? [])],
66
+ skills: [...(selected.skills ?? [])],
67
+ mcpServers: Array.isArray(selected.mcpServers)
68
+ ? [...selected.mcpServers] : Object.keys(selected.mcpServers ?? {}),
69
+ initialRequiredTool: resolved.initialRequiredTool ?? null,
70
+ source: resolved.packageId ? "published" : "static",
71
+ scope: resolved.packageScope === "user" ? "user" : "cluster",
72
+ system: resolved.system === true,
73
+ creatable: resolved.creatable !== false,
74
+ id: resolved.id ?? null,
75
+ parent: resolved.parent ?? null,
76
+ });
77
+ }
78
+ return entries.sort((a, b) => a.name.localeCompare(b.name) || a.agent_name.localeCompare(b.agent_name));
79
+ }
80
+ /** Live getters keep discovery consistent with worker package polling. */
81
+ export function createAgentDiscoveryTool(opts) {
82
+ return defineTool("ps_list_agents", {
83
+ description: "Discover the named agent blueprints available to this session: static deployment agents and enabled published agents visible to its owner. " +
84
+ "Before choosing a generic child or native task, inspect this list if you do not already have an adequate current catalog. " +
85
+ "Match the job to each role's description, declared tools, skills and source access; pass its exact agent_name to spawn_agent with task for the assignment. " +
86
+ "A named agent loads its own instructions, tools and startup requirement. Tools listed here are declarations; session defaults may also apply. " +
87
+ "If no listed specialist fits, choose the appropriate generic or native delegation. " +
88
+ "These are blueprints, not running children; use check_agents for children already spawned. " +
89
+ "systemOnly is for inspecting worker-managed definitions, which cannot be spawned.",
90
+ parameters: {
91
+ type: "object",
92
+ properties: {
93
+ systemOnly: { type: "boolean", description: "Inspect worker-managed definitions only. These are not spawn targets. Default false." },
94
+ },
95
+ },
96
+ handler: async (args, invocation) => {
97
+ const agents = await listAgentDefinitionsForCaller({
98
+ userAgents: opts.getUserAgents(),
99
+ systemAgents: opts.getSystemAgents(),
100
+ getCallerOwnerKey: () => opts.getCallerOwnerKey(invocation?.durableSessionId),
101
+ systemOnly: args.systemOnly === true,
102
+ });
103
+ return JSON.stringify({ agents, total: agents.length }, null, 2);
104
+ },
105
+ });
106
+ }
107
+ //# sourceMappingURL=agent-discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-discovery.js","sourceRoot":"","sources":["../src/agent-discovery.ts"],"names":[],"mappings":"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"}
package/dist/client.d.ts CHANGED
@@ -136,6 +136,12 @@ export declare class PilotSwarmClient {
136
136
  start(): Promise<void>;
137
137
  private _resolveCreationModel;
138
138
  stop(): Promise<void>;
139
+ /**
140
+ * Creation and first send may land on different API processes. Restore the
141
+ * child boundary from durable lineage before starting an orchestration;
142
+ * otherwise the child silently becomes a root with a reset nesting budget.
143
+ */
144
+ private _restoreLineageForStart;
139
145
  /** @internal — ensure orchestration exists, update CMS, enqueue prompt. */
140
146
  private _ensureOrchestrationAndSend;
141
147
  /** @internal */
@@ -162,7 +168,9 @@ export declare class PilotSwarmClient {
162
168
  /** @internal */
163
169
  private _getLatestResponse;
164
170
  /** @internal */
165
- _getSessionInfo(sessionId: string): Promise<PilotSwarmSessionInfo>;
171
+ _getSessionInfo(sessionId: string, options?: {
172
+ includeResultSource?: boolean;
173
+ }): Promise<PilotSwarmSessionInfo>;
166
174
  /** @internal */
167
175
  private _waitForTurnResult;
168
176
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -13,6 +13,7 @@ import { createRequire } from "node:module";
13
13
  const require = createRequire(import.meta.url);
14
14
  const { SqliteProvider, Client } = require("duroxide");
15
15
  const WAIT_POLL_SLICE_MS = 10_000;
16
+ const MAX_SESSION_LINEAGE_HOPS = 128;
16
17
  function createAbortError(message, reason) {
17
18
  if (reason instanceof Error)
18
19
  return reason;
@@ -70,6 +71,11 @@ export function projectSerializableSessionConfig(fullConfig, fallbackWaitThresho
70
71
  workingDirectory: fullConfig?.workingDirectory,
71
72
  waitThreshold: fullConfig?.waitThreshold ?? fallbackWaitThreshold,
72
73
  boundAgentName: fullConfig?.boundAgentName,
74
+ boundAgentPackageId: fullConfig?.boundAgentPackageId,
75
+ boundAgentSource: fullConfig?.boundAgentSource,
76
+ ...(fullConfig?.namedAgentToolAdditions !== undefined
77
+ ? { namedAgentToolAdditions: fullConfig.namedAgentToolAdditions } : {}),
78
+ detachedPackageToolPolicy: fullConfig?.detachedPackageToolPolicy,
73
79
  promptLayering: fullConfig?.promptLayering,
74
80
  childContract: fullConfig?.childContract,
75
81
  toolNames: allNames.length ? allNames : undefined,
@@ -155,6 +161,13 @@ export class PilotSwarmClient {
155
161
  contextTier: resolvedConfig.contextTier,
156
162
  systemMessage: resolvedConfig.systemMessage,
157
163
  boundAgentName: resolvedConfig.boundAgentName,
164
+ boundAgentPackageId: resolvedConfig.boundAgentPackageId,
165
+ boundAgentSource: resolvedConfig.boundAgentSource,
166
+ ...(!isSubAgent && (resolvedConfig.boundAgentName || agentId) ? {
167
+ namedAgentToolAdditions: resolvedConfig.namedAgentToolAdditions
168
+ ?? projectSerializableSessionConfig(resolvedConfig, undefined).toolNames ?? [],
169
+ } : {}),
170
+ detachedPackageToolPolicy: resolvedConfig.detachedPackageToolPolicy,
158
171
  promptLayering: resolvedConfig.promptLayering,
159
172
  childContract: resolvedConfig.childContract,
160
173
  tools: resolvedConfig.tools,
@@ -177,11 +190,15 @@ export class PilotSwarmClient {
177
190
  contextTier: resolvedConfig.contextTier ?? undefined,
178
191
  modelResolutionSource: resolved?.source,
179
192
  parentSessionId: config?.parentSessionId,
193
+ ...(agentId ? { agentId } : {}),
180
194
  owner: config?.owner ?? null,
181
195
  groupId: config?.groupId ?? null,
182
196
  visibility: config?.visibility ?? null,
183
197
  creationConfig: configForRow
184
- ? JSON.parse(JSON.stringify(projectSerializableSessionConfig(configForRow, this.config.waitThreshold)))
198
+ ? {
199
+ ...JSON.parse(JSON.stringify(projectSerializableSessionConfig(configForRow, this.config.waitThreshold))),
200
+ ...(config?.nestingLevel !== undefined ? { bootstrapNestingLevel: config.nestingLevel } : {}),
201
+ }
185
202
  : null,
186
203
  });
187
204
  if (resolved) {
@@ -554,6 +571,50 @@ export class PilotSwarmClient {
554
571
  this.started = false;
555
572
  }
556
573
  // ─── Internal ────────────────────────────────────────────
574
+ /**
575
+ * Creation and first send may land on different API processes. Restore the
576
+ * child boundary from durable lineage before starting an orchestration;
577
+ * otherwise the child silently becomes a root with a reset nesting budget.
578
+ */
579
+ async _restoreLineageForStart(sessionId, row, bootstrapNestingLevel) {
580
+ const invalid = (detail) => Object.assign(new Error(`Cannot restore session lineage for "${sessionId}": ${detail}`), { code: "SESSION_LINEAGE_INVALID" });
581
+ if (!row)
582
+ throw invalid("the session is missing from the catalog.");
583
+ const parentSessionId = row.parentSessionId || undefined;
584
+ const visited = new Set([sessionId]);
585
+ let current = row;
586
+ let depth = 0;
587
+ while (current.parentSessionId) {
588
+ const parentId = current.parentSessionId;
589
+ if (visited.has(parentId))
590
+ throw invalid(`a parent cycle includes "${parentId}".`);
591
+ if (depth >= MAX_SESSION_LINEAGE_HOPS)
592
+ throw invalid(`the parent chain exceeds ${MAX_SESSION_LINEAGE_HOPS} hops.`);
593
+ visited.add(parentId);
594
+ const parent = await this._catalog.getSession(parentId);
595
+ if (!parent)
596
+ throw invalid(`parent session "${parentId}" is missing from the catalog.`);
597
+ current = parent;
598
+ depth++;
599
+ }
600
+ // Logical depth can differ from physical ancestry (managed system
601
+ // sessions start their own delegation budget). Preserve an explicit
602
+ // create depth across processes; older rows fall back to ancestry.
603
+ if (bootstrapNestingLevel !== undefined
604
+ && (typeof bootstrapNestingLevel !== "number" || !Number.isSafeInteger(bootstrapNestingLevel) || bootstrapNestingLevel < 0)) {
605
+ throw invalid("the stored bootstrap nesting level must be a non-negative integer.");
606
+ }
607
+ const nestingLevel = this.nestingLevels.get(sessionId) ?? bootstrapNestingLevel ?? depth;
608
+ if (!Number.isSafeInteger(nestingLevel) || nestingLevel < 0) {
609
+ throw invalid("the explicit nesting level must be a non-negative integer.");
610
+ }
611
+ if (parentSessionId)
612
+ this.parentSessionIds.set(sessionId, parentSessionId);
613
+ else
614
+ this.parentSessionIds.delete(sessionId);
615
+ this.nestingLevels.set(sessionId, nestingLevel);
616
+ return { parentSessionId, nestingLevel };
617
+ }
557
618
  /** @internal — ensure orchestration exists, update CMS, enqueue prompt. */
558
619
  async _ensureOrchestrationAndSend(sessionId, prompt, opts) {
559
620
  if (!this.duroxideClient)
@@ -585,12 +646,21 @@ export class PilotSwarmClient {
585
646
  // waitThreshold must inherit the row's creation-time value, not this
586
647
  // process's default. The default applies only if neither side set it.
587
648
  let serializableConfig;
649
+ let bootstrapNestingLevel;
588
650
  trace(`[client] ensureOrchestrationAndSend start session=${sessionId} active=${this.activeOrchestrations.has(sessionId)}`);
589
651
  const cmsRow = await this._catalog.getSession(sessionId);
590
652
  {
591
653
  const stored = this._catalog.getSessionCreationConfig
592
- ? await this._catalog.getSessionCreationConfig(sessionId).catch(() => null)
654
+ ? await this._catalog.getSessionCreationConfig(sessionId).catch(error => {
655
+ // Missing legacy metadata is supported; an unreadable start
656
+ // record cannot silently reset a persisted delegation budget.
657
+ if (!this.activeOrchestrations.has(sessionId))
658
+ throw error;
659
+ return null;
660
+ })
593
661
  : null;
662
+ const { bootstrapNestingLevel: storedDepth, ...storedSessionConfig } = stored ?? {};
663
+ bootstrapNestingLevel = storedDepth;
594
664
  if (stored && !fullConfig) {
595
665
  trace(`[client] creation config restored from catalog row (in-memory config miss)`);
596
666
  }
@@ -598,9 +668,16 @@ export class PilotSwarmClient {
598
668
  ? JSON.parse(JSON.stringify(projectSerializableSessionConfig(fullConfig, undefined)))
599
669
  : {};
600
670
  const merged = {
601
- ...(stored ?? {}),
671
+ ...storedSessionConfig,
602
672
  ...overrides,
603
673
  };
674
+ // A partial resume may explicitly replace root tool additions before
675
+ // the first message, while retaining its durable named binding.
676
+ if ((merged.boundAgentName || merged.namedAgentToolAdditions !== undefined) && !cmsRow?.parentSessionId && fullConfig
677
+ && fullConfig.namedAgentToolAdditions === undefined
678
+ && (fullConfig.toolNames !== undefined || fullConfig.tools !== undefined)) {
679
+ merged.namedAgentToolAdditions = overrides.toolNames ?? [];
680
+ }
604
681
  if (merged.waitThreshold == null)
605
682
  merged.waitThreshold = this.config.waitThreshold;
606
683
  serializableConfig = merged;
@@ -629,8 +706,10 @@ export class PilotSwarmClient {
629
706
  }
630
707
  }
631
708
  if (!this.activeOrchestrations.has(sessionId)) {
632
- const parentSessionId = this.parentSessionIds.get(sessionId);
633
- const nestingLevel = this.nestingLevels.get(sessionId);
709
+ const { parentSessionId, nestingLevel } = await this._restoreLineageForStart(sessionId, cmsRow, bootstrapNestingLevel);
710
+ // Explicit local identity keeps its precedence; another process
711
+ // reconstructs the named agent's startup contract from the row.
712
+ const agentId = this.sessionAgentIds.get(sessionId) ?? cmsRow?.agentId;
634
713
  const input = {
635
714
  sessionId,
636
715
  config: serializableConfig,
@@ -650,7 +729,7 @@ export class PilotSwarmClient {
650
729
  ...(parentSessionId ? { parentSessionId } : {}),
651
730
  ...(nestingLevel != null ? { nestingLevel } : {}),
652
731
  ...(this.systemSessions.has(sessionId) ? { isSystem: true } : {}),
653
- ...(this.sessionAgentIds.has(sessionId) ? { agentId: this.sessionAgentIds.get(sessionId) } : {}),
732
+ ...(agentId ? { agentId } : {}),
654
733
  ...(this._sessionPolicy ? { sessionPolicy: this._sessionPolicy } : {}),
655
734
  ...(this._allowedAgentNames.length > 0 ? { allowedAgentNames: this._allowedAgentNames } : {}),
656
735
  };
@@ -758,7 +837,7 @@ export class PilotSwarmClient {
758
837
  }
759
838
  }
760
839
  /** @internal */
761
- async _getSessionInfo(sessionId) {
840
+ async _getSessionInfo(sessionId, options) {
762
841
  const cmsRow = await this._catalog.getSession(sessionId);
763
842
  // Merge with live customStatus for real-time fields
764
843
  const orchestrationId = `session-${sessionId}`;
@@ -852,6 +931,11 @@ export class PilotSwarmClient {
852
931
  const effectiveError = (status === "error" || status === "failed")
853
932
  ? (orchStatus.status === "Failed" ? orchStatus.error : (cmsRow?.lastError ?? undefined))
854
933
  : undefined;
934
+ const completedResponse = customStatus.turnResult?.type === "completed"
935
+ ? customStatus.turnResult
936
+ : latestResponse?.type === "completed" ? latestResponse : undefined;
937
+ const resultSource = completedResponse ? "response"
938
+ : orchStatus.status === "Completed" ? "orchestration" : undefined;
855
939
  return {
856
940
  sessionId,
857
941
  status,
@@ -882,11 +966,9 @@ export class PilotSwarmClient {
882
966
  contextUsage: customStatus?.contextUsage && typeof customStatus.contextUsage === "object"
883
967
  ? customStatus.contextUsage
884
968
  : undefined,
885
- result: customStatus.turnResult?.type === "completed"
886
- ? customStatus.turnResult.content
887
- : latestResponse?.type === "completed"
888
- ? latestResponse.content
889
- : (orchStatus.status === "Completed" ? orchStatus.output : undefined),
969
+ result: completedResponse ? completedResponse.content
970
+ : (orchStatus.status === "Completed" ? orchStatus.output : undefined),
971
+ ...(options?.includeResultSource && resultSource ? { resultSource } : {}),
890
972
  error: effectiveError,
891
973
  };
892
974
  }