@schoolai/shipyard 3.6.0-rc.20260507.0 → 3.6.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.
- package/dist/index.js +2 -2
- package/dist/{serve-IWCW4D3N.js → serve-QRYOK5U4.js} +26 -30
- package/dist/{serve-IWCW4D3N.js.map → serve-QRYOK5U4.js.map} +1 -1
- package/dist/{start-VNYBVNI7.js → start-6SCOMMSU.js} +2 -2
- package/package.json +1 -1
- /package/dist/{start-VNYBVNI7.js.map → start-6SCOMMSU.js.map} +0 -0
package/dist/index.js
CHANGED
|
@@ -112,7 +112,7 @@ async function handleSubcommand() {
|
|
|
112
112
|
return true;
|
|
113
113
|
}
|
|
114
114
|
if (subcommand === "start") {
|
|
115
|
-
const { startCommand } = await import("./start-
|
|
115
|
+
const { startCommand } = await import("./start-6SCOMMSU.js");
|
|
116
116
|
await startCommand();
|
|
117
117
|
return true;
|
|
118
118
|
}
|
|
@@ -129,7 +129,7 @@ async function main() {
|
|
|
129
129
|
const args = parseCliArgs();
|
|
130
130
|
if (args.serve) {
|
|
131
131
|
await loadAuthFromConfig(env);
|
|
132
|
-
const { serve } = await import("./serve-
|
|
132
|
+
const { serve } = await import("./serve-QRYOK5U4.js");
|
|
133
133
|
return serve({ isDev: env.SHIPYARD_DEV });
|
|
134
134
|
}
|
|
135
135
|
logger.error("Use `shipyard start` to run the daemon. Use --help for usage.");
|
|
@@ -34193,7 +34193,7 @@ function getHandlerTimingTracker(channel) {
|
|
|
34193
34193
|
import { spawn } from "child_process";
|
|
34194
34194
|
var KEEP_AWAKE_GRACE_PERIOD_MS = 15 * 60 * 1e3;
|
|
34195
34195
|
var darwinStrategy = {
|
|
34196
|
-
spawn: () => spawn("caffeinate", ["-
|
|
34196
|
+
spawn: () => spawn("caffeinate", ["-dis"], { stdio: ["ignore", "ignore", "ignore"] })
|
|
34197
34197
|
};
|
|
34198
34198
|
var linuxStrategy = {
|
|
34199
34199
|
spawn: () => spawn(
|
|
@@ -98743,7 +98743,19 @@ var AnthropicAgentSubprocess = class _AnthropicAgentSubprocess {
|
|
|
98743
98743
|
canUseTool: options.canUseTool,
|
|
98744
98744
|
stderr: options.stderr,
|
|
98745
98745
|
mcpServers: options.mcpServers,
|
|
98746
|
-
|
|
98746
|
+
/**
|
|
98747
|
+
* `DISABLE_AUTO_COMPACT=1` disables the SDK runtime's autonomous
|
|
98748
|
+
* compaction. Without it, resuming a near-full session triggers an
|
|
98749
|
+
* unprompted "Compacting…" on the user's first turn — a trust-breaking
|
|
98750
|
+
* surprise. Compaction stays available via the slash command and
|
|
98751
|
+
* context-indicator button (user-initiated only).
|
|
98752
|
+
*
|
|
98753
|
+
* The SDK treats a non-null `env` as a complete replacement for
|
|
98754
|
+
* `process.env` (sdk.mjs ternary `a6 ? { ...a6 } : { ...process.env }`),
|
|
98755
|
+
* so we must spread `process.env` first or the agent subprocess loses
|
|
98756
|
+
* PATH/HOME/USER/GIT_* and everything else.
|
|
98757
|
+
*/
|
|
98758
|
+
env: { ...process.env, ...options.env, DISABLE_AUTO_COMPACT: "1" },
|
|
98747
98759
|
disallowedTools: options.disallowedTools,
|
|
98748
98760
|
skills: options.skills,
|
|
98749
98761
|
extraArgs: { ...options.extraArgs, "replay-user-messages": null },
|
|
@@ -110034,14 +110046,10 @@ function handleWarmIdle(snapshot, event) {
|
|
|
110034
110046
|
effects: b2.effects
|
|
110035
110047
|
};
|
|
110036
110048
|
}
|
|
110037
|
-
if (event.type === "
|
|
110049
|
+
if (event.type === "subprocess_died") {
|
|
110038
110050
|
b2.log("warm_idle", "resumable_idle", event.type);
|
|
110039
110051
|
b2.taskStatus("input_required");
|
|
110040
|
-
|
|
110041
|
-
b2.effects.push({ type: "close" });
|
|
110042
|
-
} else {
|
|
110043
|
-
b2.emitError("Agent process exited unexpectedly", "subprocess_died");
|
|
110044
|
-
}
|
|
110052
|
+
b2.emitError("Agent process exited unexpectedly", "subprocess_died");
|
|
110045
110053
|
b2.effects.push({ type: "clear_queue" });
|
|
110046
110054
|
return {
|
|
110047
110055
|
state: "resumable_idle",
|
|
@@ -110362,7 +110370,6 @@ function transition3(snapshot, event) {
|
|
|
110362
110370
|
}
|
|
110363
110371
|
|
|
110364
110372
|
// src/services/session/agent-session-manager.ts
|
|
110365
|
-
var IDLE_TIMEOUT_MS = 2 * 60 * 60 * 1e3;
|
|
110366
110373
|
var STOP_TIMEOUT_MS = 15e3;
|
|
110367
110374
|
var AgentSessionManager = class {
|
|
110368
110375
|
#config;
|
|
@@ -110371,7 +110378,6 @@ var AgentSessionManager = class {
|
|
|
110371
110378
|
#rewindAtMessageId = null;
|
|
110372
110379
|
#queue = [];
|
|
110373
110380
|
#pendingInputs = /* @__PURE__ */ new Map();
|
|
110374
|
-
#idleTimer = null;
|
|
110375
110381
|
#stopTimer = null;
|
|
110376
110382
|
#eventQueue = [];
|
|
110377
110383
|
#dispatching = false;
|
|
@@ -110487,7 +110493,6 @@ var AgentSessionManager = class {
|
|
|
110487
110493
|
return count;
|
|
110488
110494
|
}
|
|
110489
110495
|
dispose() {
|
|
110490
|
-
this.#clearIdleTimer();
|
|
110491
110496
|
this.#clearStopTimer();
|
|
110492
110497
|
this.#queue = [];
|
|
110493
110498
|
this.#pendingInputs.clear();
|
|
@@ -110608,17 +110613,6 @@ var AgentSessionManager = class {
|
|
|
110608
110613
|
}
|
|
110609
110614
|
}
|
|
110610
110615
|
#manageTimers() {
|
|
110611
|
-
if (this.#state === "warm_idle") {
|
|
110612
|
-
this.#clearStopTimer();
|
|
110613
|
-
if (!this.#idleTimer) {
|
|
110614
|
-
this.#idleTimer = setTimeout(() => {
|
|
110615
|
-
this.#idleTimer = null;
|
|
110616
|
-
this.#dispatch({ type: "idle_timeout" });
|
|
110617
|
-
}, IDLE_TIMEOUT_MS);
|
|
110618
|
-
}
|
|
110619
|
-
} else {
|
|
110620
|
-
this.#clearIdleTimer();
|
|
110621
|
-
}
|
|
110622
110616
|
if (this.#state === "stopping") {
|
|
110623
110617
|
if (!this.#stopTimer) {
|
|
110624
110618
|
this.#stopTimer = setTimeout(() => {
|
|
@@ -110630,12 +110624,6 @@ var AgentSessionManager = class {
|
|
|
110630
110624
|
this.#clearStopTimer();
|
|
110631
110625
|
}
|
|
110632
110626
|
}
|
|
110633
|
-
#clearIdleTimer() {
|
|
110634
|
-
if (this.#idleTimer) {
|
|
110635
|
-
clearTimeout(this.#idleTimer);
|
|
110636
|
-
this.#idleTimer = null;
|
|
110637
|
-
}
|
|
110638
|
-
}
|
|
110639
110627
|
#clearStopTimer() {
|
|
110640
110628
|
if (this.#stopTimer) {
|
|
110641
110629
|
clearTimeout(this.#stopTimer);
|
|
@@ -121786,11 +121774,19 @@ var TaskManager = class {
|
|
|
121786
121774
|
get size() {
|
|
121787
121775
|
return this.#tasks.size;
|
|
121788
121776
|
}
|
|
121777
|
+
/**
|
|
121778
|
+
* Count of tasks with a live subprocess. Includes `warm_idle` —
|
|
121779
|
+
* a session waiting between turns of a `/loop` or scheduled-wake pattern
|
|
121780
|
+
* is still active work; if we exclude it, keep-awake `during-tasks` mode
|
|
121781
|
+
* lets the laptop sleep mid-loop and the OS suspends our subprocess.
|
|
121782
|
+
*/
|
|
121789
121783
|
get activeCount() {
|
|
121790
121784
|
let count = 0;
|
|
121791
121785
|
for (const task of this.#tasks.values()) {
|
|
121792
121786
|
const s2 = task.orchestrator.state;
|
|
121793
|
-
if (s2 === "spawning" || s2 === "running" || s2 === "stopping")
|
|
121787
|
+
if (s2 === "spawning" || s2 === "running" || s2 === "stopping" || s2 === "warm_idle") {
|
|
121788
|
+
count++;
|
|
121789
|
+
}
|
|
121794
121790
|
}
|
|
121795
121791
|
return count;
|
|
121796
121792
|
}
|
|
@@ -126794,4 +126790,4 @@ export {
|
|
|
126794
126790
|
decideWorkspaceScope,
|
|
126795
126791
|
serve
|
|
126796
126792
|
};
|
|
126797
|
-
//# sourceMappingURL=serve-
|
|
126793
|
+
//# sourceMappingURL=serve-QRYOK5U4.js.map
|