@plurnk/plurnk 0.71.3 → 0.71.5
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 +2 -2
- package/dist/agui.d.ts +17 -5
- package/dist/agui.d.ts.map +1 -1
- package/dist/agui.js +116 -54
- package/dist/agui.js.map +1 -1
- package/dist/agui_cli.d.ts +10 -11
- package/dist/agui_cli.d.ts.map +1 -1
- package/dist/agui_cli.js +88 -39
- package/dist/agui_cli.js.map +1 -1
- package/dist/build-info.json +1 -1
- package/dist/cli.d.ts +6 -5
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +13 -8
- package/dist/cli.js.map +1 -1
- package/dist/completion.js +1 -1
- package/dist/completion.js.map +1 -1
- package/dist/diagnostics.d.ts +65 -0
- package/dist/diagnostics.d.ts.map +1 -0
- package/dist/diagnostics.js +228 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/dispatcher.d.ts +2 -3
- package/dist/dispatcher.d.ts.map +1 -1
- package/dist/dispatcher.js +80 -74
- package/dist/dispatcher.js.map +1 -1
- package/dist/render.d.ts +2 -3
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +10 -13
- package/dist/render.js.map +1 -1
- package/dist/subcommands.d.ts.map +1 -1
- package/dist/subcommands.js +14 -22
- package/dist/subcommands.js.map +1 -1
- package/dist/transport.d.ts +18 -6
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +90 -33
- package/dist/transport.js.map +1 -1
- package/dist/tui.d.ts +2 -1
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +76 -39
- package/dist/tui.js.map +1 -1
- package/package.json +10 -5
- package/dist/telemetry.d.ts +0 -48
- package/dist/telemetry.d.ts.map +0 -1
- package/dist/telemetry.js +0 -246
- package/dist/telemetry.js.map +0 -1
package/README.md
CHANGED
|
@@ -34,7 +34,7 @@ plurnk models | session list | log read … # read-only subcommands
|
|
|
34
34
|
plurnk --help # full flag list
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
-
**Two output modes.** Default: stdout is the bare answer, stderr the trace — `plurnk "X" > a.txt` captures just the answer. `--json` (or `PLURNK_CLIENT_JSON`): one complete structured document on stdout (`response` + `turns[].ops` + `
|
|
37
|
+
**Two output modes.** Default: stdout is the bare answer, stderr the trace — `plurnk "X" > a.txt` captures just the answer. `--json` (or `PLURNK_CLIENT_JSON`): one complete structured document on stdout (`response` + `turns[].ops` + `notices` + `usage`), stderr silent, failures as RFC 9457 Problems under `{"error":…}`. Op *content* isn't inlined — fetch it on demand with `plurnk read <coord>`. The CLI is the integration layer: shell out, parse — no protocol client to build.
|
|
38
38
|
|
|
39
39
|
**Line language** (converged across the TUI, the CLI prefixes, and plurnk.nvim's `:AI`):
|
|
40
40
|
|
|
@@ -48,7 +48,7 @@ plurnk --help # full flag list
|
|
|
48
48
|
|
|
49
49
|
Tab completes verbs, model aliases, file paths (`/pick`, `@file`), and DSL ops (`<<RE`→`<<READ`). Multi-line paste folds to one prompt.
|
|
50
50
|
|
|
51
|
-
**Key flags:** `--model <alias>` · `--yolo` (client auto-accept) · `--auto` (loop authority) · `--json` · `--workspace/--worker <name>` · `--project-root <p>` · `--max-turns <n>` · `--timeout <s>` · membership `--pick/--hide/--view
|
|
51
|
+
**Key flags:** `--model <alias>` · `--yolo` (client auto-accept) · `--auto` (loop authority) · `--json` · `--workspace/--worker <name>` · `--project-root <p>` · `--max-turns <n>` · `--timeout <s>` · membership `--pick/--hide/--view <glob>` · `--files-items <n>` · `--md NAME=path`.
|
|
52
52
|
|
|
53
53
|
**Env:** `PLURNK_HOST`/`PLURNK_PORT` (the daemon's one client surface, default `127.0.0.1:3044`; `PLURNK_AGUI_URL` overrides for a remote portal) · `PLURNK_CLIENT_WORKSPACE` / `PLURNK_CLIENT_WORKER` · `PLURNK_MODEL` · `PLURNK_CLIENT_YOLO` · `PLURNK_AUTO` · `PLURNK_CLIENT_PROJECT_ROOT`. Shared **`~/.plurnk`** cascade with the daemon: `~/.plurnk/.env.defaults` < `~/.plurnk/.env` < `./.env` < `--env-file`/`--env-file-if-exists` < shell.
|
|
54
54
|
|
package/dist/agui.d.ts
CHANGED
|
@@ -1,16 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
}
|
|
1
|
+
import type { AGUIEvent, ResumeEntry, RunAgentInput } from "@ag-ui/core";
|
|
2
|
+
import { type OperationResult, type ProblemDetails } from "@plurnk/plurnk-contracts";
|
|
3
|
+
export type AguiEvent = AGUIEvent;
|
|
5
4
|
export interface BridgeTarget {
|
|
6
5
|
bridgeUrl: string;
|
|
7
6
|
token?: string;
|
|
8
7
|
}
|
|
8
|
+
export type ActionOutcome<T = unknown> = {
|
|
9
|
+
kind: string;
|
|
10
|
+
ok: true;
|
|
11
|
+
result?: T;
|
|
12
|
+
} | {
|
|
13
|
+
kind: string;
|
|
14
|
+
ok: false;
|
|
15
|
+
problem: ProblemDetails;
|
|
16
|
+
};
|
|
17
|
+
export declare const problemDetails: (value: unknown) => ProblemDetails;
|
|
18
|
+
export declare const operationResult: (value: unknown) => OperationResult;
|
|
19
|
+
export declare const actionOutcome: <T>(value: unknown) => ActionOutcome<T>;
|
|
9
20
|
export declare function runViaBridge(target: BridgeTarget, run: {
|
|
10
21
|
threadId: string;
|
|
11
22
|
workspace?: string;
|
|
12
23
|
prompt?: string;
|
|
13
|
-
messages?:
|
|
24
|
+
messages?: RunAgentInput["messages"];
|
|
25
|
+
resume?: ResumeEntry[];
|
|
14
26
|
runId?: string;
|
|
15
27
|
forwardedProps?: Record<string, unknown>;
|
|
16
28
|
}, signal?: AbortSignal): AsyncGenerator<AguiEvent>;
|
package/dist/agui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agui.d.ts","sourceRoot":"","sources":["../src/agui.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agui.d.ts","sourceRoot":"","sources":["../src/agui.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAEH,KAAK,eAAe,EACpB,KAAK,cAAc,EACtB,MAAM,0BAA0B,CAAC;AAUlC,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC;AAElC,MAAM,WAAW,YAAY;IAAG,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;AAEnE,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,OAAO,IAC/B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,CAAC,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,cAAc,CAAA;CAAE,CAAC;AAE3D,eAAO,MAAM,cAAc,UAAW,OAAO,KAAG,cAM/C,CAAC;AAEF,eAAO,MAAM,eAAe,UAAW,OAAO,KAAG,eAMhD,CAAC;AAWF,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,OAAO,KAAG,aAAa,CAAC,CAAC,CAiBhE,CAAC;AAMF,wBAAuB,YAAY,CAC/B,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EACtL,MAAM,CAAC,EAAE,WAAW,GACrB,cAAc,CAAC,SAAS,CAAC,CA6D3B;AAOD,eAAO,MAAM,YAAY,WACb,YAAY,iBACL,MAAM,GAAG,SAAS,gBACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KACtC,OAAO,CAAC,MAAM,CAOhB,CAAC;AAKF,eAAO,MAAM,eAAe,GAAU,CAAC,GAAG,OAAO,UACrC,YAAY,OACf;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,KACzD,OAAO,CAAC,CAAC,CASX,CAAC"}
|
package/dist/agui.js
CHANGED
|
@@ -1,61 +1,122 @@
|
|
|
1
|
-
// The Node consumer of the plurnk-agui bridge
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
//
|
|
5
|
-
// reference frontend (demo/index.html): POST / for a run, POST /resolve for a
|
|
6
|
-
// stopped-world proposal, POST /plurnk/rpc for the management escape hatch.
|
|
1
|
+
// The Node consumer of the plurnk-agui bridge. Terminal clients POST a run to
|
|
2
|
+
// the bridge and consume the AG-UI SSE projection. This module mirrors the
|
|
3
|
+
// standard AG-UI HTTP/SSE transport: POST / for runs, including interrupt
|
|
4
|
+
// resolution through RunAgentInput.resume.
|
|
7
5
|
//
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
//
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
6
|
+
// The official HttpAgent owns HTTP/SSE parsing and AG-UI event verification.
|
|
7
|
+
// This adapter only preserves the client's async-iterator surface; rendering
|
|
8
|
+
// (waterfall, proposals, gauge) stays local. Plurnk fidelity rides CUSTOM
|
|
9
|
+
// plurnk.* events (especially plurnk.row, the full wire row).
|
|
10
|
+
import { HttpAgent } from "@ag-ui/client";
|
|
11
|
+
import { Validator, } from "@plurnk/plurnk-contracts";
|
|
12
|
+
import { clientActionResultInvalid, clientActionResultMissing, clientTransportProblemInvalid, clientTransportResultInvalid, clientWorkspaceNameMissing, ProblemError, } from "./diagnostics.js";
|
|
13
|
+
export const problemDetails = (value) => {
|
|
14
|
+
try {
|
|
15
|
+
return Validator.assertProblemDetails(value);
|
|
16
|
+
}
|
|
17
|
+
catch (cause) {
|
|
18
|
+
throw new ProblemError(clientTransportProblemInvalid(cause));
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
export const operationResult = (value) => {
|
|
22
|
+
try {
|
|
23
|
+
return Validator.assertOperationResult(value);
|
|
24
|
+
}
|
|
25
|
+
catch (cause) {
|
|
26
|
+
throw new ProblemError(clientTransportResultInvalid(cause));
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
const problemFetch = async (url, requestInit) => {
|
|
30
|
+
const response = await fetch(url, requestInit);
|
|
31
|
+
if (response.ok || response.headers.get("content-type")?.split(";", 1)[0]?.trim() !== "application/problem+json") {
|
|
32
|
+
return response;
|
|
33
|
+
}
|
|
34
|
+
const problem = problemDetails(await response.clone().json());
|
|
35
|
+
throw new ProblemError(problem);
|
|
36
|
+
};
|
|
37
|
+
export const actionOutcome = (value) => {
|
|
38
|
+
if (value === null || typeof value !== "object") {
|
|
39
|
+
throw new ProblemError(clientActionResultInvalid("The event value is not an object."));
|
|
40
|
+
}
|
|
41
|
+
const outcome = value;
|
|
42
|
+
if (typeof outcome.kind !== "string" || outcome.kind.length === 0) {
|
|
43
|
+
throw new ProblemError(clientActionResultInvalid("The event does not contain a non-empty kind."));
|
|
44
|
+
}
|
|
45
|
+
if (outcome.ok === true)
|
|
46
|
+
return { kind: outcome.kind, ok: true, result: outcome.result };
|
|
47
|
+
if (outcome.ok === false) {
|
|
48
|
+
return {
|
|
49
|
+
kind: outcome.kind,
|
|
50
|
+
ok: false,
|
|
51
|
+
problem: problemDetails(outcome.problem),
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
throw new ProblemError(clientActionResultInvalid("The event does not contain a boolean ok."));
|
|
55
|
+
};
|
|
15
56
|
// Run one turn through the bridge, async-yielding each AG-UI event until the
|
|
16
57
|
// bridge ends the stream (it does so after RUN_FINISHED / RUN_ERROR). Breaking
|
|
17
58
|
// out of the iteration drops the connection, which the bridge treats as the abort
|
|
18
59
|
// signal (its req.on("close") cancels the loop) — hanging up IS cancellation.
|
|
19
60
|
export async function* runViaBridge(target, run, signal) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
headers:
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
threadId: run.threadId,
|
|
29
|
-
runId: run.runId,
|
|
30
|
-
messages,
|
|
31
|
-
// The workspace (world) is REQUIRED — a run has no existence without one. The
|
|
32
|
-
// threadId names the CONVERSATION (a run over the world, svc#366); it doubles
|
|
33
|
-
// as the workspace name unless the caller splits them (--worker: thread ≠ world).
|
|
34
|
-
forwardedProps: { plurnk: { workspace: run.workspace ?? run.threadId, ...(run.forwardedProps ?? {}) } },
|
|
35
|
-
}),
|
|
61
|
+
const messages = run.messages
|
|
62
|
+
?? (run.prompt !== undefined ? [{ id: crypto.randomUUID(), role: "user", content: run.prompt }] : []);
|
|
63
|
+
const agent = new HttpAgent({
|
|
64
|
+
url: new URL("/", target.bridgeUrl).href,
|
|
65
|
+
fetch: problemFetch,
|
|
66
|
+
headers: target.token !== undefined && target.token.length > 0
|
|
67
|
+
? { authorization: `Bearer ${target.token}` }
|
|
68
|
+
: {},
|
|
36
69
|
});
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
70
|
+
const input = {
|
|
71
|
+
threadId: run.threadId,
|
|
72
|
+
runId: run.runId ?? crypto.randomUUID(),
|
|
73
|
+
state: {},
|
|
74
|
+
messages,
|
|
75
|
+
tools: [],
|
|
76
|
+
context: [],
|
|
77
|
+
...(run.resume !== undefined ? { resume: run.resume } : {}),
|
|
78
|
+
// The workspace (world) is REQUIRED — a run has no existence without one. The
|
|
79
|
+
// threadId names the CONVERSATION; it doubles as the workspace unless split.
|
|
80
|
+
forwardedProps: { plurnk: { workspace: run.workspace ?? run.threadId, ...(run.forwardedProps ?? {}) } },
|
|
81
|
+
};
|
|
82
|
+
const queue = [];
|
|
83
|
+
let wake = null;
|
|
84
|
+
const push = (item) => {
|
|
85
|
+
queue.push(item);
|
|
86
|
+
wake?.();
|
|
87
|
+
wake = null;
|
|
88
|
+
};
|
|
89
|
+
const onAbort = () => agent.abortRun();
|
|
90
|
+
signal?.addEventListener("abort", onAbort, { once: true });
|
|
91
|
+
const subscription = agent.run(input).subscribe({
|
|
92
|
+
// HttpAgent verifies each BaseEvent at the SDK boundary; AGUIEvent is
|
|
93
|
+
// @ag-ui/core's narrower discriminated view of that validated value.
|
|
94
|
+
next: (event) => push({ kind: "event", event: event }),
|
|
95
|
+
error: (error) => push({ kind: "error", error }),
|
|
96
|
+
complete: () => push({ kind: "done" }),
|
|
97
|
+
});
|
|
98
|
+
if (signal?.aborted)
|
|
99
|
+
onAbort();
|
|
100
|
+
try {
|
|
101
|
+
for (;;) {
|
|
102
|
+
if (queue.length === 0)
|
|
103
|
+
await new Promise((resolve) => { wake = resolve; });
|
|
104
|
+
const item = queue.shift();
|
|
105
|
+
if (item.kind === "event") {
|
|
106
|
+
yield item.event;
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
if (item.kind === "error") {
|
|
110
|
+
throw item.error instanceof Error ? item.error : new Error(String(item.error));
|
|
111
|
+
}
|
|
112
|
+
return;
|
|
57
113
|
}
|
|
58
114
|
}
|
|
115
|
+
finally {
|
|
116
|
+
signal?.removeEventListener("abort", onAbort);
|
|
117
|
+
subscription.unsubscribe();
|
|
118
|
+
agent.abortRun();
|
|
119
|
+
}
|
|
59
120
|
}
|
|
60
121
|
// Resolve the WORLD (workspace) name for a conversation. An explicit name (--workspace)
|
|
61
122
|
// is used verbatim; otherwise the DAEMON mints a fresh, uniquely-named workspace via a
|
|
@@ -66,8 +127,9 @@ export const resolveWorld = async (target, workspaceName, createParams) => {
|
|
|
66
127
|
if (workspaceName !== undefined)
|
|
67
128
|
return workspaceName;
|
|
68
129
|
const created = await actionViaBridge(target, { threadId: "bootstrap", kind: "workspace.create", params: createParams });
|
|
69
|
-
if (typeof created?.name !== "string" || created.name.length === 0)
|
|
70
|
-
throw new
|
|
130
|
+
if (typeof created?.name !== "string" || created.name.length === 0) {
|
|
131
|
+
throw new ProblemError(clientWorkspaceNameMissing());
|
|
132
|
+
}
|
|
71
133
|
return created.name;
|
|
72
134
|
};
|
|
73
135
|
// AG-UI+ verb surface (§3): a management action rides its own run —
|
|
@@ -76,12 +138,12 @@ export const resolveWorld = async (target, workspaceName, createParams) => {
|
|
|
76
138
|
export const actionViaBridge = async (target, req) => {
|
|
77
139
|
for await (const e of runViaBridge(target, { threadId: req.threadId, messages: [], forwardedProps: { action: { kind: req.kind, ...(req.params ?? {}) } } })) {
|
|
78
140
|
if (e.type === "CUSTOM" && e.name === "plurnk.action.result") {
|
|
79
|
-
const v = e.value;
|
|
141
|
+
const v = actionOutcome(e.value);
|
|
80
142
|
if (!v.ok)
|
|
81
|
-
throw new
|
|
143
|
+
throw new ProblemError(v.problem);
|
|
82
144
|
return v.result;
|
|
83
145
|
}
|
|
84
146
|
}
|
|
85
|
-
throw new
|
|
147
|
+
throw new ProblemError(clientActionResultMissing(req.kind));
|
|
86
148
|
};
|
|
87
149
|
//# sourceMappingURL=agui.js.map
|
package/dist/agui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agui.js","sourceRoot":"","sources":["../src/agui.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"agui.js","sourceRoot":"","sources":["../src/agui.ts"],"names":[],"mappings":"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"}
|
package/dist/agui_cli.d.ts
CHANGED
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
import type { LogEntryWire } from "./render.ts";
|
|
2
2
|
import { type Resolution, type ProposalParams } from "./proposal.ts";
|
|
3
|
-
import type {
|
|
3
|
+
import type { Notice } from "./diagnostics.ts";
|
|
4
4
|
import { type AguiEvent, type BridgeTarget } from "./agui.ts";
|
|
5
|
+
import { type ActionOutcome } from "./agui.ts";
|
|
6
|
+
import type { OperationResult, ProblemDetails } from "@plurnk/plurnk-contracts";
|
|
5
7
|
interface TerminatedValue {
|
|
6
8
|
workspaceId: number | null;
|
|
9
|
+
workerId: number;
|
|
7
10
|
loopId: number;
|
|
8
|
-
finalStatus: number;
|
|
9
11
|
hitMaxTurns: boolean;
|
|
10
12
|
turnIds: number[];
|
|
11
13
|
usage: {
|
|
12
14
|
promptTokens: number;
|
|
13
15
|
completionTokens: number;
|
|
14
|
-
|
|
16
|
+
costUsd: number;
|
|
15
17
|
contextTokens: number;
|
|
16
18
|
promptBudget: number | null;
|
|
17
19
|
meta: Record<string, unknown>;
|
|
18
20
|
};
|
|
21
|
+
result: OperationResult;
|
|
19
22
|
}
|
|
20
23
|
export interface CliRunResult {
|
|
21
24
|
exitCode: number;
|
|
@@ -25,25 +28,21 @@ export interface CliRunResult {
|
|
|
25
28
|
body?: string;
|
|
26
29
|
} | null;
|
|
27
30
|
entries: LogEntryWire[];
|
|
28
|
-
|
|
31
|
+
notices: Notice[];
|
|
29
32
|
response: string;
|
|
30
33
|
terminated: TerminatedValue | null;
|
|
31
34
|
modelWorkerId: number | null;
|
|
35
|
+
problem: ProblemDetails | null;
|
|
32
36
|
}
|
|
33
37
|
export interface CliRunSinks {
|
|
34
38
|
out: (s: string) => void;
|
|
35
39
|
err: (s: string) => void;
|
|
36
|
-
|
|
40
|
+
notice: (notice: Notice) => void;
|
|
37
41
|
json: boolean;
|
|
38
42
|
yolo: boolean;
|
|
39
43
|
noReviewChannel: boolean;
|
|
40
44
|
review: (p: ProposalParams) => Promise<Resolution>;
|
|
41
|
-
onActionResult?: (v:
|
|
42
|
-
kind: string;
|
|
43
|
-
ok: boolean;
|
|
44
|
-
result?: unknown;
|
|
45
|
-
error?: string;
|
|
46
|
-
}) => void;
|
|
45
|
+
onActionResult?: (v: ActionOutcome) => void;
|
|
47
46
|
}
|
|
48
47
|
export declare const consumeCliRun: (events: AsyncIterable<AguiEvent>, io: CliRunSinks) => Promise<CliRunResult>;
|
|
49
48
|
export declare const runCliViaBridge: (target: BridgeTarget, prompt: string, opts: {
|
package/dist/agui_cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agui_cli.d.ts","sourceRoot":"","sources":["../src/agui_cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agui_cli.d.ts","sourceRoot":"","sources":["../src/agui_cli.ts"],"names":[],"mappings":"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"}
|