@codetreker/daynight 0.21.13 → 0.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/README.md +364 -287
  2. package/config.example.yml +69 -0
  3. package/dist/api/client.d.ts +2 -2
  4. package/dist/api/client.js +10 -7
  5. package/dist/api/client.js.map +1 -1
  6. package/dist/api/types.d.ts +1 -8
  7. package/dist/cli/prompts.d.ts +1 -0
  8. package/dist/commands/auth/credentials.js +1 -1
  9. package/dist/commands/auth/credentials.js.map +1 -1
  10. package/dist/commands/review/config.d.ts +2 -1
  11. package/dist/commands/review/config.js +22 -39
  12. package/dist/commands/review/config.js.map +1 -1
  13. package/dist/commands/review/configuration-guide.js +7 -6
  14. package/dist/commands/review/configuration-guide.js.map +1 -1
  15. package/dist/commands/review/definition.js +1 -1
  16. package/dist/commands/review/definition.js.map +1 -1
  17. package/dist/commands/review/repositories.js +19 -19
  18. package/dist/commands/review/repositories.js.map +1 -1
  19. package/dist/commands/skill/skills/using-daynight/references/execute-task-in-managed.md +6 -5
  20. package/dist/commands/skill/skills/using-daynight/references/handbook.md +1 -1
  21. package/dist/commands/skill/skills/using-daynight/references/handoff.md +1 -1
  22. package/dist/commands/worker/attach.d.ts +3 -0
  23. package/dist/commands/worker/attach.js +53 -0
  24. package/dist/commands/worker/attach.js.map +1 -0
  25. package/dist/commands/worker/cleanup.d.ts +8 -2
  26. package/dist/commands/worker/cleanup.js +44 -160
  27. package/dist/commands/worker/cleanup.js.map +1 -1
  28. package/dist/commands/worker/config.d.ts +13 -3
  29. package/dist/commands/worker/config.js +35 -13
  30. package/dist/commands/worker/config.js.map +1 -1
  31. package/dist/commands/worker/configuration-guide.d.ts +19 -0
  32. package/dist/commands/worker/configuration-guide.js +86 -0
  33. package/dist/commands/worker/configuration-guide.js.map +1 -0
  34. package/dist/commands/worker/control.d.ts +11 -18
  35. package/dist/commands/worker/control.js +75 -132
  36. package/dist/commands/worker/control.js.map +1 -1
  37. package/dist/commands/worker/coordinator.d.ts +10 -8
  38. package/dist/commands/worker/coordinator.js +311 -473
  39. package/dist/commands/worker/coordinator.js.map +1 -1
  40. package/dist/commands/worker/definition.js +34 -18
  41. package/dist/commands/worker/definition.js.map +1 -1
  42. package/dist/commands/worker/diagnostics.js +2 -3
  43. package/dist/commands/worker/diagnostics.js.map +1 -1
  44. package/dist/commands/worker/execution.d.ts +35 -10
  45. package/dist/commands/worker/execution.js +92 -283
  46. package/dist/commands/worker/execution.js.map +1 -1
  47. package/dist/commands/worker/herdr/agents.d.ts +12 -91
  48. package/dist/commands/worker/herdr/agents.js +111 -358
  49. package/dist/commands/worker/herdr/agents.js.map +1 -1
  50. package/dist/commands/worker/herdr/instance.d.ts +1 -0
  51. package/dist/commands/worker/herdr/instance.js +30 -5
  52. package/dist/commands/worker/herdr/instance.js.map +1 -1
  53. package/dist/commands/worker/herdr/preflight.d.ts +21 -9
  54. package/dist/commands/worker/herdr/preflight.js +118 -124
  55. package/dist/commands/worker/herdr/preflight.js.map +1 -1
  56. package/dist/commands/worker/herdr.d.ts +7 -63
  57. package/dist/commands/worker/herdr.js.map +1 -1
  58. package/dist/commands/worker/identity.js +2 -2
  59. package/dist/commands/worker/identity.js.map +1 -1
  60. package/dist/commands/worker/index.d.ts +8 -0
  61. package/dist/commands/worker/index.js +21 -14
  62. package/dist/commands/worker/index.js.map +1 -1
  63. package/dist/commands/worker/prompts.d.ts +10 -3
  64. package/dist/commands/worker/prompts.js +21 -32
  65. package/dist/commands/worker/prompts.js.map +1 -1
  66. package/dist/commands/worker/remote.d.ts +2 -3
  67. package/dist/commands/worker/remote.js +1 -6
  68. package/dist/commands/worker/remote.js.map +1 -1
  69. package/dist/commands/worker/repositories.d.ts +40 -0
  70. package/dist/commands/worker/repositories.js +236 -0
  71. package/dist/commands/worker/repositories.js.map +1 -0
  72. package/dist/commands/worker/runtime.d.ts +1 -0
  73. package/dist/commands/worker/runtime.js +135 -212
  74. package/dist/commands/worker/runtime.js.map +1 -1
  75. package/dist/commands/worker/setup-environment.d.ts +31 -0
  76. package/dist/commands/worker/setup-environment.js +146 -0
  77. package/dist/commands/worker/setup-environment.js.map +1 -0
  78. package/dist/commands/worker/setup.d.ts +11 -0
  79. package/dist/commands/worker/setup.js +113 -0
  80. package/dist/commands/worker/setup.js.map +1 -0
  81. package/dist/commands/worker/store.d.ts +12 -114
  82. package/dist/commands/worker/store.js +92 -817
  83. package/dist/commands/worker/store.js.map +1 -1
  84. package/dist/commands/worker/types.d.ts +10 -114
  85. package/dist/commands/worker/worktrees.d.ts +9 -9
  86. package/dist/commands/worker/worktrees.js +77 -37
  87. package/dist/commands/worker/worktrees.js.map +1 -1
  88. package/dist/config/document.d.ts +0 -1
  89. package/dist/config/document.js +1 -22
  90. package/dist/config/document.js.map +1 -1
  91. package/dist/config/errors.d.ts +2 -2
  92. package/dist/config/errors.js.map +1 -1
  93. package/dist/config/files.d.ts +7 -1
  94. package/dist/config/files.js +4 -1
  95. package/dist/config/files.js.map +1 -1
  96. package/dist/config/ownership.d.ts +12 -0
  97. package/dist/config/ownership.js +39 -0
  98. package/dist/config/ownership.js.map +1 -0
  99. package/dist/repository/location.d.ts +7 -0
  100. package/dist/repository/location.js +51 -0
  101. package/dist/repository/location.js.map +1 -0
  102. package/package.json +4 -3
@@ -1,11 +1,15 @@
1
1
  import path from "node:path";
2
2
  import { canonicalId } from "../../api/parse.js";
3
3
  import { parseConfigurationDocument } from "../../config/document.js";
4
+ import { MissingConfigurationFileError } from "../../config/errors.js";
4
5
  import { readConfigurationSource } from "../../config/files.js";
6
+ import { parseServerConfiguration } from "../../config/server.js";
5
7
  import { ancestorIdentities, missingPathsReferToSameDirectory, pathsOverlap, resolvePhysicalDirectory } from "../../platform/filesystem.js";
6
8
  import { repositoryIdentity } from "../../repository/identity.js";
9
+ import { defaultRepositoryRoot, validateRepositoryRoot } from "../../repository/location.js";
7
10
  import { validateHerdrAgentArguments } from "./herdr/arguments.js";
8
11
  export const workerConfigurationDefaults = Object.freeze({
12
+ repositoryRoot: defaultRepositoryRoot,
9
13
  maxConcurrent: 1,
10
14
  pollIntervalMs: 5_000,
11
15
  recoveryLimit: 3,
@@ -16,10 +20,6 @@ const mapping = (value, field) => {
16
20
  throw new TypeError(`${field} must be a mapping.`);
17
21
  return value;
18
22
  };
19
- const keys = (value, accepted, field) => {
20
- if (Object.keys(value).some((key) => !accepted.includes(key)))
21
- throw new TypeError(`${field} contains an unsupported field.`);
22
- };
23
23
  const text = (value, field) => {
24
24
  if (typeof value !== "string" || value.trim() === "" || !value.isWellFormed() || /\p{Cc}/u.test(value))
25
25
  throw new TypeError(`${field} must be nonempty text without control characters.`);
@@ -62,22 +62,22 @@ const repositoryPath = (value, field, paths, pathApi) => {
62
62
  };
63
63
  export const parseWorkerConfiguration = (source, paths, pathApi = path) => {
64
64
  const { mapping: root } = parseConfigurationDocument(source, paths);
65
- if (!Object.hasOwn(root, "worker"))
66
- throw new Error("Worker configuration is missing; configure worker.repositories in ~/.daynight/config.yml.");
67
- const worker = mapping(root.worker, "worker");
68
- keys(worker, ["maxConcurrent", "pollIntervalMs", "recoveryLimit", "agent", "model", "args", "repositories"], "worker");
65
+ const worker = Object.hasOwn(root, "worker") ? mapping(root.worker, "worker") : {};
66
+ const repositoryRoot = Object.hasOwn(worker, "repositoryRoot")
67
+ ? validateRepositoryRoot(text(worker.repositoryRoot, "worker.repositoryRoot"), "worker.repositoryRoot", pathApi)
68
+ : workerConfigurationDefaults.repositoryRoot;
69
69
  const effective = agentConfiguration(worker, "worker", {
70
70
  agent: workerConfigurationDefaults.agent, model: null, args: [], recoveryLimit: number(worker, "recoveryLimit"),
71
71
  });
72
- if (!Array.isArray(worker.repositories))
72
+ const configuredRepositories = Object.hasOwn(worker, "repositories") ? worker.repositories : [];
73
+ if (!Array.isArray(configuredRepositories))
73
74
  throw new TypeError("worker.repositories must be a sequence.");
74
75
  const identities = new Set();
75
76
  const projects = new Set();
76
77
  const locations = [];
77
- const repositories = worker.repositories.map((entry, index) => {
78
+ const repositories = configuredRepositories.map((entry, index) => {
78
79
  const field = `worker.repositories[${index}]`;
79
80
  const repository = mapping(entry, field);
80
- keys(repository, ["remote", "path", "projectId", "agent", "model", "args"], field);
81
81
  const remote = text(repository.remote, `${field}.remote`);
82
82
  const identity = repositoryIdentity(remote);
83
83
  if (identities.has(identity))
@@ -100,10 +100,32 @@ export const parseWorkerConfiguration = (source, paths, pathApi = path) => {
100
100
  }
101
101
  return { ...agentConfiguration(repository, field, effective), remote, path: localPath, ...(projectId === undefined ? {} : { projectId }) };
102
102
  });
103
- return { ...effective, maxConcurrent: number(worker, "maxConcurrent"), pollIntervalMs: number(worker, "pollIntervalMs"), repositories };
103
+ return { ...effective, repositoryRoot, maxConcurrent: number(worker, "maxConcurrent"), pollIntervalMs: number(worker, "pollIntervalMs"), repositories };
104
+ };
105
+ const readWorkerConfigurationSource = async (paths, signal) => {
106
+ signal?.throwIfAborted();
107
+ try {
108
+ return await readConfigurationSource(paths, signal);
109
+ }
110
+ catch (cause) {
111
+ if (!(cause instanceof MissingConfigurationFileError))
112
+ throw cause;
113
+ return undefined;
114
+ }
104
115
  };
105
116
  export const readWorkerConfiguration = async (paths, signal) => {
106
- const configuration = parseWorkerConfiguration(await readConfigurationSource(paths, signal), paths);
117
+ const source = await readWorkerConfigurationSource(paths, signal);
118
+ return validateWorkerConfigurationSource(source === undefined ? "{}" : source, paths, signal);
119
+ };
120
+ export const validateWorkerConfigurationSnapshotSource = async (source, paths, signal) => {
121
+ const content = source === undefined ? "{}" : source;
122
+ const configuration = await validateWorkerConfigurationSource(content, paths, signal);
123
+ return { source, configuration, ...parseServerConfiguration(content, paths) };
124
+ };
125
+ export const readWorkerConfigurationSnapshot = async (paths, signal) => validateWorkerConfigurationSnapshotSource(await readWorkerConfigurationSource(paths, signal), paths, signal);
126
+ export const validateWorkerConfigurationSource = async (source, paths, signal) => {
127
+ signal?.throwIfAborted();
128
+ const configuration = parseWorkerConfiguration(source, paths);
107
129
  const physicalPaths = [];
108
130
  const physicalState = await resolvePhysicalDirectory(paths.stateDirectory);
109
131
  const ancestors = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/commands/worker/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/commands/worker/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,EAAE,kBAAkB,EAAE,gCAAgC,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAE5I,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC7F,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAsBnE,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC,MAAM,CAAC;IACvD,cAAc,EAAE,qBAAqB;IACrC,aAAa,EAAE,CAAC;IAChB,cAAc,EAAE,KAAK;IACrB,aAAa,EAAE,CAAC;IAChB,KAAK,EAAE,SAAkB;CAC1B,CAAC,CAAC;AAEH,MAAM,OAAO,GAAG,CAAC,KAAc,EAAE,KAAa,EAA2B,EAAE;IACzE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,qBAAqB,CAAC,CAAC;IAC5H,OAAO,KAAgC,CAAC;AAC1C,CAAC,CAAC;AAEF,MAAM,IAAI,GAAG,CAAC,KAAc,EAAE,KAAa,EAAU,EAAE;IACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,oDAAoD,CAAC,CAAC;IAC1L,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,CAAC,KAA8B,EAAE,KAA4F,EAAU,EAAE;IACtJ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC;QAAE,OAAO,2BAA2B,CAAC,KAAK,CAAC,CAAC;IAC5E,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5B,MAAM,OAAO,GAAG,KAAK,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,gBAAgB,IAAI,MAAM,GAAG,aAAa,CAAC,EAAE,CAAC;QAC9I,MAAM,IAAI,SAAS,CAAC,UAAU,KAAK,cAAc,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,gBAAgB,KAAK,KAAK,gBAAgB,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACjL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,KAA8B,EAAE,KAAa,EAAE,SAAiC,EAA0B,EAAE;IACtI,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;IAC5E,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,kCAAkC,CAAC,CAAC;IAC9G,MAAM,QAAQ,GAAG,KAAK,KAAK,SAAS,CAAC,KAAK,CAAC;IAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACpJ,IAAI,IAAuB,CAAC;IAC5B,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,+CAA+C,CAAC,CAAC;QAC7G,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC;IAChF,CAAC;;QAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClD,2BAA2B,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACzC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,CAAC,aAAa,EAAE,CAAC;AACxE,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,KAAc,EAAE,KAAa,EAAE,KAAkB,EAAE,OAAgB,EAAU,EAAE;IACrG,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtC,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,iGAAiG,CAAC,CAAC;IAC/J,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,IAAI,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,6CAA6C,CAAC,CAAC;IAC7I,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC;AACxE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,MAAc,EAAE,KAAkB,EAAE,OAAO,GAAY,IAAI,EAAuB,EAAE;IAC3H,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,0BAA0B,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC;QAC5D,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,uBAAuB,CAAC,EAAE,uBAAuB,EAAE,OAAO,CAAC;QAChH,CAAC,CAAC,2BAA2B,CAAC,cAAc,CAAC;IAC/C,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE;QACrD,KAAK,EAAE,2BAA2B,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;KAChH,CAAC,CAAC;IACH,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAChG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,sBAAsB,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAC;IAC3G,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,YAAY,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC,KAAc,EAAE,KAAa,EAAiC,EAAE;QAC/G,MAAM,KAAK,GAAG,uBAAuB,KAAK,GAAG,CAAC;QAC9C,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,2CAA2C,CAAC,CAAC;QACvG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzB,MAAM,SAAS,GAAG,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACnF,IAAI,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,EAAE,OAAO,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,8CAA8C,CAAC,CAAC;QACxI,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,2CAA2C,CAAC,CAAC;QACvJ,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1B,IAAI,SAA6B,CAAC;QAClC,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC;YAC3C,SAAS,GAAG,OAAO,UAAU,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YAClH,IAAI,SAAS,KAAK,SAAS;gBAAE,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,uCAAuC,CAAC,CAAC;YAClG,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,kDAAkD,CAAC,CAAC;YAC7G,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,EAAE,GAAG,kBAAkB,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAC7I,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,GAAG,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,YAAY,EAAE,CAAC;AAC1J,CAAC,CAAC;AAEF,MAAM,6BAA6B,GAAG,KAAK,EAAE,KAAkB,EAAE,MAAoB,EAA+B,EAAE;IACpH,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,IAAI,CAAC;QAAC,OAAO,MAAM,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAAC,CAAC;IAC5D,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,CAAC,KAAK,YAAY,6BAA6B,CAAC;YAAE,MAAM,KAAK,CAAC;QACnE,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAAE,KAAkB,EAAE,MAAoB,EAAgC,EAAE;IACtH,MAAM,MAAM,GAAG,MAAM,6BAA6B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAClE,OAAO,iCAAiC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAChG,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yCAAyC,GAAG,KAAK,EAC5D,MAA0B,EAC1B,KAAkB,EAClB,MAAoB,EACkB,EAAE;IACxC,MAAM,OAAO,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IACrD,MAAM,aAAa,GAAG,MAAM,iCAAiC,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACtF,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,wBAAwB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;AAChF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAG,KAAK,EAAE,KAAkB,EAAE,MAAoB,EAAwC,EAAE,CACtI,yCAAyC,CAAC,MAAM,6BAA6B,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAE/G,MAAM,CAAC,MAAM,iCAAiC,GAAG,KAAK,EAAE,MAAc,EAAE,KAAkB,EAAE,MAAoB,EAAgC,EAAE;IAChJ,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,MAAM,aAAa,GAAG,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9D,MAAM,aAAa,GAAwB,EAAE,CAAC;IAC9C,MAAM,aAAa,GAAG,MAAM,wBAAwB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC3E,MAAM,SAAS,GAAG,IAAI,GAAG,EAAgC,CAAC;IAC1D,MAAM,QAAQ,GAAG,CAAC,SAA4B,EAAwB,EAAE;QACtE,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC3D,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC;QAC5C,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC1D,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAClD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,KAAK,EAAE,KAAwB,EAAE,MAAyB,EAAoB,EAAE;QAC/F,IAAI,KAAK,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC;YAAE,OAAO,IAAI,CAAC;QAC9G,IAAI,MAAM,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/G,IAAI,KAAK,CAAC,gBAAgB,KAAK,MAAM,CAAC,gBAAgB;YAAE,OAAO,KAAK,CAAC;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACzF,MAAM,IAAI,GAAG,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,gCAAgC,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACjJ,CAAC,CAAC;IACF,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,aAAa,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;QACvE,MAAM,EAAE,cAAc,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,MAAM,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,uBAAuB,KAAK,0DAA0D,CAAC,CAAC;QACzJ,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;YACrC,IAAI,MAAM,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;gBAAE,MAAM,IAAI,SAAS,CAAC,uBAAuB,KAAK,uDAAuD,CAAC,CAAC;QACnJ,CAAC;QACD,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { CliContext } from "../../cli/context.js";
2
+ import { readWorkerConfiguration } from "./config.js";
3
+ import { changeWorkerRepositories, configuredWorkerProjectIds, readWorkerProjects, readWorkerRepositorySnapshot } from "./repositories.js";
4
+ export type WorkerRepositoryCommandRequest = {
5
+ kind: "list";
6
+ json: boolean;
7
+ } | {
8
+ kind: "add" | "remove";
9
+ projectId?: string;
10
+ };
11
+ export type WorkerRepositoryGuideDependencies = {
12
+ readConfiguration: typeof readWorkerConfiguration;
13
+ readSnapshot: typeof readWorkerRepositorySnapshot;
14
+ readProjects: typeof readWorkerProjects;
15
+ configuredProjectIds: typeof configuredWorkerProjectIds;
16
+ change: typeof changeWorkerRepositories;
17
+ };
18
+ export declare const ensureWorkerRepositories: (context: CliContext, dependencies?: WorkerRepositoryGuideDependencies, suppliedSignal?: AbortSignal) => Promise<void>;
19
+ export declare const runWorkerRepositoryCommand: (request: WorkerRepositoryCommandRequest, context: CliContext, dependencies?: WorkerRepositoryGuideDependencies, suppliedSignal?: AbortSignal) => Promise<void>;
@@ -0,0 +1,86 @@
1
+ import { CliCancelledError, withCliCancellation } from "../../cli/cancellation.js";
2
+ import { terminalText } from "../../platform/terminal.js";
3
+ import { readWorkerConfiguration } from "./config.js";
4
+ import { resolveWorkerPaths } from "./paths.js";
5
+ import { changeWorkerRepositories, configuredWorkerProjectIds, readWorkerProjects, readWorkerRepositorySnapshot } from "./repositories.js";
6
+ const defaultDependencies = {
7
+ readConfiguration: readWorkerConfiguration,
8
+ readSnapshot: readWorkerRepositorySnapshot,
9
+ readProjects: readWorkerProjects,
10
+ configuredProjectIds: configuredWorkerProjectIds,
11
+ change: changeWorkerRepositories,
12
+ };
13
+ const projectLabel = (project) => `${terminalText(project.name)} · ${project.id} · ${terminalText(project.repoUrl)}`;
14
+ const renderRepositories = (repositories, json) => {
15
+ const summaries = repositories.map(({ projectId, remote, path }) => ({ projectId: projectId === undefined ? null : projectId, remote, path }));
16
+ if (json)
17
+ return `${JSON.stringify(summaries, null, 2)}\n`;
18
+ if (summaries.length === 0)
19
+ return "No worker repositories configured.\n";
20
+ return summaries.map(({ projectId, remote, path }) => [
21
+ `Project: ${projectId === null ? "Matched by repository at startup" : projectId}`,
22
+ `Repository: ${terminalText(remote)}`,
23
+ `Path: ${terminalText(path)}`,
24
+ "",
25
+ ].join("\n")).join("\n");
26
+ };
27
+ const changeRepositories = async (request, context, dependencies, signal) => {
28
+ const paths = resolveWorkerPaths(context.homeDirectory());
29
+ const snapshot = await dependencies.readSnapshot(paths, signal);
30
+ const projects = await dependencies.readProjects(snapshot, signal);
31
+ signal.throwIfAborted();
32
+ if (projects.length === 0)
33
+ throw new Error("No accessible Daynight Projects exist. Create a Project before configuring worker repositories.");
34
+ let projectIds;
35
+ if (request.projectId !== undefined) {
36
+ if (!projects.some(({ id }) => id === request.projectId))
37
+ throw new Error(`Project ${request.projectId} does not exist or is not accessible.`);
38
+ projectIds = [request.projectId];
39
+ }
40
+ else {
41
+ const configured = new Set(dependencies.configuredProjectIds(snapshot, projects));
42
+ const choices = projects.filter(({ id }) => request.kind === "add" ? !configured.has(id) : configured.has(id));
43
+ if (choices.length === 0)
44
+ throw new Error(request.kind === "add"
45
+ ? "All accessible Daynight Projects are already configured for this worker."
46
+ : "No configured worker repository matches an accessible Daynight Project.");
47
+ const prompt = context.prompt;
48
+ if (prompt?.isInteractive !== true)
49
+ throw new Error(`Interactive worker repository configuration requires terminal input and stderr. Run daynight worker repo ${request.kind} --project <project-id>.`);
50
+ projectIds = await prompt.selectMany({
51
+ message: request.kind === "add" ? "Run tasks from which existing Daynight Projects?" : "Remove which existing Daynight Projects from worker configuration?",
52
+ choices: choices.map((project) => ({ name: projectLabel(project), value: project.id })),
53
+ requiredMessage: "Select at least one Project.",
54
+ }, signal);
55
+ signal.throwIfAborted();
56
+ const available = new Set(choices.map(({ id }) => id));
57
+ if (projectIds.length === 0 || projectIds.some((id) => !available.has(id)) || new Set(projectIds).size !== projectIds.length) {
58
+ throw new Error("Select one or more distinct Projects from the available choices.");
59
+ }
60
+ }
61
+ signal.throwIfAborted();
62
+ await dependencies.change({
63
+ paths, homeDirectory: context.homeDirectory(), snapshot, projects,
64
+ ...(request.kind === "add" ? { addProjectIds: projectIds } : { removeProjectIds: projectIds }),
65
+ signal,
66
+ });
67
+ signal.throwIfAborted();
68
+ context.stderr(`Worker repositories saved to ${paths.configFile}. Changes apply at the next worker startup.\n`);
69
+ };
70
+ export const ensureWorkerRepositories = async (context, dependencies = defaultDependencies, suppliedSignal) => withCliCancellation(context, async (signal) => {
71
+ signal.throwIfAborted();
72
+ const configuration = await dependencies.readConfiguration(resolveWorkerPaths(context.homeDirectory()), signal);
73
+ if (configuration.repositories.length > 0)
74
+ return;
75
+ await changeRepositories({ kind: "add" }, context, dependencies, signal);
76
+ }, suppliedSignal, () => new CliCancelledError("Worker repository configuration cancelled."));
77
+ export const runWorkerRepositoryCommand = async (request, context, dependencies = defaultDependencies, suppliedSignal) => withCliCancellation(context, async (signal) => {
78
+ signal.throwIfAborted();
79
+ if (request.kind === "list") {
80
+ const configuration = await dependencies.readConfiguration(resolveWorkerPaths(context.homeDirectory()), signal);
81
+ context.stdout(renderRepositories(configuration.repositories, request.json));
82
+ return;
83
+ }
84
+ await changeRepositories(request, context, dependencies, signal);
85
+ }, suppliedSignal, () => new CliCancelledError("Worker repository configuration cancelled."));
86
+ //# sourceMappingURL=configuration-guide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configuration-guide.js","sourceRoot":"","sources":["../../../src/commands/worker/configuration-guide.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import type { TaskPlatform, WorkerMachine } from "../../api/types.js";
2
2
  import type { WorkerRepositoryAssignment } from "./coordinator.js";
3
+ import type { WorkerEvent } from "./execution.js";
3
4
  import type { WorkerRemote } from "./remote.js";
4
5
  import type { WorkerStore } from "./store.js";
5
- import type { LocalTask, TransferTarget } from "./types.js";
6
+ import type { ClaimIdentity, LocalTask, ResourceOwner } from "./types.js";
6
7
  export type WorkerControlRequest = {
7
8
  kind: "retry";
8
9
  taskId: string;
@@ -20,23 +21,13 @@ export type WorkerControlRequest = {
20
21
  projectId?: string;
21
22
  claimId: string;
22
23
  version: bigint;
23
- } | {
24
- kind: "transfer";
25
- taskId: string;
26
- projectId?: string;
27
- claimId: string;
28
- version: bigint;
29
- target: Omit<TransferTarget, "worktreeId">;
30
24
  };
31
- export declare const createWorkerControlDriver: (options: {
32
- store: WorkerStore;
33
- remote: WorkerRemote;
34
- serverOrigin: string;
35
- now: () => number;
36
- }) => {
37
- advance: (input: LocalTask, signal: AbortSignal, mode?: {
38
- submit: boolean;
39
- }) => Promise<LocalTask>;
25
+ type ControlCoordinator = {
26
+ advanceRetry(identity: ClaimIdentity): Promise<void>;
27
+ cleanupSource(identity: ClaimIdentity, settings: {
28
+ deleteWorktree?: boolean;
29
+ }): Promise<ResourceOwner>;
30
+ completeSource(owner: ResourceOwner): Promise<void>;
40
31
  };
41
32
  export declare const submitWorkerControl: (options: {
42
33
  store: WorkerStore;
@@ -48,8 +39,10 @@ export declare const submitWorkerControl: (options: {
48
39
  repositories: readonly WorkerRepositoryAssignment[];
49
40
  request: WorkerControlRequest;
50
41
  signal: AbortSignal;
51
- now?: () => number;
42
+ coordinator: ControlCoordinator;
43
+ emit: (event: WorkerEvent) => void;
52
44
  }) => Promise<{
53
45
  task: LocalTask | null;
54
46
  message: string;
55
47
  }>;
48
+ export {};
@@ -1,151 +1,94 @@
1
1
  import { randomUUID } from "node:crypto";
2
2
  import { ApiError } from "../../api/client.js";
3
- const cleaned = (task) => task.cleanup?.kind === "terminal" && task.cleanup.result !== null && task.cleanup.agentStopped && task.cleanup.workspaceClosed && task.cleanup.worktreeDeleted;
4
- const message = (error) => error instanceof Error ? error.message : String(error);
5
- const sourceActive = (task, claimId) => task.properties.worker?.claimId === claimId && task.properties.worker.state === "active";
6
- const applied = (task, intent) => intent.kind === "release"
7
- ? task.properties.worker?.claimId === intent.sourceClaimId && task.properties.worker.state === "released"
8
- : task.properties.worker?.claimId === intent.targetClaimId && task.properties.worker.state === "active" && task.properties.worker.userId === intent.target.userId && task.properties.worker.workerId === intent.target.workerId && task.properties.worker.worktreeId === intent.target.worktreeId && task.properties.worker.agent === intent.target.agent;
9
- export const createWorkerControlDriver = (options) => ({
10
- advance: async (input, signal, mode = { submit: true }) => {
11
- let task = options.store.getTask(input);
12
- if (task === null)
13
- throw new Error("The source control execution disappeared.");
14
- if (task.status === "done" || task.control === null || !cleaned(task))
15
- return task;
16
- if (task.serverOrigin !== options.serverOrigin)
17
- return task;
18
- if (task.userId === null)
19
- throw new Error("Source control requires the original authenticated claim owner.");
20
- if (task.control.submission === "confirmed")
21
- return task.control.outcome === "applied"
22
- ? options.store.completeAppliedControl(task, task.control.intent, BigInt(task.control.resultVersion), options.now())
23
- : options.store.completeEndedControl(task, task.control.intent, { observedClaimId: null, observedState: null }, options.now());
24
- const intent = task.control.intent;
25
- const observed = await options.remote.readTask(task.projectId, task.taskId, signal);
26
- await options.remote.authorizeControl(task.projectId, task.userId, undefined, signal);
27
- const latest = options.store.getTask(task);
28
- if (latest === null)
29
- throw new Error("The source control execution disappeared.");
30
- if (latest.status === "done")
31
- return latest;
32
- if (latest.control === null || JSON.stringify(latest.control.intent) !== JSON.stringify(intent))
33
- throw new Error("The concrete source management decision changed during remote observation.");
34
- task = latest;
35
- if (!sourceActive(observed, task.claimId)) {
36
- if (applied(observed, intent) && task.control.submission === "unknown")
37
- return options.store.completeAppliedControl(task, intent, observed.version, options.now());
38
- return options.store.completeEndedControl(task, intent, { observedClaimId: observed.properties.worker?.claimId ?? null, observedState: observed.properties.worker?.state ?? null }, options.now());
39
- }
40
- if (!mode.submit || task.control.submission !== "not-submitted")
41
- return task;
42
- try {
43
- task = options.store.markControlSubmitting(task, BigInt(intent.version), options.now());
44
- }
45
- catch (error) {
46
- const winner = options.store.getTask(task);
47
- if (winner?.control !== null && winner?.control !== undefined && JSON.stringify(winner.control.intent) === JSON.stringify(intent) && (winner.control.submission === "unknown" || winner.control.submission === "confirmed"))
48
- return winner;
49
- throw error;
50
- }
51
- try {
52
- const result = intent.kind === "release"
53
- ? await options.remote.release(task.projectId, task.taskId, { claimId: task.claimId, version: BigInt(intent.version), stoppedConfirmed: true }, signal)
54
- : await options.remote.transfer(task.projectId, task.taskId, { claimId: task.claimId, version: BigInt(intent.version), newClaimId: intent.targetClaimId, target: { userId: intent.target.userId, workerId: intent.target.workerId, machine: intent.target.machine, platform: intent.target.platform, agent: intent.target.agent }, worktreeId: intent.target.worktreeId, stoppedConfirmed: true }, signal);
55
- return options.store.completeAppliedControl(task, intent, result.version, options.now());
56
- }
57
- catch (error) {
58
- const current = options.store.getTask(task);
59
- if (current?.status === "done" && current.control?.submission === "confirmed")
60
- return current;
61
- if (error instanceof ApiError && !error.outcomeUnconfirmed)
62
- options.store.rejectControlSubmission(task, message(error), options.now());
63
- throw error;
64
- }
65
- },
66
- });
3
+ const matchesTask = (task, identity) => task.projectId === identity.projectId && task.id === identity.taskId;
4
+ const matchesGrant = (task, identity, descriptor, userId) => {
5
+ const worker = task.properties.worker;
6
+ return matchesTask(task, identity) && task.status === "in_progress" && worker !== null && worker.state === "active"
7
+ && worker.claimId === descriptor.claimId && worker.workerId === descriptor.workerId && worker.worktreeId === descriptor.worktreeId
8
+ && worker.userId === userId && worker.agent === descriptor.agent && worker.platform === descriptor.platform
9
+ && worker.machine.id === descriptor.machine.id && worker.machine.name === descriptor.machine.name;
10
+ };
67
11
  export const submitWorkerControl = async (options) => {
68
- const now = options.now ?? Date.now;
69
- const request = options.request;
70
- const local = options.store.listTasks().filter((task) => task.taskId === request.taskId && task.claimId === request.claimId && (request.projectId === undefined || task.projectId === request.projectId));
71
- if (local.some((task) => task.serverOrigin !== options.serverOrigin))
72
- throw new Error("The original claim belongs to a different configured service origin; restore that service before managing it.");
73
- const matches = local.filter((task) => task.serverOrigin === options.serverOrigin);
12
+ const { store, remote, request, signal, coordinator } = options;
13
+ signal.throwIfAborted();
14
+ if (remote.serverOrigin !== options.serverOrigin)
15
+ throw new Error("Worker management must use the configured service origin.");
16
+ const matches = store.listTasks().filter((task) => task.taskId === request.taskId && task.claimId === request.claimId && (request.projectId === undefined || task.projectId === request.projectId));
74
17
  if (matches.length > 1)
75
18
  throw new Error("The source claim is ambiguous; supply --project.");
76
- let source = matches[0];
77
- if (source !== undefined && source.workerId !== options.workerId)
78
- throw new Error("The source execution belongs to another worker identity.");
79
- const projectId = source?.projectId ?? request.projectId ?? (options.repositories.length === 1 ? options.repositories[0].project.projectId : undefined);
19
+ const source = matches[0];
20
+ let projectId = source?.projectId ?? request.projectId;
21
+ if (projectId === undefined && options.repositories.length === 1)
22
+ projectId = options.repositories[0].project.projectId;
80
23
  if (projectId === undefined)
81
24
  throw new Error("This claim has no local execution; supply --project to resume it explicitly.");
82
- const principal = await options.remote.currentUserId(options.signal);
83
- const observed = await options.remote.readTask(projectId, request.taskId, options.signal);
25
+ const identity = { projectId, taskId: request.taskId, claimId: request.claimId };
26
+ const principal = await remote.currentUserId(signal);
27
+ const observed = await remote.readTask(projectId, request.taskId, signal);
28
+ if (!matchesTask(observed, identity))
29
+ throw new Error("The observed task does not match the requested project and task.");
84
30
  const worker = observed.properties.worker;
85
- if (request.kind === "resume") {
86
- const project = options.store.getProject({ serverOrigin: options.serverOrigin, projectId });
87
- const repository = options.repositories.find((entry) => entry.project.serverOrigin === options.serverOrigin && entry.project.projectId === projectId);
88
- if (project === null || repository === undefined)
89
- throw new Error("Resume requires a configured repository and its current agent settings.");
90
- const pending = options.store.getClaimAttempt(project);
91
- if (pending !== null) {
92
- if (pending.taskId !== request.taskId || pending.expectedVersion !== request.version.toString() || pending.userId !== principal)
93
- throw new Error("An unresolved original claim request cannot be replaced.");
94
- if (worker?.state === "active" && worker.claimId === pending.claimId && worker.userId === pending.userId && worker.workerId === pending.workerId && worker.worktreeId === pending.worktreeId && worker.agent === pending.configuration.agent) {
95
- const task = options.store.registerPending({ ...project, taskId: observed.id, claimId: pending.claimId, workerId: pending.workerId, worktreeId: pending.worktreeId }, { kind: "new", configuration: pending.configuration }, now(), principal);
96
- return { task, message: `Resume grant ${pending.claimId} recovered and committed as pending.` };
97
- }
98
- throw new Error(`Resume claim ${pending.claimId} has an unknown outcome; its original request will not be replayed.`);
99
- }
100
- if (observed.version !== request.version)
31
+ const exactVersion = () => {
32
+ if (request.kind !== "retry" && observed.version !== request.version)
101
33
  throw new Error("The explicit task version no longer matches; make a new decision with the observed version.");
102
- if (worker?.state !== "released" || worker.claimId !== request.claimId)
103
- throw new Error("Resume requires the exact released previous claim.");
104
- await options.remote.authorizeControl(projectId, worker.userId, undefined, options.signal);
105
- const descriptor = { claimId: randomUUID(), workerId: options.workerId, worktreeId: randomUUID(), machine: options.machine, platform: options.platform, agent: repository.configuration.agent };
106
- options.store.beginClaimAttempt(project, { taskId: request.taskId, claimId: descriptor.claimId, worktreeId: descriptor.worktreeId, workerId: options.workerId, userId: principal, expectedVersion: request.version.toString(), configuration: repository.configuration });
107
- let grant;
34
+ };
35
+ const confirmMutation = async (submit, applied, description) => {
36
+ signal.throwIfAborted();
108
37
  try {
109
- grant = await options.remote.resume(projectId, request.taskId, { ...descriptor, version: request.version, previousClaimId: request.claimId }, options.signal);
38
+ const result = await submit();
39
+ if (!applied(result))
40
+ throw new Error(`The ${description} response does not confirm the requested result.`);
41
+ return result;
110
42
  }
111
43
  catch (error) {
112
44
  if (error instanceof ApiError && !error.outcomeUnconfirmed)
113
- options.store.rejectClaimAttempt(project, descriptor.claimId, error.confirmedRefusal ? { definiteRejection: true } : { notSubmitted: true });
114
- throw error;
45
+ throw error;
46
+ let actual;
47
+ try {
48
+ actual = await remote.readTask(projectId, request.taskId, signal);
49
+ }
50
+ catch (readError) {
51
+ throw new AggregateError([error, readError], `The ${description} result is unknown. Reconcile the remote claim before restarting worker run; the request was not replayed.`);
52
+ }
53
+ if (applied(actual))
54
+ return actual;
55
+ throw new Error(`The ${description} result is unknown. Reconcile the remote claim before restarting worker run; the request was not replayed.`, { cause: error });
115
56
  }
116
- if (grant.properties.worker?.userId !== principal)
117
- throw new Error("The resume grant belongs to a different authenticated user; the original request remains unresolved.");
118
- const task = options.store.registerPending({ ...project, taskId: request.taskId, claimId: descriptor.claimId, workerId: descriptor.workerId, worktreeId: descriptor.worktreeId }, { kind: "new", configuration: repository.configuration }, now(), principal);
119
- return { task, message: `New resume claim ${task.claimId} committed as pending; worker run will prepare its new execution.` };
120
- }
121
- if (source === undefined || source.userId === null)
122
- throw new Error("Management requires the original local execution and its authenticated owner.");
123
- await options.remote.authorizeControl(projectId, source.userId, undefined, options.signal);
124
- const existing = source.control;
125
- if (request.kind !== "retry" && existing !== null && existing.submission !== "rejected") {
126
- const intent = existing.intent;
127
- const sameDecision = intent.kind === request.kind && intent.version === request.version.toString() && (request.kind !== "transfer" || (intent.kind === "transfer" && intent.target.userId === request.target.userId && intent.target.workerId === request.target.workerId && intent.target.agent === request.target.agent && intent.target.platform === request.target.platform && JSON.stringify(intent.target.machine) === JSON.stringify(request.target.machine)));
128
- if (!sameDecision)
129
- throw new Error("A different source management decision is already persisted; an unknown write cannot be replaced.");
130
- return { task: source, message: `Existing ${intent.kind} intent retained for claim ${source.claimId}; submission=${existing.submission}.` };
57
+ };
58
+ if (request.kind === "resume") {
59
+ exactVersion();
60
+ if (worker === null || worker.state !== "released" || worker.claimId !== request.claimId)
61
+ throw new Error("Resume requires the exact released previous claim.");
62
+ const project = store.getProject(identity);
63
+ const repository = options.repositories.find((entry) => entry.project.projectId === projectId);
64
+ if (project === null || repository === undefined)
65
+ throw new Error("Resume requires a configured repository and its current agent settings.");
66
+ await remote.authorizeControl(projectId, worker.userId, signal);
67
+ const descriptor = { claimId: randomUUID(), workerId: options.workerId, worktreeId: randomUUID(), machine: options.machine, platform: options.platform, agent: repository.configuration.agent };
68
+ options.emit({ kind: "management-request", message: `Resume ${projectId}/${request.taskId}: previousClaimId=${request.claimId}, claimId=${descriptor.claimId}, worktreeId=${descriptor.worktreeId}.` });
69
+ const granted = await confirmMutation(() => remote.resume(projectId, request.taskId, { ...descriptor, version: request.version, previousClaimId: request.claimId }, signal), (task) => matchesGrant(task, identity, descriptor, principal), "resume");
70
+ const task = store.registerPending({ projectId, taskId: granted.id, claimId: descriptor.claimId, agent: descriptor.agent });
71
+ return { task, message: `New resume claim ${task.claimId} committed as pending; worker run will start its new execution.` };
131
72
  }
132
- if (source.status === "done")
133
- throw new Error("The original local execution is already complete.");
134
- if (!sourceActive(observed, request.claimId) || worker.userId !== source.userId || worker.workerId !== source.workerId || worker.worktreeId !== source.worktreeId)
135
- throw new Error("The source claim is no longer the exact active execution; reconcile its existing management outcome first.");
73
+ if (source === undefined || source.status === "done")
74
+ throw new Error("Management requires the original unfinished local execution.");
75
+ if (worker === null || observed.status !== "in_progress" || worker.state !== "active" || worker.claimId !== request.claimId || worker.workerId !== options.workerId || worker.agent !== source.agent)
76
+ throw new Error("The source claim is no longer the exact active execution on this worker.");
77
+ await remote.authorizeControl(projectId, worker.userId, signal);
136
78
  if (request.kind === "retry") {
137
- if (principal !== source.userId)
138
- throw new Error("Retry must retain the original authenticated execution owner.");
139
- const task = options.store.authorizeRecoveryRetryAtCount(source, source.recovery.count, now());
140
- return { task, message: `One additional recovery attempt authorized for claim ${task.claimId}; persisted count=${task.recovery.count}.` };
79
+ if (principal !== worker.userId)
80
+ throw new Error("Retry requires the original authenticated execution owner.");
81
+ if (source.status !== "active")
82
+ throw new Error("Only an active original claim may be retried; pending work is started by worker run.");
83
+ signal.throwIfAborted();
84
+ await coordinator.advanceRetry(identity);
85
+ return { task: store.getTask(identity), message: `One recovery attempt completed for claim ${request.claimId}; worker run will connect its actual resources.` };
141
86
  }
142
- if (observed.version !== request.version)
143
- throw new Error("The explicit task version no longer matches; make a new decision with the observed version.");
144
- if (request.kind === "transfer")
145
- await options.remote.authorizeControl(projectId, source.userId, request.target.userId, options.signal);
146
- const intent = request.kind === "release" ? { kind: "release", sourceClaimId: source.claimId, version: request.version.toString() }
147
- : { kind: "transfer", sourceClaimId: source.claimId, version: request.version.toString(), targetClaimId: randomUUID(), target: { ...request.target, worktreeId: randomUUID() } };
148
- source = existing?.submission === "rejected" ? options.store.replaceRejectedControlIntent(source, intent, { observedVersion: observed.version }, now()) : options.store.recordControlIntent(source, intent, now());
149
- return { task: source, message: `${intent.kind} intent persisted for claim ${source.claimId}; source cleanup must finish before the remote write.` };
87
+ exactVersion();
88
+ signal.throwIfAborted();
89
+ const owner = await coordinator.cleanupSource(identity, { deleteWorktree: false });
90
+ await confirmMutation(() => remote.release(projectId, request.taskId, { claimId: request.claimId, version: request.version, stoppedConfirmed: true }, signal), (task) => matchesTask(task, identity) && task.status === "todo" && task.properties.worker?.claimId === request.claimId && task.properties.worker.state === "released", "release");
91
+ await coordinator.completeSource(owner);
92
+ return { task: store.getTask(identity), message: `${request.kind} completed for claim ${request.claimId}; its local resources were removed.` };
150
93
  };
151
94
  //# sourceMappingURL=control.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"control.js","sourceRoot":"","sources":["../../../src/commands/worker/control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"control.js","sourceRoot":"","sources":["../../../src/commands/worker/control.ts"],"names":[],"mappings":"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"}