@mclawnet/agent 0.6.32 → 0.6.34

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 (48) hide show
  1. package/dist/__tests__/backend-adapter-types.test.d.ts +2 -0
  2. package/dist/__tests__/backend-adapter-types.test.d.ts.map +1 -0
  3. package/dist/__tests__/backend-factory.test.d.ts +2 -0
  4. package/dist/__tests__/backend-factory.test.d.ts.map +1 -0
  5. package/dist/__tests__/normalize-backend-output.test.d.ts +2 -0
  6. package/dist/__tests__/normalize-backend-output.test.d.ts.map +1 -0
  7. package/dist/__tests__/session-manager-backend.test.d.ts +2 -0
  8. package/dist/__tests__/session-manager-backend.test.d.ts.map +1 -0
  9. package/dist/__tests__/session-manager-permission.test.d.ts +2 -0
  10. package/dist/__tests__/session-manager-permission.test.d.ts.map +1 -0
  11. package/dist/__tests__/templates-roles-bridge.test.d.ts +2 -0
  12. package/dist/__tests__/templates-roles-bridge.test.d.ts.map +1 -0
  13. package/dist/backend-adapter.d.ts +102 -10
  14. package/dist/backend-adapter.d.ts.map +1 -1
  15. package/dist/backend-factory-RUYUBJVF.js +9 -0
  16. package/dist/backend-factory-RUYUBJVF.js.map +1 -0
  17. package/dist/backend-factory.d.ts +19 -0
  18. package/dist/backend-factory.d.ts.map +1 -0
  19. package/dist/checkpoint.d.ts +1 -1
  20. package/dist/checkpoint.d.ts.map +1 -1
  21. package/dist/{chunk-QPLG5WHL.js → chunk-2JDX6XFD.js} +445 -84
  22. package/dist/chunk-2JDX6XFD.js.map +1 -0
  23. package/dist/chunk-MFXF77LG.js +49 -0
  24. package/dist/chunk-MFXF77LG.js.map +1 -0
  25. package/dist/dist-VLBO5CT3.js +775 -0
  26. package/dist/dist-VLBO5CT3.js.map +1 -0
  27. package/dist/fs-handler.d.ts +1 -1
  28. package/dist/fs-handler.d.ts.map +1 -1
  29. package/dist/hub-connection.d.ts.map +1 -1
  30. package/dist/index.d.ts +2 -1
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +7 -1
  33. package/dist/index.js.map +1 -1
  34. package/dist/normalize-backend-output.d.ts +5 -0
  35. package/dist/normalize-backend-output.d.ts.map +1 -0
  36. package/dist/session-manager.d.ts +35 -4
  37. package/dist/session-manager.d.ts.map +1 -1
  38. package/dist/start.d.ts +2 -0
  39. package/dist/start.d.ts.map +1 -1
  40. package/dist/start.js +1 -1
  41. package/dist/swarm-control-dispatch.d.ts +33 -1
  42. package/dist/swarm-control-dispatch.d.ts.map +1 -1
  43. package/dist/swarm-session-bridge.d.ts +3 -3
  44. package/dist/swarm-session-bridge.d.ts.map +1 -1
  45. package/dist/templates-roles-bridge.d.ts +14 -0
  46. package/dist/templates-roles-bridge.d.ts.map +1 -0
  47. package/package.json +13 -10
  48. package/dist/chunk-QPLG5WHL.js.map +0 -1
@@ -0,0 +1,49 @@
1
+ // src/backend-factory.ts
2
+ var cache = /* @__PURE__ */ new Map();
3
+ function __resetBackendFactoryCache() {
4
+ cache.clear();
5
+ }
6
+ async function createBackendAdapter(kind, ctx = {}) {
7
+ const resolved = kind ?? "claude";
8
+ const cached = cache.get(resolved);
9
+ if (cached) return cached;
10
+ let adapter;
11
+ if (resolved === "claude") {
12
+ try {
13
+ const mod = await import("@mclawnet/claude-adapter");
14
+ adapter = new mod.ClaudeCodeAdapter();
15
+ } catch (err) {
16
+ throw rethrowWithRole(
17
+ err,
18
+ ctx.roleName,
19
+ "failed to load @mclawnet/claude-adapter"
20
+ );
21
+ }
22
+ } else if (resolved === "codex") {
23
+ try {
24
+ const mod = await import("./dist-VLBO5CT3.js");
25
+ adapter = new mod.CodexAdapter();
26
+ } catch (err) {
27
+ throw rethrowWithRole(
28
+ err,
29
+ ctx.roleName,
30
+ "failed to load @mclawnet/codex-adapter (is codex CLI installed?)"
31
+ );
32
+ }
33
+ } else {
34
+ throw new Error(`unknown backend kind: ${resolved}`);
35
+ }
36
+ cache.set(resolved, adapter);
37
+ return adapter;
38
+ }
39
+ function rethrowWithRole(err, roleName, prefix) {
40
+ const base = err instanceof Error ? err.message : String(err);
41
+ const tag = roleName ? ` [role=${roleName}]` : "";
42
+ return new Error(`${prefix}${tag}: ${base}`);
43
+ }
44
+
45
+ export {
46
+ __resetBackendFactoryCache,
47
+ createBackendAdapter
48
+ };
49
+ //# sourceMappingURL=chunk-MFXF77LG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/backend-factory.ts"],"sourcesContent":["import type { BackendAdapter } from \"./backend-adapter.js\";\n\nexport type BackendKind = \"claude\" | \"codex\";\n\nconst cache = new Map<BackendKind, BackendAdapter>();\n\nexport function __resetBackendFactoryCache(): void {\n cache.clear();\n}\n\nexport interface BackendFactoryContext {\n /** Role instance / template name — surfaces in error messages so users know\n * which role is misconfigured when its backend package fails to load. */\n roleName?: string;\n}\n\n/**\n * Resolve a BackendAdapter for the given backend kind.\n *\n * - \"claude\" / undefined → @mclawnet/claude-adapter (back-compat default).\n * - \"codex\" → @mclawnet/codex-adapter via dynamic import so the codex bundle\n * isn't pulled into claude-only deployments.\n *\n * Results are cached per kind; subsequent calls return the same instance.\n */\nexport async function createBackendAdapter(\n kind: BackendKind | undefined,\n ctx: BackendFactoryContext = {},\n): Promise<BackendAdapter> {\n const resolved: BackendKind = kind ?? \"claude\";\n const cached = cache.get(resolved);\n if (cached) return cached;\n\n let adapter: BackendAdapter;\n if (resolved === \"claude\") {\n try {\n // Type-erased dynamic import: claude-adapter has a type-only ref back\n // to @mclawnet/agent, so resolving its types here would create a\n // tsc-time cycle. Both adapters are built AFTER agent, so the dist\n // files only exist at runtime.\n const mod = (await import(\"@mclawnet/claude-adapter\" as string)) as {\n ClaudeCodeAdapter: new () => BackendAdapter;\n };\n adapter = new mod.ClaudeCodeAdapter();\n } catch (err) {\n throw rethrowWithRole(\n err,\n ctx.roleName,\n \"failed to load @mclawnet/claude-adapter\",\n );\n }\n } else if (resolved === \"codex\") {\n try {\n const mod = (await import(\"@mclawnet/codex-adapter\" as string)) as {\n CodexAdapter: new () => BackendAdapter;\n };\n adapter = new mod.CodexAdapter();\n } catch (err) {\n throw rethrowWithRole(\n err,\n ctx.roleName,\n \"failed to load @mclawnet/codex-adapter (is codex CLI installed?)\",\n );\n }\n } else {\n throw new Error(`unknown backend kind: ${resolved}`);\n }\n\n cache.set(resolved, adapter);\n return adapter;\n}\n\nfunction rethrowWithRole(err: unknown, roleName: string | undefined, prefix: string): Error {\n const base = err instanceof Error ? err.message : String(err);\n const tag = roleName ? ` [role=${roleName}]` : \"\";\n return new Error(`${prefix}${tag}: ${base}`);\n}\n"],"mappings":";AAIA,IAAM,QAAQ,oBAAI,IAAiC;AAE5C,SAAS,6BAAmC;AACjD,QAAM,MAAM;AACd;AAiBA,eAAsB,qBACpB,MACA,MAA6B,CAAC,GACL;AACzB,QAAM,WAAwB,QAAQ;AACtC,QAAM,SAAS,MAAM,IAAI,QAAQ;AACjC,MAAI,OAAQ,QAAO;AAEnB,MAAI;AACJ,MAAI,aAAa,UAAU;AACzB,QAAI;AAKF,YAAM,MAAO,MAAM,OAAO,0BAAoC;AAG9D,gBAAU,IAAI,IAAI,kBAAkB;AAAA,IACtC,SAAS,KAAK;AACZ,YAAM;AAAA,QACJ;AAAA,QACA,IAAI;AAAA,QACJ;AAAA,MACF;AAAA,IACF;AAAA,EACF,WAAW,aAAa,SAAS;AAC/B,QAAI;AACF,YAAM,MAAO,MAAM,OAAO,oBAAmC;AAG7D,gBAAU,IAAI,IAAI,aAAa;AAAA,IACjC,SAAS,KAAK;AACZ,YAAM;AAAA,QACJ;AAAA,QACA,IAAI;AAAA,QACJ;AAAA,MACF;AAAA,IACF;AAAA,EACF,OAAO;AACL,UAAM,IAAI,MAAM,yBAAyB,QAAQ,EAAE;AAAA,EACrD;AAEA,QAAM,IAAI,UAAU,OAAO;AAC3B,SAAO;AACT;AAEA,SAAS,gBAAgB,KAAc,UAA8B,QAAuB;AAC1F,QAAM,OAAO,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAC5D,QAAM,MAAM,WAAW,UAAU,QAAQ,MAAM;AAC/C,SAAO,IAAI,MAAM,GAAG,MAAM,GAAG,GAAG,KAAK,IAAI,EAAE;AAC7C;","names":[]}