wicked-crew 0.3.2 → 0.5.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/api/api-prefix.d.ts +13 -0
- package/dist/api/api-prefix.d.ts.map +1 -0
- package/dist/api/api-prefix.js +13 -0
- package/dist/api/api-prefix.js.map +1 -0
- package/dist/api/elicitation-cache.d.ts +93 -0
- package/dist/api/elicitation-cache.d.ts.map +1 -0
- package/dist/api/elicitation-cache.js +128 -0
- package/dist/api/elicitation-cache.js.map +1 -0
- package/dist/api/evidence.d.ts +48 -38
- package/dist/api/evidence.d.ts.map +1 -1
- package/dist/api/evidence.js +48 -39
- package/dist/api/evidence.js.map +1 -1
- package/dist/api/gate-cache.d.ts +29 -13
- package/dist/api/gate-cache.d.ts.map +1 -1
- package/dist/api/gate-cache.js +82 -36
- package/dist/api/gate-cache.js.map +1 -1
- package/dist/api/requirements.d.ts +12 -3
- package/dist/api/requirements.d.ts.map +1 -1
- package/dist/api/requirements.js +34 -37
- package/dist/api/requirements.js.map +1 -1
- package/dist/api/routes.d.ts +3 -1
- package/dist/api/routes.d.ts.map +1 -1
- package/dist/api/routes.js +468 -51
- package/dist/api/routes.js.map +1 -1
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +13 -6
- package/dist/api/server.js.map +1 -1
- package/dist/api/unit-output.d.ts +62 -0
- package/dist/api/unit-output.d.ts.map +1 -0
- package/dist/api/unit-output.js +108 -0
- package/dist/api/unit-output.js.map +1 -0
- package/dist/core/adapter.d.ts +136 -6
- package/dist/core/adapter.d.ts.map +1 -1
- package/dist/core/adapter.js +512 -89
- package/dist/core/adapter.js.map +1 -1
- package/dist/core/bridge-path.d.ts +17 -6
- package/dist/core/bridge-path.d.ts.map +1 -1
- package/dist/core/bridge-path.js +17 -6
- package/dist/core/bridge-path.js.map +1 -1
- package/dist/core/exec.d.ts +37 -0
- package/dist/core/exec.d.ts.map +1 -0
- package/dist/core/exec.js +97 -0
- package/dist/core/exec.js.map +1 -0
- package/dist/core/repoPaths.d.ts +37 -0
- package/dist/core/repoPaths.d.ts.map +1 -0
- package/dist/core/repoPaths.js +48 -0
- package/dist/core/repoPaths.js.map +1 -0
- package/dist/core/types.d.ts +90 -2
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/studio/assets/index-DaaUU8Ep.css +32 -0
- package/dist/studio/assets/index-Fu5DRC00.js +423 -0
- package/dist/studio/index.html +2 -2
- package/package.json +14 -13
- package/dist/studio/assets/index-CjUiA3ex.css +0 -32
- package/dist/studio/assets/index-DlHYzFvv.js +0 -420
package/dist/core/adapter.d.ts
CHANGED
|
@@ -1,4 +1,47 @@
|
|
|
1
|
-
import type { CoreEvent, LaunchRunInput, RepoEntry, RepoOnboardRef, SessionView, GovernancePolicy, ConformanceRule, GovernanceClaim, CoverageReport, WorkflowDef, SystemSettings } from './types.js';
|
|
1
|
+
import type { CoreEvent, LaunchRunInput, RepoEntry, RepoOnboardRef, SessionView, RecordedEvent, GovernancePolicy, ConformanceRule, GovernanceClaim, CoverageReport, GraphKind, WorkflowDef, SystemSettings } from './types.js';
|
|
2
|
+
/** Read user-registered workflow overlays from `dir` (the same dir `registerWorkflow` writes to).
|
|
3
|
+
*
|
|
4
|
+
* Skips: files whose id matches a built-in (those are `_writeBuiltinOverlay` artifacts written FOR
|
|
5
|
+
* the Rust actor, not user workflows — including them would duplicate a built-in in `listWorkflows`),
|
|
6
|
+
* non-`.json` files, and any file that does not parse into a `{id, phases[]}` shape (the Rust actor
|
|
7
|
+
* skips an unreadable overlay too, so crew must not surface one it can't). A missing dir yields `[]`.
|
|
8
|
+
*
|
|
9
|
+
* Exported so the FINDING-002 restart-hydration path is unit-testable without spawning a Core. */
|
|
10
|
+
export declare function readOverlayWorkflows(dir: string, builtinIds: ReadonlySet<string>): WorkflowDef[];
|
|
11
|
+
export declare const BUILTIN_WORKFLOWS: WorkflowDef[];
|
|
12
|
+
/**
|
|
13
|
+
* Chat is not available in this deployment at all — a capability gap, never a bad request.
|
|
14
|
+
*
|
|
15
|
+
* It arrives two ways and both mean the same thing to an operator: the addon predates the binding
|
|
16
|
+
* (no method to call), or the engine was spawned without the ACP runner and says so when called.
|
|
17
|
+
* Only the first is knowable before the call, which is why this is a thrown type rather than a
|
|
18
|
+
* capability flag.
|
|
19
|
+
*
|
|
20
|
+
* Typed rather than left to the caller to sniff out of the message text: the route used to regex
|
|
21
|
+
* the message for one of the two phrasings, so the other fell through to `400` and told an operator
|
|
22
|
+
* to fix a request that was already correct.
|
|
23
|
+
*/
|
|
24
|
+
export declare class ChatUnsupportedError extends Error {
|
|
25
|
+
constructor(message: string);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* `resolveElicitation` is not available in this deployment — the NAPI binding has not
|
|
29
|
+
* landed in the installed `wicked-core-ts` yet (DES-002 §4 P-1 stub).
|
|
30
|
+
*
|
|
31
|
+
* Routes map this to HTTP 501 so an operator knows to upgrade rather than to fix a
|
|
32
|
+
* call that was already correct.
|
|
33
|
+
*/
|
|
34
|
+
export declare class ElicitationUnsupportedError extends Error {
|
|
35
|
+
constructor(message: string);
|
|
36
|
+
}
|
|
37
|
+
/** One live chat on the enumerate surface — see {@link CoreAdapter.chatList}. */
|
|
38
|
+
export interface ChatSummary {
|
|
39
|
+
chatId: string;
|
|
40
|
+
/** The seats currently warm, sorted. */
|
|
41
|
+
seats: string[];
|
|
42
|
+
/** Seconds since the chat's last open/ensure/turn; `null` when it has no activity stamp. */
|
|
43
|
+
idleSecs: number | null;
|
|
44
|
+
}
|
|
2
45
|
/** A parsed-CoreEvent listener. */
|
|
3
46
|
export type CoreEventListener = (event: CoreEvent) => void;
|
|
4
47
|
export interface CoreAdapterOptions {
|
|
@@ -29,6 +72,15 @@ export interface CoreAdapterOptions {
|
|
|
29
72
|
* endpoint and the WS fan-out funnel through this stable API — so when the
|
|
30
73
|
* in-flight core-ts subscribe/teardown signature lands, only this file changes.
|
|
31
74
|
*/
|
|
75
|
+
/** The ids of a workflow's phases that carry a HUMAN gate (`human_confirm` unconditional, or the
|
|
76
|
+
* conditional `human_confirm_if`) — i.e. the phases that will PAUSE for a person.
|
|
77
|
+
*
|
|
78
|
+
* FINDING-023 (residual): core#208 made a workflow's phase gate deliberately WIN over a run-level
|
|
79
|
+
* `humanConfirm: none` (it pauses, with a self-disclosing note), but there was no way to learn a
|
|
80
|
+
* workflow's gates BEFORE launching it — an operator picking `none` for an unattended run only found
|
|
81
|
+
* out when it paused. Surfacing this on `GET /workflows/:id` is that missing launch-time signal.
|
|
82
|
+
* `'auto'` (the string form) is NOT a human gate. */
|
|
83
|
+
export declare function humanGatePhaseIds(wf: WorkflowDef): string[];
|
|
32
84
|
export declare class CoreAdapter {
|
|
33
85
|
private readonly core;
|
|
34
86
|
private readonly subscription;
|
|
@@ -57,20 +109,64 @@ export declare class CoreAdapter {
|
|
|
57
109
|
cancelRun(runId: string): Promise<string>;
|
|
58
110
|
/** Inject an operator message into a run's active PTY worker(s). target="all" or a CLI key. */
|
|
59
111
|
injectWorkerMessage(runId: string, message: string, target: string): Promise<string>;
|
|
112
|
+
/**
|
|
113
|
+
* A run's recorded event history, oldest first — or `null` when this wicked-core build has no
|
|
114
|
+
* event-log read binding.
|
|
115
|
+
*
|
|
116
|
+
* `null` rather than `[]` on purpose. An empty history is a real, ordinary answer (a run that
|
|
117
|
+
* emitted nothing, or one predating the log), and collapsing "nothing happened" into "I cannot
|
|
118
|
+
* tell you what happened" is how a missing capability gets reported to an operator as an absent
|
|
119
|
+
* gate — the FINDING-050 shape, distinct causes wearing one message. Callers branch on it.
|
|
120
|
+
*/
|
|
121
|
+
runEvents(runId: string): Promise<RecordedEvent[] | null>;
|
|
60
122
|
/** Run ids on the store. */
|
|
61
123
|
sessions(): Promise<string[]>;
|
|
62
124
|
/** Every run + its ordered units. */
|
|
63
125
|
sessionsDetail(): Promise<SessionView[]>;
|
|
64
126
|
/** A unit's captured transcript (string, or `null`). */
|
|
65
127
|
workOutput(unitId: string): Promise<string | null>;
|
|
128
|
+
chatOpen(chatId: string, clis: string[], cwd?: string): Promise<{
|
|
129
|
+
cliKey: string;
|
|
130
|
+
ok: boolean;
|
|
131
|
+
error?: string;
|
|
132
|
+
}[]>;
|
|
133
|
+
chatSend(chatId: string, text: string, targets?: string[], cwd?: string): Promise<string[]>;
|
|
134
|
+
chatSeats(chatId: string): Promise<string[]>;
|
|
135
|
+
/**
|
|
136
|
+
* Every live chat, so an operator can find the ones nothing is going to close (FINDING-027).
|
|
137
|
+
*
|
|
138
|
+
* Chat sessions are a warm pool that deliberately outlives the page, and the only client that
|
|
139
|
+
* knew a chat's id is the tab that minted it. Without this an orphaned seat is unreclaimable
|
|
140
|
+
* short of restarting the daemon — the leak is real but invisible, which is the worse half.
|
|
141
|
+
*
|
|
142
|
+
* `idleSecs` is `number | null`, not `number`. The Rust side uses `u64::MAX` for "no activity
|
|
143
|
+
* timestamp"; as an f64 that arrives as 18446744073709552000, which no caller can test for by
|
|
144
|
+
* equality and every caller can accidentally do arithmetic on. The binding maps it to `null`.
|
|
145
|
+
*/
|
|
146
|
+
chatList(): Promise<ChatSummary[]>;
|
|
147
|
+
chatClose(chatId: string): Promise<void>;
|
|
148
|
+
/**
|
|
149
|
+
* Forward the operator's elicitation response to the actor (DES-002 §4 P-1).
|
|
150
|
+
*
|
|
151
|
+
* NAPI flat signature: `resolve_elicitation(run_id, elicitation_id, action, response)`.
|
|
152
|
+
* `response` is `null` for `decline` and `cancel` actions; a non-empty string for `accept`.
|
|
153
|
+
*
|
|
154
|
+
* Throws `ElicitationUnsupportedError` until the NAPI binding is present in the installed
|
|
155
|
+
* `wicked-core-ts`. Routes map that to HTTP 501.
|
|
156
|
+
*/
|
|
157
|
+
resolveElicitation(_runId: string, _elicitationId: string, _action: string, _response: string | null): Promise<void>;
|
|
66
158
|
/** repo id → onboarding run id (in-memory; graph persists on disk across restarts). */
|
|
67
159
|
private readonly repoOnboardRunIds;
|
|
68
|
-
/**
|
|
160
|
+
/**
|
|
161
|
+
* repo id → the in-flight launch, so a concurrent caller joins it instead of starting a second.
|
|
162
|
+
*
|
|
163
|
+
* A `Set` of ids was not enough. The id was added here but the run id was only recorded in
|
|
164
|
+
* `repoOnboardRunIds` AFTER the launch resolved, so a second caller arriving mid-flight saw
|
|
165
|
+
* "in flight" with no run id to return, fell through, and launched a DUPLICATE run against the
|
|
166
|
+
* same repo. Holding the promise makes the second caller await the first and receive its run id —
|
|
167
|
+
* the dedup the `Set` was named for.
|
|
168
|
+
*/
|
|
69
169
|
private readonly onboardingInFlight;
|
|
70
|
-
/** Serializes onboarding launches: they rewrite the SHARED 'onboarding' overlay with
|
|
71
|
-
* repo-specific paths, so two repos launching concurrently must not interleave between
|
|
72
|
-
* overlay registration and launchRun (after launch the def is baked into the run's units). */
|
|
73
|
-
private _onboardingChain;
|
|
74
170
|
/** Register a local git repo → the persisted `RepoEntry`. */
|
|
75
171
|
registerRepo(name: string, rootPath: string): Promise<RepoEntry>;
|
|
76
172
|
/**
|
|
@@ -97,13 +193,47 @@ export declare class CoreAdapter {
|
|
|
97
193
|
listConformanceClaims(): Promise<GovernanceClaim[]>;
|
|
98
194
|
/** Front-half coverage gate report; null when the store has no graph nodes. */
|
|
99
195
|
getCoverageReport(): Promise<CoverageReport | null>;
|
|
196
|
+
/**
|
|
197
|
+
* Coverage for ONE registered repo, computed over that repo's OWN code graph (FINDING-009). Unlike
|
|
198
|
+
* {@link getCoverageReport} — which reads the daemon store and reports a vacuous `coverage: 1.0` that
|
|
199
|
+
* names no repo — this resolves `repoRef` in the registry and recomputes over its `code_graph_db`.
|
|
200
|
+
* The core rejects an unknown repo (never a silent vacuous report), so this throws for a bad ref.
|
|
201
|
+
*/
|
|
202
|
+
getCoverageReportForRepo(repoRef: string): Promise<CoverageReport | null>;
|
|
203
|
+
/**
|
|
204
|
+
* Node-count-by-kind summary of ONE registered repo's code graph, over that repo's OWN store
|
|
205
|
+
* (#122) — what the estate graph actually holds for the repo, so an operator can see it was
|
|
206
|
+
* populated. The core rejects an unknown repo, so this throws for a bad ref.
|
|
207
|
+
*/
|
|
208
|
+
getGraphKindsForRepo(repoRef: string): Promise<GraphKind[]>;
|
|
100
209
|
/** Upsert a governance policy via the single-writer actor. */
|
|
101
210
|
upsertPolicy(policy: GovernancePolicy): Promise<void>;
|
|
102
211
|
/** Upsert a conformance rule via the single-writer actor. */
|
|
103
212
|
upsertConformanceRule(rule: ConformanceRule): Promise<void>;
|
|
213
|
+
/**
|
|
214
|
+
* Withdraw a policy from enforcement. Resolves `true` if a policy with that id existed.
|
|
215
|
+
*
|
|
216
|
+
* Retire, not delete (FINDING-038): the node stays readable so a past decision citing this id is
|
|
217
|
+
* still explicable, but governance stops selecting it. The boolean is what lets the route answer
|
|
218
|
+
* 404 instead of reporting a success that removed nothing.
|
|
219
|
+
*/
|
|
220
|
+
retirePolicy(id: string): Promise<boolean>;
|
|
221
|
+
/** Withdraw a conformance rule from recall. Same contract as {@link retirePolicy}. */
|
|
222
|
+
retireConformanceRule(id: string): Promise<boolean>;
|
|
104
223
|
/** Recall conformance rules matching a facet query (read-only, does not block actor). */
|
|
105
224
|
recallRulesPreview(query: Record<string, string | string[] | undefined>): Promise<ConformanceRule[]>;
|
|
106
225
|
private readonly userWorkflows;
|
|
226
|
+
/** Whether {@link hydrateFromOverlay} has run this process lifetime. */
|
|
227
|
+
private overlayHydrated;
|
|
228
|
+
/** Load user-registered workflows persisted to the overlay dir into `userWorkflows`, ONCE.
|
|
229
|
+
*
|
|
230
|
+
* FINDING-002 residual: `registerWorkflow` writes each def to the overlay dir AND to the in-memory
|
|
231
|
+
* `userWorkflows` Map, but the Map is process-local and empty on every daemon restart, and nothing
|
|
232
|
+
* read the dir back. So after a restart the Rust actor (which DOES load the overlay dir at startup)
|
|
233
|
+
* would launch a user workflow that `listWorkflows()`/`GET /workflows` no longer showed — it
|
|
234
|
+
* vanished from the registry while remaining runnable. Hydrating from the same dir the writer uses
|
|
235
|
+
* makes the two views agree again. */
|
|
236
|
+
private hydrateFromOverlay;
|
|
107
237
|
listWorkflows(): WorkflowDef[];
|
|
108
238
|
getWorkflow(id: string): WorkflowDef | null;
|
|
109
239
|
/** Write a built-in workflow definition to the Rust overlay dir (and hot-register when possible).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/core/adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/core/adapter.ts"],"names":[],"mappings":"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"}
|