@agentmeshhq/agent 0.4.5 → 0.4.10

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 (71) hide show
  1. package/dist/__tests__/auth-doctor-integration.test.d.ts +14 -0
  2. package/dist/__tests__/auth-doctor-integration.test.js +130 -0
  3. package/dist/__tests__/auth-doctor-integration.test.js.map +1 -0
  4. package/dist/__tests__/auth-guard.integration.test.d.ts +12 -0
  5. package/dist/__tests__/auth-guard.integration.test.js +132 -0
  6. package/dist/__tests__/auth-guard.integration.test.js.map +1 -0
  7. package/dist/__tests__/auth-guard.test.d.ts +17 -0
  8. package/dist/__tests__/auth-guard.test.js +483 -0
  9. package/dist/__tests__/auth-guard.test.js.map +1 -0
  10. package/dist/__tests__/done-state-guard.integration.test.d.ts +1 -0
  11. package/dist/__tests__/done-state-guard.integration.test.js +281 -0
  12. package/dist/__tests__/done-state-guard.integration.test.js.map +1 -0
  13. package/dist/__tests__/done-state-guard.test.d.ts +1 -0
  14. package/dist/__tests__/done-state-guard.test.js +327 -0
  15. package/dist/__tests__/done-state-guard.test.js.map +1 -0
  16. package/dist/__tests__/session-recovery.test.d.ts +1 -0
  17. package/dist/__tests__/session-recovery.test.js +16 -0
  18. package/dist/__tests__/session-recovery.test.js.map +1 -0
  19. package/dist/__tests__/tmux-runtime.test.d.ts +1 -0
  20. package/dist/__tests__/tmux-runtime.test.js +113 -0
  21. package/dist/__tests__/tmux-runtime.test.js.map +1 -0
  22. package/dist/cli/auth.d.ts +11 -0
  23. package/dist/cli/auth.js +92 -0
  24. package/dist/cli/auth.js.map +1 -0
  25. package/dist/cli/index.js +45 -1
  26. package/dist/cli/index.js.map +1 -1
  27. package/dist/cli/local.d.ts +4 -2
  28. package/dist/cli/local.js +257 -108
  29. package/dist/cli/local.js.map +1 -1
  30. package/dist/cli/migrate.d.ts +1 -0
  31. package/dist/cli/migrate.js +14 -10
  32. package/dist/cli/migrate.js.map +1 -1
  33. package/dist/cli/start.d.ts +2 -0
  34. package/dist/cli/start.js +3 -0
  35. package/dist/cli/start.js.map +1 -1
  36. package/dist/cli/test.d.ts +1 -0
  37. package/dist/cli/test.js +15 -9
  38. package/dist/cli/test.js.map +1 -1
  39. package/dist/config/schema.d.ts +11 -0
  40. package/dist/config/schema.js.map +1 -1
  41. package/dist/core/auth-guard.d.ts +155 -0
  42. package/dist/core/auth-guard.js +498 -0
  43. package/dist/core/auth-guard.js.map +1 -0
  44. package/dist/core/auth-sync.d.ts +105 -0
  45. package/dist/core/auth-sync.js +263 -0
  46. package/dist/core/auth-sync.js.map +1 -0
  47. package/dist/core/daemon/context-template.js +65 -0
  48. package/dist/core/daemon/context-template.js.map +1 -1
  49. package/dist/core/daemon/done-state-guard.d.ts +63 -0
  50. package/dist/core/daemon/done-state-guard.js +102 -0
  51. package/dist/core/daemon/done-state-guard.js.map +1 -0
  52. package/dist/core/daemon/session-recovery.d.ts +1 -0
  53. package/dist/core/daemon/session-recovery.js +7 -0
  54. package/dist/core/daemon/session-recovery.js.map +1 -0
  55. package/dist/core/daemon/tmux-session.d.ts +1 -0
  56. package/dist/core/daemon/tmux-session.js +1 -1
  57. package/dist/core/daemon/tmux-session.js.map +1 -1
  58. package/dist/core/daemon.d.ts +18 -1
  59. package/dist/core/daemon.js +220 -35
  60. package/dist/core/daemon.js.map +1 -1
  61. package/dist/core/registry.d.ts +9 -1
  62. package/dist/core/registry.js +28 -1
  63. package/dist/core/registry.js.map +1 -1
  64. package/dist/core/tmux-runtime.d.ts +11 -2
  65. package/dist/core/tmux-runtime.js +45 -19
  66. package/dist/core/tmux-runtime.js.map +1 -1
  67. package/dist/core/tmux.d.ts +1 -1
  68. package/dist/core/tmux.js +7 -3
  69. package/dist/core/tmux.js.map +1 -1
  70. package/package.json +12 -11
  71. package/LICENSE +0 -21
@@ -1,6 +1,7 @@
1
1
  import { execSync, spawnSync } from "node:child_process";
2
2
  import path from "node:path";
3
3
  import pc from "picocolors";
4
+ import { slotPort } from "./local.js";
4
5
  function findProjectRoot() {
5
6
  let dir = process.cwd();
6
7
  for (let i = 0; i < 10; i++) {
@@ -16,18 +17,20 @@ function findProjectRoot() {
16
17
  }
17
18
  throw new Error("Could not find AgentMesh project root. Make sure you're in the agentmesh repository.");
18
19
  }
19
- function isLocalStackRunning() {
20
+ function isLocalStackRunning(slot = 0) {
20
21
  try {
21
- const result = execSync('docker inspect --format="{{.State.Running}}" agentmesh_postgres 2>/dev/null', { encoding: "utf-8" }).trim();
22
- return result === "true";
22
+ const dbPort = slotPort(5432, slot);
23
+ const listener = execSync(`lsof -iTCP:${dbPort} -sTCP:LISTEN -t 2>/dev/null || true`, {
24
+ encoding: "utf-8",
25
+ });
26
+ return listener.trim().length > 0;
23
27
  }
24
28
  catch {
25
29
  return false;
26
30
  }
27
31
  }
28
- function getLocalDbUrl() {
29
- // Default local stack connection
30
- return "postgresql://postgres:postgres@localhost:5432/agentmesh";
32
+ function getLocalDbUrl(slot = 0) {
33
+ return `postgresql://postgres:postgres@localhost:${slotPort(5432, slot)}/agentmesh`;
31
34
  }
32
35
  export async function migrate(options = {}) {
33
36
  const projectRoot = findProjectRoot();
@@ -117,18 +120,19 @@ function getEnvironmentConfig(options) {
117
120
  };
118
121
  }
119
122
  // Default: local stack
120
- const localRunning = isLocalStackRunning();
123
+ const slot = options.slot ?? 0;
124
+ const localRunning = isLocalStackRunning(slot);
121
125
  if (!localRunning) {
122
126
  return {
123
127
  name: "local",
124
- databaseUrl: getLocalDbUrl(),
128
+ databaseUrl: getLocalDbUrl(slot),
125
129
  canConnect: false,
126
- reason: "Local stack is not running. Start it with: agentmesh local up",
130
+ reason: `Local stack is not running for slot ${slot}. Start it with: agentmesh local up --slot ${slot}`,
127
131
  };
128
132
  }
129
133
  return {
130
134
  name: "local",
131
- databaseUrl: getLocalDbUrl(),
135
+ databaseUrl: getLocalDbUrl(slot),
132
136
  canConnect: true,
133
137
  };
134
138
  }
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/cli/migrate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/cli/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,SAAS,eAAe;IACtB,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACnD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,QAAQ,CAAC,YAAY,WAAW,iBAAiB,aAAa,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YACxF,OAAO,GAAG,CAAC;QACb,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CACb,sFAAsF,CACvF,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAI,GAAG,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,MAAM,sCAAsC,EAAE;YACpF,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,IAAI,GAAG,CAAC;IAC7B,OAAO,4CAA4C,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC;AACtF,CAAC;AAWD,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,UAA0B,EAAE;IACxD,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;IAEtC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACrC,OAAO;IACT,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO;IACT,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC,CAAC;QAC3F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,WAAmB;IAClD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,aAAa,CAAC,EAAE;QAC9E,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,WAAmB,EAAE,OAAuB;IACzE,MAAM,GAAG,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAE1C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,iCAAiC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,0BAA0B;IAC1B,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,qBAAqB,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAAE;QAC5E,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE;YACH,GAAG,OAAO,CAAC,GAAG;YACd,YAAY,EAAE,GAAG,CAAC,WAAW;SAC9B;KACF,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AASD,SAAS,oBAAoB,CAAC,OAAuB;IACnD,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,+DAA+D;QAC/D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC;QACtD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;gBACL,IAAI,EAAE,uBAAuB;gBAC7B,WAAW,EAAE,EAAE;gBACf,UAAU,EAAE,KAAK;gBACjB,MAAM,EAAE,yDAAyD;aAClE,CAAC;QACJ,CAAC;QACD,OAAO;YACL,IAAI,EAAE,uBAAuB;YAC7B,WAAW,EAAE,MAAM;YACnB,UAAU,EAAE,IAAI;SACjB,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC;QAC9D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,EAAE;gBACf,UAAU,EAAE,KAAK;gBACjB,MAAM,EAAE,6DAA6D;aACtE,CAAC;QACJ,CAAC;QACD,OAAO;YACL,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,UAAU;YACvB,UAAU,EAAE,IAAI;SACjB,CAAC;IACJ,CAAC;IAED,uBAAuB;IACvB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;IAC/B,MAAM,YAAY,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO;YACL,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC;YAChC,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,uCAAuC,IAAI,8CAA8C,IAAI,EAAE;SACxG,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC;QAChC,UAAU,EAAE,IAAI;KACjB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,WAAmB,EAAE,OAAuB;IACvE,MAAM,GAAG,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAE1C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,8BAA8B,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,qBAAqB,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,iDAAiD;IACjD,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,oDAAoD,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACvF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC,CAAC;QAChF,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,YAAY,CAAC,EAAE;QAC7E,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE;YACH,GAAG,OAAO,CAAC,GAAG;YACd,YAAY,EAAE,GAAG,CAAC,WAAW;SAC9B;KACF,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,sCAAsC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;AAC3E,CAAC"}
@@ -25,5 +25,7 @@ export interface StartOptions {
25
25
  role?: string;
26
26
  /** Auto-accept handoffs while running in worker mode */
27
27
  autoAcceptHandoffs?: boolean;
28
+ /** Run agent in fully autonomous mode — injects runtime-specific non-interactive flags */
29
+ autonomous?: boolean;
28
30
  }
29
31
  export declare function start(options: StartOptions): Promise<void>;
package/dist/cli/start.js CHANGED
@@ -49,6 +49,7 @@ export async function start(options) {
49
49
  autoSetup: options.autoSetup,
50
50
  project: options.project,
51
51
  role: options.role,
52
+ autonomous: options.autonomous,
52
53
  });
53
54
  await daemon.start();
54
55
  // Keep process alive
@@ -98,6 +99,8 @@ export async function start(options) {
98
99
  args.push("--project", options.project);
99
100
  if (options.role)
100
101
  args.push("--role", options.role);
102
+ if (options.autonomous)
103
+ args.push("--autonomous");
101
104
  // Spawn detached background process
102
105
  const child = spawn("node", [cliPath, ...args], {
103
106
  detached: true,
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/cli/start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/cli/start.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,6 @@ export interface TestOptions {
4
4
  watch?: boolean;
5
5
  coverage?: boolean;
6
6
  updateSnapshots?: boolean;
7
+ slot?: number;
7
8
  }
8
9
  export declare function test(options?: TestOptions): Promise<void>;
package/dist/cli/test.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { execSync, spawnSync } from "node:child_process";
2
2
  import path from "node:path";
3
3
  import pc from "picocolors";
4
+ import { slotPort } from "./local.js";
4
5
  function findProjectRoot() {
5
6
  let dir = process.cwd();
6
7
  for (let i = 0; i < 10; i++) {
@@ -16,10 +17,13 @@ function findProjectRoot() {
16
17
  }
17
18
  throw new Error("Could not find AgentMesh project root. Make sure you're in the agentmesh repository.");
18
19
  }
19
- function isLocalStackRunning() {
20
+ function isLocalStackRunning(slot = 0) {
20
21
  try {
21
- const result = execSync('docker inspect --format="{{.State.Running}}" agentmesh_postgres 2>/dev/null', { encoding: "utf-8" }).trim();
22
- return result === "true";
22
+ const dbPort = slotPort(5432, slot);
23
+ const listener = execSync(`lsof -iTCP:${dbPort} -sTCP:LISTEN -t 2>/dev/null || true`, {
24
+ encoding: "utf-8",
25
+ });
26
+ return listener.trim().length > 0;
23
27
  }
24
28
  catch {
25
29
  return false;
@@ -37,7 +41,8 @@ export async function test(options = {}) {
37
41
  async function runUnitTests(projectRoot, options) {
38
42
  console.log(pc.cyan("Running unit tests..."));
39
43
  // Check if local stack is running for integration tests
40
- const localStackUp = isLocalStackRunning();
44
+ const slot = options.slot ?? 0;
45
+ const localStackUp = isLocalStackRunning(slot);
41
46
  if (localStackUp) {
42
47
  console.log(pc.dim("Local stack detected - integration tests will use local services"));
43
48
  }
@@ -63,8 +68,8 @@ async function runUnitTests(projectRoot, options) {
63
68
  ...process.env,
64
69
  // If local stack is running, use it for tests
65
70
  ...(localStackUp && {
66
- DATABASE_URL: "postgresql://postgres:postgres@localhost:5432/agentmesh",
67
- REDIS_URL: "redis://localhost:6380/0",
71
+ DATABASE_URL: `postgresql://postgres:postgres@localhost:${slotPort(5432, slot)}/agentmesh`,
72
+ REDIS_URL: `redis://localhost:${slotPort(6380, slot)}/0`,
68
73
  }),
69
74
  },
70
75
  });
@@ -78,10 +83,11 @@ async function runUnitTests(projectRoot, options) {
78
83
  async function runE2ETests(projectRoot, options) {
79
84
  console.log(pc.cyan("Running E2E tests..."));
80
85
  // E2E tests require the local stack to be running
81
- const localStackUp = isLocalStackRunning();
86
+ const slot = options.slot ?? 0;
87
+ const localStackUp = isLocalStackRunning(slot);
82
88
  if (!localStackUp) {
83
89
  console.log(pc.yellow("Warning: Local stack is not running."));
84
- console.log(pc.dim("Start it with: agentmesh local up"));
90
+ console.log(pc.dim(`Start it with: agentmesh local up --slot ${slot}`));
85
91
  console.log();
86
92
  }
87
93
  const args = ["pnpm", "--filter", "@agentmesh/admin", "test:e2e"];
@@ -96,7 +102,7 @@ async function runE2ETests(projectRoot, options) {
96
102
  ...process.env,
97
103
  // Point to local stack if running
98
104
  ...(localStackUp && {
99
- PLAYWRIGHT_BASE_URL: "http://localhost:3000",
105
+ PLAYWRIGHT_BASE_URL: `http://localhost:${slotPort(3000, slot)}`,
100
106
  }),
101
107
  },
102
108
  });
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/cli/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,SAAS,eAAe;IACtB,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACnD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,QAAQ,CAAC,YAAY,WAAW,iBAAiB,aAAa,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YACxF,OAAO,GAAG,CAAC;QACb,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CACb,sFAAsF,CACvF,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB;IAC1B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CACrB,6EAA6E,EAC7E,EAAE,QAAQ,EAAE,OAAO,EAAE,CACtB,CAAC,IAAI,EAAE,CAAC;QACT,OAAO,MAAM,KAAK,MAAM,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAUD,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,UAAuB,EAAE;IAClD,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;IAEtC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,MAAM,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;SAAM,CAAC;QACN,MAAM,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,WAAmB,EAAE,OAAoB;IACnE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAE9C,wDAAwD;IACxD,MAAM,YAAY,GAAG,mBAAmB,EAAE,CAAC;IAC3C,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAEtB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAElB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QAC/C,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE;YACH,GAAG,OAAO,CAAC,GAAG;YACd,8CAA8C;YAC9C,GAAG,CAAC,YAAY,IAAI;gBAClB,YAAY,EAAE,yDAAyD;gBACvE,SAAS,EAAE,0BAA0B;aACtC,CAAC;SACH;KACF,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,WAAmB,EAAE,OAAoB;IAClE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAE7C,kDAAkD;IAClD,MAAM,YAAY,GAAG,mBAAmB,EAAE,CAAC;IAC3C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,UAAU,CAAC,CAAC;IAElE,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QAC/C,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE;YACH,GAAG,OAAO,CAAC,GAAG;YACd,kCAAkC;YAClC,GAAG,CAAC,YAAY,IAAI;gBAClB,mBAAmB,EAAE,uBAAuB;aAC7C,CAAC;SACH;KACF,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/cli/test.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ export interface AgentConfig {
5
5
  workdir?: string;
6
6
  model?: string;
7
7
  teams?: string[];
8
+ /** agent_type sent to hub on registration. Defaults to "worker". */
9
+ agentType?: "worker" | "system" | "autonomous";
8
10
  }
9
11
  export interface Config {
10
12
  apiKey: string;
@@ -62,6 +64,15 @@ export interface AgentState {
62
64
  pendingHandoffOldestAgeMinutes?: number;
63
65
  /** Most recent SLA alert timestamp */
64
66
  pendingHandoffAlertAt?: string;
67
+ /**
68
+ * Last restart decision from the done-state guard (Epic #497).
69
+ * One of: "resumed" | "idle" | "blocked"
70
+ */
71
+ lastRestartState?: string;
72
+ /** Human-readable reason for the last restart decision */
73
+ lastRestartReason?: string;
74
+ /** ISO timestamp of when the last restart decision was made */
75
+ lastRestartDecisionAt?: string;
65
76
  }
66
77
  export interface State {
67
78
  agents: AgentState[];
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAoBA,MAAM,CAAC,MAAM,cAAc,GAAoB;IAC7C,MAAM,EAAE,yBAAyB;IACjC,QAAQ,EAAE;QACR,OAAO,EAAE,UAAU;QACnB,KAAK,EAAE,iBAAiB;KACzB;IACD,MAAM,EAAE,EAAE;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,yBAAyB,CAAC;AACxE,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,wBAAwB,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAsBA,MAAM,CAAC,MAAM,cAAc,GAAoB;IAC7C,MAAM,EAAE,yBAAyB;IACjC,QAAQ,EAAE;QACR,OAAO,EAAE,UAAU;QACnB,KAAK,EAAE,iBAAiB;KACzB;IACD,MAAM,EAAE,EAAE;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,yBAAyB,CAAC;AACxE,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,wBAAwB,CAAC"}
@@ -0,0 +1,155 @@
1
+ /**
2
+ * OpenCode Auth Guard — Epics #470 + #490
3
+ *
4
+ * Implements symlink-first auth linking, startup preflight, schema validation,
5
+ * temp-path rejection, and periodic healthcheck to eliminate per-agent auth
6
+ * drift permanently and guard against runtime auth.type errors.
7
+ *
8
+ * Strategy:
9
+ * 1. Canonical store: ~/.local/share/opencode/auth.json
10
+ * 2. Per-agent auth: ~/.agentmesh/opencode-data/<agent>/opencode/auth.json
11
+ * -> Always a symlink pointing to canonical store (never a temp-path).
12
+ * -> If a stale regular file or temp-path symlink exists, replace safely.
13
+ * -> If canonical missing: write a validated real-file copy as fallback.
14
+ * 3. Schema validation: auth.json must contain a valid `type` field.
15
+ * 4. Startup preflight: validate before runner boot; one auto-repair attempt.
16
+ * 5. Periodic healthcheck: re-validate on interval + exponential backoff.
17
+ */
18
+ export declare const CANONICAL_AUTH_PATH: string;
19
+ export declare const AGENTMESH_OPENCODE_DATA_ROOT: string;
20
+ export type AuthLinkStatus = "ok" | "repaired" | "degraded" | "no-canonical";
21
+ /** Structured result of auth schema validation (#490) */
22
+ export interface AuthSchemaValidation {
23
+ valid: boolean;
24
+ /** The raw parsed object, if parsing succeeded */
25
+ parsed?: Record<string, unknown>;
26
+ error?: string;
27
+ }
28
+ export interface AuthGuardResult {
29
+ status: AuthLinkStatus;
30
+ agentAuthPath: string;
31
+ canonicalAuthPath: string;
32
+ message: string;
33
+ }
34
+ export interface HealthCheckEvent {
35
+ type: "auth-health-ok" | "auth-health-degraded" | "auth-health-repaired";
36
+ agentName: string;
37
+ agentAuthPath: string;
38
+ message: string;
39
+ timestamp: string;
40
+ }
41
+ /**
42
+ * Returns the per-agent auth.json path.
43
+ */
44
+ export declare function agentAuthPath(agentName: string): string;
45
+ /**
46
+ * Returns the per-agent opencode dir.
47
+ */
48
+ export declare function agentOpencodeDir(agentName: string): string;
49
+ /**
50
+ * Validates that canonical auth.json exists and can be parsed as JSON.
51
+ */
52
+ export declare function validateCanonicalAuth(canonicalPath?: string): boolean;
53
+ /**
54
+ * Checks whether agentAuthPath is already a valid symlink to a readable target.
55
+ */
56
+ export declare function isValidAuthSymlink(authPath: string): boolean;
57
+ /**
58
+ * Returns true if the given path is a temp/ephemeral path that must not be
59
+ * used as an auth symlink target. (#490)
60
+ */
61
+ export declare function isTempPath(p: string): boolean;
62
+ /**
63
+ * Validates that an auth.json file has the minimum required schema:
64
+ * - Parseable JSON
65
+ * - Contains a `type` field (string) — prevents `auth.type undefined` crash (#490)
66
+ *
67
+ * Reads from `authPath` (follows symlinks via readFileSync).
68
+ */
69
+ export declare function validateAuthSchema(authPath: string): AuthSchemaValidation;
70
+ /**
71
+ * Checks if the symlink at authPath points to a temp path.
72
+ * Returns the target path if it's a temp path, null otherwise. (#490)
73
+ */
74
+ export declare function getSymlinkTempTarget(authPath: string): string | null;
75
+ /**
76
+ * Writes a real validated auth file copy from canonical source. (#490)
77
+ *
78
+ * Used as fallback when canonical auth is present but symlinking fails,
79
+ * or as a recovery path when no persistent canonical exists yet.
80
+ * Strips non-Anthropic provider keys (e.g., xai) to keep agent minimal.
81
+ * Sets file permissions to 0o600.
82
+ *
83
+ * Returns true if written successfully.
84
+ */
85
+ export declare function writeRealAuthFile(authPath: string, canonicalPath?: string): {
86
+ written: boolean;
87
+ backedUp?: string;
88
+ error?: string;
89
+ };
90
+ /**
91
+ * Safely replaces agentAuthPath with a symlink to canonicalPath.
92
+ * If a regular file already exists it is backed up first.
93
+ */
94
+ export declare function linkAgentAuth(authPath: string, canonicalPath?: string): {
95
+ linked: boolean;
96
+ backedUp?: string;
97
+ error?: string;
98
+ };
99
+ /**
100
+ * Ensures the per-agent auth file is a valid symlink to canonical auth.
101
+ *
102
+ * Epics #470 + #490 hardening:
103
+ * - Rejects temp-path symlink targets (e.g., /tmp/...) and replaces them.
104
+ * - Validates auth schema (auth.type must be present) after linking.
105
+ * - Falls back to writeRealAuthFile() if symlinking fails but canonical is valid.
106
+ *
107
+ * Called from prepareOpenCodeRuntime() on every startup.
108
+ */
109
+ export declare function ensureAgentAuthLink(agentName: string): AuthGuardResult;
110
+ /**
111
+ * Startup preflight: ensure auth link and validate once more.
112
+ *
113
+ * Returns true if auth is ready, false if agent should be marked degraded.
114
+ * Performs one auto-repair attempt on failure.
115
+ */
116
+ export declare function preflightAgentAuth(agentName: string): {
117
+ ok: boolean;
118
+ result: AuthGuardResult;
119
+ };
120
+ export interface AuthHealthWatcher {
121
+ stop: () => void;
122
+ }
123
+ /**
124
+ * Starts a periodic auth healthcheck for an agent.
125
+ *
126
+ * On failure: emits a structured event and attempts repair.
127
+ * Uses exponential backoff up to MAX_BACKOFF_INTERVAL_MS on repeated failures.
128
+ *
129
+ * @param agentName Agent name
130
+ * @param onEvent Callback for health events (for structured logging/alerting)
131
+ */
132
+ export declare function startAuthHealthWatcher(agentName: string, onEvent: (event: HealthCheckEvent) => void): AuthHealthWatcher;
133
+ export interface DoctorAgentReport {
134
+ agentName: string;
135
+ authPath: string;
136
+ isSymlink: boolean;
137
+ symlinkTarget: string | null;
138
+ isValid: boolean;
139
+ status: AuthLinkStatus;
140
+ message: string;
141
+ }
142
+ export interface DoctorReport {
143
+ canonicalAuthPath: string;
144
+ canonicalValid: boolean;
145
+ agents: DoctorAgentReport[];
146
+ overallOk: boolean;
147
+ }
148
+ /**
149
+ * Generates a diagnostic report for all agents (or a specific one).
150
+ * If `repair` is true, attempts to fix any broken links.
151
+ */
152
+ export declare function runAuthDoctor(options: {
153
+ agentNames?: string[];
154
+ repair?: boolean;
155
+ }): DoctorReport;