@codetreker/daynight 0.32.1 → 0.37.2

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 (79) hide show
  1. package/README.md +156 -29
  2. package/dist/api/client.d.ts +7 -1
  3. package/dist/api/client.js +117 -21
  4. package/dist/api/client.js.map +1 -1
  5. package/dist/api/json-source.d.ts +3 -0
  6. package/dist/api/json-source.js +113 -0
  7. package/dist/api/json-source.js.map +1 -0
  8. package/dist/api/parse.d.ts +2 -1
  9. package/dist/api/parse.js +16 -1
  10. package/dist/api/parse.js.map +1 -1
  11. package/dist/api/thread.d.ts +6 -0
  12. package/dist/api/thread.js +79 -0
  13. package/dist/api/thread.js.map +1 -0
  14. package/dist/api/types.d.ts +50 -0
  15. package/dist/cli/application.js +12 -2
  16. package/dist/cli/application.js.map +1 -1
  17. package/dist/cli/context.d.ts +9 -1
  18. package/dist/cli/context.js +3 -1
  19. package/dist/cli/context.js.map +1 -1
  20. package/dist/cli/schema.js +10 -10
  21. package/dist/cli/schema.js.map +1 -1
  22. package/dist/commands/controller/providers/projection.js +12 -0
  23. package/dist/commands/controller/providers/projection.js.map +1 -1
  24. package/dist/commands/server/runtime.d.ts +10 -1
  25. package/dist/commands/server/runtime.js +24 -7
  26. package/dist/commands/server/runtime.js.map +1 -1
  27. package/dist/commands/skill/skills/using-daynight/SKILL.md +4 -2
  28. package/dist/commands/skill/skills/using-daynight/references/authorization.md +1 -1
  29. package/dist/commands/skill/skills/using-daynight/references/handbook.md +4 -1
  30. package/dist/commands/skill/skills/using-daynight/references/task-content.md +7 -4
  31. package/dist/commands/skill/skills/using-daynight/references/task-management.md +56 -6
  32. package/dist/commands/skill/skills/using-daynight/references/write-safety.md +22 -3
  33. package/dist/commands/skill/usage.md +82 -7
  34. package/dist/commands/task/command.js +26 -3
  35. package/dist/commands/task/command.js.map +1 -1
  36. package/dist/commands/task/definition.js +40 -6
  37. package/dist/commands/task/definition.js.map +1 -1
  38. package/dist/commands/task/rendering.js +4 -0
  39. package/dist/commands/task/rendering.js.map +1 -1
  40. package/dist/commands/task/thread-diagnostics.d.ts +5 -0
  41. package/dist/commands/task/thread-diagnostics.js +32 -0
  42. package/dist/commands/task/thread-diagnostics.js.map +1 -0
  43. package/dist/commands/task/thread-rendering.d.ts +8 -0
  44. package/dist/commands/task/thread-rendering.js +80 -0
  45. package/dist/commands/task/thread-rendering.js.map +1 -0
  46. package/dist/commands/task/thread.d.ts +11 -0
  47. package/dist/commands/task/thread.js +74 -0
  48. package/dist/commands/task/thread.js.map +1 -0
  49. package/dist/commands/worker/coordinator.js +14 -0
  50. package/dist/commands/worker/coordinator.js.map +1 -1
  51. package/dist/commands/worker/remote.js +3 -4
  52. package/dist/commands/worker/remote.js.map +1 -1
  53. package/dist/commands/worker/remove-worktree-contents.d.ts +3 -0
  54. package/dist/commands/worker/remove-worktree-contents.js +106 -0
  55. package/dist/commands/worker/remove-worktree-contents.js.map +1 -0
  56. package/dist/commands/worker/worktrees.js +69 -23
  57. package/dist/commands/worker/worktrees.js.map +1 -1
  58. package/dist/platform/diagnostics.d.ts +5 -0
  59. package/dist/platform/diagnostics.js +12 -0
  60. package/dist/platform/diagnostics.js.map +1 -1
  61. package/dist/session/codex-subagent-activity.d.ts +4 -0
  62. package/dist/session/codex-subagent-activity.js +13 -0
  63. package/dist/session/codex-subagent-activity.js.map +1 -0
  64. package/dist/session/v2/archive.d.ts +6 -0
  65. package/dist/session/v2/archive.js +163 -0
  66. package/dist/session/v2/archive.js.map +1 -0
  67. package/dist/session/v2/protocol.d.ts +19 -0
  68. package/dist/session/v2/protocol.js +260 -0
  69. package/dist/session/v2/protocol.js.map +1 -0
  70. package/dist/session/v2/responsibility.d.ts +3 -0
  71. package/dist/session/v2/responsibility.js +12 -0
  72. package/dist/session/v2/responsibility.js.map +1 -0
  73. package/dist/session/v2/types.d.ts +293 -0
  74. package/dist/session/v2/types.js +2 -0
  75. package/dist/session/v2/types.js.map +1 -0
  76. package/dist/session/v2/values.d.ts +59 -0
  77. package/dist/session/v2/values.js +201 -0
  78. package/dist/session/v2/values.js.map +1 -0
  79. package/package.json +5 -3
@@ -7,6 +7,8 @@ const descriptionOption = { names: ["--description"], description: "Task descrip
7
7
  const dependencyOption = { names: ["--depends-on"], description: "Ordinary prerequisite UUID; repeat for the complete ordinary set", value: { name: "task-id", kind: "text" }, repeatable: true };
8
8
  const externalDependencyOption = { names: ["--external-depends-on"], description: "External prerequisite UUID; repeat for the complete external set", value: { name: "task-id", kind: "text" }, repeatable: true };
9
9
  const dependencyDetails = "Supplying either dependency option replaces every dependency and its classification. --depends-on supplies ordinary prerequisites; --external-depends-on supplies external prerequisites. External-only input keeps only those external prerequisites; ordinary-only input makes every supplied prerequisite ordinary. IDs must be valid UUIDs and occur once across both options. Both kinds block execution until completed.";
10
+ const assignedToOption = { names: ["--assigned-to"], description: "Task assignee UUID", value: { name: "user-id", kind: "text" } };
11
+ const assignedToFilterOption = { names: ["--assigned-to"], description: "Include tasks assigned to this user, me, or unassigned", value: { name: "user-id|me|unassigned", kind: "text" } };
10
12
  const statusOption = { names: ["--status"], description: "Task status", value: { name: "status", kind: "text", choices: ["todo", "in_progress", "done"] } };
11
13
  const allowAgentsOption = { names: ["--allow-agents"], description: "Automatic-execution permission", value: { name: "true|false", kind: "text", choices: ["true", "false"] } };
12
14
  const platformChoices = ["windows", "linux", "macos"];
@@ -22,14 +24,14 @@ export const taskDefinition = {
22
24
  {
23
25
  name: "create",
24
26
  description: "Create a todo task with optional dependencies",
25
- options: [{ ...titleOption, required: true }, descriptionOption, requiredPlatformOption, dependencyOption, externalDependencyOption, projectOption, helpOption],
26
- details: `New tasks start in todo with automatic execution disabled. Creating a task does not start execution. Without --required-platform, execution has no platform restriction. Omitting both dependency options creates a task with no prerequisites.\n${dependencyDetails}`,
27
+ options: [{ ...titleOption, required: true }, descriptionOption, assignedToOption, requiredPlatformOption, dependencyOption, externalDependencyOption, projectOption, helpOption],
28
+ details: `New tasks start in todo with automatic execution disabled. Creating a task does not start execution. Without --assigned-to, the task is unassigned; an explicit UUID must identify a project member. Without --required-platform, execution has no platform restriction. Omitting both dependency options creates a task with no prerequisites.\n${dependencyDetails}`,
27
29
  },
28
30
  {
29
31
  name: "list",
30
32
  description: "List unfinished tasks, with in-progress and ready tasks first",
31
- options: [{ names: ["--all"], description: "Include completed tasks; conflicts with --status" }, statusOption, { names: ["--ready"], description: "Include only tasks ready to start" }, allowAgentsOption, compatiblePlatformOption, projectOption, listJsonOption, helpOption],
32
- details: "By default, exclude done tasks. Use --all for every status or --status for a specific status.\nCombine --ready, --allow-agents and --compatible-platform with the selected statuses using AND. Platform compatibility includes unrestricted tasks and exact matches, without changing readiness. All filters apply before pagination; read every page before printing.\nOrder in_progress first, then ready todo, blocked todo, and done tasks; preserve server order within each group.\nText lists omit description, version, and timestamps. --json omits description and preserves every other task field with the same filtering and ordering.",
33
+ options: [{ names: ["--all"], description: "Include completed tasks; conflicts with --status" }, statusOption, assignedToFilterOption, { names: ["--ready"], description: "Include only tasks ready to start" }, allowAgentsOption, compatiblePlatformOption, projectOption, listJsonOption, helpOption],
34
+ details: "By default, exclude done tasks. Use --all for every status or --status for a specific status.\nCombine --assigned-to, --ready, --allow-agents and --compatible-platform with the selected statuses using AND. --assigned-to accepts a user UUID, me or unassigned; me uses the authenticated response principal. Platform compatibility includes unrestricted tasks and exact matches, without changing readiness. All filters apply before pagination; read every page before printing.\nOrder in_progress first, then ready todo, blocked todo, and done tasks; preserve server order within each group.\nText lists omit description, version, and timestamps. --json omits description and preserves every other task field with the same filtering and ordering.",
33
35
  },
34
36
  {
35
37
  name: "ready",
@@ -70,12 +72,13 @@ export const taskDefinition = {
70
72
  name: "update",
71
73
  description: "Atomically update task fields and dependencies",
72
74
  arguments: [taskArgument],
73
- options: [titleOption, descriptionOption, allowAgentsOption, requiredPlatformOption,
75
+ options: [titleOption, descriptionOption, assignedToOption,
76
+ { names: ["--clear-assigned-to"], description: "Remove the task assignee" }, allowAgentsOption, requiredPlatformOption,
74
77
  { names: ["--clear-required-platform"], description: "Remove the execution-platform requirement" }, dependencyOption, externalDependencyOption,
75
78
  { names: ["--clear-dependencies"], description: "Clear the complete dependency set" },
76
79
  versionOption,
77
80
  projectOption, helpOption],
78
- details: `Provide at least one changed field. --allow-agents changes the automatic-execution permission independently of status. --required-platform sets the execution-platform requirement; --clear-required-platform removes it and conflicts with --required-platform. Omitting both platform options preserves the requirement. Actual permission or platform changes are locked during in_progress; exact-version same-value updates keep version and timestamps. Use daynight task set-status to change status.\n${dependencyDetails}\nOmitting both dependency options preserves all dependencies and classifications. --clear-dependencies clears both sets and conflicts with either dependency option.\nWithout --if-version, read the current version before submitting the update. Conflicts are not retried.`,
81
+ details: `Provide at least one changed field. --assigned-to sets a project member UUID; --clear-assigned-to sends null and conflicts with setting it. Omitting both preserves the assignee. An actual assignee change disables automatic execution and is refused during in_progress; pure same-assignee updates with the current exact version preserve permission, version and timestamps. --allow-agents changes the automatic-execution permission independently of status. --required-platform sets the execution-platform requirement; --clear-required-platform removes it and conflicts with --required-platform. Omitting both platform options preserves the requirement. Actual permission or platform changes are locked during in_progress; exact-version same-value updates keep version and timestamps. Use daynight task set-status to change status.\n${dependencyDetails}\nOmitting both dependency options preserves all dependencies and classifications. --clear-dependencies clears both sets and conflicts with either dependency option.\nWithout --if-version, read the current version before submitting the update. Conflicts are not retried.`,
79
82
  },
80
83
  {
81
84
  name: "set-status",
@@ -98,6 +101,37 @@ export const taskDefinition = {
98
101
  options: [{ names: ["--depends-only"], description: "Print only task IDs and complete dependency sets" }, projectOption, jsonOption, helpOption],
99
102
  details: "Include every task connected through ordinary dependencies, in either direction and in every status, plus the chain members' direct external prerequisites. Do not expand those external tasks or include external dependents.\n--depends-only preserves the same task set and prints only id, dependsOn and externalDependsOn with complete UUIDs and dependency references, including references outside the returned task set. With --json, print an array containing only those three fields; otherwise print three labeled lines per task.",
100
103
  },
104
+ {
105
+ name: "thread",
106
+ description: "Read and append immutable task discussion messages",
107
+ options: [helpOption],
108
+ commands: [
109
+ {
110
+ name: "read",
111
+ description: "Read one bounded page of complete messages, oldest first",
112
+ arguments: [taskArgument],
113
+ options: [
114
+ { names: ["--before-id"], description: "Read messages before this task-local message UUID", value: { name: "message-id", kind: "text" } },
115
+ { names: ["--after-id"], description: "Read messages after this task-local message UUID", value: { name: "message-id", kind: "text" } },
116
+ { names: ["--count"], description: "Maximum messages, from 1 to 100 (default: 20)", value: { name: "count", kind: "text" } },
117
+ { names: ["--details"], description: "Include verified Agent execution provenance" }, projectOption, helpOption,
118
+ ],
119
+ details: "Without a boundary, read the latest page. --before-id and --after-id are mutually exclusive. Return one page, bounded to 256 KiB of readable text, with complete bodies. Continue history with the first displayed Id; continue after with the last displayed Id. An empty page preserves the supplied boundary. Messages are never partially printed. Text options accept --option=value.",
120
+ },
121
+ {
122
+ name: "post",
123
+ description: "Append one message with optional same-task reply and Agent provenance",
124
+ arguments: [taskArgument],
125
+ options: [
126
+ { names: ["--body"], description: "Complete message body, preserving whitespace", value: { name: "text", kind: "text" }, required: true },
127
+ { names: ["--reply-to"], description: "Reply to this task-local message UUID", value: { name: "message-id", kind: "text" } },
128
+ { names: ["--claim-id"], description: "Identify this account's active Agent claim; never inferred", value: { name: "claim-id", kind: "text" } }, projectOption, helpOption,
129
+ ],
130
+ details: "Without --claim-id, post as the authenticated account with Agent=false. The service validates any supplied claim. Use --body=--text for dash-prefixed text. Preserve the original body until the result is known. An interrupted or invalid response may leave the outcome unknown; read the thread before explicitly sending again. Every new post appends a new message. No automatic retries. A post receipt cannot advance a continuous read position. Posting does not change task state or trigger execution.",
131
+ },
132
+ ],
133
+ details: "Message IDs are interpreted within the selected task. Without --project, resolve the current Git origin. Run daynight task thread <command> --help for usage.",
134
+ },
101
135
  {
102
136
  name: "attachment",
103
137
  description: "Manage files attached to a task",
@@ -1 +1 @@
1
- {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../src/commands/task/definition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../src/commands/task/definition.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ const taskProperties = (task) => [
10
10
  `Properties: ${Object.keys(task.properties).length}`,
11
11
  ...Object.entries(task.properties).sort(([left], [right]) => left.localeCompare(right)).map(([name, value]) => ` ${terminalText(name)}: ${terminalText(stringifyApiJson(value))}`),
12
12
  ];
13
+ const taskAssignment = (task) => `Assigned to: ${task.assignedTo === null ? "unassigned" : terminalText(task.assignedTo)}`;
13
14
  const taskDependencies = (task) => [
14
15
  `Ready: ${task.ready}`,
15
16
  `Depends on: ${identifiers(task.dependsOn)}`,
@@ -21,6 +22,7 @@ export const renderTask = (task) => [
21
22
  `Description: ${terminalText(task.description)}`,
22
23
  ...taskProperties(task),
23
24
  `Status: ${terminalText(task.status)}`,
25
+ taskAssignment(task),
24
26
  `Automatic execution: ${task.allowAgents}`,
25
27
  `Required platform: ${task.requiredPlatform === null ? "any" : task.requiredPlatform}`,
26
28
  `Version: ${task.version}`,
@@ -34,6 +36,7 @@ export const renderTaskSummaryList = (tasks) => tasks.length === 0 ? "No tasks.\
34
36
  ...taskIdentity(task),
35
37
  ...taskProperties(task),
36
38
  `Status: ${terminalText(task.status)}`,
39
+ taskAssignment(task),
37
40
  `Automatic execution: ${task.allowAgents}`,
38
41
  `Required platform: ${task.requiredPlatform === null ? "any" : task.requiredPlatform}`,
39
42
  ...taskDependencies(task),
@@ -44,6 +47,7 @@ const renderGraphTask = (task) => [
44
47
  `Title preview: ${terminalText(task.titlePreview)}`,
45
48
  `Title truncated: ${task.titleTruncated}`,
46
49
  `Status: ${terminalText(task.status)}`,
50
+ taskAssignment(task),
47
51
  `Automatic execution: ${task.allowAgents}`,
48
52
  `Required platform: ${task.requiredPlatform === null ? "any" : task.requiredPlatform}`,
49
53
  ...taskDependencies(task),
@@ -1 +1 @@
1
- {"version":3,"file":"rendering.js","sourceRoot":"","sources":["../../../src/commands/task/rendering.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rendering.js","sourceRoot":"","sources":["../../../src/commands/task/rendering.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { PublicDiagnosticError } from "../../platform/diagnostics.js";
2
+ export declare const classifyThreadPostFailure: (cause: unknown) => "confirmed" | "unknown" | "failed";
3
+ export declare class ThreadCommandError extends PublicDiagnosticError {
4
+ constructor(cause: unknown, operation: "read" | "post", phase: "prepare" | "request" | "render" | "output", projectId?: string, taskId?: string);
5
+ }
@@ -0,0 +1,32 @@
1
+ import { ApiError } from "../../api/client.js";
2
+ import { UsageError } from "../../cli/context.js";
3
+ import { PublicDiagnosticError } from "../../platform/diagnostics.js";
4
+ import { terminalText } from "../../platform/terminal.js";
5
+ const codes = new Set(["invalid_input", "payload_too_large", "unauthenticated", "forbidden", "not_found", "message_not_found", "task_deleted", "claim_conflict", "clock_not_advanced", "message_outcome_unknown", "internal_error"]);
6
+ const safeText = (value) => terminalText(value).replace(/[\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/gu, (character) => `\\u${character.codePointAt(0).toString(16).padStart(4, "0")}`);
7
+ const apiFailures = (cause, seen = new Set()) => {
8
+ if (!(cause instanceof Error) || seen.has(cause))
9
+ return [];
10
+ seen.add(cause);
11
+ return [...(cause instanceof ApiError ? [cause] : []), ...(cause instanceof AggregateError ? cause.errors.flatMap((error) => apiFailures(error, seen)) : []), ...apiFailures(cause.cause, seen)];
12
+ };
13
+ export const classifyThreadPostFailure = (cause) => {
14
+ const failures = apiFailures(cause);
15
+ return failures.some((error) => error.confirmedMessageId !== undefined) ? "confirmed" : failures.some((error) => error.outcomeUnconfirmed) ? "unknown" : "failed";
16
+ };
17
+ export class ThreadCommandError extends PublicDiagnosticError {
18
+ constructor(cause, operation, phase, projectId, taskId) {
19
+ const outcome = operation === "post" ? classifyThreadPostFailure(cause) : "failed";
20
+ const failures = apiFailures(cause);
21
+ const api = failures.find((error) => error.confirmedMessageId !== undefined) ?? failures.find((error) => error.outcomeUnconfirmed) ?? failures[0];
22
+ const message = cause instanceof UsageError ? `${cause.message} Run ${cause.helpCommand} for usage.`
23
+ : outcome === "confirmed" ? `Message posted. Id: ${api.confirmedMessageId}\nThe message is confirmed, but local response cleanup failed.`
24
+ : outcome === "unknown" ? "The posting outcome is unknown.\nRead the thread before sending the message again."
25
+ : phase === "prepare" ? "Could not prepare the Thread request. Check configuration and authentication; run daynight login if needed."
26
+ : `Thread ${operation} failed.`;
27
+ const context = [`source=cli`, `operation=task.thread.${operation}`, `phase=${api?.phase ?? phase}`, ...(projectId === undefined ? [] : [`projectId=${projectId}`]), ...(taskId === undefined ? [] : [`taskId=${taskId}`]), ...(api?.status === undefined ? [] : [`status=${api.status}`]), ...(api?.code === undefined ? [] : [`code=${codes.has(api.code) ? api.code : "server_error"}`]), ...(api?.requestId === undefined ? [] : [`requestId=${safeText(api.requestId)}`])];
28
+ super(`${message}${api?.status === 401 ? " Run daynight login to authenticate." : api?.code === "claim_conflict" ? " Verify the current claim before posting again." : ""}\n${context.join(" ")}`, cause instanceof UsageError ? 2 : 1, { cause });
29
+ this.name = "ThreadCommandError";
30
+ }
31
+ }
32
+ //# sourceMappingURL=thread-diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread-diagnostics.js","sourceRoot":"","sources":["../../../src/commands/task/thread-diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,eAAe,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,mBAAmB,EAAE,cAAc,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,gBAAgB,CAAC,CAAC,CAAC;AACrO,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,kDAAkD,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AAE5M,MAAM,WAAW,GAAG,CAAC,KAAc,EAAE,IAAI,GAAG,IAAI,GAAG,EAAW,EAAc,EAAE;IAC5E,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC5D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,YAAY,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAC5M,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,KAAc,EAAsC,EAAE;IAC9F,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACpC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;AACpK,CAAC,CAAC;AAEF,MAAM,OAAO,kBAAmB,SAAQ,qBAAqB;IAC3D,YAAY,KAAc,EAAE,SAA0B,EAAE,KAAkD,EAAE,SAAkB,EAAE,MAAe;QAC7I,MAAM,OAAO,GAAG,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACnF,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,kBAAkB,KAAK,SAAS,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;QAClJ,MAAM,OAAO,GAAG,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,QAAQ,KAAK,CAAC,WAAW,aAAa;YAClG,CAAC,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,uBAAuB,GAAI,CAAC,kBAAmB,gEAAgE;gBAC3I,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,oFAAoF;oBAC9G,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,6GAA6G;wBACrI,CAAC,CAAC,UAAU,SAAS,UAAU,CAAC;QAClC,MAAM,OAAO,GAAG,CAAC,YAAY,EAAE,yBAAyB,SAAS,EAAE,EAAE,SAAS,GAAG,EAAE,KAAK,IAAI,KAAK,EAAE,EAAE,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,SAAS,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAChd,KAAK,CAAC,GAAG,OAAO,GAAG,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,iDAAiD,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACnP,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ import type { ThreadMessage, ThreadPage } from "../../api/types.js";
2
+ export declare const THREAD_OUTPUT_BYTES = 262144;
3
+ export declare const MIN_THREAD_WIRE_FIXED_BYTES = 183;
4
+ export declare const MAX_THREAD_RENDER_FIXED_BYTES = 473;
5
+ export declare const encodeThreadBody: (value: string, singleLine?: boolean) => string;
6
+ export declare const renderThreadMessage: (message: ThreadMessage) => string;
7
+ export declare const renderThreadPage: (page: ThreadPage, direction: "latest" | "before" | "after", check?: () => void) => string;
8
+ export declare const renderThreadPostReceipt: (message: ThreadMessage) => string;
@@ -0,0 +1,80 @@
1
+ import { ProtocolError } from "../../api/validation.js";
2
+ import { terminalText } from "../../platform/terminal.js";
3
+ export const THREAD_OUTPUT_BYTES = 262_144;
4
+ export const MIN_THREAD_WIRE_FIXED_BYTES = 183;
5
+ export const MAX_THREAD_RENDER_FIXED_BYTES = 473;
6
+ const separator = "------------------------------";
7
+ const betweenMessages = `\n\n${separator}\n\n`;
8
+ const beforeNotice = "... Has more messages before";
9
+ const afterNotice = "Has more messages after...";
10
+ const bidi = /[\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/u;
11
+ const unsafeBody = /[\u0000-\u0008\u000b-\u001f\u007f-\u009f\u2028\u2029]/u;
12
+ const unicodeEscape = (character) => `\\u${character.codePointAt(0).toString(16).padStart(4, "0")}`;
13
+ export const encodeThreadBody = (value, singleLine = false) => Array.from(value, (character) => {
14
+ if (character === "\\")
15
+ return "\\\\";
16
+ if (character === "\r")
17
+ return "\\r";
18
+ if (character === "\u007f")
19
+ return "\\x7f";
20
+ if (singleLine && character === '"')
21
+ return '\\"';
22
+ return unsafeBody.test(character) || bidi.test(character) ? unicodeEscape(character) : character;
23
+ }).join("");
24
+ const encodeThreadLabel = (value) => Array.from(value, (character) => character === "\u007f" ? "\\x7f" : bidi.test(character) ? unicodeEscape(character) : terminalText(character)).join("");
25
+ export const renderThreadMessage = (message) => {
26
+ const { author } = message;
27
+ const name = author.displayName === null || author.displayName === "" ? "Account" : encodeThreadLabel(author.displayName);
28
+ const execution = author.execution;
29
+ const body = message.body.includes("\n")
30
+ ? `Message:\n${encodeThreadBody(message.body).split("\n").map((line) => ` ${line}`).join("\n")}`
31
+ : `Message: "${encodeThreadBody(message.body, true)}"`;
32
+ return [
33
+ `Id: ${message.id}`,
34
+ `Author: ${name}${author.Agent ? "'s Agent" : ""} (${author.userId})`,
35
+ ...(author.Agent ? ["Agent: True"] : []),
36
+ `CreatedAt: ${message.createdAt}`,
37
+ ...(message.replyTo === undefined ? [] : [`ReplyTo: ${message.replyTo}`]),
38
+ ...(execution === undefined ? [] : [
39
+ `Execution ClaimId: ${execution.claimId}`,
40
+ `Execution WorkerId: ${execution.workerId}`,
41
+ `Execution Provider: ${execution.provider}`,
42
+ ]),
43
+ body,
44
+ ].join("\n");
45
+ };
46
+ const composePage = (blocks, before, after) => `${before ? `${beforeNotice}\n\n` : ""}${separator}\n\n${blocks.join(betweenMessages)}\n\n${separator}\n${after ? `\n${afterNotice}\n` : ""}`;
47
+ export const renderThreadPage = (page, direction, check) => {
48
+ check?.();
49
+ if (page.items.length === 0)
50
+ return direction === "after" ? "No new messages.\n" : "No messages.\n";
51
+ const blocks = page.items.map((message) => {
52
+ check?.();
53
+ const block = renderThreadMessage(message);
54
+ check?.();
55
+ return block;
56
+ });
57
+ const prefixBytes = [0];
58
+ for (const block of blocks)
59
+ prefixBytes.push(prefixBytes[prefixBytes.length - 1] + Buffer.byteLength(block, "utf8"));
60
+ for (let count = blocks.length; count > 0; count--) {
61
+ check?.();
62
+ const start = direction === "after" ? 0 : blocks.length - count;
63
+ const end = start + count;
64
+ const before = page.hasMoreBefore || start > 0;
65
+ const after = page.hasMoreAfter || end < blocks.length;
66
+ const size = prefixBytes[end] - prefixBytes[start]
67
+ + (count - 1) * Buffer.byteLength(betweenMessages, "utf8")
68
+ + Buffer.byteLength(composePage([""], before, after), "utf8");
69
+ if (size > THREAD_OUTPUT_BYTES)
70
+ continue;
71
+ const output = composePage(blocks.slice(start, end), before, after);
72
+ if (Buffer.byteLength(output, "utf8") !== size)
73
+ throw new ProtocolError("The thread output byte calculation is inconsistent.");
74
+ check?.();
75
+ return output;
76
+ }
77
+ throw new ProtocolError("A complete thread message exceeds the terminal output byte limit.");
78
+ };
79
+ export const renderThreadPostReceipt = (message) => `Message posted.\nId: ${message.id}\n${message.replyTo === undefined ? "" : `ReplyTo: ${message.replyTo}\n`}`;
80
+ //# sourceMappingURL=thread-rendering.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread-rendering.js","sourceRoot":"","sources":["../../../src/commands/task/thread-rendering.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { PostThreadMessageInput, ThreadReadQuery } from "../../api/types.js";
2
+ import type { CliContext } from "../../cli/context.js";
3
+ import type { ParsedCommand } from "../../cli/schema.js";
4
+ import type { TaskCommandDependencies } from "./command.js";
5
+ type Command = Extract<ParsedCommand, {
6
+ kind: "run";
7
+ }>;
8
+ export declare const compileThreadRead: (command: Command) => ThreadReadQuery;
9
+ export declare const compileThreadPost: (command: Command) => PostThreadMessageInput;
10
+ export declare const runTaskThreadCommand: (command: Command, context: CliContext, dependencies: TaskCommandDependencies) => Promise<void>;
11
+ export {};
@@ -0,0 +1,74 @@
1
+ import { canonicalId } from "../../api/validation.js";
2
+ import { UsageError } from "../../cli/context.js";
3
+ import { PublicDiagnosticError } from "../../platform/diagnostics.js";
4
+ import { isNonemptyText } from "../../platform/text.js";
5
+ import { ThreadCommandError } from "./thread-diagnostics.js";
6
+ import { renderThreadPage, renderThreadPostReceipt } from "./thread-rendering.js";
7
+ const parseId = (value, label, help) => {
8
+ const parsed = canonicalId(value);
9
+ if (parsed === null)
10
+ throw new UsageError(`${label} must be a hyphenated UUID.`, help);
11
+ return parsed;
12
+ };
13
+ const optionalId = (command, option, help) => {
14
+ const value = command.options.get(option);
15
+ return value === undefined ? undefined : parseId(value, option.slice(2), help);
16
+ };
17
+ export const compileThreadRead = (command) => {
18
+ const help = `${command.path.join(" ")} --help`;
19
+ const beforeId = optionalId(command, "--before-id", help), afterId = optionalId(command, "--after-id", help);
20
+ if (beforeId !== undefined && afterId !== undefined)
21
+ throw new UsageError("--before-id and --after-id are mutually exclusive.", help);
22
+ const value = command.options.get("--count");
23
+ if (value !== undefined && (!/^[0-9]+$/.test(value) || Number(value) < 1 || Number(value) > 100))
24
+ throw new UsageError("--count must be a decimal integer from 1 to 100.", help);
25
+ return { count: value === undefined ? 20 : Number(value), details: command.options.has("--details"), ...(beforeId === undefined ? {} : { beforeId }), ...(afterId === undefined ? {} : { afterId }) };
26
+ };
27
+ export const compileThreadPost = (command) => {
28
+ const help = `${command.path.join(" ")} --help`;
29
+ const body = command.options.get("--body");
30
+ if (!isNonemptyText(body) || Buffer.byteLength(body, "utf8") > 65536)
31
+ throw new UsageError("--body must be nonempty text without NUL or invalid Unicode, at most 65536 UTF-8 bytes.", help);
32
+ const replyTo = optionalId(command, "--reply-to", help), claimId = optionalId(command, "--claim-id", help);
33
+ return { body, ...(replyTo === undefined ? {} : { replyTo }), ...(claimId === undefined ? {} : { claimId }) };
34
+ };
35
+ export const runTaskThreadCommand = async (command, context, dependencies) => {
36
+ const name = command.command.name;
37
+ let projectId, taskId;
38
+ let phase = "prepare";
39
+ let confirmedMessageId;
40
+ try {
41
+ const help = `${command.path.join(" ")} --help`;
42
+ taskId = parseId(command.values[0], "task-id", help);
43
+ projectId = optionalId(command, "--project", help);
44
+ const read = name === "read" ? compileThreadRead(command) : undefined;
45
+ const post = name === "post" ? compileThreadPost(command) : undefined;
46
+ await dependencies.runServerCommand(context, async ({ api, operation, serverUrl }) => {
47
+ operation.check();
48
+ if (projectId === undefined)
49
+ projectId = (await dependencies.resolveProject({ serverUrl, operation, api, workingDirectory: context.workingDirectory() })).id;
50
+ operation.check();
51
+ phase = "request";
52
+ if (read !== undefined) {
53
+ const page = await api.readTaskThread(projectId, taskId, read);
54
+ operation.check();
55
+ phase = "render";
56
+ const output = renderThreadPage(page, read.afterId === undefined ? read.beforeId === undefined ? "latest" : "before" : "after", () => operation.check());
57
+ phase = "output";
58
+ await context.stdoutBytes(Buffer.from(output, "utf8"), operation.signal);
59
+ return;
60
+ }
61
+ const message = await api.postTaskThreadMessage(projectId, taskId, post);
62
+ confirmedMessageId = message.id;
63
+ return { kind: "confirmed-mutation", output: renderThreadPostReceipt(message), identity: { projectId, taskId: taskId, messageId: message.id } };
64
+ });
65
+ }
66
+ catch (cause) {
67
+ if (cause instanceof PublicDiagnosticError)
68
+ throw cause;
69
+ if (confirmedMessageId !== undefined)
70
+ throw new PublicDiagnosticError(`Message posted. Id: ${confirmedMessageId}\nThe message is confirmed, but local receipt preparation failed.`, 1, { cause });
71
+ throw new ThreadCommandError(cause, name, phase, projectId, taskId);
72
+ }
73
+ };
74
+ //# sourceMappingURL=thread.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread.js","sourceRoot":"","sources":["../../../src/commands/task/thread.ts"],"names":[],"mappings":"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"}
@@ -206,6 +206,20 @@ export const createWorkerCoordinator = (options) => {
206
206
  }
207
207
  return;
208
208
  }
209
+ if (webRecord.status === "done") {
210
+ // A resource snapshot can finish after the cleanup job it observed.
211
+ // Completed stop evidence is reusable, but present Git resources still require attention.
212
+ if (!webRecord.cleanup?.agentStopped || !webRecord.cleanup.backendResourcesClosed || !webRecord.cleanup.worktreeDeleted)
213
+ throw new Error("The completed Web execution has incomplete cleanup evidence.");
214
+ if (deleteWorktree) {
215
+ const retained = await workerOperation(operation => options.git.findWorktree(projectFor(owner), owner, operation), signal);
216
+ if (retained !== null)
217
+ throw new Error("The completed Web execution still has a worktree; its resources were retained.");
218
+ if (local !== null && local.status !== "done")
219
+ options.store.completeTask(owner);
220
+ }
221
+ return;
222
+ }
209
223
  while (true) {
210
224
  const result = await options.webBackend.cleanup(webRecord, deleteWorktree ? "terminal" : "shutdown", now() + 600_000, signal);
211
225
  if (result.cleanup?.agentStopped && result.cleanup.backendResourcesClosed && (!deleteWorktree || result.cleanup.worktreeDeleted)) {