@paradow/ledge 0.28.0 → 0.29.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/cli/{action-NQRSZEC5.js → action-MAPPYLUM.js} +4 -4
- package/dist/cli/{attach-KXOSFUHO.js → attach-OC64CLB2.js} +8 -8
- package/dist/cli/{bridge-XCTXVWKH.js → bridge-TWX4V37E.js} +1 -1
- package/dist/cli/{chunk-CR3LGTZQ.js → chunk-353WRRGG.js} +3 -3
- package/dist/cli/{chunk-JHFKBKSO.js → chunk-73YNZ3BN.js} +1 -1
- package/dist/cli/{chunk-VKRFHDRK.js → chunk-7S7ZLGIY.js} +28 -6
- package/dist/cli/{chunk-CIQAFCX3.js → chunk-ETGOWBUL.js} +3 -3
- package/dist/cli/chunk-JZEWCO6X.js +6 -0
- package/dist/cli/{chunk-LG3XFIPV.js → chunk-K3SDHHZF.js} +1 -1
- package/dist/cli/{chunk-3CF4FQWG.js → chunk-MZVMW356.js} +2 -2
- package/dist/cli/{chunk-VMGACWNP.js → chunk-RFFTWAAF.js} +1 -1
- package/dist/cli/{chunk-3NQNWGDX.js → chunk-TNYBWWRO.js} +2 -2
- package/dist/cli/{chunk-OYDTU6AP.js → chunk-TREGH6WM.js} +63 -15
- package/dist/cli/{chunk-ZI47U5CQ.js → chunk-UWDE365N.js} +2 -2
- package/dist/cli/{chunk-QSRB3F5Y.js → chunk-WCBXS3EU.js} +2 -2
- package/dist/cli/{chunk-RYZ6FHYT.js → chunk-WIUJNSAZ.js} +5 -5
- package/dist/cli/{chunk-JLUHY5AB.js → chunk-XZYQMKKO.js} +3 -3
- package/dist/cli/{daemon-ZUHJKLSL.js → daemon-ZTZ7VMYA.js} +7 -7
- package/dist/cli/{decide-OSSTI3FE.js → decide-4BIYS3Y2.js} +3 -3
- package/dist/cli/{handover-2G7OEWIG.js → handover-IS7BJYGZ.js} +4 -4
- package/dist/cli/{hook-XY4E5H7O.js → hook-3VKVD4IP.js} +9 -9
- package/dist/cli/index.js +16 -16
- package/dist/cli/{launch-7WOARLZM.js → launch-XAPN2M3Q.js} +8 -8
- package/dist/cli/{send-RUHGKLMA.js → send-ZLF2ZXMJ.js} +4 -4
- package/dist/cli/{status-4Z2VJFID.js → status-NONO6E2S.js} +2 -2
- package/dist/cli/{task-2GESYTOL.js → task-47MVWDCY.js} +4 -4
- package/dist/cli/{team-MTSKNMAE.js → team-EJ4YIXJH.js} +6 -6
- package/dist/cli/{tui-4IRYQXYU.js → tui-CAP4O4YQ.js} +8 -8
- package/dist/cli/{version-L2Y7MRH6.js → version-EHBPJO7K.js} +1 -1
- package/dist/cli/{who-PSKHASMK.js → who-FHAXYCM2.js} +3 -3
- package/package.json +1 -1
- package/dist/cli/chunk-UME2F7VM.js +0 -6
|
@@ -8,10 +8,10 @@ import {
|
|
|
8
8
|
resultLine,
|
|
9
9
|
runClose,
|
|
10
10
|
runOnClient
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-353WRRGG.js";
|
|
12
|
+
import "./chunk-K3SDHHZF.js";
|
|
13
|
+
import "./chunk-RFFTWAAF.js";
|
|
14
|
+
import "./chunk-7S7ZLGIY.js";
|
|
15
15
|
import "./chunk-HOOHS3MX.js";
|
|
16
16
|
import "./chunk-U67V476Y.js";
|
|
17
17
|
export {
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
2
|
attachEnv
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-WIUJNSAZ.js";
|
|
4
|
+
import "./chunk-TREGH6WM.js";
|
|
5
5
|
import "./chunk-OLLQBK6N.js";
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-WCBXS3EU.js";
|
|
7
|
+
import "./chunk-UWDE365N.js";
|
|
8
|
+
import "./chunk-73YNZ3BN.js";
|
|
9
|
+
import "./chunk-K3SDHHZF.js";
|
|
10
10
|
import {
|
|
11
11
|
connect
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-RFFTWAAF.js";
|
|
13
13
|
import {
|
|
14
14
|
PROTOCOL_PORT,
|
|
15
15
|
backendOf
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-7S7ZLGIY.js";
|
|
17
17
|
import {
|
|
18
18
|
realTmux
|
|
19
19
|
} from "./chunk-NLL2EQJ2.js";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CODEX_HOOK_VAR
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-K3SDHHZF.js";
|
|
4
4
|
import {
|
|
5
5
|
connect
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-RFFTWAAF.js";
|
|
7
7
|
import {
|
|
8
8
|
SESSION_KEY_VAR,
|
|
9
9
|
actionById
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-7S7ZLGIY.js";
|
|
11
11
|
|
|
12
12
|
// src/cli/action.ts
|
|
13
13
|
import { randomUUID } from "crypto";
|
|
@@ -1967,13 +1967,17 @@ var PhoneSessionSchema = SwitchableSessionSchema.pick({
|
|
|
1967
1967
|
team: true,
|
|
1968
1968
|
/** Its context and its relief (context handover spec §3.2): the phone shows the gauge; the relief is started from the PC. */
|
|
1969
1969
|
context: true,
|
|
1970
|
-
relieves: true
|
|
1970
|
+
relieves: true,
|
|
1971
|
+
/** When it ended: « Terminée · à 18:42 » in the list. */
|
|
1972
|
+
exitedAt: true
|
|
1971
1973
|
}).extend({
|
|
1972
1974
|
pending: PhonePendingSchema.optional(),
|
|
1973
1975
|
unread: z26.boolean(),
|
|
1974
1976
|
handover: z26.object({ state: HandoverStateSchema, toName: z26.string().max(80).optional() }).strict().optional(),
|
|
1975
1977
|
/** Absent: the agent has no checklist. */
|
|
1976
|
-
checklist: PhoneChecklistSummarySchema.optional()
|
|
1978
|
+
checklist: PhoneChecklistSummarySchema.optional(),
|
|
1979
|
+
/** Started without Ledge (`hook_only`): the phone can neither close nor resume it. */
|
|
1980
|
+
readOnly: z26.literal(true).optional()
|
|
1977
1981
|
});
|
|
1978
1982
|
var B64U2 = z26.string().regex(/^[A-Za-z0-9_-]*$/);
|
|
1979
1983
|
var CredentialSchema = z26.object({
|
|
@@ -2009,11 +2013,12 @@ var PhoneChatRelaySchema = z26.object({
|
|
|
2009
2013
|
sentAt: z26.string().datetime().optional(),
|
|
2010
2014
|
failed: z26.literal(true).optional()
|
|
2011
2015
|
}).strict();
|
|
2016
|
+
var CloseHowSchema = z26.enum(["exit", "killed"]);
|
|
2012
2017
|
var PhoneChatCloseSchema = z26.object({
|
|
2013
2018
|
id: z26.string().min(1),
|
|
2014
2019
|
name: z26.string(),
|
|
2015
2020
|
tool: ToolSchema,
|
|
2016
|
-
how:
|
|
2021
|
+
how: CloseHowSchema.optional(),
|
|
2017
2022
|
closedAt: z26.string().datetime().optional(),
|
|
2018
2023
|
failed: z26.literal(true).optional()
|
|
2019
2024
|
}).strict();
|
|
@@ -2119,7 +2124,10 @@ var PhoneClientMessageSchema = z26.discriminatedUnion("type", [
|
|
|
2119
2124
|
/** The session whose terminal the phone shows; null when it shows none. */
|
|
2120
2125
|
z26.object({ type: z26.literal("session.watch"), id: sessionId.nullable() }),
|
|
2121
2126
|
z26.object({ type: z26.literal("session.read"), id: sessionId, at: z26.string().datetime() }),
|
|
2122
|
-
/**
|
|
2127
|
+
/**
|
|
2128
|
+
* Asks for a challenge. One object for every purpose: the gateway refuses a `decide` without `id` and `expect`. A `close`
|
|
2129
|
+
* or `act` names a turn of the chat (`qid`) or a session (`id`, for `session.close` and `session.resume`).
|
|
2130
|
+
*/
|
|
2123
2131
|
z26.object({
|
|
2124
2132
|
type: z26.literal("confirm.prepare"),
|
|
2125
2133
|
purpose: ConfirmPurposeSchema,
|
|
@@ -2165,6 +2173,10 @@ var PhoneClientMessageSchema = z26.discriminatedUnion("type", [
|
|
|
2165
2173
|
expect: PhoneExpectSchema
|
|
2166
2174
|
}),
|
|
2167
2175
|
z26.object({ type: z26.literal("session.interrupt"), op: OperationIdSchema, id: sessionId }),
|
|
2176
|
+
/** Ends a live session as `/exit` would, killed as a last resort; answered with its `how`. Passkey, purpose `close`, over the session. */
|
|
2177
|
+
z26.object({ type: z26.literal("session.close"), op: OperationIdSchema, id: sessionId, assertion: AssertionSchema.optional() }),
|
|
2178
|
+
/** Starts an ended session again on its conversation. Passkey, purpose `act`, over the session. */
|
|
2179
|
+
z26.object({ type: z26.literal("session.resume"), op: OperationIdSchema, id: sessionId, assertion: AssertionSchema.optional() }),
|
|
2168
2180
|
/** Changes a live session's model and effort, `null` for the agent's own default; answered by `operation.result` and, when refused, `session.model.failed`. */
|
|
2169
2181
|
z26.object({ type: z26.literal("session.model"), op: OperationIdSchema, id: sessionId, model: ModelIdSchema.nullable(), effort: EffortSchema.nullable() }),
|
|
2170
2182
|
/** The models an agent offers on the PC. */
|
|
@@ -2251,7 +2263,9 @@ var PhoneServerMessageSchema = z26.discriminatedUnion("type", [
|
|
|
2251
2263
|
checklist: z26.literal(true).optional(),
|
|
2252
2264
|
/** `update`: the daemon can install a version and restart (npm, systemd); `restart`: it can restart (systemd). */
|
|
2253
2265
|
update: z26.literal(true).optional(),
|
|
2254
|
-
restart: z26.literal(true).optional()
|
|
2266
|
+
restart: z26.literal(true).optional(),
|
|
2267
|
+
/** The daemon takes `session.close` and `session.resume`. */
|
|
2268
|
+
sessionClose: z26.literal(true).optional()
|
|
2255
2269
|
}), device: z26.object({ confirm: z26.boolean(), push: z26.enum(["on", "off", "stale", "unavailable"]).optional(), chat: z26.literal(true).optional(), contextNear: ContextPrefsSchema.shape.near.optional() }).optional() }),
|
|
2256
2270
|
z26.object({
|
|
2257
2271
|
type: z26.literal("confirm.challenge"),
|
|
@@ -2273,7 +2287,15 @@ var PhoneServerMessageSchema = z26.discriminatedUnion("type", [
|
|
|
2273
2287
|
/** `cut`: the ids of the items shortened; `more`: older items were left out. */
|
|
2274
2288
|
z26.object({ type: z26.literal("session.thread"), id: z26.string(), items: z26.array(ThreadItemSchema), cut: z26.array(z26.string()), more: z26.boolean() }),
|
|
2275
2289
|
z26.object({ type: z26.literal("session.thread.item"), id: z26.string(), item: ThreadItemSchema, cut: z26.literal(true).optional() }),
|
|
2276
|
-
z26.object({
|
|
2290
|
+
z26.object({
|
|
2291
|
+
type: z26.literal("operation.result"),
|
|
2292
|
+
op: OperationIdSchema,
|
|
2293
|
+
status: OperationStatusSchema,
|
|
2294
|
+
reason: OperationReasonSchema.optional(),
|
|
2295
|
+
models: z26.array(PhoneSeatModelSchema).max(16).optional(),
|
|
2296
|
+
/** How an applied `session.close` ended the agent: `killed` when it had to be forced. */
|
|
2297
|
+
how: CloseHowSchema.optional()
|
|
2298
|
+
}),
|
|
2277
2299
|
/** The models an agent offers; `error`: it could not be asked, `models` is then what Ledge knows without it. */
|
|
2278
2300
|
z26.object({ type: z26.literal("models.listing"), tool: ToolSchema, models: z26.array(PhoneModelChoiceSchema).max(40), error: z26.literal(true).optional() }),
|
|
2279
2301
|
/** A model change that was accepted and then failed (the agent could not restart). */
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CODEX_HOOK_VAR
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-K3SDHHZF.js";
|
|
4
4
|
import {
|
|
5
5
|
connect
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-RFFTWAAF.js";
|
|
7
7
|
import {
|
|
8
8
|
LEDGE_GIVER,
|
|
9
9
|
TASK_TEXT_MAX,
|
|
10
10
|
TASK_TITLE_MAX
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-7S7ZLGIY.js";
|
|
12
12
|
|
|
13
13
|
// src/cli/task.ts
|
|
14
14
|
import { randomUUID } from "crypto";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CODEX_HOOK_VAR
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-K3SDHHZF.js";
|
|
4
4
|
import {
|
|
5
5
|
connect,
|
|
6
6
|
sendMessageAndAwaitAck
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-RFFTWAAF.js";
|
|
8
8
|
|
|
9
9
|
// src/cli/send.ts
|
|
10
10
|
import { randomUUID } from "crypto";
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
templateExists,
|
|
11
11
|
templateId,
|
|
12
12
|
templateText
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-WCBXS3EU.js";
|
|
14
14
|
import {
|
|
15
15
|
NO_ALWAYS,
|
|
16
16
|
NO_NOTE,
|
|
@@ -39,7 +39,7 @@ import {
|
|
|
39
39
|
shownCommand,
|
|
40
40
|
teammates,
|
|
41
41
|
withImages
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-UWDE365N.js";
|
|
43
43
|
import {
|
|
44
44
|
definitionFiles,
|
|
45
45
|
definitionHash,
|
|
@@ -47,7 +47,7 @@ import {
|
|
|
47
47
|
loadRole,
|
|
48
48
|
quoteScalar,
|
|
49
49
|
repoRoot
|
|
50
|
-
} from "./chunk-
|
|
50
|
+
} from "./chunk-73YNZ3BN.js";
|
|
51
51
|
import {
|
|
52
52
|
PARENT_AGENT_VARS,
|
|
53
53
|
agentEnv,
|
|
@@ -57,7 +57,7 @@ import {
|
|
|
57
57
|
labelTranscript,
|
|
58
58
|
resumeLabel,
|
|
59
59
|
spawnSession
|
|
60
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-K3SDHHZF.js";
|
|
61
61
|
import {
|
|
62
62
|
ACTIONS,
|
|
63
63
|
ATTACHMENT_ID,
|
|
@@ -154,7 +154,7 @@ import {
|
|
|
154
154
|
teamsPurpose,
|
|
155
155
|
tokenEquals,
|
|
156
156
|
transmissions
|
|
157
|
-
} from "./chunk-
|
|
157
|
+
} from "./chunk-7S7ZLGIY.js";
|
|
158
158
|
import {
|
|
159
159
|
log
|
|
160
160
|
} from "./chunk-6IYPRUQG.js";
|
|
@@ -6062,7 +6062,7 @@ var OperationRegistry = class {
|
|
|
6062
6062
|
return { kind: "fresh", record: { ...record } };
|
|
6063
6063
|
}
|
|
6064
6064
|
/** An operation already forgotten (expired) is left forgotten. */
|
|
6065
|
-
finish(op, status, reason, models) {
|
|
6065
|
+
finish(op, status, reason, models, how) {
|
|
6066
6066
|
const r = this.records.get(op);
|
|
6067
6067
|
if (!r) return;
|
|
6068
6068
|
r.status = status;
|
|
@@ -6070,6 +6070,8 @@ var OperationRegistry = class {
|
|
|
6070
6070
|
else delete r.reason;
|
|
6071
6071
|
if (models) r.models = models;
|
|
6072
6072
|
else delete r.models;
|
|
6073
|
+
if (how) r.how = how;
|
|
6074
|
+
else delete r.how;
|
|
6073
6075
|
}
|
|
6074
6076
|
get(op) {
|
|
6075
6077
|
this.expire();
|
|
@@ -6254,7 +6256,9 @@ function toPhoneSession(s, readAt2, checklist) {
|
|
|
6254
6256
|
lastActivityAt: s.lastActivityAt,
|
|
6255
6257
|
// Topics are already cut to TOPIC_MAX where they are set; clipped again so no source can swell a snapshot.
|
|
6256
6258
|
...s.topic !== void 0 ? { topic: clip(s.topic, TOPIC_MAX).text } : {},
|
|
6257
|
-
...pickSet(s, ["repo", "branch", "worktree", "role", "roleLabel", "team", "context", "relieves"]),
|
|
6259
|
+
...pickSet(s, ["repo", "branch", "worktree", "role", "roleLabel", "team", "context", "relieves", "exitedAt"]),
|
|
6260
|
+
// Known up front: the phone shows neither Close nor Resume for it, rather than learning it from a refusal.
|
|
6261
|
+
...s.source === "hook_only" ? { readOnly: true } : {},
|
|
6258
6262
|
// Its relief's state only (context handover spec §3.2): the phone shows it, the PC starts it.
|
|
6259
6263
|
...s.handover ? { handover: { state: s.handover.state, ...s.handover.toName ? { toName: s.handover.toName.slice(0, 80) } : {} } } : {},
|
|
6260
6264
|
// Its model, effort and the change waiting for its next free moment (#58), cut to the bounds of a model id and an effort.
|
|
@@ -6853,7 +6857,7 @@ function createPhoneGateway(deps) {
|
|
|
6853
6857
|
protocol: PHONE_PROTOCOL,
|
|
6854
6858
|
sessions: deps.sessions().filter((s) => !isArchived(s)).map((s) => projected(deviceId, s)),
|
|
6855
6859
|
capabilities: capabilities(),
|
|
6856
|
-
daemon: { version: deps.version, boot: deps.boot, name: clip(hostname(), 40).text, ...teamsOps ? { teams: true } : {}, ...deps.pc?.canUpdate ? { update: true } : {}, ...deps.pc?.canRestart ? { restart: true } : {}, checklist: true },
|
|
6860
|
+
daemon: { version: deps.version, boot: deps.boot, name: clip(hostname(), 40).text, ...teamsOps ? { teams: true } : {}, ...deps.pc?.canUpdate ? { update: true } : {}, ...deps.pc?.canRestart ? { restart: true } : {}, checklist: true, ...deps.closeSession ? { sessionClose: true } : {} },
|
|
6857
6861
|
device: { confirm: deps.credential(deviceId) !== null, push: push2, ...deps.chats ? { chat: true } : {}, ...deps.contextNear ? { contextNear: deps.contextNear() } : {} }
|
|
6858
6862
|
};
|
|
6859
6863
|
return deps.models ? { ...message, daemon: { ...message.daemon, models: true } } : message;
|
|
@@ -6906,9 +6910,9 @@ function createPhoneGateway(deps) {
|
|
|
6906
6910
|
const s = live3(m.id);
|
|
6907
6911
|
if (reason.success && s) modelFailures.set(m.id, { reason: reason.data, model: s.model, effort: s.effort });
|
|
6908
6912
|
};
|
|
6909
|
-
const result = (deviceId, op, status, reason, models) => {
|
|
6913
|
+
const result = (deviceId, op, status, reason, models, how) => {
|
|
6910
6914
|
if (stopped2 || !approved(deviceId)) return;
|
|
6911
|
-
push(deviceId, { type: "operation.result", op, status, ...reason ? { reason } : {}, ...models ? { models } : {} });
|
|
6915
|
+
push(deviceId, { type: "operation.result", op, status, ...reason ? { reason } : {}, ...models ? { models } : {}, ...how ? { how } : {} });
|
|
6912
6916
|
};
|
|
6913
6917
|
const needsAssertion = (msg, s) => {
|
|
6914
6918
|
if (msg.type === "session.decide") return msg.decision !== "deny" && riskOf2(s)?.risk !== "low";
|
|
@@ -7095,6 +7099,39 @@ function createPhoneGateway(deps) {
|
|
|
7095
7099
|
throw e;
|
|
7096
7100
|
}
|
|
7097
7101
|
};
|
|
7102
|
+
const sessionSubject = (id) => `session:${id}`;
|
|
7103
|
+
const sessionEnd = async (deviceId, msg) => {
|
|
7104
|
+
const close = deps.closeSession;
|
|
7105
|
+
if (!close) return { status: "rejected", reason: "unavailable" };
|
|
7106
|
+
const closing = msg.type === "session.close";
|
|
7107
|
+
const s = live3(msg.id);
|
|
7108
|
+
if (!s) return { status: "rejected", reason: "unknown_session" };
|
|
7109
|
+
if (s.source === "hook_only") return { status: "rejected", reason: "read_only" };
|
|
7110
|
+
if (closing && s.state === "exited") return { status: "rejected", reason: "ended" };
|
|
7111
|
+
if (!closing && s.state !== "exited") return { status: "rejected", reason: "busy" };
|
|
7112
|
+
if (deps.credential(deviceId) === null) return { status: "rejected", reason: "confirm_required" };
|
|
7113
|
+
const refused = checkAssertion(deviceId, msg.assertion, closing ? "close" : "act", sessionSubject(msg.id));
|
|
7114
|
+
if (refused) return refused;
|
|
7115
|
+
if (!closing) {
|
|
7116
|
+
let error;
|
|
7117
|
+
await deps.dispatch({ type: "session.resume", id: msg.id }, (m) => {
|
|
7118
|
+
if (m.type === "error" && m.request === "session.resume") error ??= { code: m.code };
|
|
7119
|
+
});
|
|
7120
|
+
if (!error) return { status: "applied" };
|
|
7121
|
+
return error.code === "no_conversation" ? { status: "rejected", reason: "no_conversation" } : outcomeOf(error.code);
|
|
7122
|
+
}
|
|
7123
|
+
try {
|
|
7124
|
+
const { how } = await close(msg.id);
|
|
7125
|
+
log2(`phone: device ${deviceId} closed ${msg.id} (${how})`);
|
|
7126
|
+
return { status: "applied", how };
|
|
7127
|
+
} catch (e) {
|
|
7128
|
+
if (live3(msg.id)?.state === "exited") return { status: "rejected", reason: "ended" };
|
|
7129
|
+
const code = RefusalCodeSchema.safeParse(e instanceof Error ? e.code : void 0);
|
|
7130
|
+
if (code.success) return { status: "rejected", reason: code.data };
|
|
7131
|
+
log2(`phone session.close failed (${e instanceof Error ? e.name : "error"})`);
|
|
7132
|
+
return { status: "failed" };
|
|
7133
|
+
}
|
|
7134
|
+
};
|
|
7098
7135
|
const ask = async (out, ok2, opts = {}) => {
|
|
7099
7136
|
let outcome;
|
|
7100
7137
|
await deps.dispatch(out, (m) => {
|
|
@@ -7220,6 +7257,7 @@ function createPhoneGateway(deps) {
|
|
|
7220
7257
|
if (msg.type === "chat.launch") return chatLaunch(deviceId, msg);
|
|
7221
7258
|
if (msg.type === "chat.close") return chatClose(deviceId, msg);
|
|
7222
7259
|
if (msg.type === "chat.act") return chatAct(deviceId, msg);
|
|
7260
|
+
if (msg.type === "session.close" || msg.type === "session.resume") return sessionEnd(deviceId, msg);
|
|
7223
7261
|
const refused = precheck(deviceId, msg);
|
|
7224
7262
|
if (refused) return refused;
|
|
7225
7263
|
const out = local(msg);
|
|
@@ -7233,7 +7271,7 @@ function createPhoneGateway(deps) {
|
|
|
7233
7271
|
const write = async (deviceId, msg) => {
|
|
7234
7272
|
const begun = registry.begin(deviceId, msg.op, fingerprint(msg));
|
|
7235
7273
|
if (begun.kind === "conflict") return result(deviceId, msg.op, "rejected", "conflict");
|
|
7236
|
-
if (begun.kind === "replay") return result(deviceId, msg.op, begun.record.status, begun.record.reason, begun.record.models);
|
|
7274
|
+
if (begun.kind === "replay") return result(deviceId, msg.op, begun.record.status, begun.record.reason, begun.record.models, begun.record.how);
|
|
7237
7275
|
let outcome;
|
|
7238
7276
|
try {
|
|
7239
7277
|
result(deviceId, msg.op, "received");
|
|
@@ -7242,8 +7280,8 @@ function createPhoneGateway(deps) {
|
|
|
7242
7280
|
log2(`phone ${msg.type} failed (${e instanceof Error ? e.name : "error"})`);
|
|
7243
7281
|
outcome = { status: "failed" };
|
|
7244
7282
|
}
|
|
7245
|
-
registry.finish(msg.op, outcome.status, outcome.reason, outcome.models);
|
|
7246
|
-
result(deviceId, msg.op, outcome.status, outcome.reason, outcome.models);
|
|
7283
|
+
registry.finish(msg.op, outcome.status, outcome.reason, outcome.models, outcome.how);
|
|
7284
|
+
result(deviceId, msg.op, outcome.status, outcome.reason, outcome.models, outcome.how);
|
|
7247
7285
|
if (msg.type === "credential.register" && outcome.status === "applied" && approved(deviceId)) push(deviceId, snapshot(deviceId), "snapshot");
|
|
7248
7286
|
if (msg.type === "device.forget" && outcome.status === "applied") {
|
|
7249
7287
|
let timer;
|
|
@@ -7380,6 +7418,14 @@ function createPhoneGateway(deps) {
|
|
|
7380
7418
|
const challenge = deps.challenges.issue({ deviceId, purpose: "launch", subject: msg.qid });
|
|
7381
7419
|
return push(deviceId, { type: "confirm.challenge", purpose: "launch", challenge, rpId: rp.rpId, credentialId: cred.id, expiresInMs: CHALLENGE_TTL_MS });
|
|
7382
7420
|
}
|
|
7421
|
+
if ((msg.purpose === "close" || msg.purpose === "act") && msg.qid === void 0 && msg.id !== void 0) {
|
|
7422
|
+
if (!deps.closeSession) return invalid2();
|
|
7423
|
+
if (!live3(msg.id)) return push(deviceId, { type: "error", code: "unknown_session", request: msg.type });
|
|
7424
|
+
const cred = deps.credential(deviceId);
|
|
7425
|
+
if (!cred || cred.rpId !== rp.rpId) return invalid2();
|
|
7426
|
+
const challenge = deps.challenges.issue({ deviceId, purpose: msg.purpose, subject: sessionSubject(msg.id) });
|
|
7427
|
+
return push(deviceId, { type: "confirm.challenge", purpose: msg.purpose, challenge, rpId: rp.rpId, credentialId: cred.id, expiresInMs: CHALLENGE_TTL_MS });
|
|
7428
|
+
}
|
|
7383
7429
|
if (msg.purpose === "close") {
|
|
7384
7430
|
if (msg.qid === void 0 || !ownTurn(deviceId, msg.qid)) return invalid2();
|
|
7385
7431
|
const cred = deps.credential(deviceId);
|
|
@@ -7444,7 +7490,7 @@ function createPhoneGateway(deps) {
|
|
|
7444
7490
|
log2(`phone message refused: ${request ?? "?"}`);
|
|
7445
7491
|
const op = OperationIdSchema.safeParse(raw?.op);
|
|
7446
7492
|
if (request === "session.model" && op.success && approved(deviceId)) return push(deviceId, { type: "operation.result", op: op.data, status: "rejected", reason: "invalid" });
|
|
7447
|
-
if ((request !== void 0 && TEAMS_OPERATION_TYPES.includes(request) || request === "push.subscribe" || request === "chat.launch" || request === "chat.close" || request === "chat.act" || request === "chat.ignore" || request === "chat.team" || request === "chat.task" || request === "team.resume" || request === "task.seen") && op.success && approved(deviceId)) return push(deviceId, { type: "operation.result", op: op.data, status: "rejected", reason: "invalid" });
|
|
7493
|
+
if ((request !== void 0 && TEAMS_OPERATION_TYPES.includes(request) || request === "push.subscribe" || request === "chat.launch" || request === "chat.close" || request === "chat.act" || request === "chat.ignore" || request === "chat.team" || request === "chat.task" || request === "team.resume" || request === "task.seen" || request === "session.close" || request === "session.resume") && op.success && approved(deviceId)) return push(deviceId, { type: "operation.result", op: op.data, status: "rejected", reason: "invalid" });
|
|
7448
7494
|
return push(deviceId, { type: "error", code: "invalid", ...request !== void 0 ? { request } : {} });
|
|
7449
7495
|
}
|
|
7450
7496
|
const msg = parsed.data;
|
|
@@ -9072,7 +9118,7 @@ ${now2.prompt}` });
|
|
|
9072
9118
|
if (!s) return refuse(unknownSession(), msg.id);
|
|
9073
9119
|
if (s.state !== "exited") return refuse(new Refusal("the session is still running", "busy"), msg.id);
|
|
9074
9120
|
const key = resumeKey(s);
|
|
9075
|
-
if (!key) return refuse("no conversation to resume", msg.id);
|
|
9121
|
+
if (!key) return refuse({ message: "no conversation to resume", code: "no_conversation" }, msg.id);
|
|
9076
9122
|
const refused = await respawn(s, key, s.model, s.effort);
|
|
9077
9123
|
if (refused) refuse(refused, msg.id);
|
|
9078
9124
|
return;
|
|
@@ -9363,6 +9409,8 @@ ${now2.prompt}` });
|
|
|
9363
9409
|
teamCatalog: true,
|
|
9364
9410
|
// The phone's model switch (#58): `session.model` answers with a code, and `models.list` asks this machine's agents.
|
|
9365
9411
|
models: true,
|
|
9412
|
+
// A session's « Fermer » on the phone: the cards' close, so a close under way (a card's, another phone's) is shared.
|
|
9413
|
+
closeSession: closeForCard,
|
|
9366
9414
|
// The phone's « Mettre à jour le PC » and « Redémarrer le daemon »: the updater Desktop's `update.daemon` uses, progress broadcast.
|
|
9367
9415
|
...opts.updater && opts.daemon ? {
|
|
9368
9416
|
pc: {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ledgeTitleRest
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-K3SDHHZF.js";
|
|
4
4
|
import {
|
|
5
5
|
cleanTopic,
|
|
6
6
|
isArchived,
|
|
7
7
|
sessionTitle
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-7S7ZLGIY.js";
|
|
9
9
|
|
|
10
10
|
// src/daemon/seat.ts
|
|
11
11
|
function teammates(team, sessions) {
|
|
@@ -6,11 +6,11 @@ import {
|
|
|
6
6
|
quoteScalar,
|
|
7
7
|
readSmall,
|
|
8
8
|
scalarValue
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-73YNZ3BN.js";
|
|
10
10
|
import {
|
|
11
11
|
SeatsSchema,
|
|
12
12
|
TeamNameSchema
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-7S7ZLGIY.js";
|
|
14
14
|
import {
|
|
15
15
|
log
|
|
16
16
|
} from "./chunk-6IYPRUQG.js";
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import {
|
|
2
2
|
EFFORT_ARGS,
|
|
3
3
|
MODEL_ARGS
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-TREGH6WM.js";
|
|
5
5
|
import {
|
|
6
6
|
findRole
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-73YNZ3BN.js";
|
|
8
8
|
import {
|
|
9
9
|
exitFile,
|
|
10
10
|
spawnSession
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-K3SDHHZF.js";
|
|
12
12
|
import {
|
|
13
13
|
DaemonRefusedError,
|
|
14
14
|
connect
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-RFFTWAAF.js";
|
|
16
16
|
import {
|
|
17
17
|
PROTOCOL_PORT,
|
|
18
18
|
autonomyArgs
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-7S7ZLGIY.js";
|
|
20
20
|
import {
|
|
21
21
|
realTmux
|
|
22
22
|
} from "./chunk-NLL2EQJ2.js";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CODEX_HOOK_VAR
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-K3SDHHZF.js";
|
|
4
4
|
import {
|
|
5
5
|
connect
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-RFFTWAAF.js";
|
|
7
7
|
import {
|
|
8
8
|
BRIEF_MAX
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-7S7ZLGIY.js";
|
|
10
10
|
|
|
11
11
|
// src/cli/handover.ts
|
|
12
12
|
import { randomUUID } from "crypto";
|
|
@@ -9,9 +9,9 @@ import {
|
|
|
9
9
|
startServer,
|
|
10
10
|
tasksJournal,
|
|
11
11
|
teamsJournal
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-TREGH6WM.js";
|
|
13
13
|
import "./chunk-OLLQBK6N.js";
|
|
14
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-WCBXS3EU.js";
|
|
15
15
|
import {
|
|
16
16
|
QUESTION_TOOLS,
|
|
17
17
|
crossSession,
|
|
@@ -26,11 +26,11 @@ import {
|
|
|
26
26
|
readPeers,
|
|
27
27
|
reduce,
|
|
28
28
|
stripNote
|
|
29
|
-
} from "./chunk-
|
|
30
|
-
import "./chunk-
|
|
29
|
+
} from "./chunk-UWDE365N.js";
|
|
30
|
+
import "./chunk-73YNZ3BN.js";
|
|
31
31
|
import {
|
|
32
32
|
agentMessages
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-K3SDHHZF.js";
|
|
34
34
|
import {
|
|
35
35
|
DEFAULT_RELAY_URL,
|
|
36
36
|
DevicePollResponseSchema,
|
|
@@ -44,10 +44,10 @@ import {
|
|
|
44
44
|
SealedFrameSchema,
|
|
45
45
|
SessionSchema,
|
|
46
46
|
backendOf
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-7S7ZLGIY.js";
|
|
48
48
|
import {
|
|
49
49
|
LEDGE_VERSION
|
|
50
|
-
} from "./chunk-
|
|
50
|
+
} from "./chunk-JZEWCO6X.js";
|
|
51
51
|
import {
|
|
52
52
|
SERVICE,
|
|
53
53
|
inDaemonService,
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CODEX_HOOK_VAR
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-K3SDHHZF.js";
|
|
4
4
|
import {
|
|
5
5
|
connect
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-RFFTWAAF.js";
|
|
7
7
|
import {
|
|
8
8
|
LEDGE_GIVER,
|
|
9
9
|
TASK_TEXT_MAX
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-7S7ZLGIY.js";
|
|
11
11
|
import "./chunk-HOOHS3MX.js";
|
|
12
12
|
import "./chunk-U67V476Y.js";
|
|
13
13
|
|
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
handoverArgs,
|
|
4
4
|
handoverOnClient,
|
|
5
5
|
runHandover
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-XZYQMKKO.js";
|
|
7
|
+
import "./chunk-K3SDHHZF.js";
|
|
8
|
+
import "./chunk-RFFTWAAF.js";
|
|
9
|
+
import "./chunk-7S7ZLGIY.js";
|
|
10
10
|
import "./chunk-HOOHS3MX.js";
|
|
11
11
|
import "./chunk-U67V476Y.js";
|
|
12
12
|
export {
|
|
@@ -8,36 +8,36 @@ import {
|
|
|
8
8
|
seatContext,
|
|
9
9
|
takeImages,
|
|
10
10
|
teammates
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-UWDE365N.js";
|
|
12
12
|
import {
|
|
13
13
|
findRole
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-73YNZ3BN.js";
|
|
15
15
|
import {
|
|
16
16
|
parseLedgeCommand,
|
|
17
17
|
readOnClient,
|
|
18
18
|
sendOnClient
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-MZVMW356.js";
|
|
20
20
|
import {
|
|
21
21
|
taskOnClient
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-ETGOWBUL.js";
|
|
23
23
|
import {
|
|
24
24
|
handoverOnClient
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-XZYQMKKO.js";
|
|
26
26
|
import {
|
|
27
27
|
CODEX_ENV_VAR,
|
|
28
28
|
CODEX_HOOK_VAR,
|
|
29
29
|
codexPlan
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-K3SDHHZF.js";
|
|
31
31
|
import {
|
|
32
32
|
formatWho
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-TNYBWWRO.js";
|
|
34
34
|
import {
|
|
35
35
|
connect,
|
|
36
36
|
sendMessageAndAwaitAck
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-RFFTWAAF.js";
|
|
38
38
|
import {
|
|
39
39
|
taskClosed
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-7S7ZLGIY.js";
|
|
41
41
|
import {
|
|
42
42
|
log
|
|
43
43
|
} from "./chunk-6IYPRUQG.js";
|
package/dist/cli/index.js
CHANGED
|
@@ -25,7 +25,7 @@ async function hookMain(args) {
|
|
|
25
25
|
try {
|
|
26
26
|
const chunks = [];
|
|
27
27
|
for await (const c of process.stdin) chunks.push(c);
|
|
28
|
-
const { runHook } = await import("./hook-
|
|
28
|
+
const { runHook } = await import("./hook-3VKVD4IP.js");
|
|
29
29
|
const out = await runHook(event, Buffer.concat(chunks).toString("utf8"), { tool });
|
|
30
30
|
if (out) process.stdout.write(`${out}
|
|
31
31
|
`);
|
|
@@ -37,7 +37,7 @@ async function main(argv) {
|
|
|
37
37
|
const [cmd, ...rest] = argv;
|
|
38
38
|
switch (cmd) {
|
|
39
39
|
case "daemon": {
|
|
40
|
-
const { startDaemon } = await import("./daemon-
|
|
40
|
+
const { startDaemon } = await import("./daemon-ZTZ7VMYA.js");
|
|
41
41
|
await startDaemon();
|
|
42
42
|
await new Promise(() => {
|
|
43
43
|
});
|
|
@@ -45,7 +45,7 @@ async function main(argv) {
|
|
|
45
45
|
}
|
|
46
46
|
case "--version":
|
|
47
47
|
case "version": {
|
|
48
|
-
const { LEDGE_VERSION } = await import("./version-
|
|
48
|
+
const { LEDGE_VERSION } = await import("./version-EHBPJO7K.js");
|
|
49
49
|
console.log(LEDGE_VERSION);
|
|
50
50
|
return 0;
|
|
51
51
|
}
|
|
@@ -66,74 +66,74 @@ async function main(argv) {
|
|
|
66
66
|
return r.ok ? 0 : 1;
|
|
67
67
|
}
|
|
68
68
|
case "status": {
|
|
69
|
-
const { printStatus } = await import("./status-
|
|
69
|
+
const { printStatus } = await import("./status-NONO6E2S.js");
|
|
70
70
|
console.log(await printStatus());
|
|
71
71
|
return 0;
|
|
72
72
|
}
|
|
73
73
|
case "who": {
|
|
74
|
-
const { printWho } = await import("./who-
|
|
74
|
+
const { printWho } = await import("./who-FHAXYCM2.js");
|
|
75
75
|
console.log(await printWho());
|
|
76
76
|
return 0;
|
|
77
77
|
}
|
|
78
78
|
case "send": {
|
|
79
|
-
const { sendMessage } = await import("./send-
|
|
79
|
+
const { sendMessage } = await import("./send-ZLF2ZXMJ.js");
|
|
80
80
|
const r = await sendMessage(rest);
|
|
81
81
|
console.log(r.line);
|
|
82
82
|
return r.code;
|
|
83
83
|
}
|
|
84
84
|
case "read": {
|
|
85
|
-
const { readMessage } = await import("./send-
|
|
85
|
+
const { readMessage } = await import("./send-ZLF2ZXMJ.js");
|
|
86
86
|
const r = await readMessage(rest);
|
|
87
87
|
console.log(r.line);
|
|
88
88
|
return r.code;
|
|
89
89
|
}
|
|
90
90
|
case "task": {
|
|
91
|
-
const { runTask } = await import("./task-
|
|
91
|
+
const { runTask } = await import("./task-47MVWDCY.js");
|
|
92
92
|
const r = await runTask(rest);
|
|
93
93
|
console.log(r.line);
|
|
94
94
|
return r.code;
|
|
95
95
|
}
|
|
96
96
|
case "decide": {
|
|
97
|
-
const { runDecide } = await import("./decide-
|
|
97
|
+
const { runDecide } = await import("./decide-4BIYS3Y2.js");
|
|
98
98
|
const r = await runDecide(rest);
|
|
99
99
|
console.log(r.line);
|
|
100
100
|
return r.code;
|
|
101
101
|
}
|
|
102
102
|
case "handover": {
|
|
103
|
-
const { runHandover } = await import("./handover-
|
|
103
|
+
const { runHandover } = await import("./handover-IS7BJYGZ.js");
|
|
104
104
|
const r = await runHandover(rest);
|
|
105
105
|
console.log(r.line);
|
|
106
106
|
return r.code;
|
|
107
107
|
}
|
|
108
108
|
case "close": {
|
|
109
|
-
const { runClose } = await import("./action-
|
|
109
|
+
const { runClose } = await import("./action-MAPPYLUM.js");
|
|
110
110
|
const r = await runClose(rest);
|
|
111
111
|
console.log(r.line);
|
|
112
112
|
return r.code;
|
|
113
113
|
}
|
|
114
114
|
case "team": {
|
|
115
|
-
const { runTeam } = await import("./team-
|
|
115
|
+
const { runTeam } = await import("./team-EJ4YIXJH.js");
|
|
116
116
|
const r = await runTeam(rest);
|
|
117
117
|
console.log(r.line);
|
|
118
118
|
return r.code;
|
|
119
119
|
}
|
|
120
120
|
case "tui": {
|
|
121
|
-
const { runTui } = await import("./tui-
|
|
121
|
+
const { runTui } = await import("./tui-CAP4O4YQ.js");
|
|
122
122
|
return runTui(rest);
|
|
123
123
|
}
|
|
124
124
|
case "bridge": {
|
|
125
|
-
const { bridge } = await import("./bridge-
|
|
125
|
+
const { bridge } = await import("./bridge-TWX4V37E.js");
|
|
126
126
|
await bridge();
|
|
127
127
|
return 0;
|
|
128
128
|
}
|
|
129
129
|
case "claude":
|
|
130
130
|
case "codex":
|
|
131
131
|
case "cursor": {
|
|
132
|
-
const { launch } = await import("./launch-
|
|
132
|
+
const { launch } = await import("./launch-XAPN2M3Q.js");
|
|
133
133
|
return launch(cmd, rest);
|
|
134
134
|
}
|
|
135
135
|
case "attach": {
|
|
136
|
-
const { attach } = await import("./attach-
|
|
136
|
+
const { attach } = await import("./attach-OC64CLB2.js");
|
|
137
137
|
return attach(rest.find((a) => !a.startsWith("--")) ?? "", { readOnly: rest.includes("--read-only") });
|
|
138
138
|
}
|
|
139
139
|
default:
|
|
@@ -6,18 +6,18 @@ import {
|
|
|
6
6
|
launch,
|
|
7
7
|
parseLaunchArgs,
|
|
8
8
|
roleArgs
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-WIUJNSAZ.js";
|
|
10
|
+
import "./chunk-TREGH6WM.js";
|
|
11
11
|
import "./chunk-OLLQBK6N.js";
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-WCBXS3EU.js";
|
|
13
|
+
import "./chunk-UWDE365N.js";
|
|
14
|
+
import "./chunk-73YNZ3BN.js";
|
|
15
15
|
import {
|
|
16
16
|
agentEnv,
|
|
17
17
|
exitFile
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
18
|
+
} from "./chunk-K3SDHHZF.js";
|
|
19
|
+
import "./chunk-RFFTWAAF.js";
|
|
20
|
+
import "./chunk-7S7ZLGIY.js";
|
|
21
21
|
import "./chunk-NLL2EQJ2.js";
|
|
22
22
|
import "./chunk-6IYPRUQG.js";
|
|
23
23
|
import "./chunk-HOOHS3MX.js";
|
|
@@ -4,10 +4,10 @@ import {
|
|
|
4
4
|
readOnClient,
|
|
5
5
|
sendMessage,
|
|
6
6
|
sendOnClient
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-MZVMW356.js";
|
|
8
|
+
import "./chunk-K3SDHHZF.js";
|
|
9
|
+
import "./chunk-RFFTWAAF.js";
|
|
10
|
+
import "./chunk-7S7ZLGIY.js";
|
|
11
11
|
import "./chunk-HOOHS3MX.js";
|
|
12
12
|
import "./chunk-U67V476Y.js";
|
|
13
13
|
export {
|
|
@@ -4,10 +4,10 @@ import {
|
|
|
4
4
|
runTask,
|
|
5
5
|
taskArgs,
|
|
6
6
|
taskOnClient
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-ETGOWBUL.js";
|
|
8
|
+
import "./chunk-K3SDHHZF.js";
|
|
9
|
+
import "./chunk-RFFTWAAF.js";
|
|
10
|
+
import "./chunk-7S7ZLGIY.js";
|
|
11
11
|
import "./chunk-HOOHS3MX.js";
|
|
12
12
|
import "./chunk-U67V476Y.js";
|
|
13
13
|
export {
|
|
@@ -4,20 +4,20 @@ import {
|
|
|
4
4
|
callerOf,
|
|
5
5
|
resultLine,
|
|
6
6
|
runOnClient
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-353WRRGG.js";
|
|
8
8
|
import {
|
|
9
9
|
listDefinitions
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
10
|
+
} from "./chunk-WCBXS3EU.js";
|
|
11
|
+
import "./chunk-73YNZ3BN.js";
|
|
12
|
+
import "./chunk-K3SDHHZF.js";
|
|
13
13
|
import {
|
|
14
14
|
connect
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-RFFTWAAF.js";
|
|
16
16
|
import {
|
|
17
17
|
RoleIdSchema,
|
|
18
18
|
SeatsSchema,
|
|
19
19
|
ToolSchema
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-7S7ZLGIY.js";
|
|
21
21
|
import "./chunk-6IYPRUQG.js";
|
|
22
22
|
import "./chunk-HOOHS3MX.js";
|
|
23
23
|
import "./chunk-U67V476Y.js";
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
2
|
attachEnv
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-WIUJNSAZ.js";
|
|
4
4
|
import {
|
|
5
5
|
imageInfo
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-TREGH6WM.js";
|
|
7
7
|
import {
|
|
8
8
|
MAX_FRAME
|
|
9
9
|
} from "./chunk-OLLQBK6N.js";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-WCBXS3EU.js";
|
|
11
|
+
import "./chunk-UWDE365N.js";
|
|
12
|
+
import "./chunk-73YNZ3BN.js";
|
|
13
|
+
import "./chunk-K3SDHHZF.js";
|
|
14
|
+
import "./chunk-RFFTWAAF.js";
|
|
15
15
|
import {
|
|
16
16
|
ACTION_ERROR_CODES,
|
|
17
17
|
ATTACHMENTS_MAX,
|
|
@@ -43,7 +43,7 @@ import {
|
|
|
43
43
|
readDaemonToken,
|
|
44
44
|
taskClosed,
|
|
45
45
|
transmissions
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-7S7ZLGIY.js";
|
|
47
47
|
import "./chunk-NLL2EQJ2.js";
|
|
48
48
|
import "./chunk-6IYPRUQG.js";
|
|
49
49
|
import {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
formatWho,
|
|
3
3
|
printWho
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-TNYBWWRO.js";
|
|
5
|
+
import "./chunk-RFFTWAAF.js";
|
|
6
|
+
import "./chunk-7S7ZLGIY.js";
|
|
7
7
|
import "./chunk-HOOHS3MX.js";
|
|
8
8
|
import "./chunk-U67V476Y.js";
|
|
9
9
|
export {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@paradow/ledge",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.29.0",
|
|
4
4
|
"description": "Follow and answer your WSL agent sessions (Claude Code, Codex, Cursor Agent) from the Ledge island on Windows.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": { "ledge": "dist/cli/index.js" },
|