pilotswarm-sdk 0.1.28 → 0.1.30

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 (108) hide show
  1. package/dist/agent-loader.d.ts +12 -0
  2. package/dist/agent-loader.d.ts.map +1 -1
  3. package/dist/agent-loader.js +20 -0
  4. package/dist/agent-loader.js.map +1 -1
  5. package/dist/child-notifications.d.ts +76 -0
  6. package/dist/child-notifications.d.ts.map +1 -0
  7. package/dist/child-notifications.js +181 -0
  8. package/dist/child-notifications.js.map +1 -0
  9. package/dist/client.d.ts +4 -1
  10. package/dist/client.d.ts.map +1 -1
  11. package/dist/client.js +42 -8
  12. package/dist/client.js.map +1 -1
  13. package/dist/cms-migrations.d.ts.map +1 -1
  14. package/dist/cms-migrations.js +1333 -0
  15. package/dist/cms-migrations.js.map +1 -1
  16. package/dist/cms.d.ts +210 -3
  17. package/dist/cms.d.ts.map +1 -1
  18. package/dist/cms.js +232 -14
  19. package/dist/cms.js.map +1 -1
  20. package/dist/cron-at.d.ts +100 -0
  21. package/dist/cron-at.d.ts.map +1 -0
  22. package/dist/cron-at.js +414 -0
  23. package/dist/cron-at.js.map +1 -0
  24. package/dist/duroxide-provider-factory.d.ts +23 -0
  25. package/dist/duroxide-provider-factory.d.ts.map +1 -0
  26. package/dist/duroxide-provider-factory.js +38 -0
  27. package/dist/duroxide-provider-factory.js.map +1 -0
  28. package/dist/facts-tools.d.ts +6 -0
  29. package/dist/facts-tools.d.ts.map +1 -1
  30. package/dist/facts-tools.js +31 -3
  31. package/dist/facts-tools.js.map +1 -1
  32. package/dist/index.d.ts +7 -1
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +3 -0
  35. package/dist/index.js.map +1 -1
  36. package/dist/managed-session.d.ts.map +1 -1
  37. package/dist/managed-session.js +425 -28
  38. package/dist/managed-session.js.map +1 -1
  39. package/dist/management-client.d.ts +75 -4
  40. package/dist/management-client.d.ts.map +1 -1
  41. package/dist/management-client.js +348 -34
  42. package/dist/management-client.js.map +1 -1
  43. package/dist/orchestration/agents.d.ts.map +1 -1
  44. package/dist/orchestration/agents.js +16 -4
  45. package/dist/orchestration/agents.js.map +1 -1
  46. package/dist/orchestration/lifecycle.d.ts +5 -1
  47. package/dist/orchestration/lifecycle.d.ts.map +1 -1
  48. package/dist/orchestration/lifecycle.js +62 -7
  49. package/dist/orchestration/lifecycle.js.map +1 -1
  50. package/dist/orchestration/queue.d.ts.map +1 -1
  51. package/dist/orchestration/queue.js +64 -2
  52. package/dist/orchestration/queue.js.map +1 -1
  53. package/dist/orchestration/runtime.js.map +1 -1
  54. package/dist/orchestration/state.d.ts +3 -1
  55. package/dist/orchestration/state.d.ts.map +1 -1
  56. package/dist/orchestration/state.js +1 -0
  57. package/dist/orchestration/state.js.map +1 -1
  58. package/dist/orchestration/turn.d.ts.map +1 -1
  59. package/dist/orchestration/turn.js +152 -15
  60. package/dist/orchestration/turn.js.map +1 -1
  61. package/dist/orchestration.js +1 -1
  62. package/dist/pg-pool-factory.d.ts +48 -9
  63. package/dist/pg-pool-factory.d.ts.map +1 -1
  64. package/dist/pg-pool-factory.js +50 -22
  65. package/dist/pg-pool-factory.js.map +1 -1
  66. package/dist/prompt-layering.d.ts +3 -0
  67. package/dist/prompt-layering.d.ts.map +1 -1
  68. package/dist/prompt-layering.js +17 -1
  69. package/dist/prompt-layering.js.map +1 -1
  70. package/dist/prompt-layers.d.ts +45 -0
  71. package/dist/prompt-layers.d.ts.map +1 -0
  72. package/dist/prompt-layers.js +44 -0
  73. package/dist/prompt-layers.js.map +1 -0
  74. package/dist/session-manager.d.ts +5 -0
  75. package/dist/session-manager.d.ts.map +1 -1
  76. package/dist/session-manager.js +57 -5
  77. package/dist/session-manager.js.map +1 -1
  78. package/dist/session-messages.d.ts +32 -0
  79. package/dist/session-messages.d.ts.map +1 -0
  80. package/dist/session-messages.js +121 -0
  81. package/dist/session-messages.js.map +1 -0
  82. package/dist/session-proxy.d.ts +3 -0
  83. package/dist/session-proxy.d.ts.map +1 -1
  84. package/dist/session-proxy.js +401 -7
  85. package/dist/session-proxy.js.map +1 -1
  86. package/dist/system-agents.d.ts +45 -0
  87. package/dist/system-agents.d.ts.map +1 -0
  88. package/dist/system-agents.js +212 -0
  89. package/dist/system-agents.js.map +1 -0
  90. package/dist/types.d.ts +168 -3
  91. package/dist/types.d.ts.map +1 -1
  92. package/dist/types.js.map +1 -1
  93. package/dist/worker.d.ts +17 -10
  94. package/dist/worker.d.ts.map +1 -1
  95. package/dist/worker.js +73 -131
  96. package/dist/worker.js.map +1 -1
  97. package/package.json +6 -5
  98. package/plugins/mgmt/agents/agent-tuner.agent.md +6 -7
  99. package/plugins/mgmt/agents/facts-manager.agent.md +10 -7
  100. package/plugins/mgmt/agents/pilotswarm.agent.md +6 -10
  101. package/plugins/mgmt/agents/resourcemgr.agent.md +8 -8
  102. package/plugins/mgmt/agents/sweeper.agent.md +5 -3
  103. package/plugins/mgmt/skills/orchestration-session-lifecycle/SKILL.md +8 -8
  104. package/plugins/mgmt/skills/resourcemgr/SKILL.md +3 -3
  105. package/plugins/mgmt/skills/sweeper/SKILL.md +2 -2
  106. package/plugins/system/agents/default.agent.md +27 -7
  107. package/plugins/system/skills/durable-timers/SKILL.md +16 -3
  108. package/plugins/system/skills/sub-agents/SKILL.md +23 -3
@@ -50,6 +50,18 @@ export interface AgentConfig {
50
50
  namespace?: string;
51
51
  /** Internal: identifies which prompt layering path this agent should use. */
52
52
  promptLayerKind?: "app-agent" | "app-system-agent" | "pilotswarm-system-agent";
53
+ /**
54
+ * Frontmatter schema version. Defaults to 1 when the file omits it. Higher integers
55
+ * indicate forward-incompatible frontmatter shapes the loader may reject in the future.
56
+ */
57
+ schemaVersion?: number;
58
+ /**
59
+ * Author-supplied version label for this agent definition. PilotSwarm-authored system
60
+ * agents use SemVer; app authors may use any meaningful non-empty string.
61
+ */
62
+ version?: string;
63
+ /** Absolute path the agent was loaded from, when known. Used for diagnostics. */
64
+ sourcePath?: string;
53
65
  }
54
66
  /**
55
67
  * Load all .agent.md files from a directory and convert to CustomAgentConfig[].
@@ -1 +1 @@
1
- {"version":3,"file":"agent-loader.d.ts","sourceRoot":"","sources":["../src/agent-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAQH;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYpD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAclF;AAID,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qGAAqG;IACrG,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,qHAAqH;IACrH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uGAAuG;IACvG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,eAAe,CAAC,EAAE,WAAW,GAAG,kBAAkB,GAAG,yBAAyB,CAAC;CAClF;AA+GD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CA+C/D"}
1
+ {"version":3,"file":"agent-loader.d.ts","sourceRoot":"","sources":["../src/agent-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAQH;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYpD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAclF;AAID,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qGAAqG;IACrG,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,qHAAqH;IACrH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uGAAuG;IACvG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,eAAe,CAAC,EAAE,WAAW,GAAG,kBAAkB,GAAG,yBAAyB,CAAC;IAC/E;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAoHD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CA6D/D"}
@@ -137,6 +137,13 @@ function parseAgentFrontmatter(content) {
137
137
  meta.title = value;
138
138
  else if (key === "parent")
139
139
  meta.parent = value;
140
+ else if (key === "schemaVersion") {
141
+ const n = Number(value);
142
+ if (Number.isFinite(n) && n > 0)
143
+ meta.schemaVersion = Math.floor(n);
144
+ }
145
+ else if (key === "version")
146
+ meta.version = value;
140
147
  else if (key === "tools" && value) {
141
148
  // Inline array: tools: [view, grep]
142
149
  meta.tools = value.replace(/[\[\]]/g, "").split(",").map(s => s.trim()).filter(Boolean);
@@ -190,6 +197,10 @@ export function loadAgentFiles(agentsDir) {
190
197
  console.warn(`[agent-loader] Skipping ${entry.name}: empty prompt body`);
191
198
  continue;
192
199
  }
200
+ if (meta.schemaVersion !== undefined && meta.schemaVersion !== 1) {
201
+ console.warn(`[agent-loader] Skipping ${entry.name}: unsupported schemaVersion ${meta.schemaVersion}; expected schemaVersion: 1`);
202
+ continue;
203
+ }
193
204
  agents.push({
194
205
  name: meta.name,
195
206
  description: meta.description,
@@ -201,7 +212,16 @@ export function loadAgentFiles(agentsDir) {
201
212
  parent: meta.parent,
202
213
  splash: meta.splash,
203
214
  initialPrompt: meta.initialPrompt,
215
+ schemaVersion: meta.schemaVersion,
216
+ version: meta.version,
217
+ sourcePath: filePath,
204
218
  });
219
+ if (meta.schemaVersion === undefined) {
220
+ console.warn(`[agent-loader] ${entry.name}: missing frontmatter 'schemaVersion'. Defaulting to 1; add 'schemaVersion: 1' to silence this warning.`);
221
+ }
222
+ if (!meta.version) {
223
+ console.warn(`[agent-loader] ${entry.name}: missing frontmatter 'version'. Add 'version: x.y.z' (or any non-empty label) to track agent prompt changes.`);
224
+ }
205
225
  }
206
226
  catch (err) {
207
227
  console.warn(`[agent-loader] Failed to parse ${entry.name}: ${err.message}`);
@@ -1 +1 @@
1
- {"version":3,"file":"agent-loader.js","sourceRoot":"","sources":["../src/agent-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-loader.js","sourceRoot":"","sources":["../src/agent-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Child notification policy helpers.
3
+ *
4
+ * Implements the decision logic described in the
5
+ * "Child Contract Notification Policy" proposal:
6
+ *
7
+ * - `wakeOn: "any"` - wake parent for any child update
8
+ * - `wakeOn: "material_change"` - wake parent for material changes only
9
+ * (default; suppresses clear heartbeats)
10
+ * - `wakeOn: "completion"` - wake parent only on terminal/blocked/error
11
+ *
12
+ * `wakeOn` only controls AUTONOMOUS parent wakeups. Explicit parent tools such
13
+ * as `check_agents` and `wait_for_agents` always reveal child state regardless
14
+ * of policy.
15
+ *
16
+ * This module is intentionally pure and side-effect-free so it is easy to
17
+ * unit test and safe to call from orchestration helpers.
18
+ *
19
+ * @module
20
+ */
21
+ import type { ChildSessionResult, ChildSessionContract } from "./types.js";
22
+ export type ChildWakePolicy = "any" | "material_change" | "completion";
23
+ export type ChildUpdateClassification = "heartbeat" | "material" | "completion" | "error" | "unknown";
24
+ /** Compact representation of a child update suitable for wake-decision logic. */
25
+ export interface ChildUpdateSnapshot {
26
+ /** Kind of orchestration update being delivered to the parent. */
27
+ kind: "completed" | "wait" | "progress" | "error" | "cancelled";
28
+ /** Last assistant content / summary text emitted by the child. */
29
+ summary?: string;
30
+ /** Structured child result if available (final or interim). */
31
+ result?: Partial<ChildSessionResult>;
32
+ /** Optional explicit material flag from the child (overrides classifier). */
33
+ material?: boolean;
34
+ }
35
+ /** Default policy when a contract is missing or unset. */
36
+ export declare const DEFAULT_CHILD_WAKE_POLICY: ChildWakePolicy;
37
+ /** Normalize an arbitrary input value to a valid `ChildWakePolicy`. */
38
+ export declare function normalizeWakeOn(value: unknown): ChildWakePolicy;
39
+ /** Read `wakeOn` off a contract (or a contract-shaped record) safely. */
40
+ export declare function readWakeOn(contract: Partial<ChildSessionContract> | Record<string, unknown> | null | undefined): ChildWakePolicy;
41
+ /**
42
+ * Conservative no-op classifier.
43
+ *
44
+ * Returns true only for clear heartbeat/no-op text. Unknown / arbitrary
45
+ * natural-language summaries default to material under `material_change`.
46
+ */
47
+ export declare function isHeartbeatText(text: string | undefined): boolean;
48
+ /** Classify a child update for wake-decision purposes. */
49
+ export declare function classifyChildUpdate(update: ChildUpdateSnapshot): ChildUpdateClassification;
50
+ export interface ParentWakeDecisionInput {
51
+ update: ChildUpdateSnapshot;
52
+ contract?: Partial<ChildSessionContract> | Record<string, unknown> | null;
53
+ }
54
+ export interface ParentWakeDecision {
55
+ wake: boolean;
56
+ policy: ChildWakePolicy;
57
+ classification: ChildUpdateClassification;
58
+ reason: string;
59
+ }
60
+ /**
61
+ * Decide whether the parent session should be woken for the given child update.
62
+ *
63
+ * The conservative rule: when the helper cannot confidently classify an
64
+ * update as a heartbeat under `material_change`, it wakes the parent
65
+ * rather than risk silently swallowing important work.
66
+ */
67
+ export declare function shouldWakeParentForChildUpdate(input: ParentWakeDecisionInput): ParentWakeDecision;
68
+ /**
69
+ * Evaluate a batch of pending child updates against the parent's active wait.
70
+ *
71
+ * Used as the digest-defense guard described in the proposal: a heartbeat-only
72
+ * batch should not interrupt an active parent cron wait; a mixed batch with
73
+ * any material update wakes the parent.
74
+ */
75
+ export declare function shouldWakeParentForChildDigest(updates: Array<ParentWakeDecisionInput>): ParentWakeDecision;
76
+ //# sourceMappingURL=child-notifications.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"child-notifications.d.ts","sourceRoot":"","sources":["../src/child-notifications.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAuB,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEhG,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,iBAAiB,GAAG,YAAY,CAAC;AAEvE,MAAM,MAAM,yBAAyB,GAC/B,WAAW,GACX,UAAU,GACV,YAAY,GACZ,OAAO,GACP,SAAS,CAAC;AAEhB,iFAAiF;AACjF,MAAM,WAAW,mBAAmB;IAChC,kEAAkE;IAClE,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,WAAW,CAAC;IAChE,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrC,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,0DAA0D;AAC1D,eAAO,MAAM,yBAAyB,EAAE,eAAmC,CAAC;AAI5E,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CAS/D;AAED,yEAAyE;AACzE,wBAAgB,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,eAAe,CAGhI;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAiCjE;AAWD,0DAA0D;AAC1D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,yBAAyB,CAgC1F;AAED,MAAM,WAAW,uBAAuB;IACpC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC7E;AAED,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,eAAe,CAAC;IACxB,cAAc,EAAE,yBAAyB,CAAC;IAC1C,MAAM,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,uBAAuB,GAAG,kBAAkB,CAoBjG;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,KAAK,CAAC,uBAAuB,CAAC,GAAG,kBAAkB,CAW1G"}
@@ -0,0 +1,181 @@
1
+ /**
2
+ * Child notification policy helpers.
3
+ *
4
+ * Implements the decision logic described in the
5
+ * "Child Contract Notification Policy" proposal:
6
+ *
7
+ * - `wakeOn: "any"` - wake parent for any child update
8
+ * - `wakeOn: "material_change"` - wake parent for material changes only
9
+ * (default; suppresses clear heartbeats)
10
+ * - `wakeOn: "completion"` - wake parent only on terminal/blocked/error
11
+ *
12
+ * `wakeOn` only controls AUTONOMOUS parent wakeups. Explicit parent tools such
13
+ * as `check_agents` and `wait_for_agents` always reveal child state regardless
14
+ * of policy.
15
+ *
16
+ * This module is intentionally pure and side-effect-free so it is easy to
17
+ * unit test and safe to call from orchestration helpers.
18
+ *
19
+ * @module
20
+ */
21
+ /** Default policy when a contract is missing or unset. */
22
+ export const DEFAULT_CHILD_WAKE_POLICY = "material_change";
23
+ const ALL_POLICIES = new Set(["any", "material_change", "completion"]);
24
+ /** Normalize an arbitrary input value to a valid `ChildWakePolicy`. */
25
+ export function normalizeWakeOn(value) {
26
+ if (typeof value !== "string")
27
+ return DEFAULT_CHILD_WAKE_POLICY;
28
+ const lower = value.trim().toLowerCase();
29
+ if (ALL_POLICIES.has(lower))
30
+ return lower;
31
+ // tolerant aliases
32
+ if (lower === "always" || lower === "all")
33
+ return "any";
34
+ if (lower === "material" || lower === "change")
35
+ return "material_change";
36
+ if (lower === "done" || lower === "finished")
37
+ return "completion";
38
+ return DEFAULT_CHILD_WAKE_POLICY;
39
+ }
40
+ /** Read `wakeOn` off a contract (or a contract-shaped record) safely. */
41
+ export function readWakeOn(contract) {
42
+ if (!contract || typeof contract !== "object")
43
+ return DEFAULT_CHILD_WAKE_POLICY;
44
+ return normalizeWakeOn(contract["wakeOn"]);
45
+ }
46
+ /**
47
+ * Conservative no-op classifier.
48
+ *
49
+ * Returns true only for clear heartbeat/no-op text. Unknown / arbitrary
50
+ * natural-language summaries default to material under `material_change`.
51
+ */
52
+ export function isHeartbeatText(text) {
53
+ if (!text)
54
+ return false;
55
+ const trimmed = text.trim().toLowerCase();
56
+ if (!trimmed)
57
+ return true;
58
+ // Common short heartbeat phrases.
59
+ const heartbeats = [
60
+ "no change",
61
+ "no changes",
62
+ "no drift",
63
+ "no new change",
64
+ "no new changes",
65
+ "no new reportable change",
66
+ "no new reportable changes",
67
+ "no update",
68
+ "no updates",
69
+ "nothing to report",
70
+ "nothing new",
71
+ "cycle quiet",
72
+ "quiet cycle",
73
+ "still watching",
74
+ "still monitoring",
75
+ "no material change",
76
+ "no material changes",
77
+ "heartbeat",
78
+ "unchanged",
79
+ "no_change",
80
+ ];
81
+ if (heartbeats.includes(trimmed))
82
+ return true;
83
+ // Allow short statements that start with a heartbeat phrase + trailing punctuation.
84
+ for (const h of heartbeats) {
85
+ if (trimmed === h + "." || trimmed === h + "!")
86
+ return true;
87
+ }
88
+ return false;
89
+ }
90
+ const TERMINAL_VERDICTS = new Set([
91
+ "success",
92
+ "partial",
93
+ "blocked",
94
+ "failed",
95
+ "cancelled",
96
+ "timed_out",
97
+ ]);
98
+ /** Classify a child update for wake-decision purposes. */
99
+ export function classifyChildUpdate(update) {
100
+ if (update.kind === "error")
101
+ return "error";
102
+ // Treat cancelled as completion for routing purposes (parent should know).
103
+ if (update.kind === "cancelled")
104
+ return "completion";
105
+ // Completed turn with a recognized terminal verdict.
106
+ if (update.kind === "completed") {
107
+ const verdict = update.result?.verdict;
108
+ if (verdict && TERMINAL_VERDICTS.has(verdict)) {
109
+ if (verdict === "blocked" || verdict === "failed" || verdict === "timed_out")
110
+ return "completion";
111
+ return "completion";
112
+ }
113
+ // Completed turn without a verdict — treat as material so parent sees the summary.
114
+ return update.material === false && isHeartbeatText(update.summary) ? "heartbeat" : "material";
115
+ }
116
+ // Explicit material flag from the child wins.
117
+ if (update.material === true)
118
+ return "material";
119
+ if (update.material === false)
120
+ return "heartbeat";
121
+ // Structured verdict hints during a wait/progress turn.
122
+ const verdictHint = update.result?.verdict;
123
+ if (typeof verdictHint === "string") {
124
+ const v = verdictHint.toLowerCase();
125
+ if (v === "heartbeat" || v === "unchanged" || v === "no_change")
126
+ return "heartbeat";
127
+ }
128
+ // Fall back to text classification.
129
+ if (isHeartbeatText(update.summary))
130
+ return "heartbeat";
131
+ if (!update.summary)
132
+ return "unknown";
133
+ return "material";
134
+ }
135
+ /**
136
+ * Decide whether the parent session should be woken for the given child update.
137
+ *
138
+ * The conservative rule: when the helper cannot confidently classify an
139
+ * update as a heartbeat under `material_change`, it wakes the parent
140
+ * rather than risk silently swallowing important work.
141
+ */
142
+ export function shouldWakeParentForChildUpdate(input) {
143
+ const policy = readWakeOn(input.contract ?? null);
144
+ const classification = classifyChildUpdate(input.update);
145
+ if (policy === "any") {
146
+ return { wake: true, policy, classification, reason: "policy=any" };
147
+ }
148
+ if (policy === "completion") {
149
+ if (classification === "completion" || classification === "error") {
150
+ return { wake: true, policy, classification, reason: `policy=completion classification=${classification}` };
151
+ }
152
+ return { wake: false, policy, classification, reason: `policy=completion classification=${classification}` };
153
+ }
154
+ // material_change (default)
155
+ if (classification === "heartbeat") {
156
+ return { wake: false, policy, classification, reason: "policy=material_change classification=heartbeat" };
157
+ }
158
+ return { wake: true, policy, classification, reason: `policy=material_change classification=${classification}` };
159
+ }
160
+ /**
161
+ * Evaluate a batch of pending child updates against the parent's active wait.
162
+ *
163
+ * Used as the digest-defense guard described in the proposal: a heartbeat-only
164
+ * batch should not interrupt an active parent cron wait; a mixed batch with
165
+ * any material update wakes the parent.
166
+ */
167
+ export function shouldWakeParentForChildDigest(updates) {
168
+ if (updates.length === 0) {
169
+ return { wake: false, policy: DEFAULT_CHILD_WAKE_POLICY, classification: "unknown", reason: "empty digest" };
170
+ }
171
+ let firstHeartbeat;
172
+ for (const u of updates) {
173
+ const d = shouldWakeParentForChildUpdate(u);
174
+ if (d.wake)
175
+ return d;
176
+ if (!firstHeartbeat)
177
+ firstHeartbeat = d;
178
+ }
179
+ return firstHeartbeat;
180
+ }
181
+ //# sourceMappingURL=child-notifications.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"child-notifications.js","sourceRoot":"","sources":["../src/child-notifications.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAyBH,0DAA0D;AAC1D,MAAM,CAAC,MAAM,yBAAyB,GAAoB,iBAAiB,CAAC;AAE5E,MAAM,YAAY,GAAiC,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,iBAAiB,EAAE,YAAY,CAAC,CAAC,CAAC;AAErG,uEAAuE;AACvE,MAAM,UAAU,eAAe,CAAC,KAAc;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,yBAAyB,CAAC;IAChE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACzC,IAAI,YAAY,CAAC,GAAG,CAAC,KAAwB,CAAC;QAAE,OAAO,KAAwB,CAAC;IAChF,mBAAmB;IACnB,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACxD,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,iBAAiB,CAAC;IACzE,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,UAAU;QAAE,OAAO,YAAY,CAAC;IAClE,OAAO,yBAAyB,CAAC;AACrC,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,UAAU,CAAC,QAAoF;IAC3G,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,yBAAyB,CAAC;IAChF,OAAO,eAAe,CAAE,QAAoC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,IAAwB;IACpD,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC1C,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,kCAAkC;IAClC,MAAM,UAAU,GAAG;QACf,WAAW;QACX,YAAY;QACZ,UAAU;QACV,eAAe;QACf,gBAAgB;QAChB,0BAA0B;QAC1B,2BAA2B;QAC3B,WAAW;QACX,YAAY;QACZ,mBAAmB;QACnB,aAAa;QACb,aAAa;QACb,aAAa;QACb,gBAAgB;QAChB,kBAAkB;QAClB,oBAAoB;QACpB,qBAAqB;QACrB,WAAW;QACX,WAAW;QACX,WAAW;KACd,CAAC;IACF,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,oFAAoF;IACpF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QACzB,IAAI,OAAO,KAAK,CAAC,GAAG,GAAG,IAAI,OAAO,KAAK,CAAC,GAAG,GAAG;YAAE,OAAO,IAAI,CAAC;IAChE,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,iBAAiB,GAAqC,IAAI,GAAG,CAAC;IAChE,SAAS;IACT,SAAS;IACT,SAAS;IACT,QAAQ;IACR,WAAW;IACX,WAAW;CACd,CAAC,CAAC;AAEH,0DAA0D;AAC1D,MAAM,UAAU,mBAAmB,CAAC,MAA2B;IAC3D,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IAE5C,2EAA2E;IAC3E,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,YAAY,CAAC;IAErD,qDAAqD;IACrD,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;QACvC,IAAI,OAAO,IAAI,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5C,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,WAAW;gBAAE,OAAO,YAAY,CAAC;YAClG,OAAO,YAAY,CAAC;QACxB,CAAC;QACD,mFAAmF;QACnF,OAAO,MAAM,CAAC,QAAQ,KAAK,KAAK,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;IACnG,CAAC;IAED,8CAA8C;IAC9C,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI;QAAE,OAAO,UAAU,CAAC;IAChD,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK;QAAE,OAAO,WAAW,CAAC;IAElD,wDAAwD;IACxD,MAAM,WAAW,GAAI,MAAM,CAAC,MAA8C,EAAE,OAAO,CAAC;IACpF,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,WAAW;YAAE,OAAO,WAAW,CAAC;IACxF,CAAC;IAED,oCAAoC;IACpC,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC;QAAE,OAAO,WAAW,CAAC;IACxD,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IACtC,OAAO,UAAU,CAAC;AACtB,CAAC;AAcD;;;;;;GAMG;AACH,MAAM,UAAU,8BAA8B,CAAC,KAA8B;IACzE,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC;IAClD,MAAM,cAAc,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAEzD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACnB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IACxE,CAAC;IAED,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;QAC1B,IAAI,cAAc,KAAK,YAAY,IAAI,cAAc,KAAK,OAAO,EAAE,CAAC;YAChE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,oCAAoC,cAAc,EAAE,EAAE,CAAC;QAChH,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,oCAAoC,cAAc,EAAE,EAAE,CAAC;IACjH,CAAC;IAED,4BAA4B;IAC5B,IAAI,cAAc,KAAK,WAAW,EAAE,CAAC;QACjC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,iDAAiD,EAAE,CAAC;IAC9G,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,yCAAyC,cAAc,EAAE,EAAE,CAAC;AACrH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,8BAA8B,CAAC,OAAuC;IAClF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAyB,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IACjH,CAAC;IACD,IAAI,cAA8C,CAAC;IACnD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,8BAA8B,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC;QACrB,IAAI,CAAC,cAAc;YAAE,cAAc,GAAG,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,cAAe,CAAC;AAC3B,CAAC"}
package/dist/client.d.ts CHANGED
@@ -49,6 +49,8 @@ export declare class PilotSwarmClient {
49
49
  agentId?: string;
50
50
  /** Authenticated owner to associate with the new session. */
51
51
  owner?: SessionOwnerInfo | null;
52
+ /** Optional visual session group assignment. */
53
+ groupId?: string | null;
52
54
  }): Promise<PilotSwarmSession>;
53
55
  /**
54
56
  * Create a session bound to a named agent.
@@ -68,6 +70,7 @@ export declare class PilotSwarmClient {
68
70
  splash?: string;
69
71
  initialPrompt?: string;
70
72
  owner?: SessionOwnerInfo | null;
73
+ groupId?: string | null;
71
74
  }): Promise<PilotSwarmSession>;
72
75
  /**
73
76
  * Create a system session (e.g. Sweeper Agent).
@@ -183,7 +186,7 @@ export declare class PilotSwarmSession {
183
186
  cancelPendingMessage(clientMessageIds: string[]): Promise<void>;
184
187
  abort(): Promise<void>;
185
188
  destroy(): Promise<void>;
186
- /** Get all persisted events for this session from CMS. */
189
+ /** Get a provider-capped latest page of persisted events from CMS. Use event paging to drain complete history. */
187
190
  getMessages(limit?: number): Promise<SessionEvent[]>;
188
191
  getInfo(): Promise<PilotSwarmSessionInfo>;
189
192
  private _startPolling;
@@ -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
@@ -2,6 +2,7 @@ import { RESPONSE_LATEST_KEY, } from "./types.js";
2
2
  import { DURABLE_SESSION_LATEST_VERSION, DURABLE_SESSION_ORCHESTRATION_NAME, } from "./orchestration-registry.js";
3
3
  import { PgSessionCatalogProvider } from "./cms.js";
4
4
  import { createFactStoreForUrl } from "./facts-store.js";
5
+ import { createDuroxidePostgresProvider } from "./duroxide-provider-factory.js";
5
6
  import { deriveStatusFromCmsAndRuntime, shouldSyncCompletedStatus, shouldSyncFailedStatus } from "./session-status.js";
6
7
  // duroxide is CommonJS — use createRequire for ESM compatibility
7
8
  import { createRequire } from "node:module";
@@ -108,6 +109,7 @@ export class PilotSwarmClient {
108
109
  reasoningEffort: config?.reasoningEffort,
109
110
  parentSessionId: config?.parentSessionId,
110
111
  owner: config?.owner ?? null,
112
+ groupId: config?.groupId ?? null,
111
113
  });
112
114
  // Track parentSessionId for sub-agent orchestration input
113
115
  if (config?.parentSessionId) {
@@ -147,6 +149,7 @@ export class PilotSwarmClient {
147
149
  boundAgentName: agentName,
148
150
  promptLayering: { kind: "app-agent" },
149
151
  owner: opts?.owner ?? null,
152
+ groupId: opts?.groupId ?? null,
150
153
  });
151
154
  // Set agent metadata in CMS (agentId + prefixed title)
152
155
  const shortId = session.sessionId.slice(0, 8);
@@ -258,6 +261,10 @@ export class PilotSwarmClient {
258
261
  isSystem: row.isSystem || undefined,
259
262
  agentId: row.agentId ?? undefined,
260
263
  splash: row.splash ?? undefined,
264
+ groupId: row.groupId ?? undefined,
265
+ shortSummary: row.shortSummary ?? undefined,
266
+ summaryState: row.summaryState ?? undefined,
267
+ summaryUpdatedAt: row.summaryUpdatedAt ?? undefined,
261
268
  }));
262
269
  }
263
270
  async deleteSession(sessionId) {
@@ -311,10 +318,13 @@ export class PilotSwarmClient {
311
318
  const _trace = this.config.traceWriter ?? (() => { });
312
319
  const startedAt = Date.now();
313
320
  const trace = (message) => _trace(`[+${Date.now() - startedAt}ms] ${message}`);
314
- // CMS + facts may use a passwordless URL (AAD/MI) while duroxide
315
- // stays on the password URL. When `useManagedIdentity` is set the
316
- // caller is expected to pass `cmsFactsDatabaseUrl` (a passwordless
317
- // form). When unset (legacy / local), both pools reuse `store`.
321
+ // CMS + facts may use a separate URL when running with AAD/MI
322
+ // (passwordless URL whose `user@` segment is the federated UAMI's
323
+ // display name). Defaults to `store` for the legacy
324
+ // connection-string path. The duroxide orchestration store
325
+ // honours the same MI switch via duroxide-node's native Entra
326
+ // path; CMS/facts go through the pg-pool factory using
327
+ // `DefaultAzureCredential`.
318
328
  const cmsFactsUrl = this.config.cmsFactsDatabaseUrl ?? store;
319
329
  const useMi = this.config.useManagedIdentity ?? false;
320
330
  const aadUser = this.config.aadDbUser;
@@ -325,9 +335,9 @@ export class PilotSwarmClient {
325
335
  else if (store.startsWith("sqlite://"))
326
336
  provider = SqliteProvider.open(store);
327
337
  else if (store.startsWith("postgres://") || store.startsWith("postgresql://")) {
328
- trace("[client] connectWithSchema start...");
329
- provider = await PostgresProvider.connectWithSchema(store, this.config.duroxideSchema ?? DEFAULT_DUROXIDE_SCHEMA);
330
- trace("[client] connectWithSchema done");
338
+ trace("[client] duroxide provider connect start...");
339
+ provider = await createDuroxidePostgresProvider(PostgresProvider, store, this.config.duroxideSchema ?? DEFAULT_DUROXIDE_SCHEMA, { useManagedIdentity: useMi, aadUser });
340
+ trace("[client] duroxide provider connect done");
331
341
  }
332
342
  else {
333
343
  throw new Error(`Unsupported store URL: ${store}`);
@@ -545,6 +555,21 @@ export class PilotSwarmClient {
545
555
  : null;
546
556
  const cronActive = customStatus.cronActive === true;
547
557
  const cronInterval = typeof customStatus.cronInterval === "number" ? customStatus.cronInterval : undefined;
558
+ const cronKind = cronActive && (customStatus.cronKind === "wall-clock" || customStatus.cronKind === "interval")
559
+ ? customStatus.cronKind
560
+ : undefined;
561
+ const cronNextFireAt = cronActive && typeof customStatus.cronNextFireAt === "number"
562
+ ? customStatus.cronNextFireAt
563
+ : undefined;
564
+ const cronTimezone = cronActive && typeof customStatus.cronTimezone === "string"
565
+ ? customStatus.cronTimezone
566
+ : undefined;
567
+ const cronMaxFires = cronActive && typeof customStatus.cronMaxFires === "number"
568
+ ? customStatus.cronMaxFires
569
+ : undefined;
570
+ const cronFiresCompleted = cronActive && typeof customStatus.cronFiresCompleted === "number"
571
+ ? customStatus.cronFiresCompleted
572
+ : undefined;
548
573
  const status = deriveStatusFromCmsAndRuntime({
549
574
  row: cmsRow,
550
575
  customStatus,
@@ -607,6 +632,10 @@ export class PilotSwarmClient {
607
632
  title: cmsRow?.title ?? undefined,
608
633
  agentId: cmsRow?.agentId ?? undefined,
609
634
  owner: cmsRow?.owner ?? undefined,
635
+ groupId: cmsRow?.groupId ?? undefined,
636
+ shortSummary: cmsRow?.shortSummary ?? undefined,
637
+ summaryState: cmsRow?.summaryState ?? undefined,
638
+ summaryUpdatedAt: cmsRow?.summaryUpdatedAt ?? undefined,
610
639
  createdAt: cmsRow?.createdAt ?? new Date(),
611
640
  updatedAt: cmsRow?.updatedAt ?? new Date(),
612
641
  iterations: customStatus.iteration ?? cmsRow?.currentIteration ?? 0,
@@ -625,6 +654,11 @@ export class PilotSwarmClient {
625
654
  waitReason: customStatus.waitReason,
626
655
  cronActive,
627
656
  cronInterval,
657
+ cronKind,
658
+ cronNextFireAt,
659
+ cronTimezone,
660
+ cronMaxFires,
661
+ cronFiresCompleted,
628
662
  cronReason: typeof customStatus.cronReason === "string" ? customStatus.cronReason : undefined,
629
663
  contextUsage: customStatus?.contextUsage && typeof customStatus.contextUsage === "object"
630
664
  ? customStatus.contextUsage
@@ -876,7 +910,7 @@ export class PilotSwarmSession {
876
910
  this._stopPolling();
877
911
  await this.client.deleteSession(this.sessionId);
878
912
  }
879
- /** Get all persisted events for this session from CMS. */
913
+ /** Get a provider-capped latest page of persisted events from CMS. Use event paging to drain complete history. */
880
914
  async getMessages(limit) {
881
915
  const catalog = this.client._getCatalog();
882
916
  return catalog.getSessionEvents(this.sessionId, undefined, limit);