@stringsync/splates 0.0.45 → 0.0.46
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/README.md +121 -9
- package/artifact.d.ts +3 -30
- package/budget.d.ts +3 -0
- package/coordinator.d.ts +3 -0
- package/creds.d.ts +3 -123
- package/flags.d.ts +37 -0
- package/index.js +729 -26375
- package/lane.d.ts +3 -55
- package/main.d.ts +6 -0
- package/package.json +3 -42
- package/projects.d.ts +3 -136
- package/queue.d.ts +3 -0
- package/setup.d.ts +16 -98
- package/slots.d.ts +3 -135
- package/splates.d.ts +1 -19
- package/todo.d.ts +3 -146
- package/{splates-tunnel.d.ts → tunnel.d.ts} +1 -1
- package/{splates-worker.d.ts → worker.d.ts} +1 -1
- package/acp-extensions.d.ts +0 -82
- package/add.d.ts +0 -53
- package/adherence.d.ts +0 -49
- package/age.d.ts +0 -2
- package/agent-connection.d.ts +0 -171
- package/agent-errors.d.ts +0 -2
- package/agent-process.d.ts +0 -65
- package/agent-stream.d.ts +0 -91
- package/agents.d.ts +0 -15
- package/artifact-room.d.ts +0 -47
- package/artifact-viewers.d.ts +0 -6
- package/artifacts.d.ts +0 -161
- package/asked.d.ts +0 -146
- package/asked.js +0 -7
- package/assumed.d.ts +0 -34
- package/attach.d.ts +0 -30
- package/attachments.d.ts +0 -43
- package/baselines.d.ts +0 -55
- package/claim.d.ts +0 -17
- package/cloudflare-api.d.ts +0 -25
- package/cloudflare-error.d.ts +0 -5
- package/cloudflared-tunnel-provider.d.ts +0 -27
- package/codex-limits.d.ts +0 -19
- package/compaction.d.ts +0 -17
- package/config-source.d.ts +0 -13
- package/config.d.ts +0 -98
- package/config.js +0 -7
- package/conversation-archive.d.ts +0 -6
- package/conversation-background.d.ts +0 -21
- package/conversation-choice.d.ts +0 -4
- package/conversation-files.d.ts +0 -51
- package/conversation-given.d.ts +0 -8
- package/conversation-host.d.ts +0 -102
- package/conversation-listing.d.ts +0 -15
- package/conversation-log.d.ts +0 -301
- package/conversation-messages.d.ts +0 -18
- package/conversation-name.d.ts +0 -28
- package/conversation-options.d.ts +0 -73
- package/conversation-reference.d.ts +0 -2
- package/conversation-state.d.ts +0 -472
- package/conversation-turns.d.ts +0 -115
- package/conversation.d.ts +0 -209
- package/conversations.d.ts +0 -140
- package/coordinator-state.d.ts +0 -28
- package/darwin-temperature.d.ts +0 -7
- package/decided.d.ts +0 -18
- package/demo.d.ts +0 -29
- package/dev/api.d.ts +0 -209
- package/dev/assets.d.ts +0 -24
- package/dev/conversation-address.d.ts +0 -47
- package/dev/conversation-feed.d.ts +0 -166
- package/dev/live-stream.d.ts +0 -29
- package/dev/worker.d.ts +0 -33
- package/dev-access.d.ts +0 -61
- package/dev-artifacts.d.ts +0 -22
- package/dev-budgets.d.ts +0 -18
- package/dev-conversation-events.d.ts +0 -39
- package/dev-conversation-routes.d.ts +0 -90
- package/dev-creds.d.ts +0 -17
- package/dev-dictation-connection.d.ts +0 -18
- package/dev-dictation.d.ts +0 -17
- package/dev-http.d.ts +0 -76
- package/dev-open.d.ts +0 -15
- package/dev-options.d.ts +0 -133
- package/dev-outcomes.d.ts +0 -21
- package/dev-pages.d.ts +0 -16
- package/dev-picker.d.ts +0 -57
- package/dev-port-socket.d.ts +0 -26
- package/dev-ports.d.ts +0 -11
- package/dev-project-watch.d.ts +0 -44
- package/dev-project.d.ts +0 -168
- package/dev-push.d.ts +0 -59
- package/dev-restart.d.ts +0 -141
- package/dev-servers.d.ts +0 -30
- package/dev-setup-native.d.ts +0 -23
- package/dev-setup-opencode.d.ts +0 -29
- package/dev-setup.d.ts +0 -16
- package/dev-shell.d.ts +0 -70
- package/dev-slot.d.ts +0 -28
- package/dev-sockets.d.ts +0 -13
- package/dev-task-ports.d.ts +0 -73
- package/dev-tasks.d.ts +0 -20
- package/dev-terminal-connection.d.ts +0 -19
- package/dev-terminal.d.ts +0 -42
- package/dev-todos.d.ts +0 -35
- package/dev-transcriber.d.ts +0 -15
- package/dev-tunnel.d.ts +0 -38
- package/dev-versions.d.ts +0 -53
- package/dev-workers.d.ts +0 -55
- package/dev.d.ts +0 -24
- package/diff.d.ts +0 -29
- package/dispatched.d.ts +0 -16
- package/editors.d.ts +0 -22
- package/escalate.d.ts +0 -27
- package/events.d.ts +0 -311
- package/everywhere.d.ts +0 -41
- package/exhibit.d.ts +0 -21
- package/exit.d.ts +0 -54
- package/fact-todos.d.ts +0 -18
- package/fake-agent.d.ts +0 -107
- package/fake-agent.js +0 -284
- package/finding-facts.d.ts +0 -38
- package/findings.d.ts +0 -84
- package/fold.d.ts +0 -43
- package/follow.d.ts +0 -41
- package/format.d.ts +0 -68
- package/git.d.ts +0 -112
- package/handed-out.d.ts +0 -79
- package/handoff.d.ts +0 -23
- package/heavy-run.d.ts +0 -12
- package/heavy.d.ts +0 -28
- package/heavy.js +0 -16
- package/held.d.ts +0 -22
- package/index-0tfvy823.js +0 -272
- package/index-43pq33n4.js +0 -157
- package/index-4776671w.js +0 -698
- package/index-d4hjrzaq.js +0 -464
- package/index-gcfq7awr.js +0 -740
- package/index-k73tsw5g.js +0 -101
- package/index-kaa44k7q.js +0 -59
- package/index-vcv9m93e.js +0 -1265
- package/index-xmfmy729.js +0 -249
- package/init.d.ts +0 -28
- package/journal.d.ts +0 -57
- package/landed.d.ts +0 -14
- package/lane-todos.d.ts +0 -44
- package/lanes-from-tags.d.ts +0 -17
- package/lanes.d.ts +0 -96
- package/legacy-names.d.ts +0 -70
- package/legacy-ps.d.ts +0 -31
- package/limits.d.ts +0 -32
- package/list.d.ts +0 -18
- package/load-config.d.ts +0 -44
- package/log.d.ts +0 -14
- package/machine.d.ts +0 -42
- package/merge.d.ts +0 -35
- package/migrate-config.d.ts +0 -31
- package/models.d.ts +0 -24
- package/needs.d.ts +0 -115
- package/notices.d.ts +0 -39
- package/offered.d.ts +0 -39
- package/opencode-usage.d.ts +0 -37
- package/outcomes.d.ts +0 -114
- package/path.d.ts +0 -13
- package/plan.d.ts +0 -236
- package/port-forward.d.ts +0 -22
- package/port-pipe.d.ts +0 -36
- package/ports-list.d.ts +0 -19
- package/probe-runtime.d.ts +0 -5
- package/probe-runtime.js +0 -13
- package/project-reaches.d.ts +0 -23
- package/prompts.d.ts +0 -128
- package/pty.d.ts +0 -39
- package/pulse.d.ts +0 -8
- package/recommend.d.ts +0 -31
- package/release.d.ts +0 -41
- package/remote-process.d.ts +0 -26
- package/remote-pty.d.ts +0 -29
- package/remote-worker.d.ts +0 -77
- package/remove.d.ts +0 -31
- package/repository.d.ts +0 -91
- package/retry.d.ts +0 -34
- package/roster.d.ts +0 -63
- package/saved-ports-host.d.ts +0 -25
- package/saved-tunnel.d.ts +0 -44
- package/server-worker-socket.d.ts +0 -21
- package/setup-areas.d.ts +0 -7
- package/setup-opencode-model-error.d.ts +0 -3
- package/setup-opencode-models.d.ts +0 -54
- package/setup-opencode-recipe.d.ts +0 -26
- package/setup-opencode.d.ts +0 -46
- package/shared-browser.d.ts +0 -50
- package/shell.d.ts +0 -17
- package/show.d.ts +0 -106
- package/skill-checks.d.ts +0 -73
- package/skill-checks.js +0 -10
- package/skills.d.ts +0 -16
- package/slot-tunnel.d.ts +0 -27
- package/snapshot.d.ts +0 -75
- package/splates-artifact.d.ts +0 -3
- package/splates-creds.d.ts +0 -3
- package/splates-dev.d.ts +0 -22
- package/splates-flags.d.ts +0 -34
- package/splates-lane.d.ts +0 -3
- package/splates-projects.d.ts +0 -3
- package/splates-setup.d.ts +0 -17
- package/splates-slots.d.ts +0 -3
- package/splates-todo.d.ts +0 -3
- package/stats.d.ts +0 -186
- package/supervise.d.ts +0 -50
- package/system-changes.d.ts +0 -67
- package/system.d.ts +0 -28
- package/systems.d.ts +0 -119
- package/systems.js +0 -21
- package/table.d.ts +0 -5
- package/task-log.d.ts +0 -35
- package/task-ports.d.ts +0 -25
- package/tell.d.ts +0 -47
- package/todo-edit.d.ts +0 -60
- package/todo-file.d.ts +0 -6
- package/todo-lanes.d.ts +0 -82
- package/todo-list.d.ts +0 -26
- package/todo-take.d.ts +0 -27
- package/todos.d.ts +0 -157
- package/tool-calls.d.ts +0 -18
- package/tunnel-provider.d.ts +0 -37
- package/tunnel-provider.js +0 -0
- package/tunnel-remove.d.ts +0 -28
- package/tunnel-setup.d.ts +0 -104
- package/unix-worker-listener.d.ts +0 -23
- package/unix-worker-socket.d.ts +0 -30
- package/update.d.ts +0 -29
- package/update.js +0 -10
- package/vocabulary.d.ts +0 -9
- package/wait.d.ts +0 -36
- package/watch.d.ts +0 -46
- package/watched.d.ts +0 -43
- package/websocket-worker-socket.d.ts +0 -18
- package/worker-call-host.d.ts +0 -51
- package/worker-channel.d.ts +0 -83
- package/worker-connection.d.ts +0 -24
- package/worker-daemon.d.ts +0 -64
- package/worker-git.d.ts +0 -18
- package/worker-list.d.ts +0 -49
- package/worker-machine.d.ts +0 -34
- package/worker-port-host.d.ts +0 -21
- package/worker-process-host.d.ts +0 -29
- package/worker-protocol.d.ts +0 -104
- package/worker-pty-host.d.ts +0 -34
- package/worker-registry.d.ts +0 -68
- package/worker-replay.d.ts +0 -25
- package/worker-run.d.ts +0 -20
- package/worker-session.d.ts +0 -189
- package/worker-socket.d.ts +0 -15
- package/worktree-service.d.ts +0 -113
- package/worktree.d.ts +0 -232
package/agent-stream.d.ts
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import type * as acp from "@agentclientprotocol/sdk";
|
|
2
|
-
import { type Eventful } from "webappwiz/events";
|
|
3
|
-
import type { AgentProcess } from "./agent-process.js";
|
|
4
|
-
/** What an `AgentStream` says beyond the messages it carries. */
|
|
5
|
-
export interface AgentStreamEvents extends Record<string, unknown> {
|
|
6
|
-
/** A message of the frame with this seq is being handed over. */
|
|
7
|
-
handling: number;
|
|
8
|
-
/** Every message of the frame with this seq has been dispatched. */
|
|
9
|
-
dispatched: number;
|
|
10
|
-
/** A response to a request sent before this stream, by an id under its base. */
|
|
11
|
-
stale: acp.AnyResponse;
|
|
12
|
-
/** A request this side sent, by the id it went out with. */
|
|
13
|
-
request: {
|
|
14
|
-
id: number;
|
|
15
|
-
method: string;
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
export interface AgentStreamOptions {
|
|
19
|
-
/**
|
|
20
|
-
* Where this side's request ids start: after a restart, give one past the
|
|
21
|
-
* highest id the log holds, so a late answer to an old request comes
|
|
22
|
-
* back as `stale` rather than as an answer to a new one.
|
|
23
|
-
*/
|
|
24
|
-
base?: number;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* ACP over an agent's frames, for the SDK's connection to read and write. It
|
|
28
|
-
* hands over one message at a time and waits for the connection to have
|
|
29
|
-
* handled it before the next, so `seq` names the frame of the message being
|
|
30
|
-
* handled while its handler runs. Lines are held until a frame ends on a
|
|
31
|
-
* newline, so a replay from past `dispatched` starts at a line and repeats
|
|
32
|
-
* none.
|
|
33
|
-
*/
|
|
34
|
-
export declare class AgentStream implements acp.Stream, Eventful<AgentStreamEvents> {
|
|
35
|
-
private readonly process;
|
|
36
|
-
readonly readable: ReadableStream<acp.AnyMessage>;
|
|
37
|
-
readonly writable: WritableStream<acp.AnyMessage>;
|
|
38
|
-
private readonly dispatcher;
|
|
39
|
-
readonly events: import("webappwiz/events").Events<AgentStreamEvents>;
|
|
40
|
-
/** Added to every request id sent. */
|
|
41
|
-
readonly base: number;
|
|
42
|
-
private readonly frames;
|
|
43
|
-
private more;
|
|
44
|
-
private ended;
|
|
45
|
-
/** Text since the last frame that ended on a newline. */
|
|
46
|
-
private partial;
|
|
47
|
-
private _seq;
|
|
48
|
-
private _dispatched;
|
|
49
|
-
private _lastId;
|
|
50
|
-
private _asking;
|
|
51
|
-
/** Whether a frame has been handed over in part, which `detach` lets finish. */
|
|
52
|
-
private midFrame;
|
|
53
|
-
private detaching;
|
|
54
|
-
private writer;
|
|
55
|
-
private writing;
|
|
56
|
-
constructor(process: AgentProcess, { base }?: AgentStreamOptions);
|
|
57
|
-
/** The seq of the frame the message being handled came in, 0 before the first. */
|
|
58
|
-
get seq(): number;
|
|
59
|
-
/** The highest seq every message of whose frame has been handled. */
|
|
60
|
-
get dispatched(): number;
|
|
61
|
-
/** The id the last request this side sent went out with; null before the first. */
|
|
62
|
-
get lastId(): number | null;
|
|
63
|
-
/**
|
|
64
|
-
* The id of the agent's request being handled, for a handler to log
|
|
65
|
-
* what it is answering; null while the message being handled is not one.
|
|
66
|
-
*/
|
|
67
|
-
get asking(): acp.JsonRpcId | null;
|
|
68
|
-
/**
|
|
69
|
-
* Stops handing messages over at the end of the frame being handled, so
|
|
70
|
-
* a log flushed after this holds whole frames only, and settles once it
|
|
71
|
-
* has: the frames after it stay with the process for the next stream.
|
|
72
|
-
*/
|
|
73
|
-
detach(): Promise<void>;
|
|
74
|
-
/**
|
|
75
|
-
* Answers request `id` of the agent's as it was on the wire, for one a
|
|
76
|
-
* log holds from before this stream, which the connection never heard.
|
|
77
|
-
*/
|
|
78
|
-
respond(id: acp.JsonRpcId, answer: {
|
|
79
|
-
result: unknown;
|
|
80
|
-
} | {
|
|
81
|
-
error: acp.ErrorResponse;
|
|
82
|
-
}): Promise<void>;
|
|
83
|
-
private read;
|
|
84
|
-
private pull;
|
|
85
|
-
private finish;
|
|
86
|
-
/** A response to this side's request, with the id it asked by; or null for one handed back as stale. */
|
|
87
|
-
private incoming;
|
|
88
|
-
private outgoing;
|
|
89
|
-
private send;
|
|
90
|
-
private input;
|
|
91
|
-
}
|
package/agents.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { type Logger } from "webappwiz/log";
|
|
2
|
-
import type { Roster } from "./roster.js";
|
|
3
|
-
export interface AgentsOptions {
|
|
4
|
-
/** Print the roster as JSON instead of tables. */
|
|
5
|
-
json?: boolean;
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* The roster: each agent, how it starts, and its models with what each is
|
|
9
|
-
* good at and costs, for an orchestrator choosing whom to delegate to. Writes
|
|
10
|
-
* the defaults first when there is none, and says where, so they can be edited.
|
|
11
|
-
*/
|
|
12
|
-
export declare function agents({ roster, log }: {
|
|
13
|
-
roster: Roster;
|
|
14
|
-
log: Logger;
|
|
15
|
-
}, { json }?: AgentsOptions): Promise<void>;
|
package/artifact-room.d.ts
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import type { Fs } from "webappwiz/system";
|
|
2
|
-
import { type Artifacts, type ArtifactVersion } from "./artifacts.js";
|
|
3
|
-
/**
|
|
4
|
-
* Room for artifacts across a project, which every conversation's store
|
|
5
|
-
* makes its adds through, one at a time. An add past the project's capacity
|
|
6
|
-
* first evicts the bytes of other versions, in `evictionOrder`, keeping
|
|
7
|
-
* their records as placeholders; when even all of them would not make room,
|
|
8
|
-
* it is refused and nothing goes. Files attached to conversations count
|
|
9
|
-
* toward the capacity but are never evicted: they serve the questions that
|
|
10
|
-
* show them.
|
|
11
|
-
*/
|
|
12
|
-
export declare class ArtifactRoom {
|
|
13
|
-
private readonly deps;
|
|
14
|
-
private queue;
|
|
15
|
-
constructor(deps: {
|
|
16
|
-
fs: Fs;
|
|
17
|
-
/** Where every conversation of the project keeps its files. */
|
|
18
|
-
dir: string;
|
|
19
|
-
/** How many bytes every conversation may keep together. */
|
|
20
|
-
capacity: number;
|
|
21
|
-
/** Every conversation's store, and whether it is archived. */
|
|
22
|
-
shelves: () => ArtifactShelf[];
|
|
23
|
-
});
|
|
24
|
-
/** Runs `work` once every add before it has finished. */
|
|
25
|
-
hold<T>(work: () => Promise<T>): Promise<T>;
|
|
26
|
-
/**
|
|
27
|
-
* Evicts what it must for `bytes` more of the artifact `name` to fit, or
|
|
28
|
-
* refuses `too_large`, evicting nothing, when it cannot.
|
|
29
|
-
*/
|
|
30
|
-
make(bytes: number, name: string): Promise<void>;
|
|
31
|
-
}
|
|
32
|
-
/** One conversation's store, as the room sees it. */
|
|
33
|
-
export interface ArtifactShelf {
|
|
34
|
-
store: Artifacts;
|
|
35
|
-
archived: boolean;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Every version whose bytes are kept, in the order eviction takes them:
|
|
39
|
-
* removed and superseded ones of any conversation first, then the shown ones
|
|
40
|
-
* of archived conversations, then those of live ones; oldest first within
|
|
41
|
-
* each.
|
|
42
|
-
*/
|
|
43
|
-
export declare function evictionOrder(shelves: ArtifactShelf[]): {
|
|
44
|
-
store: Artifacts;
|
|
45
|
-
name: string;
|
|
46
|
-
version: ArtifactVersion;
|
|
47
|
-
}[];
|
package/artifact-viewers.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* How the page shows an artifact of `mimeType`: an image or a recording in
|
|
3
|
-
* the lightbox, a page in a sandboxed frame, or null for one it only offers
|
|
4
|
-
* as a download, which the server sends as an attachment to match.
|
|
5
|
-
*/
|
|
6
|
-
export declare function viewerOf(mimeType: string): "image" | "video" | "page" | null;
|
package/artifacts.d.ts
DELETED
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
import { type IdProvider } from "webappwiz/id";
|
|
2
|
-
import type { Fs } from "webappwiz/system";
|
|
3
|
-
import type { ArtifactRoom } from "./artifact-room.js";
|
|
4
|
-
import type { Config } from "./config.js";
|
|
5
|
-
/**
|
|
6
|
-
* A conversation's artifacts: their bytes, in `artifacts/` beside its log's
|
|
7
|
-
* other files, and their record, `held`, which each change goes to through
|
|
8
|
-
* `record` (the log, then the state) once its bytes are in place. One change
|
|
9
|
-
* at a time, so two adds of one name never take the same version.
|
|
10
|
-
*/
|
|
11
|
-
export declare class Artifacts {
|
|
12
|
-
private readonly deps;
|
|
13
|
-
/** Where the bytes are kept. */
|
|
14
|
-
readonly dir: string;
|
|
15
|
-
/** Where every conversation of the project keeps its files. */
|
|
16
|
-
private readonly conversations;
|
|
17
|
-
private readonly ids;
|
|
18
|
-
private queue;
|
|
19
|
-
constructor(
|
|
20
|
-
/** The conversation's log, whose files directory holds the artifacts. */
|
|
21
|
-
log: string, deps: {
|
|
22
|
-
fs: Fs;
|
|
23
|
-
now: () => string;
|
|
24
|
-
limits: ArtifactLimits;
|
|
25
|
-
ids?: IdProvider;
|
|
26
|
-
/** The record as it stands. */
|
|
27
|
-
held: () => Artifact[];
|
|
28
|
-
/** Keeps `change`, folding it into `held`. */
|
|
29
|
-
record: (change: ArtifactChange) => Promise<void>;
|
|
30
|
-
/**
|
|
31
|
-
* The project's room, which evicts what other versions it must
|
|
32
|
-
* for an add past the project's capacity; without it, as for a
|
|
33
|
-
* CLI that reaches no `splates server`, such an add is refused.
|
|
34
|
-
*/
|
|
35
|
-
room?: ArtifactRoom;
|
|
36
|
-
});
|
|
37
|
-
/** The record as it stands. */
|
|
38
|
-
get held(): Artifact[];
|
|
39
|
-
/**
|
|
40
|
-
* Keeps `file` as the next version of the artifact named for it, listing
|
|
41
|
-
* it again if it was removed. Past the project's capacity, its room evicts
|
|
42
|
-
* what it can first; refuses one past any limit still `too_large`,
|
|
43
|
-
* changing nothing.
|
|
44
|
-
*/
|
|
45
|
-
add(file: ArtifactFile): Promise<ArtifactVersion>;
|
|
46
|
-
/** Marks the artifact `name` removed, keeping every version's bytes for cleanup. */
|
|
47
|
-
remove(name: string): Promise<void>;
|
|
48
|
-
/**
|
|
49
|
-
* Deletes the bytes of `version` of the artifact `name`, saying `why`,
|
|
50
|
-
* and keeps its record, so it shows as a placeholder.
|
|
51
|
-
*/
|
|
52
|
-
delete(name: string, version: number, why: ArtifactGone): Promise<void>;
|
|
53
|
-
/**
|
|
54
|
-
* Deletes the bytes of every version no longer shown, those of removed
|
|
55
|
-
* artifacts and those a later one superseded, as its conversation is
|
|
56
|
-
* archived: what stays is what its panel still lists.
|
|
57
|
-
*/
|
|
58
|
-
archive(): Promise<void>;
|
|
59
|
-
/**
|
|
60
|
-
* The bytes and media type of `version` of the artifact `name`, its
|
|
61
|
-
* current one by default; null when there is no such version or its
|
|
62
|
-
* bytes are gone.
|
|
63
|
-
*/
|
|
64
|
-
read(name: string, version?: number): Promise<{
|
|
65
|
-
bytes: Uint8Array;
|
|
66
|
-
mimeType: string;
|
|
67
|
-
} | null>;
|
|
68
|
-
/**
|
|
69
|
-
* Refuses `file` when it has no name, or when it or this conversation
|
|
70
|
-
* would pass its limit; its size when it fits.
|
|
71
|
-
*/
|
|
72
|
-
private admit;
|
|
73
|
-
/** Writes `file`'s bytes and records them as its name's next version. */
|
|
74
|
-
private keep;
|
|
75
|
-
/** Deletes `version`'s bytes and records that they went, and why. */
|
|
76
|
-
private drop;
|
|
77
|
-
/** The artifact `name`, refusing `not_found` when there is none. */
|
|
78
|
-
private find;
|
|
79
|
-
private serially;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* A file an agent made as an output of its conversation, such as a
|
|
83
|
-
* screenshot, a recording or an HTML page, kept by name for the life of the
|
|
84
|
-
* conversation, whatever task it was made in. Adding the name again makes its
|
|
85
|
-
* next version. Its record stays for good, so one whose bytes went still
|
|
86
|
-
* shows as a placeholder.
|
|
87
|
-
*/
|
|
88
|
-
export interface Artifact {
|
|
89
|
-
name: string;
|
|
90
|
-
/** The `version` of the one shown; the newest, as added. */
|
|
91
|
-
current: number;
|
|
92
|
-
/** Every version, oldest first, numbered from 1. */
|
|
93
|
-
versions: ArtifactVersion[];
|
|
94
|
-
/** When it was removed, its versions kept until cleanup takes them; null while listed. */
|
|
95
|
-
removedAt: string | null;
|
|
96
|
-
}
|
|
97
|
-
/** One version of an artifact: what was added under its name at once. */
|
|
98
|
-
export interface ArtifactVersion {
|
|
99
|
-
version: number;
|
|
100
|
-
/** Its file in the conversation's artifacts directory, named so none collide. */
|
|
101
|
-
file: string;
|
|
102
|
-
mimeType: string;
|
|
103
|
-
/** Its size. */
|
|
104
|
-
bytes: number;
|
|
105
|
-
addedAt: string;
|
|
106
|
-
/** When and why its bytes were deleted, its record kept; null while they are kept. */
|
|
107
|
-
gone: {
|
|
108
|
-
at: string;
|
|
109
|
-
why: ArtifactGone;
|
|
110
|
-
} | null;
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Why a version's bytes went: its conversation was archived, the project ran
|
|
114
|
-
* past its cap, or the person deleted it.
|
|
115
|
-
*/
|
|
116
|
-
export type ArtifactGone = "archived" | "evicted" | "deleted";
|
|
117
|
-
/** A change to a conversation's artifacts, as its log keeps it. */
|
|
118
|
-
export type ArtifactChange = ({
|
|
119
|
-
type: "add";
|
|
120
|
-
name: string;
|
|
121
|
-
} & Omit<ArtifactVersion, "version" | "gone">) | {
|
|
122
|
-
type: "remove";
|
|
123
|
-
name: string;
|
|
124
|
-
at: string;
|
|
125
|
-
} | {
|
|
126
|
-
type: "gone";
|
|
127
|
-
name: string;
|
|
128
|
-
version: number;
|
|
129
|
-
at: string;
|
|
130
|
-
why: ArtifactGone;
|
|
131
|
-
};
|
|
132
|
-
/** A file to keep as an artifact, as the agent hands it over. */
|
|
133
|
-
export interface ArtifactFile {
|
|
134
|
-
name: string;
|
|
135
|
-
mimeType: string;
|
|
136
|
-
bytes: Uint8Array;
|
|
137
|
-
}
|
|
138
|
-
/** How many bytes artifacts may take, each past which an add is refused. */
|
|
139
|
-
export interface ArtifactLimits {
|
|
140
|
-
/** One file. */
|
|
141
|
-
file: number;
|
|
142
|
-
/** Every version one conversation keeps the bytes of. */
|
|
143
|
-
conversation: number;
|
|
144
|
-
/** Every version every conversation in the project keeps the bytes of. */
|
|
145
|
-
project: number;
|
|
146
|
-
}
|
|
147
|
-
/** What `splates.config.ts` leaves the limits at unless it says otherwise. */
|
|
148
|
-
export declare const ARTIFACT_LIMITS: ArtifactLimits;
|
|
149
|
-
/** The limits `config` sets. */
|
|
150
|
-
export declare function artifactLimits(config: Pick<Config, "artifactFileCapacity" | "artifactConversationCapacity" | "artifactProjectCapacity">): ArtifactLimits;
|
|
151
|
-
/** Folds `change` into `artifacts`, as live and as a log is read back. */
|
|
152
|
-
export declare function applyArtifact(artifacts: Artifact[], change: ArtifactChange): void;
|
|
153
|
-
/** Whether `version` is the one its artifact's panel shows: its current, while listed. */
|
|
154
|
-
export declare function shown(artifact: Artifact, version: ArtifactVersion): boolean;
|
|
155
|
-
/**
|
|
156
|
-
* How many bytes every conversation under `dir` keeps, read from disk: its
|
|
157
|
-
* artifacts' and the files attached to it.
|
|
158
|
-
*/
|
|
159
|
-
export declare function projectBytes(fs: Fs, dir: string): Promise<number>;
|
|
160
|
-
/** Refuses an add that would have `what` hold `bytes`, past its `capacity`. */
|
|
161
|
-
export declare function tooLarge(what: string, name: string, bytes: number, capacity: number): never;
|
package/asked.d.ts
DELETED
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
import { type Assumed } from "./assumed.js";
|
|
2
|
-
import { type Demo } from "./demo.js";
|
|
3
|
-
import { type Question } from "./plan.js";
|
|
4
|
-
/**
|
|
5
|
-
* `text` cut where it asks questions: a list numbered from 1 at the margin,
|
|
6
|
-
* outside code blocks, every item a question, the lines indented under each
|
|
7
|
-
* its body and its `- (a)` or `- [a]` choices, read as `## Blocked` reads
|
|
8
|
-
* them. An item is a question when its line ends in `?`, or in `?` and an
|
|
9
|
-
* aside in parentheses: `(all that apply)`; when it goes on past a `?`, which
|
|
10
|
-
* leaves the rest to its body; or when it offers choices. Any other list is
|
|
11
|
-
* only text.
|
|
12
|
-
*/
|
|
13
|
-
export declare function stretches(text: string): Stretch[];
|
|
14
|
-
/**
|
|
15
|
-
* A stretch of an agent's message: markdown as it was written, the questions
|
|
16
|
-
* it asks the person in the splates skill's format, its report asking them to
|
|
17
|
-
* review a task before it merges, a design it proposes, its report of how a task ended or what it
|
|
18
|
-
* waits on or that the lanes it orchestrated are done, its word that it
|
|
19
|
-
* started lanes, a todo it proposes, a demo for the person to try, the calls
|
|
20
|
-
* it made without asking, or its word that it requested a cred.
|
|
21
|
-
*/
|
|
22
|
-
export type Stretch = {
|
|
23
|
-
type: "text";
|
|
24
|
-
text: string;
|
|
25
|
-
} | {
|
|
26
|
-
type: "questions";
|
|
27
|
-
questions: Question[];
|
|
28
|
-
} | {
|
|
29
|
-
type: "review";
|
|
30
|
-
review: Review;
|
|
31
|
-
} | {
|
|
32
|
-
type: "proposal";
|
|
33
|
-
proposal: Proposal;
|
|
34
|
-
} | {
|
|
35
|
-
type: "report";
|
|
36
|
-
report: Report;
|
|
37
|
-
} | {
|
|
38
|
-
type: "start";
|
|
39
|
-
start: LanesStart;
|
|
40
|
-
} | {
|
|
41
|
-
type: "todo";
|
|
42
|
-
todo: TodoProposal;
|
|
43
|
-
} | {
|
|
44
|
-
type: "demo";
|
|
45
|
-
demo: Demo;
|
|
46
|
-
} | {
|
|
47
|
-
type: "assumed";
|
|
48
|
-
assumed: Assumed[];
|
|
49
|
-
};
|
|
50
|
-
/** A review the skill's `## 🔍 Ready to merge` report asks for. */
|
|
51
|
-
export interface Review {
|
|
52
|
-
task: string;
|
|
53
|
-
base: string;
|
|
54
|
-
/** Its first paragraph: what changed, in a sentence, as markdown. */
|
|
55
|
-
summary: string;
|
|
56
|
-
/** The demo it holds, to try before merging. */
|
|
57
|
-
demo: Demo | null;
|
|
58
|
-
/** The commands its `Checks:` line says passed, in order. */
|
|
59
|
-
checks: string[];
|
|
60
|
-
/** The commands its `Failed:` line says failed, in order. */
|
|
61
|
-
failed: string[];
|
|
62
|
-
/** Whatever else it says, past the summary, as markdown. */
|
|
63
|
-
details: string;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* What the agent proposes to do, as the skill's `## 💡 Proposed` report puts
|
|
67
|
-
* it, for the person to approve before it starts. The questions after it are
|
|
68
|
-
* the calls it rests on, those with a `(chosen)` choice already answered.
|
|
69
|
-
*/
|
|
70
|
-
export interface Proposal {
|
|
71
|
-
/** What it proposes, as its title says. */
|
|
72
|
-
subject: string;
|
|
73
|
-
/** What it recommends, and the `####` sections saying why, as markdown. */
|
|
74
|
-
body: string;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* How a task ended, or what it waits on, or that a lane orchestrator is done
|
|
78
|
-
* with its lanes or waits on the person, as the skill's reports title them.
|
|
79
|
-
*/
|
|
80
|
-
export type Ending = "merged" | "removed" | "escalated" | "handed" | "finished" | "waiting" | "working";
|
|
81
|
-
/** A report on a task, or a lane orchestrator's last word on its lanes. */
|
|
82
|
-
export type Report = TaskReport | LanesReport;
|
|
83
|
-
/**
|
|
84
|
-
* A report the skill titles `## ✅ Merged <task> onto <base>`, `## 🛑 Removed
|
|
85
|
-
* <task>: <why>`, `## ⚠️ Escalated <task>: <what it needs>`, `## 🤝 Handed
|
|
86
|
-
* off <task> to <agent>: <why>`, or `## ⏳ Working <task>: on <agent>`, for a
|
|
87
|
-
* task its agent handed on and relays for, as a lane's orchestrator does.
|
|
88
|
-
*/
|
|
89
|
-
export interface TaskReport {
|
|
90
|
-
ending: Exclude<Ending, "finished" | "waiting">;
|
|
91
|
-
task: string;
|
|
92
|
-
/** Where it merged; null for the others. */
|
|
93
|
-
base: string | null;
|
|
94
|
-
/** The agent it was handed off to; null for the others. */
|
|
95
|
-
to: string | null;
|
|
96
|
-
/** What the title says after its colon, if anything. */
|
|
97
|
-
reason: string | null;
|
|
98
|
-
/** What changed, and anything else said before what follows, as markdown. */
|
|
99
|
-
body: string;
|
|
100
|
-
/** The markdown the agent wrote for it, from its title to its end. */
|
|
101
|
-
source: string;
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* The report a lane orchestrator ends on: once every lane it works is done,
|
|
105
|
-
* titled `## 🏁 Finished lanes <name>, <name>`, as there is nothing left for
|
|
106
|
-
* it to hand out; or once each lane not done waits on a task that escalated,
|
|
107
|
-
* titled `## ⏸️ Waiting lanes <name>, <name>: <on what>`, as the person must
|
|
108
|
-
* answer that task before it can go on.
|
|
109
|
-
*/
|
|
110
|
-
export interface LanesReport {
|
|
111
|
-
ending: "finished" | "waiting" | "working";
|
|
112
|
-
/** The lanes' names, as the title lists them. */
|
|
113
|
-
lanes: string[];
|
|
114
|
-
/** What the title says after its colon, if anything. */
|
|
115
|
-
reason: string | null;
|
|
116
|
-
/** How each lane stands, and anything else said, as markdown. */
|
|
117
|
-
body: string;
|
|
118
|
-
/** The markdown the agent wrote for it, from its title to its end. */
|
|
119
|
-
source: string;
|
|
120
|
-
}
|
|
121
|
-
/** What an agent says it is starting on: a task, or a lane orchestrator's lanes. */
|
|
122
|
-
export type Start = TaskStart | LanesStart;
|
|
123
|
-
/** A task the agent added for itself or claimed, its Goal from that event. */
|
|
124
|
-
export interface TaskStart {
|
|
125
|
-
task: string;
|
|
126
|
-
/** What done means, as the task's Goal says, as markdown. */
|
|
127
|
-
goal: string;
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* The lanes an orchestrator says it is starting to work, as `## 🌱 Started
|
|
131
|
-
* lanes <name>, <name>`, what they add up to under it.
|
|
132
|
-
*/
|
|
133
|
-
export interface LanesStart {
|
|
134
|
-
/** The lanes' names, as the title lists them. */
|
|
135
|
-
lanes: string[];
|
|
136
|
-
/** What the lanes add up to, as markdown. */
|
|
137
|
-
goal: string;
|
|
138
|
-
}
|
|
139
|
-
/** A todo the skill proposes as `### 📝 <subject> [#<id>]`. */
|
|
140
|
-
export interface TodoProposal {
|
|
141
|
-
id: number;
|
|
142
|
-
/** The subject as the agent wrote it, which may since have changed. */
|
|
143
|
-
subject: string;
|
|
144
|
-
/** What the todo is and why it matters now, as markdown. */
|
|
145
|
-
body: string;
|
|
146
|
-
}
|
package/asked.js
DELETED
package/assumed.d.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { type Exhibit } from "./exhibit.js";
|
|
2
|
-
import { type Question } from "./plan.js";
|
|
3
|
-
/**
|
|
4
|
-
* A call the agent made without asking, as the skill's `- Assumed <number>:
|
|
5
|
-
* <what>` line says it in a reply: numbered as in its task's `## Assumptions`.
|
|
6
|
-
*/
|
|
7
|
-
export interface Assumed {
|
|
8
|
-
number: string;
|
|
9
|
-
/** What it chose, as the line says it. */
|
|
10
|
-
text: string;
|
|
11
|
-
/** What the reply shows it in, when the line captions an exhibit. */
|
|
12
|
-
exhibit?: Exhibit;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Each of `assumed` as its task's `plan` writes it, matched by number: under
|
|
16
|
-
* `## Assumptions`, or under `## Blocked` once challenged, so a reply that
|
|
17
|
-
* challenged it still reads as it did. One the plan has no item for, as
|
|
18
|
-
* outside a task or once it is gone, is its line alone, with no choices.
|
|
19
|
-
* Either way, one the reply captions an exhibit with shows it, unless the
|
|
20
|
-
* plan already shows it something.
|
|
21
|
-
*/
|
|
22
|
-
export declare function assumedIn(plan: string, assumed: Assumed[]): Question[];
|
|
23
|
-
/** Whether `line` is a reply's `- Assumed <number>:` line. */
|
|
24
|
-
export declare function isAssumed(line: string): boolean;
|
|
25
|
-
/**
|
|
26
|
-
* The run of `- Assumed <number>:` lines from `start`, blank lines between
|
|
27
|
-
* them, and the line after it; null for any other line. An exhibit in the
|
|
28
|
-
* run, `### 🖼️ <title>` and what it shows, is what the lines right after it
|
|
29
|
-
* caption, up to a blank line; one that captions none ends the run.
|
|
30
|
-
*/
|
|
31
|
-
export declare function assumedAt(lines: string[], start: number): {
|
|
32
|
-
assumed: Assumed[];
|
|
33
|
-
end: number;
|
|
34
|
-
} | null;
|
package/attach.d.ts
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { type Logger } from "webappwiz/log";
|
|
2
|
-
import type { Fs, Ps } from "webappwiz/system";
|
|
3
|
-
import type { Git } from "./git.js";
|
|
4
|
-
import type { WorktreeService } from "./worktree-service.js";
|
|
5
|
-
export interface AttachOptions {
|
|
6
|
-
/** Task whose files these are. Defaults to the one `cwd` is a worktree for. */
|
|
7
|
-
task?: string;
|
|
8
|
-
/** Files it holds to drop first, by path or by the name they were stored under. */
|
|
9
|
-
remove?: string[];
|
|
10
|
-
/**
|
|
11
|
-
* Conversation to keep the files with. Defaults to the one whose agent runs
|
|
12
|
-
* the command; with neither, they stay with the task and go when it does.
|
|
13
|
-
*/
|
|
14
|
-
conversation?: string;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Stores files for a task's questions to show, in a folder splates owns, so
|
|
18
|
-
* the screenshots and recordings an agent takes never land in a commit.
|
|
19
|
-
* An agent in a conversation has them kept with it, so a merged task's
|
|
20
|
-
* report card still shows them; any other agent's go when the task merges or
|
|
21
|
-
* is removed. Prints where each was stored, which is the path a question
|
|
22
|
-
* names.
|
|
23
|
-
*/
|
|
24
|
-
export declare function attach(deps: {
|
|
25
|
-
service: WorktreeService;
|
|
26
|
-
git: Git;
|
|
27
|
-
log: Logger;
|
|
28
|
-
fs: Fs;
|
|
29
|
-
ps: Ps;
|
|
30
|
-
}, paths: string[], cwd: string, { task, remove, conversation: given }?: AttachOptions): Promise<string[]>;
|
package/attachments.d.ts
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { type IdProvider } from "webappwiz/id";
|
|
2
|
-
import type { Fs, Ps } from "webappwiz/system";
|
|
3
|
-
/** A file handed over, as bytes so a pasted image needs no temp file. */
|
|
4
|
-
export interface Attachment {
|
|
5
|
-
/** What it was called, kept in the stored name so the files stay apart. */
|
|
6
|
-
name: string;
|
|
7
|
-
bytes: Uint8Array;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* The folder of files that belong to a todo or a task: todo 7's beside its
|
|
11
|
-
* record, in `todos/7/`, and task `login`'s in `tasks/login/`.
|
|
12
|
-
* Under `.git/splates`, so nothing here is ever committed and every tree can
|
|
13
|
-
* open what it holds.
|
|
14
|
-
*/
|
|
15
|
-
export declare class Attachments {
|
|
16
|
-
readonly dir: string;
|
|
17
|
-
private readonly fs;
|
|
18
|
-
private readonly ids;
|
|
19
|
-
constructor(dir: string, fs: Fs, ids?: IdProvider);
|
|
20
|
-
/** Copies each file in, returning the absolute path each was stored at. */
|
|
21
|
-
store(files: Attachment[]): Promise<string[]>;
|
|
22
|
-
/** Each file stored here, by absolute path, with its size in bytes. */
|
|
23
|
-
held(): Promise<{
|
|
24
|
-
path: string;
|
|
25
|
-
bytes: number;
|
|
26
|
-
}[]>;
|
|
27
|
-
/** Whether `path` is one of this folder's files, and not a way out of it. */
|
|
28
|
-
owns(path: string): boolean;
|
|
29
|
-
/** Deletes the files given that are this folder's; others are left alone. */
|
|
30
|
-
remove(paths: string[]): Promise<void>;
|
|
31
|
-
/** Deletes the folder and everything in it. */
|
|
32
|
-
clear(): Promise<void>;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Reads files named on the command line, relative to the current directory or
|
|
36
|
-
* absolute, refusing the whole command over one that cannot be read.
|
|
37
|
-
*/
|
|
38
|
-
export declare function readFiles({ fs, ps }: {
|
|
39
|
-
fs: Fs;
|
|
40
|
-
ps: Ps;
|
|
41
|
-
}, paths: string[]): Promise<Attachment[]>;
|
|
42
|
-
/** The bytes of every file under `dir`, folders included, 0 when it is not there. */
|
|
43
|
-
export declare function folderBytes(fs: Fs, dir: string): Promise<number>;
|
package/baselines.d.ts
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import type { Finding } from "./findings.js";
|
|
2
|
-
import type { Outcome } from "./outcomes.js";
|
|
3
|
-
/** Each project's baseline, over the merged tasks that ended in the window before `now`. */
|
|
4
|
-
export declare function baselines(outcomes: Outcome[], now: Date): Baseline[];
|
|
5
|
-
/**
|
|
6
|
-
* What a project's recent merged tasks were like, so one task can be held
|
|
7
|
-
* against them: each measure's median and 90th percentile, and how often each
|
|
8
|
-
* kind of finding came up.
|
|
9
|
-
*/
|
|
10
|
-
export interface Baseline {
|
|
11
|
-
/** The main tree of the repository. */
|
|
12
|
-
project: string;
|
|
13
|
-
/** Its merged tasks in the window. */
|
|
14
|
-
tasks: number;
|
|
15
|
-
/** Each measure over the tasks that kept it; null with too few to compare against. */
|
|
16
|
-
measures: Record<Measure, Spread | null>;
|
|
17
|
-
/** How many of its tasks had each finding, by `findingKeys`. */
|
|
18
|
-
findings: Record<string, number>;
|
|
19
|
-
}
|
|
20
|
-
/** Where a measure's values fall among a project's tasks. */
|
|
21
|
-
export interface Spread {
|
|
22
|
-
/** The tasks that kept it. */
|
|
23
|
-
tasks: number;
|
|
24
|
-
median: number;
|
|
25
|
-
p90: number;
|
|
26
|
-
}
|
|
27
|
-
/** What a task is held against its project's on. */
|
|
28
|
-
export type Measure =
|
|
29
|
-
/** From add to merge, in milliseconds. */
|
|
30
|
-
"spentMs"
|
|
31
|
-
/** What its own turns cost; Codex says none. */
|
|
32
|
-
| "cost"
|
|
33
|
-
/** Lines added and removed. */
|
|
34
|
-
| "lines"
|
|
35
|
-
/** Calls the person made, asked or challenged. */
|
|
36
|
-
| "decidedByYou" | "failedMerges";
|
|
37
|
-
export declare const MEASURES: readonly Measure[];
|
|
38
|
-
/** Each tuned here, so a comparison that cries wolf is one number to change. */
|
|
39
|
-
export declare const BASELINE: {
|
|
40
|
-
/** How far back the tasks compared against ended. */
|
|
41
|
-
readonly windowMs: number;
|
|
42
|
-
/** Fewer tasks than this keeping a measure, and it gives no comparison. */
|
|
43
|
-
readonly minTasks: 10;
|
|
44
|
-
/** A value is an outlier past the 90th percentile, or this many medians. */
|
|
45
|
-
readonly timesMedian: 2;
|
|
46
|
-
};
|
|
47
|
-
/** What `outcome` shows of each measure; null for one it did not keep. */
|
|
48
|
-
export declare function measured(outcome: Outcome): Record<Measure, number | null>;
|
|
49
|
-
/** Whether `value` stands out from `spread`: never against no spread. */
|
|
50
|
-
export declare function outlier(value: number, spread: Spread | null): boolean;
|
|
51
|
-
/**
|
|
52
|
-
* What a finding counts toward: its kind, and, for one that names what
|
|
53
|
-
* failed, that too, so the same failing test is counted apart from others.
|
|
54
|
-
*/
|
|
55
|
-
export declare function findingKeys(finding: Finding): string[];
|
package/claim.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { type Logger } from "webappwiz/log";
|
|
2
|
-
import type { Fs } from "webappwiz/system";
|
|
3
|
-
import type { WorktreeService } from "./worktree-service.js";
|
|
4
|
-
/**
|
|
5
|
-
* The resume entry point: a fresh agent thread picking up existing work. An
|
|
6
|
-
* escalated task goes back to `working`, since someone is on it again; its
|
|
7
|
-
* merge budget stays as it was, which only `retry` refills.
|
|
8
|
-
*/
|
|
9
|
-
export declare function claim({ service, log, fs }: {
|
|
10
|
-
service: WorktreeService;
|
|
11
|
-
log: Logger;
|
|
12
|
-
fs: Fs;
|
|
13
|
-
}, task: string): Promise<{
|
|
14
|
-
escalated: boolean;
|
|
15
|
-
tookOver: boolean;
|
|
16
|
-
goal: string;
|
|
17
|
-
}>;
|