@sema-agent/cli 1.0.80 → 1.0.81
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/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
- package/sema-main.js +88 -55
- package/sema.js +1 -1
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sema-agent/cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.81",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@sema-agent/cli",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.81",
|
|
10
10
|
"license": "BUSL-1.1",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@sema-agent/sdk": "7.1.0",
|
package/package.json
CHANGED
package/sema-main.js
CHANGED
|
@@ -61404,12 +61404,17 @@ function createFleetLedger(hooks2 = {}, opts = {}) {
|
|
|
61404
61404
|
droppedMalformed++, debug4("[fleet-frame] MALFORMED bg_notification dropped(taskId \u6216 status \u7F3A\u5E2D/\u975E\u4E32)");
|
|
61405
61405
|
return;
|
|
61406
61406
|
}
|
|
61407
|
+
if (n2.parentTaskId !== void 0 && typeof n2.parentTaskId != "string") {
|
|
61408
|
+
droppedMalformed++, debug4(`[fleet-frame] MALFORMED bg_notification dropped(parentTaskId \u952E\u5728\u573A\u4F46\u975E\u4E32:${typeof n2.parentTaskId} \u2014\u2014 \u9694\u79BB\u5224\u636E\u7684\u951A\u4E0D\u8BB8\u88AB\u574F\u503C\u65C1\u8DEF;taskId=${n2.taskId})`);
|
|
61409
|
+
return;
|
|
61410
|
+
}
|
|
61407
61411
|
let serverFailClosed = bgNotifyFailClosedMeta && sessionScopedMeta === !0, ownByRoot = typeof n2.rootSessionId == "string" && n2.rootSessionId.length > 0 && n2.rootSessionId === engineSessionParam();
|
|
61408
61412
|
if (!serverFailClosed && !ownByRoot && typeof n2.parentTaskId == "string" && n2.parentTaskId.length > 0 && !isOwnEngineRun(n2.parentTaskId)) {
|
|
61409
61413
|
droppedForeignBgNotification++, debug4(`[fleet-frame] bg_notification DROPPED foreign/unowned parentRun(taskId=${n2.taskId} parentRun=${n2.parentTaskId})`);
|
|
61410
61414
|
return;
|
|
61411
61415
|
}
|
|
61412
|
-
|
|
61416
|
+
let evidence = serverFailClosed || ownByRoot ? sessionKey === DEFAULT_SESSION_KEY ? serverFailClosed ? "server_fail_closed" : "own_root" : "session_anchor_untrusted" : typeof n2.parentTaskId == "string" && n2.parentTaskId.length > 0 ? "own_parent" : "absent_parent";
|
|
61417
|
+
debug4(`[fleet-frame] bg_notification taskId=${n2.taskId} status=${n2.status} seq=${n2.seq ?? "-"} accept=${evidence}`);
|
|
61413
61418
|
let rowIds = [];
|
|
61414
61419
|
for (let id of taskMap.keys())
|
|
61415
61420
|
(id === n2.taskId || rowIdTail(id) === n2.taskId) && rowIds.push(id);
|
|
@@ -61426,7 +61431,11 @@ function createFleetLedger(hooks2 = {}, opts = {}) {
|
|
|
61426
61431
|
washBlocked = !0, debug4(`[fleet-frame] bg_notification WASH-GREEN blocked(row=${id} row-status=${rowStatus} notif=${n2.status})`);
|
|
61427
61432
|
continue;
|
|
61428
61433
|
}
|
|
61429
|
-
rowStatus !== n2.status
|
|
61434
|
+
if (rowStatus !== n2.status) {
|
|
61435
|
+
let upgraded = { ...known, status: coerced };
|
|
61436
|
+
retained.set(id, { row: upgraded, expireAt: nowMs + TERMINAL_RETAIN_MS }), taskMap.set(id, upgraded);
|
|
61437
|
+
}
|
|
61438
|
+
writtenIds.add(id), applied = !0;
|
|
61430
61439
|
} else {
|
|
61431
61440
|
let started2 = known.startedAt, meta3 = rowMeta.get(id), frozenElapsed = typeof started2 == "number" && started2 > 0 && started2 <= nowMs ? nowMs - started2 : meta3 !== void 0 ? (known.elapsedMs ?? 0) + Math.max(0, nowMs - meta3.receivedAtMs) : known.elapsedMs;
|
|
61432
61441
|
taskMap.delete(id), rowMeta.delete(id), retained.set(id, {
|
|
@@ -61480,7 +61489,7 @@ function createFleetLedger(hooks2 = {}, opts = {}) {
|
|
|
61480
61489
|
}) : debug4(`[fleet-frame] bg_notification state-plane rejected as wash-green echo(taskId=${n2.taskId} notif=${n2.status})\u2014\u2014 \u901A\u77E5\u9762\u7167\u5E38\u5165\u961F`);
|
|
61481
61490
|
}
|
|
61482
61491
|
try {
|
|
61483
|
-
let out6 = hooks2.onBgNotificationAccepted?.(n2, rowIds);
|
|
61492
|
+
let out6 = hooks2.onBgNotificationAccepted?.(n2, rowIds, evidence);
|
|
61484
61493
|
out6 && typeof out6.then == "function" && Promise.resolve(out6).catch((e) => {
|
|
61485
61494
|
hostLog("debug", `[fleet-frame] onBgNotificationAccepted hook rejected: ${String(e).slice(0, 160)}`);
|
|
61486
61495
|
});
|
|
@@ -61686,42 +61695,6 @@ var capByBase, CAP_FALSE_RETRY_TTL_MS, init_engineSubagentOutput = __esm({
|
|
|
61686
61695
|
}
|
|
61687
61696
|
});
|
|
61688
61697
|
|
|
61689
|
-
// node_modules/@sema-agent/client-core/dist/subagent/engineSubagentSteer.js
|
|
61690
|
-
async function steerEngineSubagent(target, text2) {
|
|
61691
|
-
let cfg = engineWireTarget();
|
|
61692
|
-
if (!cfg)
|
|
61693
|
-
return { ok: !1, reason: "no-wire" };
|
|
61694
|
-
let runId = activeEngineRunId();
|
|
61695
|
-
if (!runId)
|
|
61696
|
-
return { ok: !1, reason: "no-run" };
|
|
61697
|
-
let client3 = makeEngineWireClient({
|
|
61698
|
-
baseUrl: cfg.baseUrl,
|
|
61699
|
-
...cfg.token ? { token: cfg.token } : {},
|
|
61700
|
-
principal: cfg.principal
|
|
61701
|
-
});
|
|
61702
|
-
if (!client3)
|
|
61703
|
-
return { ok: !1, reason: "no-wire" };
|
|
61704
|
-
try {
|
|
61705
|
-
let body = await client3.runs.steerSubagent(runId, target, { content: text2 }, engineSessionParamSpread()), receipt = "Message queued for delivery at the next tool round.", copy2 = body?.note ?? body?.message;
|
|
61706
|
-
return typeof copy2 == "string" && copy2.length > 0 && (receipt = copy2), { ok: !0, receipt };
|
|
61707
|
-
} catch (e) {
|
|
61708
|
-
let status3 = e?.status;
|
|
61709
|
-
if (typeof status3 == "number") {
|
|
61710
|
-
let detail = e instanceof Error ? e.message : String(e);
|
|
61711
|
-
return hostLog("debug", `engineSubagentSteer: ${status3} ${detail.slice(0, 200)}`), status3 === 409 || status3 === 404 ? { ok: !1, reason: "not-running", detail } : { ok: !1, reason: "error", detail: `${status3}` };
|
|
61712
|
-
}
|
|
61713
|
-
return hostLog("debug", `engineSubagentSteer: fetch failed ${String(e)}`), { ok: !1, reason: "error", detail: String(e) };
|
|
61714
|
-
}
|
|
61715
|
-
}
|
|
61716
|
-
var init_engineSubagentSteer = __esm({
|
|
61717
|
-
"node_modules/@sema-agent/client-core/dist/subagent/engineSubagentSteer.js"() {
|
|
61718
|
-
init_host();
|
|
61719
|
-
init_engineWireSdk();
|
|
61720
|
-
init_engineWireTarget();
|
|
61721
|
-
init_engineSessionParam();
|
|
61722
|
-
}
|
|
61723
|
-
});
|
|
61724
|
-
|
|
61725
61698
|
// node_modules/@sema-agent/client-core/dist/subagent/engineSubagentResume.js
|
|
61726
61699
|
function subagentResumeAvailable(baseUrl = engineWireTarget()?.baseUrl) {
|
|
61727
61700
|
return engineCapTrue(baseUrl, SUBAGENT_RESUME_CAP);
|
|
@@ -61816,6 +61789,46 @@ var SUBAGENT_RESUME_CAP, RETENTION_LAPSED_CODES, warnedRetainWithoutWake, init_e
|
|
|
61816
61789
|
}
|
|
61817
61790
|
});
|
|
61818
61791
|
|
|
61792
|
+
// node_modules/@sema-agent/client-core/dist/subagent/engineSubagentSteer.js
|
|
61793
|
+
async function steerEngineSubagent(target, text2, childTaskId) {
|
|
61794
|
+
let cfg = engineWireTarget();
|
|
61795
|
+
if (!cfg)
|
|
61796
|
+
return { ok: !1, reason: "no-wire" };
|
|
61797
|
+
let named = typeof childTaskId == "string" && childTaskId !== "" ? childTaskId : void 0, runId = resolveOwnerRunId(named);
|
|
61798
|
+
if (!runId)
|
|
61799
|
+
return named !== void 0 && noteBgOwnerAbsence("subagent-steer", named), { ok: !1, reason: "no-run" };
|
|
61800
|
+
let client3 = makeEngineWireClient({
|
|
61801
|
+
baseUrl: cfg.baseUrl,
|
|
61802
|
+
...cfg.token ? { token: cfg.token } : {},
|
|
61803
|
+
principal: cfg.principal
|
|
61804
|
+
});
|
|
61805
|
+
if (!client3)
|
|
61806
|
+
return { ok: !1, reason: "no-wire" };
|
|
61807
|
+
let rowSession = named !== void 0 ? getBgParentRunOwner(named)?.sessionId : void 0, session2 = rowSession !== void 0 ? { session: rowSession } : engineSessionParamSpread();
|
|
61808
|
+
try {
|
|
61809
|
+
let body = await client3.runs.steerSubagent(runId, target, { content: text2 }, session2), receipt = "Message queued for delivery at the next tool round.", copy2 = body?.note ?? body?.message;
|
|
61810
|
+
return typeof copy2 == "string" && copy2.length > 0 && (receipt = copy2), { ok: !0, receipt };
|
|
61811
|
+
} catch (e) {
|
|
61812
|
+
let status3 = e?.status;
|
|
61813
|
+
if (typeof status3 == "number") {
|
|
61814
|
+
let detail = e instanceof Error ? e.message : String(e);
|
|
61815
|
+
return hostLog("debug", `engineSubagentSteer: ${status3} ${detail.slice(0, 200)}`), status3 === 409 || status3 === 404 ? { ok: !1, reason: "not-running", detail } : { ok: !1, reason: "error", detail: `${status3}` };
|
|
61816
|
+
}
|
|
61817
|
+
return hostLog("debug", `engineSubagentSteer: fetch failed ${String(e)}`), { ok: !1, reason: "error", detail: String(e) };
|
|
61818
|
+
}
|
|
61819
|
+
}
|
|
61820
|
+
var init_engineSubagentSteer = __esm({
|
|
61821
|
+
"node_modules/@sema-agent/client-core/dist/subagent/engineSubagentSteer.js"() {
|
|
61822
|
+
init_host();
|
|
61823
|
+
init_engineWireSdk();
|
|
61824
|
+
init_engineWireTarget();
|
|
61825
|
+
init_engineSessionParam();
|
|
61826
|
+
init_subagentContentStore();
|
|
61827
|
+
init_engineSubagentResume();
|
|
61828
|
+
init_subagentOwnerAbsence();
|
|
61829
|
+
}
|
|
61830
|
+
});
|
|
61831
|
+
|
|
61819
61832
|
// node_modules/@sema-agent/client-core/dist/subagent/engineTaskHandleWire.js
|
|
61820
61833
|
import { TaskStopConflictError } from "@sema-agent/sdk";
|
|
61821
61834
|
function resolveHostRun(handle2) {
|
|
@@ -136845,6 +136858,17 @@ var g, gDirs, init_appStateRef = __esm({
|
|
|
136845
136858
|
});
|
|
136846
136859
|
|
|
136847
136860
|
// build-src/src/sema/fleetDurableTerminalOverlay.ts
|
|
136861
|
+
function evidenceTier(e) {
|
|
136862
|
+
switch (e) {
|
|
136863
|
+
case "server_fail_closed":
|
|
136864
|
+
case "own_root":
|
|
136865
|
+
return "trusted";
|
|
136866
|
+
case "own_parent":
|
|
136867
|
+
return "process";
|
|
136868
|
+
default:
|
|
136869
|
+
return "unproven";
|
|
136870
|
+
}
|
|
136871
|
+
}
|
|
136848
136872
|
function trimFifo(map2) {
|
|
136849
136873
|
for (; map2.size > MAX_FACTS; ) {
|
|
136850
136874
|
let oldest = map2.keys().next().value;
|
|
@@ -136860,20 +136884,24 @@ function normalizeSeq(rawSeq) {
|
|
|
136860
136884
|
if (typeof rawSeq == "number" && Number.isFinite(rawSeq)) return rawSeq;
|
|
136861
136885
|
if (typeof rawSeq == "string" && rawSeq.trim() !== "" && Number.isFinite(Number(rawSeq))) return Number(rawSeq);
|
|
136862
136886
|
}
|
|
136863
|
-
function recordTerminalFact(taskId, rawStatus, rawSeq, src) {
|
|
136887
|
+
function recordTerminalFact(taskId, rawStatus, rawSeq, src, evidence) {
|
|
136864
136888
|
let status3 = typeof rawStatus == "string" && TERMINAL.has(rawStatus) ? rawStatus : void 0;
|
|
136865
136889
|
if (taskId === void 0 || taskId.length === 0 || status3 === void 0) return;
|
|
136866
136890
|
let seq = normalizeSeq(rawSeq), dead = tombstones.get(taskId);
|
|
136867
|
-
dead !== void 0 && seq !== void 0 && seq <= dead
|
|
136891
|
+
if (dead !== void 0 && seq !== void 0 && seq <= dead) return;
|
|
136892
|
+
let tier = evidenceTier(evidence);
|
|
136893
|
+
src === "bg_notification" && tier !== "trusted" && logForDebugging(
|
|
136894
|
+
`[fleet-overlay] bg fact for ${taskId} recorded on NON-SESSION evidence (evidence=${evidence ?? "absent"} tier=${tier}) \u2014 presentation-only; not an ownership proof`
|
|
136895
|
+
), facts.delete(taskId), facts.set(taskId, { status: status3, seq, at: ++tick, wallAt: Date.now(), src, evidence, tier }), trimFifo(facts);
|
|
136868
136896
|
}
|
|
136869
136897
|
function recordDurableTerminalNotification(n2) {
|
|
136870
136898
|
if (n2.task_type === "external") return;
|
|
136871
136899
|
let taskId = typeof n2.task_id == "string" ? n2.task_id : void 0;
|
|
136872
136900
|
recordTerminalFact(taskId, n2.status, n2.seq, "task_notification");
|
|
136873
136901
|
}
|
|
136874
|
-
function observeFleetBgNotification(n2) {
|
|
136902
|
+
function observeFleetBgNotification(n2, evidence) {
|
|
136875
136903
|
let taskId = typeof n2.taskId == "string" ? n2.taskId : void 0;
|
|
136876
|
-
recordTerminalFact(taskId, n2.status, n2.seq, "bg_notification");
|
|
136904
|
+
recordTerminalFact(taskId, n2.status, n2.seq, "bg_notification", evidence);
|
|
136877
136905
|
}
|
|
136878
136906
|
function observeFleetTaskFrame(rowFrame) {
|
|
136879
136907
|
let rowId = typeof rowFrame.id == "string" && rowFrame.id.length > 0 ? rowFrame.id : void 0;
|
|
@@ -136923,7 +136951,8 @@ var TERMINAL, MAX_FACTS, tick, FACT_GRACE_MS, facts, lastFrameAt, tombstones, ap
|
|
|
136923
136951
|
"build-src/src/sema/fleetDurableTerminalOverlay.ts"() {
|
|
136924
136952
|
init_debug();
|
|
136925
136953
|
init_appStateRef();
|
|
136926
|
-
TERMINAL = /* @__PURE__ */ new Set(["completed", "failed", "killed"]), MAX_FACTS = 200, tick = 0, FACT_GRACE_MS = 3e3
|
|
136954
|
+
TERMINAL = /* @__PURE__ */ new Set(["completed", "failed", "killed"]), MAX_FACTS = 200, tick = 0, FACT_GRACE_MS = 3e3;
|
|
136955
|
+
facts = /* @__PURE__ */ new Map(), lastFrameAt = /* @__PURE__ */ new Map(), tombstones = /* @__PURE__ */ new Map(), appliedOverlay = /* @__PURE__ */ new Map(), missLogged = /* @__PURE__ */ new Set();
|
|
136927
136956
|
}
|
|
136928
136957
|
});
|
|
136929
136958
|
|
|
@@ -181192,7 +181221,11 @@ function createLiveFleetSource(config4, now2 = Date.now()) {
|
|
|
181192
181221
|
// 台账(parentTaskId 缺席=absent-放行);旧壳门是「两位不全一律不记」。⇒ 老 server/偏斜象限上
|
|
181193
181222
|
// 无 parentTaskId 的通知现在会入 overlay 事实账 —— 与包自己的状态面(retained/bgFacts)对同一
|
|
181194
181223
|
// 帧的处置**同口径**,不再一边收一边拒。
|
|
181195
|
-
|
|
181224
|
+
// 🔴 0.32.0 #284:第三参 `evidence` = **凭哪一条臂放行的**(不是归属结论)。本端一律入账、
|
|
181225
|
+
// 按档留痕 —— 处置边界与论证见 fleetDurableTerminalOverlay.ts 的 `evidenceTier` 头注
|
|
181226
|
+
// (要点:本模块是进程内**呈现**面,不落库/不跨会话搬运/翻行另有一道正交归属门,
|
|
181227
|
+
// 故不属包文档划的「有副作用的归属动作」射程)。`rowIds` 本端暂无消费面,显式具名弃用。
|
|
181228
|
+
onBgNotificationAccepted: (n2, _rowIds, evidence) => observeFleetBgNotification(n2, evidence)
|
|
181196
181229
|
}), lastError = null, disposed4 = !1, client3 = new AgentClient2({
|
|
181197
181230
|
baseUrl: config4.baseUrl,
|
|
181198
181231
|
authToken: config4.authToken,
|
|
@@ -286906,7 +286939,7 @@ function FileEditToolUseRejectedMessage(t0) {
|
|
|
286906
286939
|
}
|
|
286907
286940
|
var import_compiler_runtime43, import_jsx_runtime52, MAX_LINES_TO_RENDER, init_FileEditToolUseRejectedMessage = __esm({
|
|
286908
286941
|
"build-src/src/components/FileEditToolUseRejectedMessage.tsx"() {
|
|
286909
|
-
import_compiler_runtime43 = __toESM(require_compiler_runtime()
|
|
286942
|
+
import_compiler_runtime43 = __toESM(require_compiler_runtime());
|
|
286910
286943
|
init_useTerminalSize();
|
|
286911
286944
|
init_cwd();
|
|
286912
286945
|
init_ink2();
|
|
@@ -286914,7 +286947,7 @@ var import_compiler_runtime43, import_jsx_runtime52, MAX_LINES_TO_RENDER, init_F
|
|
|
286914
286947
|
init_MessageResponse();
|
|
286915
286948
|
init_StructuredDiffList();
|
|
286916
286949
|
init_stringUtils();
|
|
286917
|
-
import_jsx_runtime52 = __toESM(require_jsx_runtime()
|
|
286950
|
+
import_jsx_runtime52 = __toESM(require_jsx_runtime()), MAX_LINES_TO_RENDER = 10;
|
|
286918
286951
|
}
|
|
286919
286952
|
});
|
|
286920
286953
|
|
|
@@ -317742,7 +317775,7 @@ function useClaudeAiLimits() {
|
|
|
317742
317775
|
}
|
|
317743
317776
|
var import_react69, init_claudeAiLimitsHook = __esm({
|
|
317744
317777
|
"build-src/src/services/claudeAiLimitsHook.ts"() {
|
|
317745
|
-
import_react69 = __toESM(require_react()
|
|
317778
|
+
import_react69 = __toESM(require_react());
|
|
317746
317779
|
init_claudeAiLimits();
|
|
317747
317780
|
}
|
|
317748
317781
|
});
|
|
@@ -401287,8 +401320,8 @@ var sema_brand_default, init_sema_brand = __esm({
|
|
|
401287
401320
|
"Engine 7.24.0 (from 7.22.0)"
|
|
401288
401321
|
]
|
|
401289
401322
|
},
|
|
401290
|
-
productVersion: "1.0.
|
|
401291
|
-
announcement: "sema 1.0.
|
|
401323
|
+
productVersion: "1.0.81",
|
|
401324
|
+
announcement: "sema 1.0.81 \u2014 Steering a specific background agent row now resolves through that row's own recorded run (no more silently steering whichever run happens to be active; a stale row fails honestly with a no-run notice instead). Background-notification trust is now graded per acceptance path and kept with the row, so panel rows never flip state on unproven evidence. Under the hood: the self-test fleet gained a port registry with hard guards, so test tooling can never touch a production engine port."
|
|
401292
401325
|
};
|
|
401293
401326
|
}
|
|
401294
401327
|
});
|
|
@@ -405498,8 +405531,8 @@ var require_sema_brand = __commonJS({
|
|
|
405498
405531
|
"Engine 7.24.0 (from 7.22.0)"
|
|
405499
405532
|
]
|
|
405500
405533
|
},
|
|
405501
|
-
productVersion: "1.0.
|
|
405502
|
-
announcement: "sema 1.0.
|
|
405534
|
+
productVersion: "1.0.81",
|
|
405535
|
+
announcement: "sema 1.0.81 \u2014 Steering a specific background agent row now resolves through that row's own recorded run (no more silently steering whichever run happens to be active; a stale row fails honestly with a no-run notice instead). Background-notification trust is now graded per acceptance path and kept with the row, so panel rows never flip state on unproven evidence. Under the hood: the self-test fleet gained a port registry with hard guards, so test tooling can never touch a production engine port."
|
|
405503
405536
|
};
|
|
405504
405537
|
}
|
|
405505
405538
|
});
|
|
@@ -496725,7 +496758,7 @@ function _temp158() {
|
|
|
496725
496758
|
}
|
|
496726
496759
|
var import_compiler_runtime308, import_react313, SETTINGS_ERRORS_NOTIFICATION_KEY, init_useSettingsErrors = __esm({
|
|
496727
496760
|
"build-src/src/hooks/notifs/useSettingsErrors.tsx"() {
|
|
496728
|
-
import_compiler_runtime308 = __toESM(require_compiler_runtime()), import_react313 = __toESM(require_react());
|
|
496761
|
+
import_compiler_runtime308 = __toESM(require_compiler_runtime(), 1), import_react313 = __toESM(require_react(), 1);
|
|
496729
496762
|
init_notifications2();
|
|
496730
496763
|
init_state();
|
|
496731
496764
|
init_allErrors();
|
|
@@ -500644,7 +500677,7 @@ Error: sandbox required but unavailable: ${reason}
|
|
|
500644
500677
|
if (logForDebugging(`onAgentSubmit: task=${task.id} type=${task.type} status=${task.status} engineRow=${isEngineViewRow(task.id)}`), isLocalAgentTask2(task) && isEngineViewRow(task.id)) {
|
|
500645
500678
|
if (pushSubagentLocalEcho(task.id, input), task.status === "running") {
|
|
500646
500679
|
let target = parentToolCallIdOf(task.id) || task.id;
|
|
500647
|
-
logForDebugging(`onAgentSubmit: steering engine subagent target=${target}`), steerEngineSubagent(target, input).then((outcome) => {
|
|
500680
|
+
logForDebugging(`onAgentSubmit: steering engine subagent target=${target} row=${task.id}`), steerEngineSubagent(target, input, task.id).then((outcome) => {
|
|
500648
500681
|
logForDebugging(`onAgentSubmit: steer outcome=${JSON.stringify(outcome)}`);
|
|
500649
500682
|
let steerReason = "reason" in outcome ? outcome.reason : void 0, steerDetail = "detail" in outcome ? outcome.detail : void 0;
|
|
500650
500683
|
addNotification({
|
|
@@ -530659,7 +530692,7 @@ Usage: sema --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
530659
530692
|
pendingHookMessages
|
|
530660
530693
|
}, renderAndRun);
|
|
530661
530694
|
}
|
|
530662
|
-
}).version("sema 1.0.
|
|
530695
|
+
}).version("sema 1.0.81", "-v, --version", "Output the version number"), program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)"), program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux."), canUserConfigureAdvisor() && program2.addOption(new Option("--advisor <model>", "Enable the server-side advisor tool with the specified model (alias or full ID).").hideHelp()), program2.addOption(new Option("--bg, --background", "Start the session as a background agent and return immediately (manage with `sema agents`)")), program2.command("ps").description("List background sessions").action(async () => {
|
|
530663
530696
|
await (await Promise.resolve().then(() => (init_bg2(), bg_exports))).psHandler([]), process.exit(process.exitCode ?? 0);
|
|
530664
530697
|
}), program2.command("logs [id]").description("Print a background session's recent terminal output").action(async (id) => {
|
|
530665
530698
|
await (await Promise.resolve().then(() => (init_bg2(), bg_exports))).logsHandler(id, []), process.exit(process.exitCode ?? 0);
|
package/sema.js
CHANGED
|
@@ -71,7 +71,7 @@ function installBootSignalTailFrame(argv2 = process.argv.slice(2)) {
|
|
|
71
71
|
installBootSignalTailFrame();
|
|
72
72
|
|
|
73
73
|
// build-src/src/sema/preludeEntry.ts
|
|
74
|
-
var versionLine = "sema 1.0.
|
|
74
|
+
var versionLine = "sema 1.0.81" ? "sema 1.0.81" : "";
|
|
75
75
|
var argv = process.argv.slice(2);
|
|
76
76
|
var wantsVersionFastPath = argv.length === 1 && (argv[0] === "--version" || argv[0] === "-v");
|
|
77
77
|
if (wantsVersionFastPath && versionLine) {
|