macro-agent 0.1.12 → 0.2.0

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 (104) hide show
  1. package/dist/agent/agent-manager-v2.d.ts.map +1 -1
  2. package/dist/agent/agent-manager-v2.js +240 -7
  3. package/dist/agent/agent-manager-v2.js.map +1 -1
  4. package/dist/agent/types.d.ts +47 -0
  5. package/dist/agent/types.d.ts.map +1 -1
  6. package/dist/agent/types.js.map +1 -1
  7. package/dist/boot-v2.d.ts +33 -0
  8. package/dist/boot-v2.d.ts.map +1 -1
  9. package/dist/boot-v2.js +142 -11
  10. package/dist/boot-v2.js.map +1 -1
  11. package/dist/cli/inbox-mcp-proxy.d.ts +36 -0
  12. package/dist/cli/inbox-mcp-proxy.d.ts.map +1 -0
  13. package/dist/cli/inbox-mcp-proxy.js +51 -0
  14. package/dist/cli/inbox-mcp-proxy.js.map +1 -0
  15. package/dist/dispatch/loadout-translation.d.ts +100 -0
  16. package/dist/dispatch/loadout-translation.d.ts.map +1 -0
  17. package/dist/dispatch/loadout-translation.js +90 -0
  18. package/dist/dispatch/loadout-translation.js.map +1 -0
  19. package/dist/dispatch/mail-inbound-consumer.d.ts +89 -0
  20. package/dist/dispatch/mail-inbound-consumer.d.ts.map +1 -0
  21. package/dist/dispatch/mail-inbound-consumer.js +261 -0
  22. package/dist/dispatch/mail-inbound-consumer.js.map +1 -0
  23. package/dist/dispatch/mail-inbound-reuse-consumer.d.ts +75 -0
  24. package/dist/dispatch/mail-inbound-reuse-consumer.d.ts.map +1 -0
  25. package/dist/dispatch/mail-inbound-reuse-consumer.js +325 -0
  26. package/dist/dispatch/mail-inbound-reuse-consumer.js.map +1 -0
  27. package/dist/dispatch/permission-evaluator.d.ts +68 -0
  28. package/dist/dispatch/permission-evaluator.d.ts.map +1 -0
  29. package/dist/dispatch/permission-evaluator.js +159 -0
  30. package/dist/dispatch/permission-evaluator.js.map +1 -0
  31. package/dist/dispatch/permission-overlay.d.ts +64 -0
  32. package/dist/dispatch/permission-overlay.d.ts.map +1 -0
  33. package/dist/dispatch/permission-overlay.js +72 -0
  34. package/dist/dispatch/permission-overlay.js.map +1 -0
  35. package/dist/dispatch/permissions-handler.d.ts +71 -0
  36. package/dist/dispatch/permissions-handler.d.ts.map +1 -0
  37. package/dist/dispatch/permissions-handler.js +83 -0
  38. package/dist/dispatch/permissions-handler.js.map +1 -0
  39. package/dist/dispatch/spawn-agent-handler.d.ts +84 -0
  40. package/dist/dispatch/spawn-agent-handler.d.ts.map +1 -0
  41. package/dist/dispatch/spawn-agent-handler.js +85 -0
  42. package/dist/dispatch/spawn-agent-handler.js.map +1 -0
  43. package/dist/lifecycle/handlers-v2.d.ts +7 -0
  44. package/dist/lifecycle/handlers-v2.d.ts.map +1 -1
  45. package/dist/lifecycle/handlers-v2.js +27 -0
  46. package/dist/lifecycle/handlers-v2.js.map +1 -1
  47. package/dist/map/lifecycle-bridge.d.ts +18 -0
  48. package/dist/map/lifecycle-bridge.d.ts.map +1 -1
  49. package/dist/map/lifecycle-bridge.js +23 -1
  50. package/dist/map/lifecycle-bridge.js.map +1 -1
  51. package/dist/map/mail-bridge.d.ts +55 -0
  52. package/dist/map/mail-bridge.d.ts.map +1 -0
  53. package/dist/map/mail-bridge.js +115 -0
  54. package/dist/map/mail-bridge.js.map +1 -0
  55. package/dist/map/sidecar.d.ts.map +1 -1
  56. package/dist/map/sidecar.js +245 -1
  57. package/dist/map/sidecar.js.map +1 -1
  58. package/dist/map/types.d.ts +15 -0
  59. package/dist/map/types.d.ts.map +1 -1
  60. package/dist/mcp/tools/done-v2.d.ts.map +1 -1
  61. package/dist/mcp/tools/done-v2.js +1 -0
  62. package/dist/mcp/tools/done-v2.js.map +1 -1
  63. package/dist/teams/team-loader.d.ts.map +1 -1
  64. package/dist/teams/team-loader.js.map +1 -1
  65. package/dist/teams/team-runtime-v2.d.ts.map +1 -1
  66. package/dist/teams/team-runtime-v2.js +2 -0
  67. package/dist/teams/team-runtime-v2.js.map +1 -1
  68. package/package.json +6 -5
  69. package/src/agent/__tests__/agent-manager-v2.permission-interception.test.ts +296 -0
  70. package/src/agent/__tests__/agent-manager-v2.permissions.test.ts +233 -0
  71. package/src/agent/agent-manager-v2.ts +268 -8
  72. package/src/agent/types.ts +51 -0
  73. package/src/boot-v2.ts +190 -12
  74. package/src/cli/inbox-mcp-proxy.ts +56 -0
  75. package/src/dispatch/CLAUDE.md +129 -0
  76. package/src/dispatch/__tests__/loadout-translation.test.ts +141 -0
  77. package/src/dispatch/__tests__/mail-inbound-consumer.integration.test.ts +519 -0
  78. package/src/dispatch/__tests__/mail-inbound-consumer.test.ts +589 -0
  79. package/src/dispatch/__tests__/mail-inbound-reuse-consumer.test.ts +575 -0
  80. package/src/dispatch/__tests__/permission-evaluator.test.ts +196 -0
  81. package/src/dispatch/__tests__/permission-overlay.test.ts +56 -0
  82. package/src/dispatch/__tests__/permissions-handler.test.ts +168 -0
  83. package/src/dispatch/__tests__/spawn-agent-handler.test.ts +282 -0
  84. package/src/dispatch/loadout-translation.ts +138 -0
  85. package/src/dispatch/mail-inbound-consumer.ts +397 -0
  86. package/src/dispatch/mail-inbound-reuse-consumer.ts +479 -0
  87. package/src/dispatch/permission-evaluator.ts +191 -0
  88. package/src/dispatch/permission-overlay.ts +89 -0
  89. package/src/dispatch/permissions-handler.ts +112 -0
  90. package/src/dispatch/spawn-agent-handler.ts +160 -0
  91. package/src/lifecycle/handlers-v2.ts +34 -0
  92. package/src/map/__tests__/lifecycle-bridge.test.ts +64 -0
  93. package/src/map/__tests__/mail-bridge.test.ts +196 -0
  94. package/src/map/lifecycle-bridge.ts +48 -2
  95. package/src/map/mail-bridge.ts +203 -0
  96. package/src/map/sidecar.ts +346 -1
  97. package/src/map/types.ts +21 -0
  98. package/src/mcp/tools/done-v2.ts +1 -0
  99. package/src/teams/team-loader.ts +3 -1
  100. package/src/teams/team-runtime-v2.ts +2 -0
  101. package/dist/workspace/dataplane-adapter.d.ts +0 -260
  102. package/dist/workspace/dataplane-adapter.d.ts.map +0 -1
  103. package/dist/workspace/dataplane-adapter.js +0 -416
  104. package/dist/workspace/dataplane-adapter.js.map +0 -1
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Permission Overlay Registry
3
+ *
4
+ * Process-singleton map of `agentId → Permissions` for in-flight
5
+ * dispatches. The `PreToolUse` hook installed at spawn time consults
6
+ * this registry on every tool call. Dispatch consumers (e.g., the
7
+ * mail-inbound-reuse-consumer) set the overlay when claiming an
8
+ * in-flight dispatch and clear it on resolution.
9
+ *
10
+ * Why a registry rather than a per-spawn argument:
11
+ * - The session is created with permissive rules at boot. The
12
+ * dispatch's narrower deny rules need to apply at *call time*, not
13
+ * at spawn time, because the agent already exists when the dispatch
14
+ * arrives. The hook closure captures `agentId` and reads the
15
+ * registry per-call so updates propagate without recreating the
16
+ * session.
17
+ *
18
+ * Semantics:
19
+ * - Intersection-only: the overlay can ADD denies to a session but
20
+ * cannot grant new allows. If the session was spawned with broad
21
+ * permissions and the overlay says `allow: [Read]`, the session's
22
+ * other tools still work — the overlay only tightens.
23
+ * - Single overlay per agent: `mail-inbound-reuse-consumer` already
24
+ * enforces one in-flight dispatch per agent (`recipient_busy`
25
+ * reject), so overwriting is safe.
26
+ *
27
+ * @module dispatch/permission-overlay
28
+ */
29
+ const overlays = new Map();
30
+ /**
31
+ * Apply a permission overlay for an agent. Subsequent tool calls by
32
+ * that agent flow through the `PreToolUse` hook, which consults this
33
+ * registry. Overwrites any prior overlay for the same agent.
34
+ */
35
+ export function setPermissionOverlay(agentId, perms) {
36
+ overlays.set(agentId, perms);
37
+ }
38
+ /**
39
+ * Remove the active overlay for an agent. Subsequent tool calls fall
40
+ * back to the session's static permission rules.
41
+ */
42
+ export function clearPermissionOverlay(agentId) {
43
+ overlays.delete(agentId);
44
+ }
45
+ /**
46
+ * Read the current overlay for an agent. Returns `undefined` when no
47
+ * overlay is in effect — the hook treats that as pass-through.
48
+ */
49
+ export function getPermissionOverlay(agentId) {
50
+ return overlays.get(agentId);
51
+ }
52
+ /**
53
+ * Clear all overlays. Used as defense-in-depth when a fresh consumer
54
+ * starts (process startup); also exposed for test isolation.
55
+ */
56
+ export function clearAllPermissionOverlays() {
57
+ overlays.clear();
58
+ }
59
+ /**
60
+ * Test helper — alias for `clearAllPermissionOverlays`. Kept distinct
61
+ * so it's grep-able for "test-only" cleanup paths.
62
+ */
63
+ export function _resetForTest() {
64
+ overlays.clear();
65
+ }
66
+ /**
67
+ * Test helper — number of overlays currently active.
68
+ */
69
+ export function _sizeForTest() {
70
+ return overlays.size;
71
+ }
72
+ //# sourceMappingURL=permission-overlay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission-overlay.js","sourceRoot":"","sources":["../../src/dispatch/permission-overlay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAQH,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA8B,CAAC;AAEvD;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAe,EACf,KAAyB;IAEzB,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACpD,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAe;IAEf,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B;IACxC,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * `x-dispatch/permissions.set` and `x-dispatch/permissions.clear` MAP
3
+ * notification handlers — runtime-agnostic wire shape, macro-agent-specific
4
+ * implementation.
5
+ *
6
+ * Called by OpenHive's orchestrator on the ACP+reuse dispatch path to apply
7
+ * per-dispatch loadout deny/allow rules to a long-lived agent's session at
8
+ * runtime, without recreating the session. The handler invokes
9
+ * `setPermissionOverlay` (resp. `clearPermissionOverlay`); the prompt
10
+ * iterator in `agent-manager-v2.ts` enforces the overlay against
11
+ * `permission_request` ACP session updates.
12
+ *
13
+ * See `docs/PERMISSION_OVERLAY_ACP_DESIGN.md` for the four-process flow
14
+ * diagram and rationale. The mail+reuse path uses the same overlay
15
+ * registry but sets/clears it directly from `mail-inbound-reuse-consumer`
16
+ * (which has a clean entry point on swarm side); ACP+reuse needs this MAP
17
+ * wire because the dispatch's prompt arrives through the ACP server with
18
+ * no equivalent consumer to bracket.
19
+ *
20
+ * Wire shape (set):
21
+ *
22
+ * request: { agent_id: string, deny?: string[], allow?: string[] }
23
+ * response: { ok: true } | { ok: false, error: string }
24
+ *
25
+ * Wire shape (clear):
26
+ *
27
+ * request: { agent_id: string }
28
+ * response: { ok: true } | { ok: false, error: string }
29
+ *
30
+ * Notification-pair pattern matches the existing `x-dispatch/spawn-agent`
31
+ * handler (the MAP SDK's AgentConnection doesn't expose
32
+ * setRequestHandler, so we use notifications with correlation_ids).
33
+ */
34
+ export interface PermissionsSetRequest {
35
+ agent_id: string;
36
+ deny?: string[];
37
+ allow?: string[];
38
+ }
39
+ export interface PermissionsClearRequest {
40
+ agent_id: string;
41
+ }
42
+ export type PermissionsResponse = {
43
+ ok: true;
44
+ } | {
45
+ ok: false;
46
+ error: string;
47
+ };
48
+ /**
49
+ * Handle `x-dispatch/permissions.set.request`. Sets the per-agent overlay
50
+ * registry entry that the prompt iterator consults when answering
51
+ * `permission_request` session updates.
52
+ *
53
+ * Idempotent: re-setting on the same agent overwrites the prior overlay.
54
+ * Safe: returns an error response (rather than throwing) for malformed
55
+ * params or unknown agents — the orchestrator should log and proceed.
56
+ */
57
+ export declare function handlePermissionsSet(params: PermissionsSetRequest, log?: (msg: string) => void): PermissionsResponse;
58
+ /**
59
+ * Handle `x-dispatch/permissions.clear.request`. Removes any overlay set
60
+ * on the named agent. Idempotent: clearing a non-existent overlay is a
61
+ * no-op success. Always paired with a prior `set` from the same dispatch;
62
+ * the orchestrator must guarantee `clear` runs even on dispatch failure.
63
+ */
64
+ export declare function handlePermissionsClear(params: PermissionsClearRequest, log?: (msg: string) => void): PermissionsResponse;
65
+ export declare const X_DISPATCH_PERMISSIONS_METHODS: {
66
+ readonly SET_REQUEST: "x-dispatch/permissions.set.request";
67
+ readonly SET_RESPONSE: "x-dispatch/permissions.set.response";
68
+ readonly CLEAR_REQUEST: "x-dispatch/permissions.clear.request";
69
+ readonly CLEAR_RESPONSE: "x-dispatch/permissions.clear.response";
70
+ };
71
+ //# sourceMappingURL=permissions-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions-handler.d.ts","sourceRoot":"","sources":["../../src/dispatch/permissions-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAOH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,mBAAmB,GAC3B;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjC;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,qBAAqB,EAC7B,GAAG,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAkB,GACvC,mBAAmB,CAqBrB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,uBAAuB,EAC/B,GAAG,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAkB,GACvC,mBAAmB,CAOrB;AAED,eAAO,MAAM,8BAA8B;;;;;CAKjC,CAAC"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * `x-dispatch/permissions.set` and `x-dispatch/permissions.clear` MAP
3
+ * notification handlers — runtime-agnostic wire shape, macro-agent-specific
4
+ * implementation.
5
+ *
6
+ * Called by OpenHive's orchestrator on the ACP+reuse dispatch path to apply
7
+ * per-dispatch loadout deny/allow rules to a long-lived agent's session at
8
+ * runtime, without recreating the session. The handler invokes
9
+ * `setPermissionOverlay` (resp. `clearPermissionOverlay`); the prompt
10
+ * iterator in `agent-manager-v2.ts` enforces the overlay against
11
+ * `permission_request` ACP session updates.
12
+ *
13
+ * See `docs/PERMISSION_OVERLAY_ACP_DESIGN.md` for the four-process flow
14
+ * diagram and rationale. The mail+reuse path uses the same overlay
15
+ * registry but sets/clears it directly from `mail-inbound-reuse-consumer`
16
+ * (which has a clean entry point on swarm side); ACP+reuse needs this MAP
17
+ * wire because the dispatch's prompt arrives through the ACP server with
18
+ * no equivalent consumer to bracket.
19
+ *
20
+ * Wire shape (set):
21
+ *
22
+ * request: { agent_id: string, deny?: string[], allow?: string[] }
23
+ * response: { ok: true } | { ok: false, error: string }
24
+ *
25
+ * Wire shape (clear):
26
+ *
27
+ * request: { agent_id: string }
28
+ * response: { ok: true } | { ok: false, error: string }
29
+ *
30
+ * Notification-pair pattern matches the existing `x-dispatch/spawn-agent`
31
+ * handler (the MAP SDK's AgentConnection doesn't expose
32
+ * setRequestHandler, so we use notifications with correlation_ids).
33
+ */
34
+ import { setPermissionOverlay, clearPermissionOverlay, } from "./permission-overlay.js";
35
+ /**
36
+ * Handle `x-dispatch/permissions.set.request`. Sets the per-agent overlay
37
+ * registry entry that the prompt iterator consults when answering
38
+ * `permission_request` session updates.
39
+ *
40
+ * Idempotent: re-setting on the same agent overwrites the prior overlay.
41
+ * Safe: returns an error response (rather than throwing) for malformed
42
+ * params or unknown agents — the orchestrator should log and proceed.
43
+ */
44
+ export function handlePermissionsSet(params, log = console.log) {
45
+ if (!params || typeof params.agent_id !== "string" || params.agent_id === "") {
46
+ return { ok: false, error: "x-dispatch/permissions.set: missing or invalid 'agent_id'" };
47
+ }
48
+ if (params.deny !== undefined && !Array.isArray(params.deny)) {
49
+ return { ok: false, error: "x-dispatch/permissions.set: 'deny' must be an array of strings" };
50
+ }
51
+ if (params.allow !== undefined && !Array.isArray(params.allow)) {
52
+ return { ok: false, error: "x-dispatch/permissions.set: 'allow' must be an array of strings" };
53
+ }
54
+ const overlay = {
55
+ ...(params.deny ? { deny: params.deny } : {}),
56
+ ...(params.allow ? { allow: params.allow } : {}),
57
+ };
58
+ setPermissionOverlay(params.agent_id, overlay);
59
+ log(`[x-dispatch/permissions.set] agent=${params.agent_id} ` +
60
+ `deny=${params.deny?.length ?? 0} allow=${params.allow?.length ?? 0}`);
61
+ return { ok: true };
62
+ }
63
+ /**
64
+ * Handle `x-dispatch/permissions.clear.request`. Removes any overlay set
65
+ * on the named agent. Idempotent: clearing a non-existent overlay is a
66
+ * no-op success. Always paired with a prior `set` from the same dispatch;
67
+ * the orchestrator must guarantee `clear` runs even on dispatch failure.
68
+ */
69
+ export function handlePermissionsClear(params, log = console.log) {
70
+ if (!params || typeof params.agent_id !== "string" || params.agent_id === "") {
71
+ return { ok: false, error: "x-dispatch/permissions.clear: missing or invalid 'agent_id'" };
72
+ }
73
+ clearPermissionOverlay(params.agent_id);
74
+ log(`[x-dispatch/permissions.clear] agent=${params.agent_id}`);
75
+ return { ok: true };
76
+ }
77
+ export const X_DISPATCH_PERMISSIONS_METHODS = {
78
+ SET_REQUEST: "x-dispatch/permissions.set.request",
79
+ SET_RESPONSE: "x-dispatch/permissions.set.response",
80
+ CLEAR_REQUEST: "x-dispatch/permissions.clear.request",
81
+ CLEAR_RESPONSE: "x-dispatch/permissions.clear.response",
82
+ };
83
+ //# sourceMappingURL=permissions-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions-handler.js","sourceRoot":"","sources":["../../src/dispatch/permissions-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AAgBjC;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAA6B,EAC7B,MAA6B,OAAO,CAAC,GAAG;IAExC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,EAAE,EAAE,CAAC;QAC7E,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,2DAA2D,EAAE,CAAC;IAC3F,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gEAAgE,EAAE,CAAC;IAChG,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,iEAAiE,EAAE,CAAC;IACjG,CAAC;IAED,MAAM,OAAO,GAAG;QACd,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjD,CAAC;IACF,oBAAoB,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/C,GAAG,CACD,sCAAsC,MAAM,CAAC,QAAQ,GAAG;QACtD,QAAQ,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,UAAU,MAAM,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,EAAE,CACxE,CAAC;IACF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAA+B,EAC/B,MAA6B,OAAO,CAAC,GAAG;IAExC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,EAAE,EAAE,CAAC;QAC7E,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,6DAA6D,EAAE,CAAC;IAC7F,CAAC;IACD,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxC,GAAG,CAAC,wCAAwC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,WAAW,EAAE,oCAAoC;IACjD,YAAY,EAAE,qCAAqC;IACnD,aAAa,EAAE,sCAAsC;IACrD,cAAc,EAAE,uCAAuC;CAC/C,CAAC"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * `x-dispatch/spawn-agent` MAP request handler — runtime-agnostic wire shape,
3
+ * macro-agent-specific implementation.
4
+ *
5
+ * Called by OpenHive's orchestrator when ACP-routing a dispatch with
6
+ * `lifecycle: 'fresh'` — the hub asks the swarm to spawn a fresh agent
7
+ * with the materialized loadout's structured fields applied to its spawn
8
+ * config. The handler returns the spawned agent's id; the orchestrator
9
+ * then attaches an ACP stream via the existing `findAcpAgentInfo` path.
10
+ *
11
+ * Wire shape — canonical (swarm-dispatch's `RemoteSpawnRequest`):
12
+ *
13
+ * request:
14
+ * {
15
+ * role: string,
16
+ * capabilities_required: string[], // e.g. ["acp"]
17
+ * lifecycle: "fresh" | "reuse",
18
+ * cwd?: string,
19
+ * fullAutonomous?: boolean,
20
+ * consumer_extensions?: {
21
+ * openhive?: { loadout?: WireLoadout }, // OpenHive payload
22
+ * }
23
+ * }
24
+ *
25
+ * response:
26
+ * { agentId: string }
27
+ *
28
+ * Legacy shape support: pre-Tier-2 callers passed `loadout` at the top
29
+ * level (not under consumer_extensions). The handler accepts both for
30
+ * one release window — `consumer_extensions.openhive.loadout` is read
31
+ * first; falls back to top-level `loadout`.
32
+ *
33
+ * Symmetric with the mail path: both routes use `loadoutToSpawnOptions`
34
+ * to translate the wire-level loadout into macro-agent's spawn options.
35
+ */
36
+ import type { AgentManager } from "../agent/agent-manager.js";
37
+ import { type WireLoadout } from "./loadout-translation.js";
38
+ export interface SpawnAgentRequest {
39
+ role: string;
40
+ /** Optional cwd; defaults to the swarm's process.cwd() via agentManager. */
41
+ cwd?: string;
42
+ capabilities_required?: string[];
43
+ lifecycle?: "fresh" | "reuse";
44
+ /**
45
+ * @deprecated — pre-Tier-2 top-level loadout slot. Newer callers ship
46
+ * the loadout under `consumer_extensions.openhive.loadout`. Both
47
+ * shapes are accepted for one release window.
48
+ */
49
+ loadout?: WireLoadout;
50
+ /** Canonical consumer-extension namespace (Tier 2+). */
51
+ consumer_extensions?: {
52
+ openhive?: {
53
+ loadout?: WireLoadout;
54
+ };
55
+ [otherConsumer: string]: unknown;
56
+ };
57
+ fullAutonomous?: boolean;
58
+ /** Optional initial task description; defaults to a placeholder so the
59
+ * agent's session has *something* to render until the orchestrator's
60
+ * ACP `session/prompt` arrives. */
61
+ task?: string;
62
+ }
63
+ export interface SpawnAgentResponse {
64
+ agentId: string;
65
+ }
66
+ export interface SpawnAgentHandlerDeps {
67
+ agentManager: AgentManager;
68
+ /**
69
+ * Optional barrier called after spawn so the spawned agent's
70
+ * lifecycle-bridge has had time to register its `protocols: ['acp']`
71
+ * capability with the hub before this handler returns. Without this
72
+ * the orchestrator's subsequent `findAcpAgentInfo` would race the
73
+ * registration and return null.
74
+ *
75
+ * Returns true once the agent is registered and ACP-capable; false on
76
+ * timeout. Implementations typically wait on a Promise resolved by
77
+ * the lifecycle-bridge's `agent.registered` callback.
78
+ */
79
+ waitForAcpRegistration?: (agentId: string, timeoutMs?: number) => Promise<boolean>;
80
+ /** Optional logger; defaults to console.log. */
81
+ log?: (msg: string) => void;
82
+ }
83
+ export declare function handleDispatchSpawnAgent(params: SpawnAgentRequest, deps: SpawnAgentHandlerDeps): Promise<SpawnAgentResponse>;
84
+ //# sourceMappingURL=spawn-agent-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spawn-agent-handler.d.ts","sourceRoot":"","sources":["../../src/dispatch/spawn-agent-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAyB,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEnF,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAC9B;;;;OAIG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,wDAAwD;IACxD,mBAAmB,CAAC,EAAE;QACpB,QAAQ,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,WAAW,CAAA;SAAE,CAAC;QACrC,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;KAClC,CAAC;IACF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;wCAEoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,YAAY,CAAC;IAC3B;;;;;;;;;;OAUG;IACH,sBAAsB,CAAC,EAAE,CACvB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,KACf,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,gDAAgD;IAChD,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAID,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,iBAAiB,EACzB,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,kBAAkB,CAAC,CAkE7B"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * `x-dispatch/spawn-agent` MAP request handler — runtime-agnostic wire shape,
3
+ * macro-agent-specific implementation.
4
+ *
5
+ * Called by OpenHive's orchestrator when ACP-routing a dispatch with
6
+ * `lifecycle: 'fresh'` — the hub asks the swarm to spawn a fresh agent
7
+ * with the materialized loadout's structured fields applied to its spawn
8
+ * config. The handler returns the spawned agent's id; the orchestrator
9
+ * then attaches an ACP stream via the existing `findAcpAgentInfo` path.
10
+ *
11
+ * Wire shape — canonical (swarm-dispatch's `RemoteSpawnRequest`):
12
+ *
13
+ * request:
14
+ * {
15
+ * role: string,
16
+ * capabilities_required: string[], // e.g. ["acp"]
17
+ * lifecycle: "fresh" | "reuse",
18
+ * cwd?: string,
19
+ * fullAutonomous?: boolean,
20
+ * consumer_extensions?: {
21
+ * openhive?: { loadout?: WireLoadout }, // OpenHive payload
22
+ * }
23
+ * }
24
+ *
25
+ * response:
26
+ * { agentId: string }
27
+ *
28
+ * Legacy shape support: pre-Tier-2 callers passed `loadout` at the top
29
+ * level (not under consumer_extensions). The handler accepts both for
30
+ * one release window — `consumer_extensions.openhive.loadout` is read
31
+ * first; falls back to top-level `loadout`.
32
+ *
33
+ * Symmetric with the mail path: both routes use `loadoutToSpawnOptions`
34
+ * to translate the wire-level loadout into macro-agent's spawn options.
35
+ */
36
+ import { loadoutToSpawnOptions } from "./loadout-translation.js";
37
+ const DEFAULT_REGISTRATION_TIMEOUT_MS = 5_000;
38
+ export async function handleDispatchSpawnAgent(params, deps) {
39
+ const { agentManager, waitForAcpRegistration, log = console.log } = deps;
40
+ if (!params.role) {
41
+ throw new Error("x-dispatch/spawn-agent: missing 'role'");
42
+ }
43
+ if (params.lifecycle && params.lifecycle !== "fresh") {
44
+ throw new Error(`x-dispatch/spawn-agent: lifecycle='${params.lifecycle}' not supported by this handler — ` +
45
+ `'reuse' is handled hub-side via findAcpAgentInfo, not via this method`);
46
+ }
47
+ // cwd is optional — agentManager.spawn defaults to its own defaultCwd
48
+ // (typically process.cwd() of the macro-agent process) when omitted.
49
+ // Loadout location: prefer the canonical consumer_extensions.openhive
50
+ // slot (Tier 2+); fall back to the top-level field (pre-Tier-2). Older
51
+ // hubs ship the loadout at the top level; newer hubs ship under
52
+ // consumer_extensions. Both work during the dual-listen window.
53
+ const loadout = params.consumer_extensions?.openhive?.loadout ?? params.loadout;
54
+ const fullAutonomous = params.fullAutonomous ?? true;
55
+ const spawnLoadoutOpts = loadoutToSpawnOptions(loadout, {
56
+ fullAutonomous,
57
+ });
58
+ log(`[x-dispatch/spawn-agent] Spawning fresh ${params.role} cwd=${params.cwd} ` +
59
+ `permissions=${spawnLoadoutOpts.permissions ? JSON.stringify(spawnLoadoutOpts.permissions) : "(none)"} fullAutonomous=${fullAutonomous}`);
60
+ const spawned = await agentManager.spawn({
61
+ role: params.role,
62
+ ...(params.cwd ? { cwd: params.cwd } : {}),
63
+ parent: null,
64
+ // Mail-inbound and dispatch-spawned coordinators alike run under
65
+ // isolated settings so host-level Claude plugins don't auto-mount.
66
+ isolatedSettings: true,
67
+ task: params.task ?? "Awaiting dispatch (created by dispatch/spawn-agent)",
68
+ ...spawnLoadoutOpts,
69
+ });
70
+ // Block until the lifecycle-bridge has registered ACP capabilities,
71
+ // otherwise the orchestrator's subsequent `findAcpAgentInfo` lookup
72
+ // races the registration and fails. Best-effort: a timeout returns
73
+ // anyway and the orchestrator will retry on its own poll.
74
+ if (waitForAcpRegistration) {
75
+ const ok = await waitForAcpRegistration(spawned.id, DEFAULT_REGISTRATION_TIMEOUT_MS).catch(() => false);
76
+ if (!ok) {
77
+ log(`[x-dispatch/spawn-agent] Warning: ACP registration not confirmed for ` +
78
+ `agent ${spawned.id} within ${DEFAULT_REGISTRATION_TIMEOUT_MS}ms; ` +
79
+ `orchestrator may need to retry.`);
80
+ }
81
+ }
82
+ log(`[x-dispatch/spawn-agent] Spawn complete agentId=${spawned.id}`);
83
+ return { agentId: spawned.id };
84
+ }
85
+ //# sourceMappingURL=spawn-agent-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spawn-agent-handler.js","sourceRoot":"","sources":["../../src/dispatch/spawn-agent-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAGH,OAAO,EAAE,qBAAqB,EAAoB,MAAM,0BAA0B,CAAC;AAmDnF,MAAM,+BAA+B,GAAG,KAAK,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAAyB,EACzB,IAA2B;IAE3B,MAAM,EAAE,YAAY,EAAE,sBAAsB,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IAEzE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CACb,sCAAsC,MAAM,CAAC,SAAS,oCAAoC;YACxF,uEAAuE,CAC1E,CAAC;IACJ,CAAC;IACD,sEAAsE;IACtE,qEAAqE;IAErE,sEAAsE;IACtE,uEAAuE;IACvE,gEAAgE;IAChE,gEAAgE;IAChE,MAAM,OAAO,GACX,MAAM,CAAC,mBAAmB,EAAE,QAAQ,EAAE,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;IAElE,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC;IACrD,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,OAAO,EAAE;QACtD,cAAc;KACf,CAAC,CAAC;IAEH,GAAG,CACD,2CAA2C,MAAM,CAAC,IAAI,QAAQ,MAAM,CAAC,GAAG,GAAG;QACzE,eACE,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAChF,mBAAmB,cAAc,EAAE,CACtC,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC;QACvC,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,MAAM,EAAE,IAAI;QACZ,iEAAiE;QACjE,mEAAmE;QACnE,gBAAgB,EAAE,IAAI;QACtB,IAAI,EACF,MAAM,CAAC,IAAI,IAAI,qDAAqD;QACtE,GAAG,gBAAgB;KACpB,CAAC,CAAC;IAEH,oEAAoE;IACpE,oEAAoE;IACpE,mEAAmE;IACnE,0DAA0D;IAC1D,IAAI,sBAAsB,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAG,MAAM,sBAAsB,CACrC,OAAO,CAAC,EAAE,EACV,+BAA+B,CAChC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,GAAG,CACD,uEAAuE;gBACrE,SAAS,OAAO,CAAC,EAAE,WAAW,+BAA+B,MAAM;gBACnE,iCAAiC,CACpC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,GAAG,CAAC,mDAAmD,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IACrE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;AACjC,CAAC"}
@@ -15,6 +15,7 @@
15
15
  import type { InboxAdapter } from "../adapters/types.js";
16
16
  import type { TasksAdapter } from "../adapters/types.js";
17
17
  import type { AgentManager } from "../agent/agent-manager.js";
18
+ import type { AgentStore } from "../agent/agent-store.js";
18
19
  import type { LifecycleContext, DoneArgs, CleanupStatus, DoneHandlerResult } from "./types.js";
19
20
  import type { MergeQueueInterface } from "../workspace/merge-queue/types.js";
20
21
  import type { WorkspaceManager } from "../workspace/types.js";
@@ -30,6 +31,12 @@ export interface HandlerDepsV2 {
30
31
  * Without it, commits use raw git (legacy / null-workspace path).
31
32
  */
32
33
  workspaceManager?: WorkspaceManager;
34
+ /**
35
+ * Optional agent store. When provided, the done() summary is persisted in
36
+ * agent metadata for parentless agents (mail-inbound dispatch workers) so
37
+ * the dispatch reply bridge can forward it as a hub mail turn.
38
+ */
39
+ agentStore?: AgentStore;
33
40
  }
34
41
  /**
35
42
  * Dispatch done() to the appropriate handler based on role.
@@ -1 +1 @@
1
- {"version":3,"file":"handlers-v2.d.ts","sourceRoot":"","sources":["../../src/lifecycle/handlers-v2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EACV,gBAAgB,EAChB,QAAQ,EACR,aAAa,EACb,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAW9D,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAoYD;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE,QAAQ,EACd,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,iBAAiB,CAAC,CA0B5B"}
1
+ {"version":3,"file":"handlers-v2.d.ts","sourceRoot":"","sources":["../../src/lifecycle/handlers-v2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,KAAK,EACV,gBAAgB,EAChB,QAAQ,EACR,aAAa,EACb,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAW9D,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC;;;;OAIG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AA8ZD;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE,QAAQ,EACd,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,iBAAiB,CAAC,CA0B5B"}
@@ -12,6 +12,7 @@
12
12
  *
13
13
  * @module lifecycle/handlers-v2
14
14
  */
15
+ import { getPermissionOverlay } from "../dispatch/permission-overlay.js";
15
16
  import { commitChanges, attemptMerge, abortMerge } from "./cleanup.js";
16
17
  import { getAllDescendants, needsCascadeTermination, } from "./cascade.js";
17
18
  // =============================================================================
@@ -143,6 +144,32 @@ async function handleWorkerDone(context, args, cleanupStatus, deps) {
143
144
  catch {
144
145
  warnings.push("Failed to emit WORKER_DONE");
145
146
  }
147
+ // Step 3b: Persist `_lastSummary` to agent metadata when:
148
+ // - Agent is parentless (mail-inbound fresh-spawn dispatch workers —
149
+ // emitSignal is a no-op for parentless, so metadata is the only
150
+ // reply-path channel), OR
151
+ // - Agent is processing a dispatch (Phase 1 permission overlay set
152
+ // for this agent → in-flight). Gives the mail-inbound-reuse-consumer
153
+ // a metadata-side fallback for the reply summary that's
154
+ // independent of whether the prompt iterator's update stream
155
+ // races with ACP connection close. Applies to both parentless
156
+ // AND parented in-flight agents (parented dispatch targets are
157
+ // the typical mail+reuse setup).
158
+ const inDispatch = !!getPermissionOverlay(context.agentId);
159
+ if ((inDispatch || !context.parentId) && args.summary && deps.agentStore) {
160
+ try {
161
+ const existing = deps.agentStore.getAgent(context.agentId);
162
+ deps.agentStore.updateAgent(context.agentId, {
163
+ metadata: {
164
+ ...(existing?.metadata ?? {}),
165
+ _lastSummary: args.summary,
166
+ },
167
+ });
168
+ }
169
+ catch {
170
+ // best effort — don't block termination
171
+ }
172
+ }
146
173
  // NOTE: Task transition is NOT done here — AgentManagerV2.terminate() handles
147
174
  // it to avoid double-transitioning.
148
175
  // Step 4: Signal descendants (notification only — actual cascade via AgentManager)
@@ -1 +1 @@
1
- {"version":3,"file":"handlers-v2.js","sourceRoot":"","sources":["../../src/lifecycle/handlers-v2.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handlers-v2.js","sourceRoot":"","sources":["../../src/lifecycle/handlers-v2.ts"],"names":[],"mappings":"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"}
@@ -23,5 +23,23 @@ export interface LifecycleBridgeConnection {
23
23
  export declare function createLifecycleBridge(connection: LifecycleBridgeConnection, agentStore: AgentStore, scope: string, taskBridge?: TaskBridge, getLocalMapId?: (localAgentId: string) => string | undefined): {
24
24
  callback: AgentLifecycleCallback;
25
25
  cleanup: () => Promise<void>;
26
+ /**
27
+ * Resolve true once the named agent has completed `map/agents/register`
28
+ * with the hub (its entry.mapId is populated). Used by the dispatch
29
+ * spawn-agent handler to barrier-wait for hub-side registration before
30
+ * returning, so the orchestrator's subsequent `findAcpAgentInfo` lookup
31
+ * doesn't race the registration.
32
+ *
33
+ * Returns false if the timeout elapses before registration completes.
34
+ */
35
+ awaitRegistration: (agentId: string, timeoutMs?: number) => Promise<boolean>;
36
+ /**
37
+ * Reverse-lookup: hub-assigned MAP ULID → local agent id. Used by the
38
+ * `map/dispatch/message` handler in the sidecar to translate envelope
39
+ * recipients (which the hub addresses by MAP ULID) into local agent ids
40
+ * (which the inbox addresses messages by). Returns undefined when no
41
+ * registered agent matches.
42
+ */
43
+ findLocalAgentByMapId: (mapId: string) => string | undefined;
26
44
  };
27
45
  //# sourceMappingURL=lifecycle-bridge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle-bridge.d.ts","sourceRoot":"","sources":["../../src/map/lifecycle-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,+DAA+D;AAC/D,MAAM,WAAW,yBAAyB;IACxC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,IAAI,WAAW,IAAI,OAAO,CAAC;CAC5B;AAUD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,yBAAyB,EACrC,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,UAAU,EACvB,aAAa,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAC3D;IAAE,QAAQ,EAAE,sBAAsB,CAAC;IAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAsJpE"}
1
+ {"version":3,"file":"lifecycle-bridge.d.ts","sourceRoot":"","sources":["../../src/map/lifecycle-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,+DAA+D;AAC/D,MAAM,WAAW,yBAAyB;IACxC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,IAAI,WAAW,IAAI,OAAO,CAAC;CAC5B;AAUD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,yBAAyB,EACrC,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,UAAU,EACvB,aAAa,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAC3D;IACD,QAAQ,EAAE,sBAAsB,CAAC;IACjC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B;;;;;;;;OAQG;IACH,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7E;;;;;;OAMG;IACH,qBAAqB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CAC9D,CA+KA"}
@@ -145,6 +145,28 @@ export function createLifecycleBridge(connection, agentStore, scope, taskBridge,
145
145
  await Promise.allSettled(promises);
146
146
  registered.clear();
147
147
  };
148
- return { callback, cleanup };
148
+ /**
149
+ * Block until the named agent's hub-side registration completes (entry
150
+ * has been assigned a mapId by the `map/agents/register` response) or
151
+ * the timeout elapses. Polls the local `registered` map.
152
+ */
153
+ const awaitRegistration = async (agentId, timeoutMs = 5000) => {
154
+ const deadline = Date.now() + timeoutMs;
155
+ while (Date.now() < deadline) {
156
+ const entry = registered.get(agentId);
157
+ if (entry?.mapId)
158
+ return true;
159
+ await new Promise((r) => setTimeout(r, 50));
160
+ }
161
+ return Boolean(registered.get(agentId)?.mapId);
162
+ };
163
+ const findLocalAgentByMapId = (mapId) => {
164
+ for (const [localId, entry] of registered) {
165
+ if (entry.mapId === mapId)
166
+ return localId;
167
+ }
168
+ return undefined;
169
+ };
170
+ return { callback, cleanup, awaitRegistration, findLocalAgentByMapId };
149
171
  }
150
172
  //# sourceMappingURL=lifecycle-bridge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle-bridge.js","sourceRoot":"","sources":["../../src/map/lifecycle-bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifecycle-bridge.js","sourceRoot":"","sources":["../../src/map/lifecycle-bridge.ts"],"names":[],"mappings":"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"}