@alpacakit/agents 0.2.0-beta.2 → 0.2.0-beta.3

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 (130) hide show
  1. package/README.md +21 -0
  2. package/dist/agents/builtin.d.ts +2 -2
  3. package/dist/agents/builtin.d.ts.map +1 -1
  4. package/dist/agents/builtin.js +6 -4
  5. package/dist/agents/claude/cli.d.ts +133 -0
  6. package/dist/agents/claude/cli.d.ts.map +1 -0
  7. package/dist/agents/{claude-stream.js → claude/cli.js} +81 -10
  8. package/dist/agents/claude/host.d.ts +14 -0
  9. package/dist/agents/claude/host.d.ts.map +1 -0
  10. package/dist/agents/{claude.js → claude/host.js} +51 -174
  11. package/dist/agents/{claude.d.ts → claude/index.d.ts} +10 -11
  12. package/dist/agents/claude/index.d.ts.map +1 -0
  13. package/dist/agents/claude/index.js +134 -0
  14. package/dist/agents/{claude-session.d.ts → claude/session.d.ts} +3 -15
  15. package/dist/agents/claude/session.d.ts.map +1 -0
  16. package/dist/agents/claude/session.js +321 -0
  17. package/dist/agents/codex/cli.d.ts +132 -0
  18. package/dist/agents/codex/cli.d.ts.map +1 -0
  19. package/dist/agents/codex/cli.js +110 -0
  20. package/dist/agents/codex/host.d.ts +14 -0
  21. package/dist/agents/codex/host.d.ts.map +1 -0
  22. package/dist/agents/codex/host.js +221 -0
  23. package/dist/agents/codex/index.d.ts +14 -0
  24. package/dist/agents/codex/index.d.ts.map +1 -0
  25. package/dist/agents/codex/index.js +127 -0
  26. package/dist/agents/codex/session.d.ts +21 -0
  27. package/dist/agents/codex/session.d.ts.map +1 -0
  28. package/dist/agents/codex/session.js +390 -0
  29. package/dist/agents/openai-compatible/fetch-engine.d.ts.map +1 -1
  30. package/dist/agents/openai-compatible/fetch-engine.js +3 -2
  31. package/dist/agents/openai-compatible/pi/engine.js +1 -1
  32. package/dist/agents/openai-compatible/pi/{session.d.ts → run.d.ts} +1 -1
  33. package/dist/agents/openai-compatible/pi/run.d.ts.map +1 -0
  34. package/dist/agents/openai-compatible/pi/sandbox.d.ts.map +1 -1
  35. package/dist/auth/login-probe.d.ts +6 -4
  36. package/dist/auth/login-probe.d.ts.map +1 -1
  37. package/dist/auth/login-probe.js +19 -13
  38. package/dist/auth/material.d.ts +1 -1
  39. package/dist/auth/material.d.ts.map +1 -1
  40. package/dist/codex/app-server.d.ts.map +1 -1
  41. package/dist/codex/app-server.js +13 -42
  42. package/dist/codex/index.d.ts +1 -1
  43. package/dist/codex/index.d.ts.map +1 -1
  44. package/dist/config/agent-config-validation.d.ts +1 -1
  45. package/dist/config/agent-config-validation.d.ts.map +1 -1
  46. package/dist/config/agent-configs.d.ts.map +1 -1
  47. package/dist/config/agent-configs.js +3 -3
  48. package/dist/config/compose.d.ts.map +1 -1
  49. package/dist/config/config.d.ts +1 -1
  50. package/dist/config/config.d.ts.map +1 -1
  51. package/dist/config/index.d.ts +2 -2
  52. package/dist/config/index.d.ts.map +1 -1
  53. package/dist/config/index.js +1 -1
  54. package/dist/config/model.d.ts +0 -1
  55. package/dist/config/model.d.ts.map +1 -1
  56. package/dist/config/schema.d.ts.map +1 -1
  57. package/dist/config/schema.js +1 -1
  58. package/dist/config/store.d.ts.map +1 -1
  59. package/dist/config/store.js +6 -24
  60. package/dist/config/support.d.ts +0 -1
  61. package/dist/config/support.d.ts.map +1 -1
  62. package/dist/config/support.js +0 -9
  63. package/dist/core/cli-child.d.ts +56 -0
  64. package/dist/core/cli-child.d.ts.map +1 -0
  65. package/dist/core/cli-child.js +105 -0
  66. package/dist/core/fs.d.ts +1 -1
  67. package/dist/core/fs.d.ts.map +1 -1
  68. package/dist/core/fs.js +10 -2
  69. package/dist/core/node-ports.d.ts.map +1 -1
  70. package/dist/core/node-ports.js +1 -5
  71. package/dist/core/session.d.ts +4 -0
  72. package/dist/core/session.d.ts.map +1 -1
  73. package/dist/fleet/store.d.ts.map +1 -1
  74. package/dist/fleet/store.js +4 -3
  75. package/dist/host/availability.d.ts +2 -1
  76. package/dist/host/availability.d.ts.map +1 -1
  77. package/dist/host/github-dir.d.ts.map +1 -1
  78. package/dist/host/github-dir.js +2 -1
  79. package/dist/host/mcp-list.d.ts.map +1 -1
  80. package/dist/host/mcp-list.js +5 -6
  81. package/dist/host/run-command.d.ts +2 -1
  82. package/dist/host/run-command.d.ts.map +1 -1
  83. package/dist/host/run-command.js +10 -19
  84. package/dist/host/session-files.d.ts +2 -1
  85. package/dist/host/session-files.d.ts.map +1 -1
  86. package/dist/host/session-files.js +2 -1
  87. package/dist/index.d.ts +6 -6
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/index.js +5 -5
  90. package/dist/kernel/classify.d.ts +1 -2
  91. package/dist/kernel/classify.d.ts.map +1 -1
  92. package/dist/kernel/classify.js +1 -1
  93. package/dist/kernel/cli-agent.d.ts.map +1 -1
  94. package/dist/kernel/cli-agent.js +26 -85
  95. package/dist/kernel/cli-login.d.ts.map +1 -1
  96. package/dist/kernel/cli-login.js +9 -30
  97. package/dist/kernel/facets.d.ts +1 -1
  98. package/dist/kernel/facets.d.ts.map +1 -1
  99. package/dist/kernel/login.d.ts.map +1 -1
  100. package/dist/kernel/login.js +2 -1
  101. package/dist/kernel/options.d.ts +1 -1
  102. package/dist/kernel/options.d.ts.map +1 -1
  103. package/dist/kernel/run.d.ts.map +1 -1
  104. package/dist/kernel/run.js +2 -1
  105. package/dist/kernel/session.d.ts +46 -39
  106. package/dist/kernel/session.d.ts.map +1 -1
  107. package/dist/kernel/session.js +128 -69
  108. package/dist/testing/fake-exec.d.ts +9 -10
  109. package/dist/testing/fake-exec.d.ts.map +1 -1
  110. package/dist/testing/fake-exec.js +14 -1
  111. package/dist/testing/index.d.ts +1 -1
  112. package/dist/testing/index.d.ts.map +1 -1
  113. package/dist/testing/index.js +1 -1
  114. package/package.json +2 -2
  115. package/dist/agents/claude-session.d.ts.map +0 -1
  116. package/dist/agents/claude-session.js +0 -419
  117. package/dist/agents/claude-stream.d.ts +0 -65
  118. package/dist/agents/claude-stream.d.ts.map +0 -1
  119. package/dist/agents/claude.d.ts.map +0 -1
  120. package/dist/agents/codex-session.d.ts +0 -52
  121. package/dist/agents/codex-session.d.ts.map +0 -1
  122. package/dist/agents/codex-session.js +0 -495
  123. package/dist/agents/codex.d.ts +0 -20
  124. package/dist/agents/codex.d.ts.map +0 -1
  125. package/dist/agents/codex.js +0 -379
  126. package/dist/agents/openai-compatible/pi/session.d.ts.map +0 -1
  127. package/dist/core/process-close.d.ts +0 -11
  128. package/dist/core/process-close.d.ts.map +0 -1
  129. package/dist/core/process-close.js +0 -27
  130. /package/dist/agents/openai-compatible/pi/{session.js → run.js} +0 -0
@@ -9,10 +9,10 @@
9
9
  * because a Session's other traffic shares it.
10
10
  */
11
11
  import { AsyncQueue } from "../core/async-queue.js";
12
- import { AGENT_ERROR_CODE, AgentError, NOT_AVAILABLE_CAUSE, TIMEOUT_KIND, } from "../core/error.js";
12
+ import { appendTail, endProcessGracefully, failureEvidence, LineBuffer, NO_FAILURE_EVIDENCE, resolveCommand, } from "../core/cli-child.js";
13
+ import { AGENT_ERROR_CODE, AgentError, TIMEOUT_KIND } from "../core/error.js";
13
14
  import { readJsonRecord } from "../core/json.js";
14
15
  import { redactSecrets } from "../core/redact.js";
15
- import { endProcessGracefully } from "../core/process-close.js";
16
16
  import { OUTPUT_CHANNEL } from "../core/values.js";
17
17
  import { CODEX_APP_SERVER_METHOD, CODEX_APP_SERVER_RESULT_DECODERS, CODEX_MCP_STATUS_DETAIL, } from "./protocol.js";
18
18
  export const CODEX_INCOMING_KIND = {
@@ -32,10 +32,8 @@ const DEFAULT_APP_SERVER_CLIENT_INFO = {
32
32
  title: "Agents",
33
33
  version: "0.2.0",
34
34
  };
35
- const OUTPUT_TAIL_CHARS = 2_000;
36
35
  const MCP_PAGE_LIMIT = 500;
37
36
  const JSON_RPC_FRAME_SEPARATOR = "\n";
38
- const JSON_RPC_FRAME_BOUNDARY = /\r?\n/u;
39
37
  const JSON_RPC_FIELD = {
40
38
  id: "id",
41
39
  method: "method",
@@ -77,7 +75,7 @@ class ExecCodexAppServer {
77
75
  connecting = null;
78
76
  nextId = 1;
79
77
  stderr = "";
80
- stdoutLine = "";
78
+ stdoutLines = new LineBuffer();
81
79
  /** Set by close(); no child is spawned after it. */
82
80
  closing = false;
83
81
  /** Set once every stream has ended (the child exited, or close() found none). */
@@ -165,19 +163,11 @@ class ExecCodexAppServer {
165
163
  if (this.closing) {
166
164
  throw appServerClosedError();
167
165
  }
168
- const command = await this.options.exec.which(this.options.command, this.options.env);
166
+ const command = await resolveCommand(this.options.exec, this.options.command, this.options.env, null);
169
167
  if (this.closing) {
170
168
  // close() ran while PATH was being resolved: spawning now would orphan a child.
171
169
  throw appServerClosedError();
172
170
  }
173
- if (command === null) {
174
- throw new AgentError({
175
- code: AGENT_ERROR_CODE.notAvailable,
176
- classification: AgentError.agentFailure(AGENT_ERROR_CODE.notAvailable),
177
- message: `Command "${this.options.command}" was not found on PATH`,
178
- data: { cause: NOT_AVAILABLE_CAUSE.notInstalled },
179
- });
180
- }
181
171
  const process = this.options.exec.spawn({
182
172
  command,
183
173
  args: [...APP_SERVER_ARGS],
@@ -227,11 +217,8 @@ class ExecCodexAppServer {
227
217
  this.settleExit(exit);
228
218
  }
229
219
  handleStdout(text) {
230
- this.stdoutLine += text;
231
- const lines = this.stdoutLine.split(JSON_RPC_FRAME_BOUNDARY);
232
- this.stdoutLine = lines.pop() ?? "";
233
- for (const line of lines) {
234
- const record = readJsonRecord(line.trim());
220
+ for (const line of this.stdoutLines.push(text)) {
221
+ const record = readJsonRecord(line);
235
222
  if (record === null) {
236
223
  continue;
237
224
  }
@@ -334,12 +321,6 @@ function resultDecoderFor(method) {
334
321
  ? null
335
322
  : CODEX_APP_SERVER_RESULT_DECODERS[method];
336
323
  }
337
- function appendTail(current, next) {
338
- const combined = current + next;
339
- return combined.length <= OUTPUT_TAIL_CHARS
340
- ? combined
341
- : combined.slice(-OUTPUT_TAIL_CHARS);
342
- }
343
324
  /**
344
325
  * Server-originated frames carry `method`; a response never does. Their id
345
326
  * space is the server's own, so an id on such a frame marks a request the
@@ -388,37 +369,27 @@ function appServerResponseError(method, error) {
388
369
  code: AGENT_ERROR_CODE.failed,
389
370
  classification: AgentError.agentFailure(AGENT_ERROR_CODE.failed),
390
371
  message: detail === "" ? `Codex app-server request failed: ${method}` : detail,
391
- data: {
392
- exitCode: null,
393
- stdoutTail: null,
394
- stderrTail: detail === "" ? null : detail.slice(-OUTPUT_TAIL_CHARS),
395
- },
372
+ data: failureEvidence({ stdout: "", stderr: detail, exitCode: null }),
396
373
  });
397
374
  }
398
375
  function appServerMalformedResultError(method, result) {
399
- const detail = redactSecrets(JSON.stringify(result) ?? "");
400
376
  return new AgentError({
401
377
  code: AGENT_ERROR_CODE.failed,
402
378
  classification: AgentError.agentFailure(AGENT_ERROR_CODE.failed),
403
379
  message: `Codex app-server returned a malformed result: ${method}`,
404
- data: {
380
+ data: failureEvidence({
381
+ stdout: JSON.stringify(result) ?? "",
382
+ stderr: "",
405
383
  exitCode: null,
406
- stdoutTail: detail === "" ? null : detail.slice(-OUTPUT_TAIL_CHARS),
407
- stderrTail: null,
408
- },
384
+ }),
409
385
  });
410
386
  }
411
387
  function appServerExitedError(exitCode, stderr) {
412
- const stderrTail = redactSecrets(stderr.slice(-OUTPUT_TAIL_CHARS));
413
388
  return new AgentError({
414
389
  code: AGENT_ERROR_CODE.failed,
415
390
  classification: AgentError.agentFailure(AGENT_ERROR_CODE.failed),
416
391
  message: "Codex app-server exited before completing the request",
417
- data: {
418
- exitCode,
419
- stdoutTail: null,
420
- stderrTail: stderrTail === "" ? null : stderrTail,
421
- },
392
+ data: failureEvidence({ stdout: "", stderr, exitCode }),
422
393
  });
423
394
  }
424
395
  function appServerClosedError() {
@@ -426,6 +397,6 @@ function appServerClosedError() {
426
397
  code: AGENT_ERROR_CODE.failed,
427
398
  classification: AgentError.agentFailure(AGENT_ERROR_CODE.failed),
428
399
  message: "Codex app-server connection closed",
429
- data: { exitCode: null, stdoutTail: null, stderrTail: null },
400
+ data: NO_FAILURE_EVIDENCE,
430
401
  });
431
402
  }
@@ -1,4 +1,4 @@
1
1
  export { type AppServerClientInfo, CODEX_INCOMING_KIND, type CodexAppServer, type CodexAppServerOptions, type CodexIncoming, type CodexServerRequestAnswer, type CodexServerRequestId, createCodexAppServer, listAllCodexMcpServerStatuses, withCodexAppServer, } from "./app-server.js";
2
+ export type { CodexAppServerMethods, CodexConfigOverrides, CodexMcpServerStatus, CodexMcpServerStatusPage, CodexPluginInstallResult, CodexPluginListResult, CodexPluginMarketplace, CodexPluginSummary, CodexSandboxMode, CodexSkillListResult, CodexThreadPermissionParams, CodexThreadPermissionWireParams, CodexThreadRef, CodexTurnRef, CodexUserInput, CodexWorkspaceWriteConfig, } from "./protocol.js";
2
3
  export { CODEX_APP_SERVER_INCOMING, CODEX_APP_SERVER_METHOD, CODEX_SANDBOX_MODE, encodeCodexThreadPermissions, } from "./protocol.js";
3
- export type { CodexAppServerMethods, CodexConfigOverrides, CodexSandboxMode, CodexThreadPermissionParams, CodexThreadPermissionWireParams, CodexThreadRef, CodexTurnRef, CodexUserInput, CodexWorkspaceWriteConfig, CodexMcpServerStatus, CodexMcpServerStatusPage, CodexPluginInstallResult, CodexPluginListResult, CodexPluginMarketplace, CodexPluginSummary, CodexSkillListResult, } from "./protocol.js";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codex/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EACxB,mBAAmB,EACnB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,oBAAoB,EACpB,6BAA6B,EAC7B,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,kBAAkB,EAClB,4BAA4B,GAC7B,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,2BAA2B,EAC3B,+BAA+B,EAC/B,cAAc,EACd,YAAY,EACZ,cAAc,EACd,yBAAyB,EACzB,oBAAoB,EACpB,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codex/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EACxB,mBAAmB,EACnB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,oBAAoB,EACpB,6BAA6B,EAC7B,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,2BAA2B,EAC3B,+BAA+B,EAC/B,cAAc,EACd,YAAY,EACZ,cAAc,EACd,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,kBAAkB,EAClB,4BAA4B,GAC7B,MAAM,eAAe,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { type JsonObject } from "@alpacakit/core";
2
2
  import type { AgentConfigKind } from "./ids.js";
3
- import type { AgentConfigType, AgentConfig, AgentConfigTypeRegistry } from "./model.js";
3
+ import type { AgentConfig, AgentConfigType, AgentConfigTypeRegistry } from "./model.js";
4
4
  export declare const AGENT_CONFIG_VALIDATION_RESULT: {
5
5
  readonly valid: "valid";
6
6
  readonly unknownKind: "unknown_kind";
@@ -1 +1 @@
1
- {"version":3,"file":"agent-config-validation.d.ts","sourceRoot":"","sources":["../../src/config/agent-config-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,8BAA8B;;;;CAIjC,CAAC;AAEX,MAAM,MAAM,2BAA2B,GACnC;IACE,QAAQ,CAAC,IAAI,EAAE,OAAO,8BAA8B,CAAC,KAAK,CAAC;IAC3D,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC,eAAe,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IAC1E,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;CAC3D,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,OAAO,8BAA8B,CAAC,WAAW,CAAC;IACjE,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;CAC3C,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,OAAO,8BAA8B,CAAC,cAAc,CAAC;IACpE,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC,CAAC;AAEN,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,WAAW,CAAC,eAAe,EAAE,UAAU,CAAC,EAChD,gBAAgB,EAAE,uBAAuB,GACxC,2BAA2B,CA0B7B"}
1
+ {"version":3,"file":"agent-config-validation.d.ts","sourceRoot":"","sources":["../../src/config/agent-config-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,8BAA8B;;;;CAIjC,CAAC;AAEX,MAAM,MAAM,2BAA2B,GACnC;IACE,QAAQ,CAAC,IAAI,EAAE,OAAO,8BAA8B,CAAC,KAAK,CAAC;IAC3D,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC,eAAe,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IAC1E,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;CAC3D,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,OAAO,8BAA8B,CAAC,WAAW,CAAC;IACjE,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;CAC3C,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,OAAO,8BAA8B,CAAC,cAAc,CAAC;IACpE,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC,CAAC;AAEN,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,WAAW,CAAC,eAAe,EAAE,UAAU,CAAC,EAChD,gBAAgB,EAAE,uBAAuB,GACxC,2BAA2B,CA0B7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-configs.d.ts","sourceRoot":"","sources":["../../src/config/agent-configs.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,UAAU,EAEhB,MAAM,iBAAiB,CAAC;AAUzB,OAAO,EAAE,KAAK,eAAe,EAAiB,MAAM,UAAU,CAAC;AAC/D,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EAGf,uBAAuB,EAGxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,iBAAiB,EAKjB,KAAK,0BAA0B,EAChC,MAAM,aAAa,CAAC;AAQrB,KAAK,yBAAyB,GAAG;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAOF,KAAK,kCAAkC,GAAG;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACpD,QAAQ,CAAC,aAAa,CAAC,EAAE,UAAU,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,0BAA0B,CAAC;CAC9C,CAAC;AAiCF,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,yBAAyB,GACjC,WAAW,CAAC,OAAO,iBAAiB,CAAC,KAAK,EAAE,yBAAyB,CAAC,CAExE;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,yBAAyB,GACjC,WAAW,CAAC,OAAO,iBAAiB,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAEzE;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,kCAAkC,GAC1C,WAAW,CACZ,OAAO,iBAAiB,CAAC,gBAAgB,EACzC,kCAAkC,CACnC,CAcA;AAgDD,wBAAgB,oCAAoC,IAAI,uBAAuB,CAoB9E;AAED,wBAAgB,qBAAqB,CACnC,IAAI,SAAS,eAAe,EAC5B,OAAO,SAAS,UAAU,EAC1B,OAAO,SAAS,MAAM,EAEtB,UAAU,EAAE,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,GAClD,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAEzC"}
1
+ {"version":3,"file":"agent-configs.d.ts","sourceRoot":"","sources":["../../src/config/agent-configs.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,UAAU,EAEhB,MAAM,iBAAiB,CAAC;AAUzB,OAAO,EAAE,KAAK,eAAe,EAAiB,MAAM,UAAU,CAAC;AAC/D,OAAO,KAAK,EACV,WAAW,EAGX,eAAe,EACf,uBAAuB,EAGxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,iBAAiB,EAKjB,KAAK,0BAA0B,EAChC,MAAM,aAAa,CAAC;AAQrB,KAAK,yBAAyB,GAAG;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAOF,KAAK,kCAAkC,GAAG;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACpD,QAAQ,CAAC,aAAa,CAAC,EAAE,UAAU,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,0BAA0B,CAAC;CAC9C,CAAC;AAiCF,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,yBAAyB,GACjC,WAAW,CAAC,OAAO,iBAAiB,CAAC,KAAK,EAAE,yBAAyB,CAAC,CAExE;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,yBAAyB,GACjC,WAAW,CAAC,OAAO,iBAAiB,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAEzE;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,kCAAkC,GAC1C,WAAW,CACZ,OAAO,iBAAiB,CAAC,gBAAgB,EACzC,kCAAkC,CACnC,CAcA;AAgDD,wBAAgB,oCAAoC,IAAI,uBAAuB,CAoB9E;AAED,wBAAgB,qBAAqB,CACnC,IAAI,SAAS,eAAe,EAC5B,OAAO,SAAS,UAAU,EAC1B,OAAO,SAAS,MAAM,EAEtB,UAAU,EAAE,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,GAClD,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAEzC"}
@@ -1,10 +1,10 @@
1
1
  import path from "node:path";
2
2
  import { createKeyedRegistry, createSchemaRuntimeCodec, jsonValueSchema, } from "@alpacakit/core";
3
3
  import { z } from "zod";
4
- import { claude } from "../agents/claude.js";
5
- import { codex } from "../agents/codex.js";
6
- import { openaiCompatible } from "../agents/openai-compatible.js";
4
+ import { claude } from "../agents/claude/index.js";
5
+ import { codex } from "../agents/codex/index.js";
7
6
  import { piSessionEngine } from "../agents/openai-compatible/pi/engine.js";
7
+ import { openaiCompatible } from "../agents/openai-compatible.js";
8
8
  import { agentConfigId } from "./ids.js";
9
9
  import { formatFieldPath, ZOD_ISSUE_CODE } from "./support.js";
10
10
  import { AGENT_CONFIG_KIND, AGENTS_CONFIG_DIRECTORY, BUILTIN_AGENT_ID, CANDIDATE_SOURCE_KIND, OPENAI_COMPATIBLE_ENGINE, } from "./values.js";
@@ -1 +1 @@
1
- {"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/config/compose.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,uBAAuB,EACvB,mBAAmB,EACnB,UAAU,EAEV,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAwBpB,KAAK,iCAAiC,GAAG;IACvC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IACjE,QAAQ,CAAC,gBAAgB,EAAE,uBAAuB,CAAC;IACnD,QAAQ,CAAC,eAAe,EAAE,SAAS,mBAAmB,EAAE,CAAC;CAC1D,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,iCAAiC,GACvC,mBAAmB,CA4CrB"}
1
+ {"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/config/compose.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,uBAAuB,EACvB,mBAAmB,EAEnB,UAAU,EACV,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAwBpB,KAAK,iCAAiC,GAAG;IACvC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IACjE,QAAQ,CAAC,gBAAgB,EAAE,uBAAuB,CAAC;IACnD,QAAQ,CAAC,eAAe,EAAE,SAAS,mBAAmB,EAAE,CAAC;CAC1D,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,iCAAiC,GACvC,mBAAmB,CA4CrB"}
@@ -1,7 +1,7 @@
1
1
  import type { SecretResolvers } from "../core/ports.js";
2
2
  import type { Candidate } from "../fleet/fleet.js";
3
3
  import type { FleetStateStore } from "../fleet/store.js";
4
- import type { AgentConfigTypeRegistry, AgentConfigManager, AgentsRuntimeConfig, AgentsConfigPaths, ProfileManager, NamedSecretResolver } from "./model.js";
4
+ import type { AgentConfigManager, AgentConfigTypeRegistry, AgentsConfigPaths, AgentsRuntimeConfig, NamedSecretResolver, ProfileManager } from "./model.js";
5
5
  export type OpenAgentsConfigOptions = {
6
6
  readonly rootDir: string;
7
7
  readonly agentConfigTypes?: AgentConfigTypeRegistry;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzD,OAAO,KAAK,EACV,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAIpB,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;IACpD,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;CAC3D,CAAC;AAQF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,iBAAiB,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACnD;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,uBAAuB,GAC/B,YAAY,CAgBd;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,mBAAmB,CAAC,CAE9B;AAED,wBAAgB,kBAAkB,CAAC,OAAO,SAAS,MAAM,EACvD,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC,GACnC,SAAS,SAAS,CAAC,OAAO,CAAC,EAAE,CAE/B;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,mBAAmB,GAC1B,eAAe,CAIjB"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzD,OAAO,KAAK,EACV,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACf,MAAM,YAAY,CAAC;AAIpB,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;IACpD,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;CAC3D,CAAC;AAQF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,iBAAiB,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACnD;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,uBAAuB,GAC/B,YAAY,CAgBd;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,mBAAmB,CAAC,CAE9B;AAED,wBAAgB,kBAAkB,CAAC,OAAO,SAAS,MAAM,EACvD,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC,GACnC,SAAS,SAAS,CAAC,OAAO,CAAC,EAAE,CAE/B;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,mBAAmB,GAC1B,eAAe,CAIjB"}
@@ -1,9 +1,9 @@
1
1
  export type { BuiltinAgentConfigOptions, OpenAiCompatibleAgentConfigOptions, } from "./agent-configs.js";
2
2
  export { claudeAgentConfig, codexAgentConfig, openAiCompatibleAgentConfig, } from "./agent-configs.js";
3
+ export type { AgentsConfig, OpenAgentsConfigOptions, } from "./config.js";
4
+ export { candidatesForFleet, loadAgentsRuntimeConfig, openAgentsConfig, secretsForRuntime, } from "./config.js";
3
5
  export type { AgentsConfigErrorCode, AgentsConfigErrorData, AgentsConfigErrorOptions, } from "./errors.js";
4
6
  export { AGENTS_CONFIG_ERROR_CODE, AgentsConfigError, isAgentsConfigError, } from "./errors.js";
5
- export type { AgentsConfig, OpenAgentsConfigOptions, } from "./config.js";
6
- export { loadAgentsRuntimeConfig, openAgentsConfig, candidatesForFleet, secretsForRuntime, } from "./config.js";
7
7
  export type { AgentConfigId, AgentConfigKind, ProfileId } from "./ids.js";
8
8
  export { agentConfigId, agentConfigKind, profileId } from "./ids.js";
9
9
  export type { AgentConfig, AgentConfigManager, AgentConfigPatch, AgentConfigSettings, AgentsConfigPaths, AgentsRuntimeConfig, ApiKeyProfileInput, CandidateSource, CandidateSourceInfo, CandidateWithSource, HomeDirProfileInput, NamedSecretResolver, ProfileInputBase, ProfileManager, ProfileRecord, } from "./model.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,yBAAyB,EACzB,kCAAkC,GACnC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,YAAY,EACZ,uBAAuB,GACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrE,YAAY,EACV,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oCAAoC,EAAE,MAAM,YAAY,CAAC;AAClE,YAAY,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,yBAAyB,EACzB,kCAAkC,GACnC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,YAAY,EACZ,uBAAuB,GACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrE,YAAY,EACV,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oCAAoC,EAAE,MAAM,YAAY,CAAC;AAClE,YAAY,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,aAAa,CAAC"}
@@ -1,6 +1,6 @@
1
1
  export { claudeAgentConfig, codexAgentConfig, openAiCompatibleAgentConfig, } from "./agent-configs.js";
2
+ export { candidatesForFleet, loadAgentsRuntimeConfig, openAgentsConfig, secretsForRuntime, } from "./config.js";
2
3
  export { AGENTS_CONFIG_ERROR_CODE, AgentsConfigError, isAgentsConfigError, } from "./errors.js";
3
- export { loadAgentsRuntimeConfig, openAgentsConfig, candidatesForFleet, secretsForRuntime, } from "./config.js";
4
4
  export { agentConfigId, agentConfigKind, profileId } from "./ids.js";
5
5
  export { DEFAULT_AGENTS_CONFIG_AGENT_SETTINGS } from "./store.js";
6
6
  export { AGENT_CONFIG_KIND, AGENTS_CONFIG_DIRECTORY, AGENTS_CONFIG_FILE, BUILTIN_AGENT_ID, CANDIDATE_SOURCE_KIND, DEFAULT_AGENT_CONFIG_ID, OPENAI_COMPATIBLE_ENGINE, } from "./values.js";
@@ -6,7 +6,6 @@ import type { FleetStateStore } from "../fleet/store.js";
6
6
  import type { AgentDefinition } from "../kernel/definition.js";
7
7
  import type { AgentConfigId, AgentConfigKind, ProfileId } from "./ids.js";
8
8
  import type { CANDIDATE_SOURCE_KIND } from "./values.js";
9
- export type EmptyPayload = Readonly<Record<string, never>>;
10
9
  export type AgentsConfigPaths = {
11
10
  readonly rootDir: string;
12
11
  readonly profilesFile: string;
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/config/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/config/model.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1E,OAAO,KAAK,EACV,mBAAmB,EAEnB,aAAa,EACd,MAAM,YAAY,CAAC;AAGpB,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAwD5C,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,0BAA0B,CAAC;IACpD,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,OAAO,EAAE,OAAO,0BAA0B,CAAC;CACrD,GAAG,mBAAmB,CAAC;AAExB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAWK,CAAC;AAErC,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;kBAkBK,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1E,OAAO,KAAK,EAEV,mBAAmB,EACnB,aAAa,EACd,MAAM,YAAY,CAAC;AAGpB,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAwD5C,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,0BAA0B,CAAC;IACpD,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,OAAO,EAAE,OAAO,0BAA0B,CAAC;CACrD,GAAG,mBAAmB,CAAC;AAExB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAWK,CAAC;AAErC,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;kBAkBK,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { brandedStringSchema, jsonValueSchema, readonlyArraySchema, strictReadonlyObject, } from "@alpacakit/core";
2
2
  import { z } from "zod";
3
3
  import { AUTH_MATERIAL_KIND } from "../auth/material.js";
4
- import { agentConfigKind, agentConfigId, profileId } from "./ids.js";
4
+ import { agentConfigId, agentConfigKind, profileId } from "./ids.js";
5
5
  import { ZOD_ISSUE_CODE } from "./support.js";
6
6
  export const AGENTS_CONFIG_FILE_VERSION = 1;
7
7
  const PROFILE_FILE_FIELD = {
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/config/store.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAQzE,OAAO,KAAK,EAEV,kBAAkB,EAElB,uBAAuB,EAEvB,iBAAiB,EAEjB,UAAU,EAEV,cAAc,EAEf,MAAM,YAAY,CAAC;AAgEpB,KAAK,kBAAkB,GAAG;IACxB,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;CAC3C,CAAC;AAYF,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;CAgBT,CAAC;AAmOzC,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,iBAAiB,EACxB,gBAAgB,EAAE,uBAAuB,GACxC,kBAAkB,CAWpB;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,UAAU,CAAC,CAMrB"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/config/store.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,eAAe,EAAkB,MAAM,mBAAmB,CAAC;AAQzE,OAAO,KAAK,EAEV,kBAAkB,EAGlB,uBAAuB,EACvB,iBAAiB,EAEjB,UAAU,EAEV,cAAc,EAEf,MAAM,YAAY,CAAC;AAsDpB,KAAK,kBAAkB,GAAG;IACxB,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;CAC3C,CAAC;AAYF,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;CAgBT,CAAC;AAmOzC,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,iBAAiB,EACxB,gBAAgB,EAAE,uBAAuB,GACxC,kBAAkB,CAWpB;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,UAAU,CAAC,CAMrB"}
@@ -1,18 +1,14 @@
1
- import { mkdir, readFile, rename, writeFile } from "node:fs/promises";
2
- import path from "node:path";
1
+ import { readFile } from "node:fs/promises";
2
+ import { isErrnoCode, writeFileAtomically } from "../core/fs.js";
3
+ import { TEXT_ENCODING } from "../core/values.js";
3
4
  import { AUTH_MATERIAL_KIND } from "../auth/material.js";
4
5
  import { fileFleetStore } from "../fleet/store.js";
5
6
  import { AGENT_CONFIG_VALIDATION_RESULT, validateAgentConfig, } from "./agent-config-validation.js";
6
7
  import { AGENTS_CONFIG_ERROR_CODE, AgentsConfigError } from "./errors.js";
7
8
  import { profileId } from "./ids.js";
8
9
  import { AGENTS_CONFIG_FILE_VERSION, agentConfigSettingsFileSchema, profilesFileSchema, } from "./schema.js";
9
- import { FIELD_PATH, formatFieldPath, isErrnoCode, NODE_ERRNO_CODE, } from "./support.js";
10
+ import { FIELD_PATH, formatFieldPath, NODE_ERRNO_CODE } from "./support.js";
10
11
  import { AGENT_CONFIG_KIND, DEFAULT_AGENT_CONFIG_ID } from "./values.js";
11
- const TEXT_ENCODING = "utf8";
12
- const PRIVATE_DIRECTORY_MODE = 0o700;
13
- const PRIVATE_FILE_MODE = 0o600;
14
- const TEMP_FILE_SUFFIX = "tmp";
15
- const TEMP_FILE_PATH_SEPARATOR = ".";
16
12
  const JSON_INDENT_SPACES = 2;
17
13
  const TRAILING_NEWLINE = "\n";
18
14
  const FILE_PARSE_ERROR_REASON = {
@@ -401,20 +397,6 @@ function invalidFileError(input) {
401
397
  cause: input.cause,
402
398
  });
403
399
  }
404
- async function writeJsonAtomically(filePath, value) {
405
- await mkdir(path.dirname(filePath), {
406
- recursive: true,
407
- mode: PRIVATE_DIRECTORY_MODE,
408
- });
409
- const tempPath = [
410
- filePath,
411
- String(process.pid),
412
- String(Date.now()),
413
- TEMP_FILE_SUFFIX,
414
- ].join(TEMP_FILE_PATH_SEPARATOR);
415
- await writeFile(tempPath, `${JSON.stringify(value, null, JSON_INDENT_SPACES)}${TRAILING_NEWLINE}`, {
416
- encoding: TEXT_ENCODING,
417
- mode: PRIVATE_FILE_MODE,
418
- });
419
- await rename(tempPath, filePath);
400
+ function writeJsonAtomically(filePath, value) {
401
+ return writeFileAtomically(filePath, `${JSON.stringify(value, null, JSON_INDENT_SPACES)}${TRAILING_NEWLINE}`);
420
402
  }
@@ -10,5 +10,4 @@ export declare const NODE_ERRNO_CODE: {
10
10
  };
11
11
  export declare function readNonBlankEnvValue(env: Readonly<Record<string, string | undefined>>, name: string): string | null;
12
12
  export declare function formatFieldPath(pathParts: readonly PropertyKey[]): string;
13
- export declare function isErrnoCode(error: unknown, code: string): boolean;
14
13
  //# sourceMappingURL=support.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"support.d.ts","sourceRoot":"","sources":["../../src/config/support.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc;;CAEjB,CAAC;AAEX,eAAO,MAAM,UAAU;;;CAGb,CAAC;AAEX,eAAO,MAAM,eAAe;;CAElB,CAAC;AAMX,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,EACjD,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,IAAI,CAGf;AAMD,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,WAAW,EAAE,GAAG,MAAM,CAKzE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAOjE"}
1
+ {"version":3,"file":"support.d.ts","sourceRoot":"","sources":["../../src/config/support.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc;;CAEjB,CAAC;AAEX,eAAO,MAAM,UAAU;;;CAGb,CAAC;AAEX,eAAO,MAAM,eAAe;;CAElB,CAAC;AAEX,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,EACjD,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,IAAI,CAGf;AAMD,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,WAAW,EAAE,GAAG,MAAM,CAKzE"}
@@ -8,9 +8,6 @@ export const FIELD_PATH = {
8
8
  export const NODE_ERRNO_CODE = {
9
9
  missingFile: "ENOENT",
10
10
  };
11
- const NODE_ERROR_FIELD = {
12
- code: "code",
13
- };
14
11
  export function readNonBlankEnvValue(env, name) {
15
12
  const value = env[name];
16
13
  return isNonBlankString(value) ? value : null;
@@ -24,9 +21,3 @@ export function formatFieldPath(pathParts) {
24
21
  }
25
22
  return pathParts.map(String).join(FIELD_PATH.separator);
26
23
  }
27
- export function isErrnoCode(error, code) {
28
- return (typeof error === "object" &&
29
- error !== null &&
30
- NODE_ERROR_FIELD.code in error &&
31
- Reflect.get(error, NODE_ERROR_FIELD.code) === code);
32
- }
@@ -0,0 +1,56 @@
1
+ /**
2
+ * The facts of a CLI child process, owned once: PATH resolution and the
3
+ * one `not_available` error it raises, capped output tails, NDJSON line
4
+ * assembly, redacted failure evidence, and signal escalation. Each caller
5
+ * keeps its own lifecycle policy (one-shot run, held session, login,
6
+ * host-plane command, probe) and never re-derives these facts.
7
+ */
8
+ import { AGENT_ERROR_CODE, AgentError } from "./error.js";
9
+ import type { Clock, Exec, ExecExit, ExecProcess, InteractiveExecProcess } from "./ports.js";
10
+ /** How much of each stream survives into failure evidence. */
11
+ export declare const OUTPUT_TAIL_CHARS = 2000;
12
+ /** How much raw output a driver retains for parsing and `RunResult.raw`. */
13
+ export declare const RAW_OUTPUT_CAP_CHARS: number;
14
+ /** Grace between stdin EOF and SIGTERM, and between SIGTERM and SIGKILL. */
15
+ export declare const TERMINATION_GRACE_MS = 5000;
16
+ /** The `failed` error's data: what the process left behind, already redacted. */
17
+ export type FailureEvidence = {
18
+ exitCode: number | null;
19
+ stdoutTail: string | null;
20
+ stderrTail: string | null;
21
+ };
22
+ /** For a `failed` error that has no process behind it. */
23
+ export declare const NO_FAILURE_EVIDENCE: FailureEvidence;
24
+ /** Keep the last `capChars` of `current + next`. */
25
+ export declare function appendTail(current: string, next: string, capChars?: number): string;
26
+ /** The one place output becomes error evidence: tail-capped, redacted, `""` → `null`. */
27
+ export declare function failureEvidence(input: {
28
+ readonly stdout: string;
29
+ readonly stderr: string;
30
+ readonly exitCode: number | null;
31
+ }): FailureEvidence;
32
+ export declare function commandNotFoundError(command: string, agentId: string | null): AgentError<typeof AGENT_ERROR_CODE.notAvailable>;
33
+ /** Resolve `command` against `env`'s PATH; absence is the typed `not_available`. */
34
+ export declare function resolveCommand(exec: Exec, command: string, env: Record<string, string>, agentId: string | null): Promise<string>;
35
+ /**
36
+ * Assemble complete lines from arbitrary chunks. `push` returns the
37
+ * trimmed, non-empty lines completed by the chunk; `flush` returns the
38
+ * unterminated remainder at end of stream.
39
+ */
40
+ export declare class LineBuffer {
41
+ private pending;
42
+ push(text: string): string[];
43
+ flush(): string[];
44
+ }
45
+ /**
46
+ * SIGTERM now, SIGKILL after the grace. Returns the canceller for the
47
+ * pending SIGKILL; call it once the child has exited.
48
+ */
49
+ export declare function escalateTermination(process: ExecProcess, clock: Clock): () => void;
50
+ /**
51
+ * The one way a held child is ended: stdin EOF first (both hosts exit on
52
+ * it, and only that exit removes Codex's thread writer lock), then the
53
+ * signal escalation for a child that does not exit on EOF.
54
+ */
55
+ export declare function endProcessGracefully(process: InteractiveExecProcess, clock: Clock): Promise<ExecExit>;
56
+ //# sourceMappingURL=cli-child.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-child.d.ts","sourceRoot":"","sources":["../../src/core/cli-child.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAuB,MAAM,YAAY,CAAC;AAC/E,OAAO,KAAK,EACV,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAIpB,8DAA8D;AAC9D,eAAO,MAAM,iBAAiB,OAAQ,CAAC;AACvC,4EAA4E;AAC5E,eAAO,MAAM,oBAAoB,QAAmB,CAAC;AACrD,4EAA4E;AAC5E,eAAO,MAAM,oBAAoB,OAAQ,CAAC;AAE1C,iFAAiF;AACjF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,mBAAmB,EAAE,eAIjC,CAAC;AAEF,oDAAoD;AACpD,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,MAA0B,GACnC,MAAM,CAKR;AAED,yFAAyF;AACzF,wBAAgB,eAAe,CAAC,KAAK,EAAE;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,GAAG,eAAe,CAQlB;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,UAAU,CAAC,OAAO,gBAAgB,CAAC,YAAY,CAAC,CAQlD;AAED,oFAAoF;AACpF,wBAAsB,cAAc,CAClC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAAC,MAAM,CAAC,CAMjB;AAED;;;;GAIG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAM;IAErB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAO5B,KAAK,IAAI,MAAM,EAAE;CAKlB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,KAAK,GACX,MAAM,IAAI,CAKZ;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,QAAQ,CAAC,CAenB"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * The facts of a CLI child process, owned once: PATH resolution and the
3
+ * one `not_available` error it raises, capped output tails, NDJSON line
4
+ * assembly, redacted failure evidence, and signal escalation. Each caller
5
+ * keeps its own lifecycle policy (one-shot run, held session, login,
6
+ * host-plane command, probe) and never re-derives these facts.
7
+ */
8
+ import { AGENT_ERROR_CODE, AgentError, NOT_AVAILABLE_CAUSE } from "./error.js";
9
+ import { redactSecrets } from "./redact.js";
10
+ import { PROCESS_SIGNAL } from "./values.js";
11
+ /** How much of each stream survives into failure evidence. */
12
+ export const OUTPUT_TAIL_CHARS = 2_000;
13
+ /** How much raw output a driver retains for parsing and `RunResult.raw`. */
14
+ export const RAW_OUTPUT_CAP_CHARS = 10 * 1024 * 1024;
15
+ /** Grace between stdin EOF and SIGTERM, and between SIGTERM and SIGKILL. */
16
+ export const TERMINATION_GRACE_MS = 5_000;
17
+ /** For a `failed` error that has no process behind it. */
18
+ export const NO_FAILURE_EVIDENCE = {
19
+ exitCode: null,
20
+ stdoutTail: null,
21
+ stderrTail: null,
22
+ };
23
+ /** Keep the last `capChars` of `current + next`. */
24
+ export function appendTail(current, next, capChars = OUTPUT_TAIL_CHARS) {
25
+ const combined = current + next;
26
+ return combined.length <= capChars
27
+ ? combined
28
+ : combined.slice(combined.length - capChars);
29
+ }
30
+ /** The one place output becomes error evidence: tail-capped, redacted, `""` → `null`. */
31
+ export function failureEvidence(input) {
32
+ const stdoutTail = redactSecrets(input.stdout.slice(-OUTPUT_TAIL_CHARS));
33
+ const stderrTail = redactSecrets(input.stderr.slice(-OUTPUT_TAIL_CHARS));
34
+ return {
35
+ exitCode: input.exitCode,
36
+ stdoutTail: stdoutTail === "" ? null : stdoutTail,
37
+ stderrTail: stderrTail === "" ? null : stderrTail,
38
+ };
39
+ }
40
+ export function commandNotFoundError(command, agentId) {
41
+ return new AgentError({
42
+ code: AGENT_ERROR_CODE.notAvailable,
43
+ classification: AgentError.agentFailure(AGENT_ERROR_CODE.notAvailable),
44
+ message: `Command "${command}" was not found on PATH`,
45
+ data: { cause: NOT_AVAILABLE_CAUSE.notInstalled },
46
+ ...(agentId === null ? {} : { agentId }),
47
+ });
48
+ }
49
+ /** Resolve `command` against `env`'s PATH; absence is the typed `not_available`. */
50
+ export async function resolveCommand(exec, command, env, agentId) {
51
+ const resolved = await exec.which(command, env);
52
+ if (resolved === null) {
53
+ throw commandNotFoundError(command, agentId);
54
+ }
55
+ return resolved;
56
+ }
57
+ /**
58
+ * Assemble complete lines from arbitrary chunks. `push` returns the
59
+ * trimmed, non-empty lines completed by the chunk; `flush` returns the
60
+ * unterminated remainder at end of stream.
61
+ */
62
+ export class LineBuffer {
63
+ pending = "";
64
+ push(text) {
65
+ this.pending += text;
66
+ const parts = this.pending.split(/\r?\n/u);
67
+ this.pending = parts.pop() ?? "";
68
+ return parts.map((line) => line.trim()).filter((line) => line !== "");
69
+ }
70
+ flush() {
71
+ const last = this.pending.trim();
72
+ this.pending = "";
73
+ return last === "" ? [] : [last];
74
+ }
75
+ }
76
+ /**
77
+ * SIGTERM now, SIGKILL after the grace. Returns the canceller for the
78
+ * pending SIGKILL; call it once the child has exited.
79
+ */
80
+ export function escalateTermination(process, clock) {
81
+ process.kill(PROCESS_SIGNAL.sigterm);
82
+ return clock.setTimeout(() => {
83
+ process.kill(PROCESS_SIGNAL.sigkill);
84
+ }, TERMINATION_GRACE_MS);
85
+ }
86
+ /**
87
+ * The one way a held child is ended: stdin EOF first (both hosts exit on
88
+ * it, and only that exit removes Codex's thread writer lock), then the
89
+ * signal escalation for a child that does not exit on EOF.
90
+ */
91
+ export async function endProcessGracefully(process, clock) {
92
+ process.endStdin();
93
+ const cancels = [];
94
+ cancels.push(clock.setTimeout(() => {
95
+ cancels.push(escalateTermination(process, clock));
96
+ }, TERMINATION_GRACE_MS));
97
+ try {
98
+ return await process.exit;
99
+ }
100
+ finally {
101
+ for (const cancel of cancels.splice(0)) {
102
+ cancel();
103
+ }
104
+ }
105
+ }
package/dist/core/fs.d.ts CHANGED
@@ -10,7 +10,7 @@ export declare const PRIVATE_FILE_MODE = 384;
10
10
  export declare function isErrnoCode(error: unknown, code: string): boolean;
11
11
  /**
12
12
  * Write a private (0600) file atomically: create the 0700 parent, write
13
- * a pid-suffixed temp file, then rename over the destination.
13
+ * a pid-and-sequence-suffixed temp file, then rename over the destination.
14
14
  */
15
15
  export declare function writeFileAtomically(filePath: string, content: string): Promise<void>;
16
16
  //# sourceMappingURL=fs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/core/fs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,eAAO,MAAM,sBAAsB,MAAQ,CAAC;AAC5C,eAAO,MAAM,iBAAiB,MAAQ,CAAC;AAGvC,uEAAuE;AACvE,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAMjE;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAQf"}
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/core/fs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,eAAO,MAAM,sBAAsB,MAAQ,CAAC;AAC5C,eAAO,MAAM,iBAAiB,MAAQ,CAAC;AAKvC,uEAAuE;AACvE,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAMjE;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAcf"}
package/dist/core/fs.js CHANGED
@@ -9,6 +9,8 @@ import path from "node:path";
9
9
  export const PRIVATE_DIRECTORY_MODE = 0o700;
10
10
  export const PRIVATE_FILE_MODE = 0o600;
11
11
  const TEMP_FILE_SUFFIX = "tmp";
12
+ /** Distinguishes concurrent writes to one path from the same process. */
13
+ let tempFileSequence = 0;
12
14
  /** Narrowing over Node fs errors without `instanceof` on internals. */
13
15
  export function isErrnoCode(error, code) {
14
16
  return (typeof error === "object" &&
@@ -17,14 +19,20 @@ export function isErrnoCode(error, code) {
17
19
  }
18
20
  /**
19
21
  * Write a private (0600) file atomically: create the 0700 parent, write
20
- * a pid-suffixed temp file, then rename over the destination.
22
+ * a pid-and-sequence-suffixed temp file, then rename over the destination.
21
23
  */
22
24
  export async function writeFileAtomically(filePath, content) {
23
25
  await mkdir(path.dirname(filePath), {
24
26
  recursive: true,
25
27
  mode: PRIVATE_DIRECTORY_MODE,
26
28
  });
27
- const tempPath = [filePath, String(process.pid), TEMP_FILE_SUFFIX].join(".");
29
+ tempFileSequence += 1;
30
+ const tempPath = [
31
+ filePath,
32
+ String(process.pid),
33
+ String(tempFileSequence),
34
+ TEMP_FILE_SUFFIX,
35
+ ].join(".");
28
36
  await writeFile(tempPath, content, { mode: PRIVATE_FILE_MODE });
29
37
  await rename(tempPath, filePath);
30
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"node-ports.d.ts","sourceRoot":"","sources":["../../src/core/node-ports.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EACV,KAAK,EACL,IAAI,EAIJ,UAAU,EAGX,MAAM,YAAY,CAAC;AAOpB,eAAO,MAAM,WAAW,EAAE,KAOzB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,UAEvB,CAAC;AAoBF,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAUxB;AA+HD,eAAO,MAAM,QAAQ,EAAE,IAGtB,CAAC"}
1
+ {"version":3,"file":"node-ports.d.ts","sourceRoot":"","sources":["../../src/core/node-ports.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EACV,KAAK,EACL,IAAI,EAIJ,UAAU,EAGX,MAAM,YAAY,CAAC;AAOpB,eAAO,MAAM,WAAW,EAAE,KAOzB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,UAEvB,CAAC;AAoBF,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAUxB;AAuHD,eAAO,MAAM,QAAQ,EAAE,IAGtB,CAAC"}