@alpacakit/agents 0.1.0-beta.39 → 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 (134) hide show
  1. package/README.md +142 -1
  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/cli.js +182 -0
  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/host.js +319 -0
  11. package/dist/agents/{claude.d.ts → claude/index.d.ts} +11 -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 +25 -0
  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 +50 -1
  41. package/dist/codex/app-server.d.ts.map +1 -1
  42. package/dist/codex/app-server.js +140 -66
  43. package/dist/codex/index.d.ts +3 -2
  44. package/dist/codex/index.d.ts.map +1 -1
  45. package/dist/codex/index.js +2 -1
  46. package/dist/codex/protocol.d.ts +101 -0
  47. package/dist/codex/protocol.d.ts.map +1 -1
  48. package/dist/codex/protocol.js +78 -0
  49. package/dist/config/agent-config-validation.d.ts +1 -1
  50. package/dist/config/agent-config-validation.d.ts.map +1 -1
  51. package/dist/config/agent-configs.d.ts.map +1 -1
  52. package/dist/config/agent-configs.js +3 -3
  53. package/dist/config/compose.d.ts.map +1 -1
  54. package/dist/config/config.d.ts +1 -1
  55. package/dist/config/config.d.ts.map +1 -1
  56. package/dist/config/index.d.ts +2 -2
  57. package/dist/config/index.d.ts.map +1 -1
  58. package/dist/config/index.js +1 -1
  59. package/dist/config/model.d.ts +0 -1
  60. package/dist/config/model.d.ts.map +1 -1
  61. package/dist/config/schema.d.ts.map +1 -1
  62. package/dist/config/schema.js +1 -1
  63. package/dist/config/store.d.ts.map +1 -1
  64. package/dist/config/store.js +6 -24
  65. package/dist/config/support.d.ts +0 -1
  66. package/dist/config/support.d.ts.map +1 -1
  67. package/dist/config/support.js +0 -9
  68. package/dist/core/cli-child.d.ts +56 -0
  69. package/dist/core/cli-child.d.ts.map +1 -0
  70. package/dist/core/cli-child.js +105 -0
  71. package/dist/core/fs.d.ts +1 -1
  72. package/dist/core/fs.d.ts.map +1 -1
  73. package/dist/core/fs.js +10 -2
  74. package/dist/core/node-ports.d.ts.map +1 -1
  75. package/dist/core/node-ports.js +1 -5
  76. package/dist/core/session.d.ts +104 -0
  77. package/dist/core/session.d.ts.map +1 -0
  78. package/dist/core/session.js +29 -0
  79. package/dist/fleet/store.d.ts.map +1 -1
  80. package/dist/fleet/store.js +4 -3
  81. package/dist/host/availability.d.ts +2 -1
  82. package/dist/host/availability.d.ts.map +1 -1
  83. package/dist/host/github-dir.d.ts.map +1 -1
  84. package/dist/host/github-dir.js +2 -1
  85. package/dist/host/mcp-list.d.ts.map +1 -1
  86. package/dist/host/mcp-list.js +5 -6
  87. package/dist/host/run-command.d.ts +2 -1
  88. package/dist/host/run-command.d.ts.map +1 -1
  89. package/dist/host/run-command.js +10 -19
  90. package/dist/host/session-files.d.ts +23 -0
  91. package/dist/host/session-files.d.ts.map +1 -0
  92. package/dist/host/session-files.js +92 -0
  93. package/dist/index.d.ts +9 -4
  94. package/dist/index.d.ts.map +1 -1
  95. package/dist/index.js +5 -2
  96. package/dist/internal/controlled-process/supervisor-runtime.js +27 -1
  97. package/dist/kernel/classify.d.ts +1 -2
  98. package/dist/kernel/classify.d.ts.map +1 -1
  99. package/dist/kernel/classify.js +1 -1
  100. package/dist/kernel/cli-agent.d.ts.map +1 -1
  101. package/dist/kernel/cli-agent.js +26 -85
  102. package/dist/kernel/cli-login.d.ts.map +1 -1
  103. package/dist/kernel/cli-login.js +9 -30
  104. package/dist/kernel/definition.d.ts +11 -2
  105. package/dist/kernel/definition.d.ts.map +1 -1
  106. package/dist/kernel/facets.d.ts +38 -1
  107. package/dist/kernel/facets.d.ts.map +1 -1
  108. package/dist/kernel/facets.js +20 -0
  109. package/dist/kernel/login.d.ts.map +1 -1
  110. package/dist/kernel/login.js +2 -1
  111. package/dist/kernel/options.d.ts +1 -1
  112. package/dist/kernel/options.d.ts.map +1 -1
  113. package/dist/kernel/run.d.ts.map +1 -1
  114. package/dist/kernel/run.js +2 -1
  115. package/dist/kernel/runtime.d.ts +10 -6
  116. package/dist/kernel/runtime.d.ts.map +1 -1
  117. package/dist/kernel/runtime.js +4 -1
  118. package/dist/kernel/session.d.ts +104 -0
  119. package/dist/kernel/session.d.ts.map +1 -0
  120. package/dist/kernel/session.js +314 -0
  121. package/dist/testing/fake-exec.d.ts +10 -5
  122. package/dist/testing/fake-exec.d.ts.map +1 -1
  123. package/dist/testing/fake-exec.js +17 -2
  124. package/dist/testing/index.d.ts +1 -1
  125. package/dist/testing/index.d.ts.map +1 -1
  126. package/dist/testing/index.js +1 -1
  127. package/package.json +2 -2
  128. package/dist/agents/claude.d.ts.map +0 -1
  129. package/dist/agents/claude.js +0 -543
  130. package/dist/agents/codex.d.ts +0 -19
  131. package/dist/agents/codex.d.ts.map +0 -1
  132. package/dist/agents/codex.js +0 -377
  133. package/dist/agents/openai-compatible/pi/session.d.ts.map +0 -1
  134. /package/dist/agents/openai-compatible/pi/{session.js → run.js} +0 -0
@@ -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":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEzD,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAE3D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,IAAI;IAC3D,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,IAAI;IAC9D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,IAC7D,gBAAgB,CAAC,OAAO,CAAC,GAAG;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAEJ,MAAM,MAAM,kBAAkB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,IAC5D,gBAAgB,CAAC,OAAO,CAAC,GAAG;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;CAC5B,CAAC;AAEJ,MAAM,MAAM,WAAW,CACrB,IAAI,SAAS,eAAe,GAAG,eAAe,EAC9C,OAAO,SAAS,UAAU,GAAG,UAAU,IACrC;IACF,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,kBAAkB,EAAE;QAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;KAC3B,CAAC;IACF,QAAQ,CAAC,YAAY,EAAE,SAAS,WAAW,EAAE,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,eAAe,GACzB,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,OAAO,qBAAqB,CAAC,CAAC;AAErE,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,IAAI;IACjE,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,OAAO,SAAS,MAAM,IAAI;IAC1D,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;IACrD,QAAQ,CAAC,UAAU,EAAE,SAAS,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;CAC9D,CAAC;AAEF,MAAM,MAAM,0BAA0B,CACpC,IAAI,SAAS,eAAe,EAC5B,OAAO,SAAS,UAAU,IACxB;IACF,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IAC5C,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,WAAW,eAAe,CAC9B,IAAI,SAAS,eAAe,EAC5B,OAAO,SAAS,UAAU,EAC1B,OAAO,SAAS,MAAM;IAEtB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO,CACL,KAAK,EAAE,0BAA0B,CAAC,IAAI,EAAE,OAAO,CAAC,GAC/C,qBAAqB,CAAC,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAC5C,eAAe,EACf,eAAe,CAAC,eAAe,EAAE,UAAU,EAAE,MAAM,CAAC,CACrD,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,IAAI;IACjE,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;IACrD,QAAQ,CAAC,UAAU,EAAE,SAAS,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7D,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,SAAS,mBAAmB,EAAE,CAAC;CAC1D,CAAC;AAEF,MAAM,WAAW,cAAc,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IAC7D,IAAI,IAAI,OAAO,CAAC,SAAS,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACnD,UAAU,CACR,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,GAClC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IACnC,SAAS,CACP,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,GACjC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,IAAI,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC,CAAC;IACxC,WAAW,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC5C,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/C,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACzE,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC,CAAC;IACjE,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACvE"}
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"}
@@ -6,6 +6,7 @@ import { spawn } from "node:child_process";
6
6
  import { access, constants } from "node:fs";
7
7
  import path from "node:path";
8
8
  import { AsyncQueue } from "./async-queue.js";
9
+ import { isErrnoCode } from "./fs.js";
9
10
  import { OUTPUT_CHANNEL, TEXT_ENCODING } from "./values.js";
10
11
  const PATH_ENV_VAR = "PATH";
11
12
  const PATHEXT_ENV_VAR = "PATHEXT";
@@ -123,11 +124,6 @@ function spawnProcess(options) {
123
124
  awaitTerminationEscalation: () => termination,
124
125
  };
125
126
  }
126
- function isErrnoCode(error, code) {
127
- return (error instanceof Error &&
128
- "code" in error &&
129
- error.code === code);
130
- }
131
127
  function isExecutable(candidate) {
132
128
  return new Promise((resolve) => {
133
129
  access(candidate, constants.X_OK, (error) => {
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Session-plane vocabulary: a Session is one long-lived host conversation
3
+ * (Claude `-p --input-format stream-json` process, Codex app-server thread)
4
+ * that the caller keeps open across turns. One turn is one `send()`; the
5
+ * host's own conversation id is the Session id. Outbound types follow
6
+ * absence rule 2: keys always present, `null` is meaningful absence.
7
+ */
8
+ export declare const SESSION_EVENT_TYPE: {
9
+ readonly turnStarted: "turn_started";
10
+ readonly turnEnded: "turn_ended";
11
+ readonly message: "message";
12
+ readonly tool: "tool";
13
+ readonly approvalRequested: "approval_requested";
14
+ readonly exited: "exited";
15
+ };
16
+ export declare const TURN_OUTCOME: {
17
+ readonly completed: "completed";
18
+ readonly interrupted: "interrupted";
19
+ readonly failed: "failed";
20
+ };
21
+ export type TurnOutcome = (typeof TURN_OUTCOME)[keyof typeof TURN_OUTCOME];
22
+ /** The neutral answer to a host approval request; hosts map it to their own words. */
23
+ export declare const APPROVAL_DECISION: {
24
+ readonly accept: "accept";
25
+ readonly decline: "decline";
26
+ };
27
+ export type ApprovalDecision = (typeof APPROVAL_DECISION)[keyof typeof APPROVAL_DECISION];
28
+ /**
29
+ * `turnId` is the host's own turn id when it has one (Codex `turn/start`);
30
+ * a host whose stream carries none (Claude) gets a per-session counter.
31
+ */
32
+ export type SessionEvent = {
33
+ type: typeof SESSION_EVENT_TYPE.turnStarted;
34
+ turnId: string;
35
+ } | {
36
+ type: typeof SESSION_EVENT_TYPE.turnEnded;
37
+ turnId: string;
38
+ outcome: TurnOutcome;
39
+ } | {
40
+ type: typeof SESSION_EVENT_TYPE.message;
41
+ text: string;
42
+ } | {
43
+ type: typeof SESSION_EVENT_TYPE.tool;
44
+ name: string;
45
+ } | {
46
+ type: typeof SESSION_EVENT_TYPE.approvalRequested;
47
+ requestId: string;
48
+ /** Host-provided one-line description (command, tool name, reason). */
49
+ summary: string;
50
+ /** Decisions the host will accept for this request. */
51
+ decisions: readonly ApprovalDecision[];
52
+ } | {
53
+ type: typeof SESSION_EVENT_TYPE.exited;
54
+ code: number | null;
55
+ signal: string | null;
56
+ };
57
+ export type TurnResult = {
58
+ turnId: string;
59
+ outcome: TurnOutcome;
60
+ /** The host's final answer text for the turn ("" when it produced none). */
61
+ text: string;
62
+ };
63
+ export declare const SESSION_OWNER_KIND: {
64
+ readonly none: "none";
65
+ readonly process: "process";
66
+ };
67
+ /**
68
+ * Who holds the conversation right now, as far as the host's own files say.
69
+ * Claude records `{pid, entrypoint}` in its session registry; Codex only
70
+ * leaves a writer lock, so `pid` is `null` there.
71
+ */
72
+ export type SessionOwner = {
73
+ kind: typeof SESSION_OWNER_KIND.none;
74
+ } | {
75
+ kind: typeof SESSION_OWNER_KIND.process;
76
+ pid: number | null;
77
+ entrypoint: string | null;
78
+ };
79
+ export type SessionFacts<Permissions> = {
80
+ /** The working directory the conversation was recorded in. */
81
+ workspace: string;
82
+ /** The permissions the last turn ran with; `null` when unreadable. */
83
+ lastPermissions: Permissions | null;
84
+ owner: SessionOwner;
85
+ /** Codex moves archived rollouts aside; resume unarchives first. */
86
+ archived: boolean;
87
+ };
88
+ export interface Session {
89
+ /** The host's own conversation id (Claude session_id / Codex thread id). */
90
+ readonly id: string;
91
+ /** Live events; a late subscriber receives the retained replay window. */
92
+ readonly events: AsyncIterable<SessionEvent>;
93
+ /** Start one turn as the user; resolves when the host ends the turn. */
94
+ send(text: string): Promise<TurnResult>;
95
+ /** Add to the running turn (Codex `turn/steer`; Claude absorbs it at the next tool boundary). */
96
+ steer(text: string): Promise<void>;
97
+ /** Stop the running turn; the turn ends with outcome `interrupted`. */
98
+ interrupt(): Promise<void>;
99
+ /** Answer an `approval_requested` event. */
100
+ respond(requestId: string, decision: ApprovalDecision): Promise<void>;
101
+ /** Release the conversation: close stdin, wait for exit (escalating to signals). */
102
+ close(): Promise<void>;
103
+ }
104
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Session-plane vocabulary: a Session is one long-lived host conversation
3
+ * (Claude `-p --input-format stream-json` process, Codex app-server thread)
4
+ * that the caller keeps open across turns. One turn is one `send()`; the
5
+ * host's own conversation id is the Session id. Outbound types follow
6
+ * absence rule 2: keys always present, `null` is meaningful absence.
7
+ */
8
+ export const SESSION_EVENT_TYPE = {
9
+ turnStarted: "turn_started",
10
+ turnEnded: "turn_ended",
11
+ message: "message",
12
+ tool: "tool",
13
+ approvalRequested: "approval_requested",
14
+ exited: "exited",
15
+ };
16
+ export const TURN_OUTCOME = {
17
+ completed: "completed",
18
+ interrupted: "interrupted",
19
+ failed: "failed",
20
+ };
21
+ /** The neutral answer to a host approval request; hosts map it to their own words. */
22
+ export const APPROVAL_DECISION = {
23
+ accept: "accept",
24
+ decline: "decline",
25
+ };
26
+ export const SESSION_OWNER_KIND = {
27
+ none: "none",
28
+ process: "process",
29
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/fleet/store.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAG9C,OAAO,CAAC,MAAM,YAAY,EAAE,OAAO,MAAM,CAAC;AAC1C,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAErE,MAAM,WAAW,eAAe;IAC9B,gBAAgB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC3D,gBAAgB,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD;AAsPD,wBAAgB,gBAAgB,IAAI,eAAe,CAElD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,KAAK,GACZ,eAAe,CAEjB"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/fleet/store.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAaH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAG9C,OAAO,CAAC,MAAM,YAAY,EAAE,OAAO,MAAM,CAAC;AAC1C,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAErE,MAAM,WAAW,eAAe;IAC9B,gBAAgB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC3D,gBAAgB,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD;AAsPD,wBAAgB,gBAAgB,IAAI,eAAe,CAElD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,KAAK,GACZ,eAAe,CAEjB"}
@@ -8,6 +8,7 @@
8
8
  */
9
9
  import { mkdir, open, readFile, rename, rm, stat } from "node:fs/promises";
10
10
  import path from "node:path";
11
+ import { NO_FAILURE_EVIDENCE } from "../core/cli-child.js";
11
12
  import { AGENT_ERROR_CODE, AgentError } from "../core/error.js";
12
13
  import { isErrnoCode, PRIVATE_DIRECTORY_MODE, PRIVATE_FILE_MODE, writeFileAtomically, } from "../core/fs.js";
13
14
  import { systemClock } from "../core/node-ports.js";
@@ -82,7 +83,7 @@ async function takeOverStaleLock(lockPath) {
82
83
  code: AGENT_ERROR_CODE.failed,
83
84
  classification: AgentError.agentFailure(AGENT_ERROR_CODE.failed),
84
85
  message: `Could not take over stale fleet store lock: ${lockPath}`,
85
- data: { exitCode: null, stdoutTail: null, stderrTail: null },
86
+ data: NO_FAILURE_EVIDENCE,
86
87
  cause: error,
87
88
  });
88
89
  }
@@ -116,7 +117,7 @@ async function withFileLock(filePath, clock, task) {
116
117
  code: AGENT_ERROR_CODE.failed,
117
118
  classification: AgentError.agentFailure(AGENT_ERROR_CODE.failed),
118
119
  message: `Could not create fleet store lock: ${lockPath}`,
119
- data: { exitCode: null, stdoutTail: null, stderrTail: null },
120
+ data: NO_FAILURE_EVIDENCE,
120
121
  cause: error,
121
122
  });
122
123
  }
@@ -129,7 +130,7 @@ async function withFileLock(filePath, clock, task) {
129
130
  code: AGENT_ERROR_CODE.failed,
130
131
  classification: AgentError.agentFailure(AGENT_ERROR_CODE.failed),
131
132
  message: `Timed out waiting for fleet store lock: ${lockPath}`,
132
- data: { exitCode: null, stdoutTail: null, stderrTail: null },
133
+ data: NO_FAILURE_EVIDENCE,
133
134
  cause: error,
134
135
  });
135
136
  }
@@ -39,7 +39,7 @@ export interface AgentAvailabilityCapability {
39
39
  }
40
40
  /** The single bounded default for CLI availability subprocesses. */
41
41
  export declare const DEFAULT_AGENT_AVAILABILITY_PROBE_TIMEOUT_MS = 30000;
42
- export type CliAvailabilityOptions = {
42
+ type CliAvailabilityOptions = {
43
43
  readonly command: string;
44
44
  readonly commandMissingRemediation: AgentRemediation | null;
45
45
  readonly authentication?: {
@@ -53,4 +53,5 @@ export type CliAvailabilityOptions = {
53
53
  * authentication command this is the generic PATH-only default.
54
54
  */
55
55
  export declare function cliAvailability(options: CliAvailabilityOptions): AgentAvailabilityCapability;
56
+ export {};
56
57
  //# sourceMappingURL=availability.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"availability.d.ts","sourceRoot":"","sources":["../../src/host/availability.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,eAAO,MAAM,yBAAyB;;;;CAI5B,CAAC;AAEX,eAAO,MAAM,wBAAwB;;;CAG3B,CAAC;AAEX,eAAO,MAAM,0BAA0B;;;CAG7B,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;KAClC,GAAG,IAAI,CAAC;CACV,CAAC;AAEF,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,yBAAyB,CAAC,QAAQ,CAAA;CAAE,GAC9D;IACE,QAAQ,CAAC,MAAM,EAAE,OAAO,yBAAyB,CAAC,WAAW,CAAC;IAC9D,QAAQ,CAAC,MAAM,EACX,OAAO,wBAAwB,CAAC,cAAc,GAC9C,OAAO,wBAAwB,CAAC,sBAAsB,CAAC;IAC3D,QAAQ,CAAC,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAC/C,GACD;IACE,QAAQ,CAAC,MAAM,EAAE,OAAO,yBAAyB,CAAC,aAAa,CAAC;IAChE,QAAQ,CAAC,MAAM,EACX,OAAO,0BAA0B,CAAC,YAAY,GAC9C,OAAO,0BAA0B,CAAC,UAAU,CAAC;IACjD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEN,MAAM,WAAW,2BAA2B;IAC1C,KAAK,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACrD;AAED,oEAAoE;AACpE,eAAO,MAAM,2CAA2C,QAAS,CAAC;AAElE,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,yBAAyB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC5D,QAAQ,CAAC,cAAc,CAAC,EAAE;QACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;QACjC,QAAQ,CAAC,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAAC;KAC/C,CAAC;IACF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAiHF;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,sBAAsB,GAC9B,2BAA2B,CAqE7B"}
1
+ {"version":3,"file":"availability.d.ts","sourceRoot":"","sources":["../../src/host/availability.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,eAAO,MAAM,yBAAyB;;;;CAI5B,CAAC;AAEX,eAAO,MAAM,wBAAwB;;;CAG3B,CAAC;AAEX,eAAO,MAAM,0BAA0B;;;CAG7B,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;KAClC,GAAG,IAAI,CAAC;CACV,CAAC;AAEF,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,yBAAyB,CAAC,QAAQ,CAAA;CAAE,GAC9D;IACE,QAAQ,CAAC,MAAM,EAAE,OAAO,yBAAyB,CAAC,WAAW,CAAC;IAC9D,QAAQ,CAAC,MAAM,EACX,OAAO,wBAAwB,CAAC,cAAc,GAC9C,OAAO,wBAAwB,CAAC,sBAAsB,CAAC;IAC3D,QAAQ,CAAC,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAC/C,GACD;IACE,QAAQ,CAAC,MAAM,EAAE,OAAO,yBAAyB,CAAC,aAAa,CAAC;IAChE,QAAQ,CAAC,MAAM,EACX,OAAO,0BAA0B,CAAC,YAAY,GAC9C,OAAO,0BAA0B,CAAC,UAAU,CAAC;IACjD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEN,MAAM,WAAW,2BAA2B;IAC1C,KAAK,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACrD;AAED,oEAAoE;AACpE,eAAO,MAAM,2CAA2C,QAAS,CAAC;AAElE,KAAK,sBAAsB,GAAG;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,yBAAyB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC5D,QAAQ,CAAC,cAAc,CAAC,EAAE;QACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;QACjC,QAAQ,CAAC,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAAC;KAC/C,CAAC;IACF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAiHF;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,sBAAsB,GAC9B,2BAA2B,CAqE7B"}