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.
Files changed (56) hide show
  1. package/dist/api/api-prefix.d.ts +13 -0
  2. package/dist/api/api-prefix.d.ts.map +1 -0
  3. package/dist/api/api-prefix.js +13 -0
  4. package/dist/api/api-prefix.js.map +1 -0
  5. package/dist/api/elicitation-cache.d.ts +93 -0
  6. package/dist/api/elicitation-cache.d.ts.map +1 -0
  7. package/dist/api/elicitation-cache.js +128 -0
  8. package/dist/api/elicitation-cache.js.map +1 -0
  9. package/dist/api/evidence.d.ts +48 -38
  10. package/dist/api/evidence.d.ts.map +1 -1
  11. package/dist/api/evidence.js +48 -39
  12. package/dist/api/evidence.js.map +1 -1
  13. package/dist/api/gate-cache.d.ts +29 -13
  14. package/dist/api/gate-cache.d.ts.map +1 -1
  15. package/dist/api/gate-cache.js +82 -36
  16. package/dist/api/gate-cache.js.map +1 -1
  17. package/dist/api/requirements.d.ts +12 -3
  18. package/dist/api/requirements.d.ts.map +1 -1
  19. package/dist/api/requirements.js +34 -37
  20. package/dist/api/requirements.js.map +1 -1
  21. package/dist/api/routes.d.ts +3 -1
  22. package/dist/api/routes.d.ts.map +1 -1
  23. package/dist/api/routes.js +468 -51
  24. package/dist/api/routes.js.map +1 -1
  25. package/dist/api/server.d.ts.map +1 -1
  26. package/dist/api/server.js +13 -6
  27. package/dist/api/server.js.map +1 -1
  28. package/dist/api/unit-output.d.ts +62 -0
  29. package/dist/api/unit-output.d.ts.map +1 -0
  30. package/dist/api/unit-output.js +108 -0
  31. package/dist/api/unit-output.js.map +1 -0
  32. package/dist/core/adapter.d.ts +136 -6
  33. package/dist/core/adapter.d.ts.map +1 -1
  34. package/dist/core/adapter.js +512 -89
  35. package/dist/core/adapter.js.map +1 -1
  36. package/dist/core/bridge-path.d.ts +17 -6
  37. package/dist/core/bridge-path.d.ts.map +1 -1
  38. package/dist/core/bridge-path.js +17 -6
  39. package/dist/core/bridge-path.js.map +1 -1
  40. package/dist/core/exec.d.ts +37 -0
  41. package/dist/core/exec.d.ts.map +1 -0
  42. package/dist/core/exec.js +97 -0
  43. package/dist/core/exec.js.map +1 -0
  44. package/dist/core/repoPaths.d.ts +37 -0
  45. package/dist/core/repoPaths.d.ts.map +1 -0
  46. package/dist/core/repoPaths.js +48 -0
  47. package/dist/core/repoPaths.js.map +1 -0
  48. package/dist/core/types.d.ts +90 -2
  49. package/dist/core/types.d.ts.map +1 -1
  50. package/dist/core/types.js.map +1 -1
  51. package/dist/studio/assets/index-DaaUU8Ep.css +32 -0
  52. package/dist/studio/assets/index-Fu5DRC00.js +423 -0
  53. package/dist/studio/index.html +2 -2
  54. package/package.json +14 -13
  55. package/dist/studio/assets/index-CjUiA3ex.css +0 -32
  56. package/dist/studio/assets/index-DlHYzFvv.js +0 -420
@@ -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
- /** repo ids with an onboarding run in flight — guards against concurrent double-launch. */
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":"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"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/core/adapter.ts"],"names":[],"mappings":"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"}