@pennixrv/trellis 0.7.0-beta.5 → 0.7.0-beta.51

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 (221) hide show
  1. package/dist/cli/index.d.ts.map +1 -1
  2. package/dist/cli/index.js +47 -3
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/commands/backup.d.ts +25 -0
  5. package/dist/commands/backup.d.ts.map +1 -0
  6. package/dist/commands/backup.js +152 -0
  7. package/dist/commands/backup.js.map +1 -0
  8. package/dist/commands/channel/adapters/claude.d.ts.map +1 -1
  9. package/dist/commands/channel/adapters/claude.js +2 -0
  10. package/dist/commands/channel/adapters/claude.js.map +1 -1
  11. package/dist/commands/channel/adapters/codex.d.ts +5 -1
  12. package/dist/commands/channel/adapters/codex.d.ts.map +1 -1
  13. package/dist/commands/channel/adapters/codex.js +19 -9
  14. package/dist/commands/channel/adapters/codex.js.map +1 -1
  15. package/dist/commands/channel/adapters/index.d.ts +3 -0
  16. package/dist/commands/channel/adapters/index.d.ts.map +1 -1
  17. package/dist/commands/channel/adapters/index.js +3 -3
  18. package/dist/commands/channel/adapters/index.js.map +1 -1
  19. package/dist/commands/channel/adapters/types.d.ts +2 -0
  20. package/dist/commands/channel/adapters/types.d.ts.map +1 -1
  21. package/dist/commands/channel/guard.d.ts.map +1 -1
  22. package/dist/commands/channel/guard.js +38 -29
  23. package/dist/commands/channel/guard.js.map +1 -1
  24. package/dist/commands/channel/index.d.ts.map +1 -1
  25. package/dist/commands/channel/index.js +52 -16
  26. package/dist/commands/channel/index.js.map +1 -1
  27. package/dist/commands/channel/kill.d.ts.map +1 -1
  28. package/dist/commands/channel/kill.js +37 -15
  29. package/dist/commands/channel/kill.js.map +1 -1
  30. package/dist/commands/channel/messages.d.ts.map +1 -1
  31. package/dist/commands/channel/messages.js +3 -2
  32. package/dist/commands/channel/messages.js.map +1 -1
  33. package/dist/commands/channel/process-identity.d.ts +3 -0
  34. package/dist/commands/channel/process-identity.d.ts.map +1 -0
  35. package/dist/commands/channel/process-identity.js +24 -0
  36. package/dist/commands/channel/process-identity.js.map +1 -0
  37. package/dist/commands/channel/profiles.d.ts +26 -0
  38. package/dist/commands/channel/profiles.d.ts.map +1 -0
  39. package/dist/commands/channel/profiles.js +186 -0
  40. package/dist/commands/channel/profiles.js.map +1 -0
  41. package/dist/commands/channel/rm.d.ts +0 -1
  42. package/dist/commands/channel/rm.d.ts.map +1 -1
  43. package/dist/commands/channel/rm.js +203 -96
  44. package/dist/commands/channel/rm.js.map +1 -1
  45. package/dist/commands/channel/spawn.d.ts +3 -0
  46. package/dist/commands/channel/spawn.d.ts.map +1 -1
  47. package/dist/commands/channel/spawn.js +43 -15
  48. package/dist/commands/channel/spawn.js.map +1 -1
  49. package/dist/commands/channel/supervisor/idle.d.ts +2 -0
  50. package/dist/commands/channel/supervisor/idle.d.ts.map +1 -1
  51. package/dist/commands/channel/supervisor/idle.js +15 -7
  52. package/dist/commands/channel/supervisor/idle.js.map +1 -1
  53. package/dist/commands/channel/supervisor/inbox.d.ts.map +1 -1
  54. package/dist/commands/channel/supervisor/inbox.js +48 -33
  55. package/dist/commands/channel/supervisor/inbox.js.map +1 -1
  56. package/dist/commands/channel/supervisor/stdout.d.ts.map +1 -1
  57. package/dist/commands/channel/supervisor/stdout.js +6 -3
  58. package/dist/commands/channel/supervisor/stdout.js.map +1 -1
  59. package/dist/commands/channel/supervisor/warning.d.ts.map +1 -1
  60. package/dist/commands/channel/supervisor/warning.js +2 -3
  61. package/dist/commands/channel/supervisor/warning.js.map +1 -1
  62. package/dist/commands/channel/supervisor.d.ts +12 -0
  63. package/dist/commands/channel/supervisor.d.ts.map +1 -1
  64. package/dist/commands/channel/supervisor.js +88 -16
  65. package/dist/commands/channel/supervisor.js.map +1 -1
  66. package/dist/commands/channel/wait.d.ts +3 -1
  67. package/dist/commands/channel/wait.d.ts.map +1 -1
  68. package/dist/commands/channel/wait.js +59 -14
  69. package/dist/commands/channel/wait.js.map +1 -1
  70. package/dist/commands/init.d.ts.map +1 -1
  71. package/dist/commands/init.js +23 -10
  72. package/dist/commands/init.js.map +1 -1
  73. package/dist/commands/update.d.ts.map +1 -1
  74. package/dist/commands/update.js +446 -333
  75. package/dist/commands/update.js.map +1 -1
  76. package/dist/commands/workflow.d.ts +1 -0
  77. package/dist/commands/workflow.d.ts.map +1 -1
  78. package/dist/commands/workflow.js +56 -1
  79. package/dist/commands/workflow.js.map +1 -1
  80. package/dist/configurators/codex.d.ts +6 -0
  81. package/dist/configurators/codex.d.ts.map +1 -1
  82. package/dist/configurators/codex.js +93 -0
  83. package/dist/configurators/codex.js.map +1 -1
  84. package/dist/configurators/shared.js +2 -2
  85. package/dist/configurators/shared.js.map +1 -1
  86. package/dist/constants/paths.d.ts +2 -0
  87. package/dist/constants/paths.d.ts.map +1 -1
  88. package/dist/constants/paths.js +2 -0
  89. package/dist/constants/paths.js.map +1 -1
  90. package/dist/migrations/manifests/0.7.0-beta.10.json +9 -0
  91. package/dist/migrations/manifests/0.7.0-beta.11.json +9 -0
  92. package/dist/migrations/manifests/0.7.0-beta.12.json +9 -0
  93. package/dist/migrations/manifests/0.7.0-beta.13.json +9 -0
  94. package/dist/migrations/manifests/0.7.0-beta.14.json +9 -0
  95. package/dist/migrations/manifests/0.7.0-beta.15.json +9 -0
  96. package/dist/migrations/manifests/0.7.0-beta.16.json +9 -0
  97. package/dist/migrations/manifests/0.7.0-beta.17.json +9 -0
  98. package/dist/migrations/manifests/0.7.0-beta.18.json +9 -0
  99. package/dist/migrations/manifests/0.7.0-beta.19.json +9 -0
  100. package/dist/migrations/manifests/0.7.0-beta.20.json +9 -0
  101. package/dist/migrations/manifests/0.7.0-beta.21.json +17 -0
  102. package/dist/migrations/manifests/0.7.0-beta.22.json +9 -0
  103. package/dist/migrations/manifests/0.7.0-beta.23.json +9 -0
  104. package/dist/migrations/manifests/0.7.0-beta.24.json +9 -0
  105. package/dist/migrations/manifests/0.7.0-beta.25.json +9 -0
  106. package/dist/migrations/manifests/0.7.0-beta.26.json +9 -0
  107. package/dist/migrations/manifests/0.7.0-beta.27.json +9 -0
  108. package/dist/migrations/manifests/0.7.0-beta.28.json +9 -0
  109. package/dist/migrations/manifests/0.7.0-beta.29.json +9 -0
  110. package/dist/migrations/manifests/0.7.0-beta.30.json +9 -0
  111. package/dist/migrations/manifests/0.7.0-beta.31.json +9 -0
  112. package/dist/migrations/manifests/0.7.0-beta.32.json +9 -0
  113. package/dist/migrations/manifests/0.7.0-beta.33.json +9 -0
  114. package/dist/migrations/manifests/0.7.0-beta.34.json +9 -0
  115. package/dist/migrations/manifests/0.7.0-beta.35.json +9 -0
  116. package/dist/migrations/manifests/0.7.0-beta.36.json +9 -0
  117. package/dist/migrations/manifests/0.7.0-beta.37.json +9 -0
  118. package/dist/migrations/manifests/0.7.0-beta.38.json +9 -0
  119. package/dist/migrations/manifests/0.7.0-beta.39.json +9 -0
  120. package/dist/migrations/manifests/0.7.0-beta.40.json +9 -0
  121. package/dist/migrations/manifests/0.7.0-beta.41.json +9 -0
  122. package/dist/migrations/manifests/0.7.0-beta.42.json +9 -0
  123. package/dist/migrations/manifests/0.7.0-beta.43.json +9 -0
  124. package/dist/migrations/manifests/0.7.0-beta.44.json +9 -0
  125. package/dist/migrations/manifests/0.7.0-beta.45.json +9 -0
  126. package/dist/migrations/manifests/0.7.0-beta.46.json +9 -0
  127. package/dist/migrations/manifests/0.7.0-beta.47.json +9 -0
  128. package/dist/migrations/manifests/0.7.0-beta.48.json +9 -0
  129. package/dist/migrations/manifests/0.7.0-beta.49.json +13 -0
  130. package/dist/migrations/manifests/0.7.0-beta.50.json +12 -0
  131. package/dist/migrations/manifests/0.7.0-beta.51.json +9 -0
  132. package/dist/migrations/manifests/0.7.0-beta.6.json +9 -0
  133. package/dist/migrations/manifests/0.7.0-beta.7.json +9 -0
  134. package/dist/migrations/manifests/0.7.0-beta.8.json +9 -0
  135. package/dist/migrations/manifests/0.7.0-beta.9.json +9 -0
  136. package/dist/templates/codex/hooks/session-start.py +21 -17
  137. package/dist/templates/common/bundled-skills/trellis-channel/SKILL.md +3 -1
  138. package/dist/templates/common/bundled-skills/trellis-channel/references/command-reference.md +24 -16
  139. package/dist/templates/common/bundled-skills/trellis-channel/references/forum.md +4 -12
  140. package/dist/templates/common/bundled-skills/trellis-channel/references/multi-target-dispatch.md +139 -0
  141. package/dist/templates/common/bundled-skills/trellis-channel/references/progress-debugging.md +9 -5
  142. package/dist/templates/common/bundled-skills/trellis-channel/references/subnode-work.md +84 -14
  143. package/dist/templates/common/bundled-skills/trellis-channel/references/workers.md +9 -11
  144. package/dist/templates/common/bundled-skills/trellis-channel/references/workflows.md +25 -14
  145. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-skills-or-commands.md +13 -11
  146. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-task-lifecycle.md +7 -2
  147. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-workflow.md +2 -2
  148. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/task-system.md +6 -1
  149. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/workflow.md +6 -4
  150. package/dist/templates/common/bundled-skills/trellis-session-insight/SKILL.md +42 -3
  151. package/dist/templates/common/bundled-skills/trellis-session-insight/references/cli-quick-reference.md +1 -1
  152. package/dist/templates/common/bundled-skills/trellis-session-insight/references/triggering-patterns.md +10 -2
  153. package/dist/templates/common/commands/continue.md +36 -8
  154. package/dist/templates/common/commands/finish-work.md +17 -2
  155. package/dist/templates/common/commands/start.md +8 -1
  156. package/dist/templates/common/skills/brainstorm.md +59 -24
  157. package/dist/templates/common/skills/break-loop.md +6 -10
  158. package/dist/templates/common/skills/check.md +34 -5
  159. package/dist/templates/copilot/hooks/session-start.py +19 -15
  160. package/dist/templates/copilot/prompts/brainstorm.prompt.md +28 -22
  161. package/dist/templates/markdown/spec/backend/database-guidelines.md.txt +22 -22
  162. package/dist/templates/markdown/spec/backend/directory-structure.md.txt +20 -20
  163. package/dist/templates/markdown/spec/backend/error-handling.md.txt +22 -22
  164. package/dist/templates/markdown/spec/backend/index.md.txt +19 -19
  165. package/dist/templates/markdown/spec/backend/logging-guidelines.md.txt +22 -22
  166. package/dist/templates/markdown/spec/backend/quality-guidelines.md.txt +22 -22
  167. package/dist/templates/markdown/spec/frontend/component-guidelines.md.txt +25 -25
  168. package/dist/templates/markdown/spec/frontend/directory-structure.md.txt +20 -20
  169. package/dist/templates/markdown/spec/frontend/hook-guidelines.md.txt +22 -22
  170. package/dist/templates/markdown/spec/frontend/index.md.txt +20 -20
  171. package/dist/templates/markdown/spec/frontend/quality-guidelines.md.txt +22 -22
  172. package/dist/templates/markdown/spec/frontend/state-management.md.txt +22 -22
  173. package/dist/templates/markdown/spec/frontend/type-safety.md.txt +22 -22
  174. package/dist/templates/markdown/spec/guides/code-reuse-thinking-guide.md.txt +80 -85
  175. package/dist/templates/markdown/spec/guides/cross-layer-thinking-guide.md.txt +164 -209
  176. package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md.txt +161 -185
  177. package/dist/templates/markdown/spec/guides/index.md.txt +51 -51
  178. package/dist/templates/markdown/workspace-index.md +44 -44
  179. package/dist/templates/opencode/lib/session-utils.js +2 -2
  180. package/dist/templates/shared-hooks/inject-shell-session-context.py +3 -6
  181. package/dist/templates/shared-hooks/inject-workflow-state.py +3 -2
  182. package/dist/templates/shared-hooks/session-start.py +23 -18
  183. package/dist/templates/trellis/agents/subnode-profiles.json +13 -0
  184. package/dist/templates/trellis/agents/subnode.md +11 -5
  185. package/dist/templates/trellis/config.yaml +2 -0
  186. package/dist/templates/trellis/index.d.ts +2 -1
  187. package/dist/templates/trellis/index.d.ts.map +1 -1
  188. package/dist/templates/trellis/index.js +4 -2
  189. package/dist/templates/trellis/index.js.map +1 -1
  190. package/dist/templates/trellis/scripts/add_session.py +35 -32
  191. package/dist/templates/trellis/scripts/common/active_task.py +8 -8
  192. package/dist/templates/trellis/scripts/common/developer.py +18 -18
  193. package/dist/templates/trellis/scripts/common/ownership_record.py +13 -8
  194. package/dist/templates/trellis/scripts/common/safe_commit.py +38 -9
  195. package/dist/templates/trellis/scripts/common/task_planning.py +137 -0
  196. package/dist/templates/trellis/scripts/common/task_store.py +46 -14
  197. package/dist/templates/trellis/scripts/common/workflow_phase.py +4 -3
  198. package/dist/templates/trellis/scripts/subnode_artifact.py +470 -21
  199. package/dist/templates/trellis/scripts/task.py +175 -2
  200. package/dist/templates/trellis/workflow.md +411 -388
  201. package/dist/utils/managed-paths.d.ts +2 -0
  202. package/dist/utils/managed-paths.d.ts.map +1 -1
  203. package/dist/utils/managed-paths.js +24 -2
  204. package/dist/utils/managed-paths.js.map +1 -1
  205. package/dist/utils/template-fetcher.d.ts +1 -0
  206. package/dist/utils/template-fetcher.d.ts.map +1 -1
  207. package/dist/utils/template-fetcher.js +2 -1
  208. package/dist/utils/template-fetcher.js.map +1 -1
  209. package/dist/utils/uninstall-scrubbers.d.ts.map +1 -1
  210. package/dist/utils/uninstall-scrubbers.js +5 -0
  211. package/dist/utils/uninstall-scrubbers.js.map +1 -1
  212. package/dist/utils/workflow-provenance.d.ts +24 -0
  213. package/dist/utils/workflow-provenance.d.ts.map +1 -0
  214. package/dist/utils/workflow-provenance.js +71 -0
  215. package/dist/utils/workflow-provenance.js.map +1 -0
  216. package/dist/utils/workflow-resolver.d.ts +9 -2
  217. package/dist/utils/workflow-resolver.d.ts.map +1 -1
  218. package/dist/utils/workflow-resolver.js +33 -7
  219. package/dist/utils/workflow-resolver.js.map +1 -1
  220. package/package.json +2 -2
  221. package/dist/templates/trellis/agents/subnode.env +0 -4
@@ -7,6 +7,9 @@
7
7
  */
8
8
  import fs from "node:fs";
9
9
  import path from "node:path";
10
+ import { isSupervisorProcess } from "./guard.js";
11
+ import { readProcessIdentity } from "./process-identity.js";
12
+ import { withLock } from "./store/lock.js";
10
13
  import { channelDir, channelRoot, currentProjectKey, eventsPath, listProjects, migrateLegacyChannels, projectDir, resolveExistingChannelRef, } from "./store/paths.js";
11
14
  import { GLOBAL_PROJECT_KEY, parseChannelScope } from "./store/schema.js";
12
15
  export async function channelRm(name, opts = {}) {
@@ -52,83 +55,12 @@ export async function channelPrune(opts) {
52
55
  ? [currentProjectKey()]
53
56
  : listProjects();
54
57
  // Unscoped prune stays repo-wide by design; users want to clean across
55
- // projects with one command.
58
+ // projects with one command. The project guard serializes discovery with
59
+ // spawn admission; deletion rechecks every candidate under that guard.
56
60
  for (const project of projects) {
57
- const dir = projectDir(project);
58
- let entries;
59
- try {
60
- entries = fs.readdirSync(dir);
61
- }
62
- catch {
63
- continue;
64
- }
65
- for (const name of entries) {
66
- if (name.startsWith("."))
67
- continue; // skip .bucket marker
68
- if (keep.has(name))
69
- continue;
70
- const chDir = channelDir(name, project);
71
- try {
72
- if (!fs.statSync(chDir).isDirectory())
73
- continue;
74
- }
75
- catch {
76
- continue;
77
- }
78
- // Skip channels that still have a live worker.
79
- if (hasLiveWorker(chDir))
80
- continue;
81
- const eventsFile = eventsPath(name, project);
82
- let totalEvents = 0;
83
- let lastTs;
84
- let ephemeralFlag = false;
85
- try {
86
- const text = fs.readFileSync(eventsFile, "utf-8");
87
- const lines = text.split("\n").filter((l) => l.trim());
88
- totalEvents = lines.length;
89
- // First event is `create`; read `ephemeral` from it.
90
- const first = lines[0];
91
- if (first) {
92
- try {
93
- ephemeralFlag =
94
- JSON.parse(first).ephemeral === true;
95
- }
96
- catch {
97
- // ignore
98
- }
99
- }
100
- const last = lines[lines.length - 1];
101
- if (last) {
102
- try {
103
- lastTs = JSON.parse(last).ts;
104
- }
105
- catch {
106
- // ignore
107
- }
108
- }
109
- }
110
- catch {
111
- // missing or unreadable events.jsonl — count as empty
112
- }
113
- let reason = null;
114
- if (opts.ephemeral) {
115
- if (ephemeralFlag)
116
- reason = "ephemeral";
117
- }
118
- else if (opts.all) {
119
- reason = "all";
120
- }
121
- else if (opts.empty && totalEvents <= 1) {
122
- reason = "empty";
123
- }
124
- else if (opts.idleMs !== undefined && lastTs) {
125
- const age = Date.now() - Date.parse(lastTs);
126
- if (age >= opts.idleMs)
127
- reason = `idle ${Math.round(age / 60_000)}m`;
128
- }
129
- if (reason)
130
- candidates.push({ name, project, reason, lastTs });
131
- }
61
+ await withLock(path.join(projectDir(project), ".worker-guard.lock"), () => {
62
+ candidates.push(...findPruneCandidates(project, keep, opts));
63
+ });
132
64
  }
133
65
  if (candidates.length === 0) {
134
66
  console.log("(nothing to prune)");
@@ -139,39 +71,214 @@ export async function channelPrune(opts) {
139
71
  const last = c.lastTs ? c.lastTs.slice(0, 19).replace("T", " ") : "-";
140
72
  console.log(` ${c.name.padEnd(24)} ${last} (${c.reason})`);
141
73
  }
142
- if (opts.dryRun) {
74
+ if (!opts.yes) {
143
75
  console.log(`\n(dry-run) would remove ${candidates.length} channel(s)`);
144
76
  return;
145
77
  }
146
- if (!opts.yes) {
147
- console.log(`\nRefusing to delete ${candidates.length} channel(s) without --yes. ` +
148
- `Re-run with --yes (or --dry-run to preview).`);
149
- return;
78
+ let removed = 0;
79
+ let skipped = 0;
80
+ let releasedBytes = 0;
81
+ for (const project of projects) {
82
+ const projectCandidates = candidates.filter((candidate) => candidate.project === project);
83
+ if (projectCandidates.length === 0)
84
+ continue;
85
+ await withLock(path.join(projectDir(project), ".worker-guard.lock"), () => {
86
+ for (const c of projectCandidates) {
87
+ const current = inspectChannel(c.name, c.project);
88
+ if (current.kind !== "candidate") {
89
+ skipped++;
90
+ console.error(` skipped ${c.name}: ${current.reason}`);
91
+ continue;
92
+ }
93
+ const bytes = directorySize(channelDir(c.name, c.project));
94
+ try {
95
+ fs.rmSync(channelDir(c.name, c.project), {
96
+ recursive: true,
97
+ force: true,
98
+ });
99
+ removed++;
100
+ releasedBytes += bytes;
101
+ }
102
+ catch (err) {
103
+ skipped++;
104
+ console.error(` failed to remove ${c.name}: ${err instanceof Error ? err.message : err}`);
105
+ }
106
+ }
107
+ });
150
108
  }
151
- for (const c of candidates) {
152
- try {
153
- await channelRm(c.name, { force: true, project: c.project });
109
+ console.log(`\nRemoved ${removed}/${candidates.length} channel(s); skipped ${skipped}; released ${releasedBytes} bytes`);
110
+ }
111
+ function findPruneCandidates(project, keep, opts) {
112
+ const dir = projectDir(project);
113
+ let entries;
114
+ try {
115
+ entries = fs.readdirSync(dir);
116
+ }
117
+ catch {
118
+ return [];
119
+ }
120
+ const candidates = [];
121
+ for (const name of entries) {
122
+ if (name.startsWith(".") || keep.has(name))
123
+ continue;
124
+ const inspection = inspectChannel(name, project);
125
+ if (inspection.kind !== "candidate")
126
+ continue;
127
+ if (matchesPruneFilter(inspection, opts)) {
128
+ candidates.push({
129
+ name,
130
+ project,
131
+ reason: inspection.reason,
132
+ lastTs: inspection.lastTs,
133
+ });
154
134
  }
155
- catch (err) {
156
- console.error(` failed to remove ${c.name}: ${err instanceof Error ? err.message : err}`);
135
+ }
136
+ return candidates;
137
+ }
138
+ function matchesPruneFilter(inspection, opts) {
139
+ if (opts.ephemeral)
140
+ return inspection.reason === "ephemeral";
141
+ if (opts.all)
142
+ return true;
143
+ if (opts.empty)
144
+ return inspection.reason === "empty";
145
+ if (opts.idleMs !== undefined && inspection.lastTs) {
146
+ return Date.now() - Date.parse(inspection.lastTs) >= opts.idleMs;
147
+ }
148
+ return false;
149
+ }
150
+ function inspectChannel(name, project) {
151
+ const chDir = channelDir(name, project);
152
+ try {
153
+ if (!fs.statSync(chDir).isDirectory())
154
+ return { kind: "blocked", reason: "not a directory" };
155
+ }
156
+ catch {
157
+ return { kind: "blocked", reason: "channel directory is unreadable" };
158
+ }
159
+ const workerState = inspectWorkers(chDir, name);
160
+ if (workerState)
161
+ return { kind: "blocked", reason: workerState };
162
+ let lines;
163
+ try {
164
+ lines = fs
165
+ .readFileSync(eventsPath(name, project), "utf-8")
166
+ .split("\n")
167
+ .filter((line) => line.trim());
168
+ }
169
+ catch {
170
+ return { kind: "blocked", reason: "events.jsonl is missing or unreadable" };
171
+ }
172
+ if (lines.length === 0)
173
+ return { kind: "blocked", reason: "events.jsonl is empty" };
174
+ const parsed = [];
175
+ try {
176
+ for (const line of lines) {
177
+ const event = JSON.parse(line);
178
+ if (!event || typeof event !== "object")
179
+ throw new Error("event is not an object");
180
+ parsed.push(event);
157
181
  }
158
182
  }
159
- console.log(`\nRemoved ${candidates.length} channel(s)`);
183
+ catch {
184
+ return { kind: "blocked", reason: "events.jsonl contains invalid JSON" };
185
+ }
186
+ const lastTs = parsed.at(-1)?.ts;
187
+ if (typeof lastTs !== "string" || Number.isNaN(Date.parse(lastTs))) {
188
+ return {
189
+ kind: "blocked",
190
+ reason: "events.jsonl has no valid final timestamp",
191
+ };
192
+ }
193
+ return {
194
+ kind: "candidate",
195
+ reason: parsed[0]?.ephemeral === true
196
+ ? "ephemeral"
197
+ : lines.length === 1
198
+ ? "empty"
199
+ : "all",
200
+ lastTs,
201
+ };
160
202
  }
161
- function hasLiveWorker(dir) {
203
+ function inspectWorkers(dir, channel) {
204
+ let entries;
162
205
  try {
163
- for (const f of fs.readdirSync(dir)) {
164
- if (!f.endsWith(".pid"))
165
- continue;
166
- const pid = Number(fs.readFileSync(path.join(dir, f), "utf-8").trim());
167
- if (pid && pidAlive(pid))
168
- return true;
206
+ entries = fs.readdirSync(dir);
207
+ }
208
+ catch {
209
+ return "worker state is unreadable";
210
+ }
211
+ for (const entry of entries) {
212
+ if (!entry.endsWith(".pid"))
213
+ continue;
214
+ const pidPath = path.join(dir, entry);
215
+ let pid;
216
+ try {
217
+ pid = Number(fs.readFileSync(pidPath, "utf-8").trim());
218
+ }
219
+ catch {
220
+ return `cannot read ${entry}`;
221
+ }
222
+ if (!Number.isSafeInteger(pid) || pid <= 0)
223
+ return `invalid PID in ${entry}`;
224
+ if (!pidAlive(pid))
225
+ continue;
226
+ const worker = entry.slice(0, -4);
227
+ if (!isSupervisorProcess(pid, channel, worker))
228
+ return `unverified supervisor in ${entry}`;
229
+ const childPidPath = path.join(dir, `${worker}.worker-pid`);
230
+ if (fs.existsSync(childPidPath)) {
231
+ let childPid;
232
+ try {
233
+ childPid = Number(fs.readFileSync(childPidPath, "utf-8").trim());
234
+ }
235
+ catch {
236
+ return `cannot read ${worker}.worker-pid`;
237
+ }
238
+ if (!Number.isSafeInteger(childPid) || childPid <= 0) {
239
+ return `invalid child PID in ${worker}.worker-pid`;
240
+ }
241
+ if (pidAlive(childPid)) {
242
+ const childIdentityPath = path.join(dir, `${worker}.worker-identity`);
243
+ let expected;
244
+ try {
245
+ expected = fs.readFileSync(childIdentityPath, "utf-8").trim();
246
+ }
247
+ catch {
248
+ return `cannot verify ${worker}.worker-pid`;
249
+ }
250
+ if (!expected || readProcessIdentity(childPid) !== expected) {
251
+ return `unverified child identity in ${worker}.worker-pid`;
252
+ }
253
+ }
169
254
  }
255
+ return `live supervisor in ${entry}`;
256
+ }
257
+ return null;
258
+ }
259
+ function directorySize(root) {
260
+ let total = 0;
261
+ let entries;
262
+ try {
263
+ entries = fs.readdirSync(root, { withFileTypes: true });
170
264
  }
171
265
  catch {
172
- // ignore
266
+ return 0;
173
267
  }
174
- return false;
268
+ for (const entry of entries) {
269
+ const fullPath = path.join(root, entry.name);
270
+ if (entry.isDirectory())
271
+ total += directorySize(fullPath);
272
+ else if (entry.isFile()) {
273
+ try {
274
+ total += fs.statSync(fullPath).size;
275
+ }
276
+ catch {
277
+ // The deletion itself will fail closed if the entry changes.
278
+ }
279
+ }
280
+ }
281
+ return total;
175
282
  }
176
283
  async function killLiveWorkers(dir) {
177
284
  let entries;
@@ -1 +1 @@
1
- {"version":3,"file":"rm.js","sourceRoot":"","sources":["../../../src/commands/channel/rm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rm.js","sourceRoot":"","sources":["../../../src/commands/channel/rm.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,9 @@ export interface SpawnOptions {
7
7
  agent?: string;
8
8
  cwd?: string;
9
9
  model?: string;
10
+ profile?: string;
11
+ reasoningEffort?: string;
12
+ reasoningEffortReason?: string;
10
13
  resume?: string;
11
14
  /** Codex-only: overrides the `thread/start` sandbox mode (default `workspace-write`). */
12
15
  sandbox?: CodexSandboxMode;
@@ -1 +1 @@
1
- {"version":3,"file":"spawn.d.ts","sourceRoot":"","sources":["../../../src/commands/channel/spawn.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAGlE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAqBpD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yFAAyF;IACzF,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;mEAC+D;IAC/D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,kFAAkF;AAClF,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoB1E;AAED,6EAA6E;AAC7E,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,YAAY,EAClB,GAAG,SAAgB,GAClB,YAAY,CAUd;AAuGD,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA8FvD"}
1
+ {"version":3,"file":"spawn.d.ts","sourceRoot":"","sources":["../../../src/commands/channel/spawn.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAGlE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAyBpD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yFAAyF;IACzF,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;mEAC+D;IAC/D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,kFAAkF;AAClF,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoB1E;AAED,6EAA6E;AAC7E,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,YAAY,EAClB,GAAG,SAAgB,GAClB,YAAY,CAgBd;AAoHD,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAsGvD"}
@@ -5,6 +5,7 @@ import { fileURLToPath } from "node:url";
5
5
  import { loadAgent } from "./agent-loader.js";
6
6
  import { assembleContext } from "./context-loader.js";
7
7
  import { resolveTrustedRoots } from "./context-trust.js";
8
+ import { resolveSubnodeProfile, } from "./profiles.js";
8
9
  import { enforceSpawnBudget, formatBudgetOverflowError, loadSubnodeDispatchConfig, resolveWorkerGuardConfig, } from "./guard.js";
9
10
  import { withLock } from "./store/lock.js";
10
11
  import { channelDir, projectDir, resolveExistingChannelRef, workerFile, workerLockPath, } from "./store/paths.js";
@@ -34,13 +35,18 @@ export function parseAgentEnvFile(filePath) {
34
35
  }
35
36
  /** Apply supervisor role defaults without consuming guard env precedence. */
36
37
  export function applySubnodeSupervisorDefaults(opts, cwd = process.cwd()) {
37
- if (opts.agent !== "subnode")
38
- return opts;
38
+ const effectiveOpts = opts.profile !== undefined && opts.agent === undefined
39
+ ? { ...opts, agent: "subnode" }
40
+ : opts;
41
+ if (effectiveOpts.agent !== "subnode")
42
+ return effectiveOpts;
39
43
  const config = loadSubnodeDispatchConfig(cwd);
40
44
  return {
41
- ...opts,
42
- ...(opts.timeoutMs === undefined ? { timeoutMs: config.timeoutMs } : {}),
43
- ...(opts.warnBeforeMs === undefined
45
+ ...effectiveOpts,
46
+ ...(effectiveOpts.timeoutMs === undefined
47
+ ? { timeoutMs: config.timeoutMs }
48
+ : {}),
49
+ ...(effectiveOpts.warnBeforeMs === undefined
44
50
  ? { warnBeforeMs: config.warnBeforeMs }
45
51
  : {}),
46
52
  };
@@ -50,14 +56,14 @@ function resolveSpawn(channelName, opts) {
50
56
  const trustedRoots = resolveTrustedRoots(cwd);
51
57
  let agentBody;
52
58
  let provider = opts.provider;
53
- let model = opts.model;
59
+ let agentModel;
54
60
  let as = opts.as;
55
61
  let env;
56
62
  if (opts.agent) {
57
63
  const agent = loadAgent(opts.agent, cwd, trustedRoots);
58
64
  agentBody = agent.systemPrompt || undefined;
59
65
  provider = provider ?? agent.provider;
60
- model = model ?? agent.model;
66
+ agentModel = agent.model;
61
67
  as = as ?? agent.name;
62
68
  env = agent.envFile ? parseAgentEnvFile(agent.envFile) : undefined;
63
69
  }
@@ -67,13 +73,24 @@ function resolveSpawn(channelName, opts) {
67
73
  if (!as) {
68
74
  throw new Error("Missing --as (no agent name to fall back to)");
69
75
  }
76
+ const profile = resolveSubnodeProfile({
77
+ cwd,
78
+ agent: opts.agent,
79
+ provider,
80
+ agentModel,
81
+ model: opts.model,
82
+ profile: opts.profile,
83
+ reasoningEffort: opts.reasoningEffort,
84
+ reasoningEffortReason: opts.reasoningEffortReason,
85
+ });
70
86
  const context = assembleContext(cwd, opts.files, opts.jsonls, trustedRoots);
71
87
  const systemPrompt = buildSystemPrompt(channelName, as, agentBody, context.prompt);
72
88
  return {
73
89
  provider,
74
90
  as,
75
91
  systemPrompt,
76
- model,
92
+ model: profile.model,
93
+ profile,
77
94
  ...(env ? { env } : {}),
78
95
  contextFiles: context.paths,
79
96
  contextManifests: context.manifests,
@@ -123,12 +140,15 @@ export async function channelSpawn(channelName, opts) {
123
140
  if (!fs.existsSync(channelDir(channelName, ref.project))) {
124
141
  throw new Error(`Channel '${channelName}' not found at ${channelDir(channelName, ref.project)}`);
125
142
  }
126
- const subnodeConfig = opts.agent === "subnode"
127
- ? loadSubnodeDispatchConfig(process.cwd())
143
+ const effectiveOpts = applySubnodeSupervisorDefaults(opts, opts.cwd ?? process.cwd());
144
+ const subnodeConfig = effectiveOpts.agent === "subnode"
145
+ ? loadSubnodeDispatchConfig(effectiveOpts.cwd ?? process.cwd())
128
146
  : undefined;
129
- const effectiveOpts = applySubnodeSupervisorDefaults(opts);
130
147
  const resolved = resolveSpawn(channelName, effectiveOpts);
131
148
  if (resolved.provider === "codex") {
149
+ if (effectiveOpts.resume !== undefined) {
150
+ throw new Error("Codex Channel workers do not support --resume; spawn a fresh worker attempt");
151
+ }
132
152
  const [createEvent] = await readChannelEvents(channelName, ref.project);
133
153
  if (!createEvent ||
134
154
  !isCreateEvent(createEvent) ||
@@ -195,16 +215,23 @@ async function spawnLocked(channelName, resolved, opts, project, idleTimeoutMs)
195
215
  throw new Error(`Worker '${resolved.as}' is already running in channel '${channelName}' (pid ${existing})`);
196
216
  }
197
217
  }
218
+ const configuredActor = process.env.TRELLIS_CHANNEL_AS?.trim();
198
219
  const spawnedBy = opts.by ??
199
- (typeof process.env.TRELLIS_CHANNEL_AS === "string" &&
200
- process.env.TRELLIS_CHANNEL_AS.length > 0
201
- ? process.env.TRELLIS_CHANNEL_AS
220
+ (configuredActor !== undefined && configuredActor.length > 0
221
+ ? configuredActor
202
222
  : "main");
203
223
  const configPath = writeSupervisorConfig(channelName, resolved.as, {
204
224
  provider: resolved.provider,
205
225
  cwd: opts.cwd ?? process.cwd(),
206
226
  systemPrompt: resolved.systemPrompt,
207
227
  model: resolved.model,
228
+ profile: resolved.profile.profile,
229
+ reasoningEffort: resolved.profile.reasoningEffort,
230
+ reasoningEffortReason: resolved.profile.reasoningEffortReason,
231
+ profileConfigPath: resolved.profile.profileConfigPath,
232
+ profileConfigDigest: resolved.profile.profileConfigDigest,
233
+ modelSource: resolved.profile.modelSource,
234
+ reasoningEffortSource: resolved.profile.reasoningEffortSource,
208
235
  resume: opts.resume,
209
236
  sandbox: opts.sandbox,
210
237
  timeoutMs: opts.timeoutMs,
@@ -212,7 +239,7 @@ async function spawnLocked(channelName, resolved, opts, project, idleTimeoutMs)
212
239
  idleTimeoutMs,
213
240
  spawnedBy,
214
241
  ...(opts.inboxPolicy ? { inboxPolicy: opts.inboxPolicy } : {}),
215
- ...(resolved.env ? { env: resolved.env } : {}),
242
+ ...(resolved.env ? { roleEnvKeys: Object.keys(resolved.env) } : {}),
216
243
  ...(opts.agent ? { agent: opts.agent } : {}),
217
244
  ...(resolved.contextFiles.length > 0
218
245
  ? { contextFiles: resolved.contextFiles }
@@ -243,6 +270,7 @@ async function spawnLocked(channelName, resolved, opts, project, idleTimeoutMs)
243
270
  // regardless of where the supervisor's process.cwd() ends up.
244
271
  env: {
245
272
  ...process.env,
273
+ ...resolved.env,
246
274
  TRELLIS_CHANNEL_PROJECT: project,
247
275
  },
248
276
  });
@@ -1 +1 @@
1
- {"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../../src/commands/channel/spawn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../../src/commands/channel/spawn.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,8 @@ export interface SupervisorIdleProbe {
21
21
  isShuttingDown(): boolean;
22
22
  }
23
23
  export interface IdleTimerHandle {
24
+ /** Accept an external idle-cleanup request only after the owner's idle TTL. */
25
+ expireIfIdle(): boolean;
24
26
  /** Restart the timer because the worker just finished a turn. */
25
27
  reset(): void;
26
28
  /** Suspend the timer because the worker is mid-turn. */
@@ -1 +1 @@
1
- {"version":3,"file":"idle.d.ts","sourceRoot":"","sources":["../../../../src/commands/channel/supervisor/idle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD,MAAM,WAAW,mBAAmB;IAClC,cAAc,IAAI,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,iEAAiE;IACjE,KAAK,IAAI,IAAI,CAAC;IACd,wDAAwD;IACxD,KAAK,IAAI,IAAI,CAAC;IACd,gDAAgD;IAChD,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,kBAAkB,GAAG,mBAAmB,CAAC;IACnD,sDAAsD;IACtD,aAAa,EAAE,MAAM,OAAO,CAAC;IAC7B,GAAG,EAAE;QAAE,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;CACxC;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,qBAAqB,GAC1B,eAAe,CAoDjB"}
1
+ {"version":3,"file":"idle.d.ts","sourceRoot":"","sources":["../../../../src/commands/channel/supervisor/idle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD,MAAM,WAAW,mBAAmB;IAClC,cAAc,IAAI,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,+EAA+E;IAC/E,YAAY,IAAI,OAAO,CAAC;IACxB,iEAAiE;IACjE,KAAK,IAAI,IAAI,CAAC;IACd,wDAAwD;IACxD,KAAK,IAAI,IAAI,CAAC;IACd,gDAAgD;IAChD,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,kBAAkB,GAAG,mBAAmB,CAAC;IACnD,sDAAsD;IACtD,aAAa,EAAE,MAAM,OAAO,CAAC;IAC7B,GAAG,EAAE;QAAE,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;CACxC;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,qBAAqB,GAC1B,eAAe,CA+DjB"}
@@ -27,31 +27,38 @@ export function scheduleSupervisorIdleTimer(args) {
27
27
  reset: () => undefined,
28
28
  pause: () => undefined,
29
29
  cancel: () => undefined,
30
+ expireIfIdle: () => false,
30
31
  };
31
32
  }
32
33
  let timer;
33
34
  let cancelled = false;
35
+ let idleDeadline;
34
36
  const clear = () => {
37
+ idleDeadline = undefined;
35
38
  if (timer) {
36
39
  clearTimeout(timer);
37
40
  timer = undefined;
38
41
  }
39
42
  };
40
- const fire = () => {
43
+ const expireIfIdle = () => {
44
+ if (cancelled ||
45
+ idleDeadline === undefined ||
46
+ performance.now() < idleDeadline ||
47
+ shutdown.isShuttingDown() ||
48
+ isChildExited())
49
+ return false;
50
+ idleDeadline = undefined;
41
51
  timer = undefined;
42
- if (cancelled)
43
- return;
44
- if (shutdown.isShuttingDown() || isChildExited()) {
45
- return;
46
- }
47
52
  log.write(`[supervisor] idle timeout ${idleTimeoutMs}ms reached, requesting shutdown\n`);
48
53
  void shutdown.request("SIGTERM", "idle-timeout");
54
+ return true;
49
55
  };
50
56
  const start = () => {
51
57
  if (cancelled)
52
58
  return;
53
59
  clear();
54
- timer = setTimeout(fire, idleTimeoutMs);
60
+ idleDeadline = performance.now() + idleTimeoutMs;
61
+ timer = setTimeout(expireIfIdle, idleTimeoutMs);
55
62
  // Don't keep the supervisor alive solely for the idle timer; if
56
63
  // every other handle has gone away the worker has nothing to do.
57
64
  timer.unref?.();
@@ -59,6 +66,7 @@ export function scheduleSupervisorIdleTimer(args) {
59
66
  // Initial schedule: worker just spawned, currently idle.
60
67
  start();
61
68
  return {
69
+ expireIfIdle,
62
70
  reset: start,
63
71
  pause: clear,
64
72
  cancel: () => {