@xrkseek/harness 0.4.5 → 0.4.7

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 (102) hide show
  1. package/node_modules/@xrkseek/a2a/README.md +3 -3
  2. package/node_modules/@xrkseek/a2a/dist/inbound-frame.d.ts +13 -0
  3. package/node_modules/@xrkseek/a2a/dist/inbound-frame.d.ts.map +1 -0
  4. package/node_modules/@xrkseek/a2a/dist/inbound-frame.js +32 -0
  5. package/node_modules/@xrkseek/a2a/dist/inbound-frame.js.map +1 -0
  6. package/node_modules/@xrkseek/a2a/dist/inbound.d.ts +2 -2
  7. package/node_modules/@xrkseek/a2a/dist/index.d.ts +1 -0
  8. package/node_modules/@xrkseek/a2a/dist/index.d.ts.map +1 -1
  9. package/node_modules/@xrkseek/a2a/dist/index.js +1 -0
  10. package/node_modules/@xrkseek/a2a/dist/index.js.map +1 -1
  11. package/node_modules/@xrkseek/checkpoint/dist/store.d.ts.map +1 -1
  12. package/node_modules/@xrkseek/checkpoint/dist/store.js +15 -2
  13. package/node_modules/@xrkseek/checkpoint/dist/store.js.map +1 -1
  14. package/node_modules/@xrkseek/core-agent/dist/index.d.ts +5 -0
  15. package/node_modules/@xrkseek/core-agent/dist/index.d.ts.map +1 -1
  16. package/node_modules/@xrkseek/core-agent/dist/index.js +1 -0
  17. package/node_modules/@xrkseek/core-agent/dist/index.js.map +1 -1
  18. package/node_modules/@xrkseek/core-agent-loop/dist/index.d.ts +7 -0
  19. package/node_modules/@xrkseek/core-agent-loop/dist/index.d.ts.map +1 -1
  20. package/node_modules/@xrkseek/core-agent-loop/dist/index.js +5 -0
  21. package/node_modules/@xrkseek/core-agent-loop/dist/index.js.map +1 -1
  22. package/node_modules/@xrkseek/exec-memory/dist/http.d.ts +4 -4
  23. package/node_modules/@xrkseek/exec-memory/dist/http.d.ts.map +1 -1
  24. package/node_modules/@xrkseek/exec-memory/dist/http.js +9 -10
  25. package/node_modules/@xrkseek/exec-memory/dist/http.js.map +1 -1
  26. package/node_modules/@xrkseek/exec-memory/dist/resolve.d.ts +2 -10
  27. package/node_modules/@xrkseek/exec-memory/dist/resolve.d.ts.map +1 -1
  28. package/node_modules/@xrkseek/exec-memory/dist/resolve.js +2 -7
  29. package/node_modules/@xrkseek/exec-memory/dist/resolve.js.map +1 -1
  30. package/node_modules/@xrkseek/exec-ssh/README.md +3 -0
  31. package/node_modules/@xrkseek/exec-ssh/dist/index.d.ts +2 -1
  32. package/node_modules/@xrkseek/exec-ssh/dist/index.d.ts.map +1 -1
  33. package/node_modules/@xrkseek/exec-ssh/dist/index.js +2 -1
  34. package/node_modules/@xrkseek/exec-ssh/dist/index.js.map +1 -1
  35. package/node_modules/@xrkseek/exec-ssh/dist/probe.d.ts +26 -0
  36. package/node_modules/@xrkseek/exec-ssh/dist/probe.d.ts.map +1 -0
  37. package/node_modules/@xrkseek/exec-ssh/dist/probe.js +50 -0
  38. package/node_modules/@xrkseek/exec-ssh/dist/probe.js.map +1 -0
  39. package/node_modules/@xrkseek/exec-ssh/dist/providers.d.ts +8 -0
  40. package/node_modules/@xrkseek/exec-ssh/dist/providers.d.ts.map +1 -1
  41. package/node_modules/@xrkseek/exec-ssh/dist/providers.js +25 -0
  42. package/node_modules/@xrkseek/exec-ssh/dist/providers.js.map +1 -1
  43. package/node_modules/@xrkseek/im-gateway-contract/dist/index.d.ts +7 -0
  44. package/node_modules/@xrkseek/im-gateway-contract/dist/index.d.ts.map +1 -1
  45. package/node_modules/@xrkseek/im-gateway-contract/dist/index.js +29 -0
  46. package/node_modules/@xrkseek/im-gateway-contract/dist/index.js.map +1 -1
  47. package/node_modules/@xrkseek/preset-harness/dist/preset.js +2 -2
  48. package/node_modules/@xrkseek/preset-harness/dist/preset.js.map +1 -1
  49. package/node_modules/@xrkseek/preset-harness/dist/tsconfig.tsbuildinfo +1 -1
  50. package/node_modules/@xrkseek/preset-minimal/dist/tsconfig.tsbuildinfo +1 -1
  51. package/node_modules/@xrkseek/preset-server/dist/tsconfig.tsbuildinfo +1 -1
  52. package/node_modules/@xrkseek/server-face/dist/cost-meter-store.d.ts +2 -0
  53. package/node_modules/@xrkseek/server-face/dist/cost-meter-store.d.ts.map +1 -1
  54. package/node_modules/@xrkseek/server-face/dist/cost-meter-store.js +4 -0
  55. package/node_modules/@xrkseek/server-face/dist/cost-meter-store.js.map +1 -1
  56. package/node_modules/@xrkseek/server-face/dist/index.d.ts +3 -3
  57. package/node_modules/@xrkseek/server-face/dist/index.d.ts.map +1 -1
  58. package/node_modules/@xrkseek/server-face/dist/index.js +3 -3
  59. package/node_modules/@xrkseek/server-face/dist/index.js.map +1 -1
  60. package/node_modules/@xrkseek/server-face/dist/process-channels.d.ts +10 -2
  61. package/node_modules/@xrkseek/server-face/dist/process-channels.d.ts.map +1 -1
  62. package/node_modules/@xrkseek/server-face/dist/process-channels.js +14 -9
  63. package/node_modules/@xrkseek/server-face/dist/process-channels.js.map +1 -1
  64. package/node_modules/@xrkseek/server-face/dist/session-export.d.ts.map +1 -1
  65. package/node_modules/@xrkseek/server-face/dist/session-export.js +12 -0
  66. package/node_modules/@xrkseek/server-face/dist/session-export.js.map +1 -1
  67. package/node_modules/@xrkseek/server-face/dist/session-status.d.ts +30 -2
  68. package/node_modules/@xrkseek/server-face/dist/session-status.d.ts.map +1 -1
  69. package/node_modules/@xrkseek/server-face/dist/session-status.js +82 -24
  70. package/node_modules/@xrkseek/server-face/dist/session-status.js.map +1 -1
  71. package/node_modules/@xrkseek/server-face/dist/settings-schemas.d.ts.map +1 -1
  72. package/node_modules/@xrkseek/server-face/dist/settings-schemas.js +20 -0
  73. package/node_modules/@xrkseek/server-face/dist/settings-schemas.js.map +1 -1
  74. package/node_modules/@xrkseek/server-face/dist/workspace-checkpoint.d.ts +12 -5
  75. package/node_modules/@xrkseek/server-face/dist/workspace-checkpoint.d.ts.map +1 -1
  76. package/node_modules/@xrkseek/server-face/dist/workspace-checkpoint.js +15 -7
  77. package/node_modules/@xrkseek/server-face/dist/workspace-checkpoint.js.map +1 -1
  78. package/node_modules/@xrkseek/server-host/dist/a2a-inbound-public.d.ts +38 -1
  79. package/node_modules/@xrkseek/server-host/dist/a2a-inbound-public.d.ts.map +1 -1
  80. package/node_modules/@xrkseek/server-host/dist/a2a-inbound-public.js +121 -9
  81. package/node_modules/@xrkseek/server-host/dist/a2a-inbound-public.js.map +1 -1
  82. package/node_modules/@xrkseek/server-host/dist/index.d.ts +5 -2
  83. package/node_modules/@xrkseek/server-host/dist/index.d.ts.map +1 -1
  84. package/node_modules/@xrkseek/server-host/dist/index.js +59 -16
  85. package/node_modules/@xrkseek/server-host/dist/index.js.map +1 -1
  86. package/node_modules/@xrkseek/server-http/dist/dsh-compat/auto-review-classifier.d.ts +21 -0
  87. package/node_modules/@xrkseek/server-http/dist/dsh-compat/auto-review-classifier.d.ts.map +1 -1
  88. package/node_modules/@xrkseek/server-http/dist/dsh-compat/auto-review-classifier.js +44 -0
  89. package/node_modules/@xrkseek/server-http/dist/dsh-compat/auto-review-classifier.js.map +1 -1
  90. package/node_modules/@xrkseek/server-http/dist/dsh-compat/im-gateway-sidecar.d.ts +2 -3
  91. package/node_modules/@xrkseek/server-http/dist/dsh-compat/im-gateway-sidecar.d.ts.map +1 -1
  92. package/node_modules/@xrkseek/server-http/dist/dsh-compat/im-gateway-sidecar.js +2 -28
  93. package/node_modules/@xrkseek/server-http/dist/dsh-compat/im-gateway-sidecar.js.map +1 -1
  94. package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.d.ts +2 -2
  95. package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.d.ts.map +1 -1
  96. package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.js +1 -1
  97. package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.js.map +1 -1
  98. package/node_modules/@xrkseek/server-http/dist/index.d.ts +1 -1
  99. package/node_modules/@xrkseek/server-http/dist/index.d.ts.map +1 -1
  100. package/node_modules/@xrkseek/server-http/dist/index.js +1 -1
  101. package/node_modules/@xrkseek/server-http/dist/index.js.map +1 -1
  102. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"a2a-inbound-public.d.ts","sourceRoot":"","sources":["../src/a2a-inbound-public.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAQjE,wBAAgB,6BAA6B,CAAC,OAAO,CAAC,EAAE;IACtD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAiB5E"}
1
+ {"version":3,"file":"a2a-inbound-public.d.ts","sourceRoot":"","sources":["../src/a2a-inbound-public.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAMjE,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAO9B,uDAAuD;AACvD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,sDAAsD;IACtD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,oCAAoC;IACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAIT;AAmBD,6EAA6E;AAC7E,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,OAAO,CAAC,EAAE,yBAAyB,GAClC,MAAM,CAWR;AA6BD;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE;IACL,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,yBAAyB,CAAC;CAC9C,GACA,OAAO,CAAC,MAAM,CAAC,CA2CjB;AAED,wBAAgB,6BAA6B,CAAC,OAAO,CAAC,EAAE;IACtD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAC5B,0DAA0D;IAC1D,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,yBAAyB,GAAG,SAAS,CAAC;CACvE,GAAG,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAgD5E"}
@@ -1,22 +1,134 @@
1
- import { createA2aInboundHandler } from "@xrkseek/a2a";
1
+ import { readSessionEvents } from "@xrkseek/core-session";
2
+ import { createA2aInboundHandler, wrapA2aInboundText, } from "@xrkseek/a2a";
3
+ import { dispatchFaceMethod, lastAssistantBodyText, } from "@xrkseek/server-face";
2
4
  function envOn(raw) {
3
5
  const v = raw?.trim().toLowerCase();
4
6
  return v === "1" || v === "true" || v === "yes" || v === "on";
5
7
  }
8
+ /**
9
+ * Resolve whether A2A inbound routes are live.
10
+ * Non-empty `XRK_A2A_INBOUND` wins (CI bypass); else product `enabled`.
11
+ */
12
+ export function resolveA2aInboundEnabled(env = process.env, product) {
13
+ const raw = String(env.XRK_A2A_INBOUND ?? "").trim();
14
+ if (raw !== "")
15
+ return envOn(raw);
16
+ return product?.enabled === true;
17
+ }
18
+ function inboundTimeoutMs(env, product) {
19
+ const fromProduct = product?.timeoutMs;
20
+ if (typeof fromProduct === "number" &&
21
+ Number.isFinite(fromProduct) &&
22
+ fromProduct >= 1_000) {
23
+ return Math.min(fromProduct, 600_000);
24
+ }
25
+ const n = Number(env.XRK_A2A_INBOUND_TIMEOUT_MS ?? "");
26
+ if (Number.isFinite(n) && n >= 1_000)
27
+ return Math.min(n, 600_000);
28
+ return 120_000;
29
+ }
30
+ /** Stable Face session id for an A2A context (Hermes `a2a-{slug}` style). */
31
+ export function a2aInboundSessionId(contextId, env = process.env, product) {
32
+ const pinned = env.XRK_A2A_INBOUND_SESSION?.trim() || product?.sessionId?.trim();
33
+ if (pinned)
34
+ return pinned;
35
+ const slug = contextId
36
+ .trim()
37
+ .replace(/[^a-zA-Z0-9._-]+/g, "-")
38
+ .replace(/^-+|-+$/g, "")
39
+ .slice(0, 64) || "default";
40
+ return `a2a-${slug}`;
41
+ }
42
+ function sleep(ms) {
43
+ return new Promise((resolve) => setTimeout(resolve, ms));
44
+ }
45
+ async function ensureA2aSession(face, sessionId, peer) {
46
+ const created = await dispatchFaceMethod(face, "session.create", `a2a-c-${Date.now().toString(36)}`, {
47
+ sessionId,
48
+ label: `a2a:${peer}`,
49
+ });
50
+ if (created.result.ok)
51
+ return;
52
+ if (face.store.has(sessionId))
53
+ return;
54
+ throw new Error(created.result.ok === false
55
+ ? created.result.error.message
56
+ : `session.create failed for ${sessionId}`);
57
+ }
58
+ /**
59
+ * Admit framed A2A text into Face and return the next assistant body
60
+ * (or a timeout / empty-turn note).
61
+ */
62
+ export async function admitA2aInboundToFace(face, input) {
63
+ const env = input.env ?? process.env;
64
+ const product = input.product;
65
+ const sessionId = a2aInboundSessionId(input.contextId, env, product);
66
+ const framed = wrapA2aInboundText(input.peer, input.text);
67
+ await ensureA2aSession(face, sessionId, input.peer);
68
+ const beforeLen = readSessionEvents(face.store, sessionId).length;
69
+ const prompted = await dispatchFaceMethod(face, "session.prompt", `a2a-p-${input.taskId}`, {
70
+ sessionId,
71
+ mode: "queue",
72
+ content: [{ type: "text", text: framed }],
73
+ });
74
+ if (!prompted.result.ok) {
75
+ throw new Error(prompted.result.ok === false
76
+ ? prompted.result.error.message
77
+ : `session.prompt failed for ${sessionId}`);
78
+ }
79
+ const timeoutMs = inboundTimeoutMs(env, product);
80
+ const deadline = Date.now() + timeoutMs;
81
+ while (Date.now() < deadline) {
82
+ const reply = lastAssistantBodyText(readSessionEvents(face.store, sessionId).slice(beforeLen));
83
+ if (reply)
84
+ return reply;
85
+ await sleep(150);
86
+ }
87
+ const late = lastAssistantBodyText(readSessionEvents(face.store, sessionId).slice(beforeLen));
88
+ if (late)
89
+ return late;
90
+ return (`[A2A] Face session ${sessionId} had no assistant reply within ` +
91
+ `${timeoutMs}ms (task ${input.taskId}; peer ${input.peer})`);
92
+ }
6
93
  export function createA2aInboundPublicHandler(options) {
7
94
  const env = options?.env ?? process.env;
8
- if (!envOn(env.XRK_A2A_INBOUND)) {
9
- return async () => false;
10
- }
11
95
  const host = (options?.host ?? env.XRK_A2A_PUBLIC_HOST ?? "127.0.0.1").trim();
12
96
  const port = options?.port ??
13
97
  (Number(env.XRK_A2A_PUBLIC_PORT) || Number(env.PORT) || 0);
14
98
  const base = env.XRK_A2A_PUBLIC_URL?.trim() ||
15
99
  (port > 0 ? `http://${host}:${port}/a2a` : `http://${host}/a2a`);
16
- return createA2aInboundHandler({
17
- url: base,
18
- env,
19
- name: env.XRK_A2A_AGENT_NAME?.trim() || "XRK Harness",
20
- });
100
+ const face = options?.face;
101
+ let inner;
102
+ const ensureInner = () => {
103
+ if (inner)
104
+ return inner;
105
+ inner = createA2aInboundHandler({
106
+ url: base,
107
+ env,
108
+ name: env.XRK_A2A_AGENT_NAME?.trim() || "XRK Harness",
109
+ description: face
110
+ ? "XRK Host A2A inbound — message/send admits into a Face session."
111
+ : "XRK Host A2A inbound (Agent Card + message/send). Face session injection optional.",
112
+ ...(face
113
+ ? {
114
+ onMessage: (msg) => {
115
+ const product = options?.resolveProduct?.();
116
+ return admitA2aInboundToFace(face, {
117
+ ...msg,
118
+ env,
119
+ ...(product ? { product } : {}),
120
+ });
121
+ },
122
+ }
123
+ : {}),
124
+ });
125
+ return inner;
126
+ };
127
+ return async (req, res) => {
128
+ const product = options?.resolveProduct?.();
129
+ if (!resolveA2aInboundEnabled(env, product))
130
+ return false;
131
+ return ensureInner()(req, res);
132
+ };
21
133
  }
22
134
  //# sourceMappingURL=a2a-inbound-public.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"a2a-inbound-public.js","sourceRoot":"","sources":["../src/a2a-inbound-public.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAEvD,SAAS,KAAK,CAAC,GAAuB;IACpC,MAAM,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACpC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,OAI7C;IACC,MAAM,GAAG,GAAG,OAAO,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACxC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;QAChC,OAAO,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC;IAC3B,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,IAAI,GAAG,CAAC,mBAAmB,IAAI,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9E,MAAM,IAAI,GACR,OAAO,EAAE,IAAI;QACb,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,MAAM,IAAI,GACR,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE;QAC9B,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,CAAC;IACnE,OAAO,uBAAuB,CAAC;QAC7B,GAAG,EAAE,IAAI;QACT,GAAG;QACH,IAAI,EAAE,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,aAAa;KACtD,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"a2a-inbound-public.js","sourceRoot":"","sources":["../src/a2a-inbound-public.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { AgentHandle } from "@xrkseek/core-agent";
2
2
  import type { LlmAdapter } from "@xrkseek/llm";
3
3
  import { type SessionStore } from "@xrkseek/core-session";
4
+ import { type MemoryProvider } from "@xrkseek/exec-memory";
4
5
  import { type HostConfig } from "@xrkseek/server-config";
5
6
  import { type HarnessHttpServer } from "@xrkseek/server-http";
6
7
  import { type PluginLoader, type RegisteredPlugin } from "@xrkseek/server-loader";
@@ -12,6 +13,7 @@ export type { InvalidateAllOpts } from "./agent-cache.js";
12
13
  export { createStandingToolRegistry } from "./standing-tools.js";
13
14
  export type { AgentResolveOpts, HostAgentCache } from "./agent-cache.js";
14
15
  export type { HostLogger, HostSpawnOptions } from "./log.js";
16
+ export { a2aInboundSessionId, createA2aInboundPublicHandler, resolveA2aInboundEnabled, type A2aInboundProductSettings, } from "./a2a-inbound-public.js";
15
17
  export { loadMcpToolPlugins, mcpDraftsToSpecs, mcpFingerprint, parseMcpServersEnv, readMcpAllowFromHostSettings, readMcpServersFromHostSettings, reconcileMcpToolPlugins, resetLastGoodHostMcpWireCaches, type McpRegisteredPlugin, type McpServerDraft, type McpServerSpec, type ReconcileMcpResult, } from "./mcp-wire.js";
16
18
  /**
17
19
  * `prepareArgv` for the Host-wide shared shell. Resolves the sandbox stack
@@ -176,10 +178,11 @@ export type AgentFactory = (input: {
176
178
  /** Env overlay for video-gen (Credentials `XRK_VIDEO_GEN_OPENAI_KEY`). */
177
179
  videoGenEnv?: NodeJS.ProcessEnv;
178
180
  /**
179
- * Face `curated-memory` product: pass `false` to skip MEMORY.md / USER.md.
181
+ * Face `curated-memory` product: pass `false` to skip MEMORY.md / USER.md;
182
+ * pass a provider to share Host Phase1 consolidation store with Agent tools.
180
183
  * `XRK_CURATED_MEMORY=0` env still force-disables for CI.
181
184
  */
182
- curatedMemory?: false;
185
+ curatedMemory?: false | MemoryProvider;
183
186
  /**
184
187
  * Face `locale` product (Settings SoT) — drives the harness `language` prompt
185
188
  * section so reasoning follows the UI language.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,8 @@ import { createProviderRegistry } from "@xrkseek/llm-registry";
4
4
  import { loadPolicyRulesetFile } from "@xrkseek/policy";
5
5
  import { flattenText, isHumanUserMessageSource } from "@xrkseek/protocol";
6
6
  import { effectiveSandboxMode, shouldConfineSandbox, } from "@xrkseek/protocol";
7
- import { consolidateCuratedMemoryPhase1, consolidateCuratedMemoryPhase2, createCuratedMemoryStore, } from "@xrkseek/exec-memory";
7
+ import { consolidateCuratedMemoryPhase1, consolidateCuratedMemoryPhase2, resolveMemoryProvider, } from "@xrkseek/exec-memory";
8
+ import { runSkillCurator } from "@xrkseek/workspace";
8
9
  import { resolveSecretStore } from "@xrkseek/secrets";
9
10
  import { hostSettingsPath, defaultSpillDir, resolveXrkHome } from "@xrkseek/server-config";
10
11
  import { installOutboundHttpProxy } from "./http-proxy.js";
@@ -12,7 +13,7 @@ import { mountInvariantsFailFast } from "./invariants-fail-fast.js";
12
13
  import { watchPolicyFile } from "./policy-file-watch.js";
13
14
  import { createA2aInboundPublicHandler } from "./a2a-inbound-public.js";
14
15
  import { applyXrkProductBootPolicy, chainPublicHandlers, ensureDshCompatHostPlugin, createLiveHostPluginsPublicHandler, createHttpServer, createXrkPluginPublicHandler, createSidebarPublicHandler, prewarmDshCompatAdapters, shutdownDshCompatServices, applyHostPackageByName, stopHostPackageFiber, listHostAppliedPackages, invokeDshCompatRpc, attachDshCompatUpgrades, DSH_SETTINGS_NAMESPACES, DSH_SETTINGS_DEFAULTS, runPluginMutate, ensureXrkPlatformClientBootEntries, injectBootIntoHtml, injectMobileAccessShellIntoHtml, loadBootManifestFromWebDist, mergeWebBootManifests, resolveWebBootManifest, createXrkWalletPort, createMobileAccessGateChecker, createMobileAccessGateHandler, loadSidebarPrefs, } from "@xrkseek/server-http";
15
- import { attachFaceUpgrades, bindSubagentTools, bindSessionQueryTools, createFaceRuntime, effectiveHostApiKey, isLoopbackAddress, listCredentialSlots, peekSettingsYamlSection, publishRemoteEvent, createSessionRoutingLlm, liveRouteAllowsImageInput, resolveSessionCwd, canonicalAgentPresetId, resolveAgentPresetProfile, DEFAULT_MAX_DEPTH, DEFAULT_MAX_ACTIVE_CHILDREN, tryHandleFaceHttp, isPluginSoftDisabledAt, readDisabledPluginIdsAt, readManagedPackageIndexAt, reconcileManagedProcessPlugins, snapshotSessionWorkspace, } from "@xrkseek/server-face";
16
+ import { attachFaceUpgrades, bindSubagentTools, bindSessionQueryTools, createFaceRuntime, effectiveHostApiKey, isLoopbackAddress, listCredentialSlots, peekSettingsYamlSection, publishRemoteEvent, createSessionRoutingLlm, liveRouteAllowsImageInput, resolveSessionCwd, canonicalAgentPresetId, resolveAgentPresetProfile, DEFAULT_MAX_DEPTH, DEFAULT_MAX_ACTIVE_CHILDREN, tryHandleFaceHttp, isPluginSoftDisabledAt, readDisabledPluginIdsAt, readManagedPackageIndexAt, reconcileManagedProcessPlugins, snapshotSessionWorkspace, SNAPSHOT_DRAIN_BUDGET_MS, } from "@xrkseek/server-face";
16
17
  import { createPluginLoader, composeHostPolicyEngine, wireCompositionChannels, wireCompositionLlm, collectChannelPluginRegistrations, } from "@xrkseek/server-loader";
17
18
  import { existsSync } from "node:fs";
18
19
  import { access } from "node:fs/promises";
@@ -41,11 +42,12 @@ import { createSandboxStack, parseSandboxProduct, } from "@xrkseek/exec-sandbox"
41
42
  import { createBrowserRuntimeRegistry, setOutboundAllowlistAuditObserver } from "@xrkseek/exec-web";
42
43
  import { createLocalSubprocess } from "@xrkseek/exec-subprocess";
43
44
  import { resolveExecEnvironment, } from "@xrkseek/exec-environment";
44
- import { createSshExecutionWorld, resolveSshConfig, } from "@xrkseek/exec-ssh";
45
+ import { createSshExecutionWorldReady, resolveSshConfig, } from "@xrkseek/exec-ssh";
45
46
  /** True while an unattended cron agent turn is running — skip cron tools to avoid recursion. */
46
47
  const cronAgentDepth = new AsyncLocalStorage();
47
48
  export { createHostAgentCache, HOST_PLUGINS_KEY } from "./agent-cache.js";
48
49
  export { createStandingToolRegistry } from "./standing-tools.js";
50
+ export { a2aInboundSessionId, createA2aInboundPublicHandler, resolveA2aInboundEnabled, } from "./a2a-inbound-public.js";
49
51
  export { loadMcpToolPlugins, mcpDraftsToSpecs, mcpFingerprint, parseMcpServersEnv, readMcpAllowFromHostSettings, readMcpServersFromHostSettings, reconcileMcpToolPlugins, resetLastGoodHostMcpWireCaches, } from "./mcp-wire.js";
50
52
  /**
51
53
  * AbortError with a readable reason. Used by the session drain snapshot race
@@ -357,7 +359,7 @@ export function createHostManager() {
357
359
  if (sshConfig) {
358
360
  execWorldKind = "ssh";
359
361
  localHostRoot = config.runtime.workspaceRoot;
360
- sshWorld = createSshExecutionWorld({ config: sshConfig });
362
+ sshWorld = await createSshExecutionWorldReady({ config: sshConfig });
361
363
  // Tool coordinates are the remote workspace; Face session cwd follows.
362
364
  config.runtime.workspaceRoot =
363
365
  sshWorld.workspaceRoot;
@@ -425,6 +427,13 @@ export function createHostManager() {
425
427
  const ensureSession = (sid) => newSession(store, sid).id;
426
428
  const faceBox = {};
427
429
  /** Session-end Phase1 (+ optional Phase2 LLM): fold leftover notes into MEMORY.md. */
430
+ let curatedMemProvider;
431
+ const getCuratedMemProvider = () => {
432
+ if (!curatedMemProvider) {
433
+ curatedMemProvider = resolveMemoryProvider();
434
+ }
435
+ return curatedMemProvider;
436
+ };
428
437
  const consolidateCuratedMemoryForSession = (sessionId) => {
429
438
  try {
430
439
  const rt = faceBox.runtime;
@@ -462,7 +471,7 @@ export function createHostManager() {
462
471
  }
463
472
  if (userTexts.length === 0)
464
473
  return;
465
- const memStore = createCuratedMemoryStore();
474
+ const memStore = getCuratedMemProvider();
466
475
  void (async () => {
467
476
  await consolidateCuratedMemoryPhase1(memStore, { userTexts });
468
477
  if (!phase2Llm)
@@ -486,6 +495,16 @@ export function createHostManager() {
486
495
  /* best-effort — Host stop / archive must continue */
487
496
  }
488
497
  };
498
+ const runWorkspaceSkillCurator = () => {
499
+ try {
500
+ void runSkillCurator({
501
+ workspaceRoot: config.runtime.workspaceRoot,
502
+ });
503
+ }
504
+ catch {
505
+ /* best-effort — Host stop must continue */
506
+ }
507
+ };
489
508
  const llmResolverBox = {};
490
509
  const pluginSettingsBox = {};
491
510
  const sessionCwdBox = {};
@@ -651,7 +670,7 @@ export function createHostManager() {
651
670
  : {}),
652
671
  ...(pluginSettings.curatedMemory === false
653
672
  ? { curatedMemory: false }
654
- : {}),
673
+ : { curatedMemory: getCuratedMemProvider() }),
655
674
  });
656
675
  if (faceBox.approvals) {
657
676
  agent.setApprovalHandler(faceBox.approvals.handlerFor(sessionId));
@@ -719,14 +738,12 @@ export function createHostManager() {
719
738
  createDrain: (sessionId) => async ({ signal }) => {
720
739
  const snapshot = () => {
721
740
  const face = faceBox.runtime;
722
- // Best-effort and self-bounded: snapshotSessionWorkspace races its
723
- // own deadline (SNAPSHOT_TIMEOUT_MS), so a hung git/fs call
724
- // degrades to "no checkpoint" instead of blocking the turn. The
725
- // drain loop's abort check covers cancellation; no shared state
726
- // here, so no signal listener bookkeeping is needed.
741
+ // Soft-bounded; overlaps LLM via continueTurn.beforeTools.
727
742
  if (!face || signal.aborted)
728
743
  return Promise.resolve();
729
- return snapshotSessionWorkspace(face, sessionId).then(() => undefined);
744
+ return snapshotSessionWorkspace(face, sessionId, {
745
+ budgetMs: SNAPSHOT_DRAIN_BUDGET_MS,
746
+ }).then(() => undefined);
730
747
  };
731
748
  try {
732
749
  const agent = await resolveAgent(sessionId);
@@ -737,10 +754,16 @@ export function createHostManager() {
737
754
  if (signal.aborted) {
738
755
  throw hostAbortError(signal.reason);
739
756
  }
740
- // Worktree snapshot before tools mutate files (Hermes-style
741
- // checkpoint). Best-effort — never blocks the turn.
742
- await snapshot();
743
- const result = await agent.continueTurn({ signal });
757
+ // Hermes-style: snapshot worktree before tools mutate files.
758
+ // Start immediately and pass as beforeTools so it overlaps the
759
+ // LLM; do not await serially before continueTurn (that pinned
760
+ // Queue/Steer chrome on large monorepos).
761
+ const snapP = snapshot();
762
+ const result = await agent.continueTurn({
763
+ signal,
764
+ beforeTools: () => snapP,
765
+ });
766
+ await snapP;
744
767
  lastDrainResult.set(sessionId, result);
745
768
  }
746
769
  }
@@ -1602,6 +1625,25 @@ export function createHostManager() {
1602
1625
  tryHandlePublic: chainPublicHandlers(createA2aInboundPublicHandler({
1603
1626
  host: config.runtime.host,
1604
1627
  port: config.runtime.port,
1628
+ face: faceRuntime,
1629
+ resolveProduct: () => {
1630
+ try {
1631
+ const ns = faceRuntime.settingsNamespaces.view("a2a-inbound")
1632
+ .value;
1633
+ return {
1634
+ enabled: ns.enabled === true,
1635
+ ...(typeof ns.sessionId === "string"
1636
+ ? { sessionId: ns.sessionId }
1637
+ : {}),
1638
+ ...(typeof ns.timeoutMs === "number"
1639
+ ? { timeoutMs: ns.timeoutMs }
1640
+ : {}),
1641
+ };
1642
+ }
1643
+ catch {
1644
+ return undefined;
1645
+ }
1646
+ },
1605
1647
  }), createMobileAccessGateHandler({ xrkHome: resolveXrkHome() }), createSidebarPublicHandler({
1606
1648
  xrkHome: resolveXrkHome(),
1607
1649
  defaultCwd: faceRuntime.workspaceRoot,
@@ -1720,6 +1762,7 @@ export function createHostManager() {
1720
1762
  for (const sessionId of store.list()) {
1721
1763
  consolidateCuratedMemoryForSession(sessionId);
1722
1764
  }
1765
+ runWorkspaceSkillCurator();
1723
1766
  await http.close();
1724
1767
  await agentCache.dispose();
1725
1768
  if (sharedShell) {