@north-light/crouter-api 0.3.235 → 0.3.237
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/client.d.ts +2 -1
- package/dist/api/client.js +3 -0
- package/dist/api/dto/broker-ops.d.ts +1 -1
- package/dist/api/dto/common.d.ts +2 -0
- package/dist/api/dto/lifecycle.d.ts +9 -2
- package/dist/api/dto/messages.d.ts +5 -0
- package/dist/api/dto/nodes.d.ts +14 -5
- package/dist/api/dto/worktree.d.ts +10 -0
- package/dist/api/routes.d.ts +1 -0
- package/dist/api/routes.js +1 -0
- package/package.json +1 -1
package/dist/api/client.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ import type { CreateReviewCommentRequest, EditReviewCommentRequest, ListReviewCo
|
|
|
20
20
|
import type { CancelInboxTicketRequest, CanceledTicketResultDTO, InboxListDTO, InboxPageDTO, InboxPageHistoryDTO, InboxPageResponseDTO, InboxTicketIdDTO, PageFeedbackResolutionDTO, PageResponsesDTO, PageTicketResultDTO, RespondInboxPageRequest } from './dto/inbox.js';
|
|
21
21
|
import type { CreateHumanRequestDTO, CreateHumanRequestRequest, HumanRequestDTO, HumanRequestIdDTO, ReplaceHumanRequestRequest, RespondHumanRequestRequest, SettleHumanRequestRequest } from './dto/human-requests.js';
|
|
22
22
|
import type { AttentionCountsDTO, AttentionDTO, DashboardDTO, DashboardQuery, HistoryGrepQuery, HistoryGrepResultDTO, HistoryReadQuery, HistoryReadResultDTO, HistorySearchQuery, HistorySearchResultDTO, PruneRequest, PruneResultDTO, RebuildIndexResultDTO, RosterDTO, SnapshotDTO } from './dto/canvas.js';
|
|
23
|
-
import type { CloseWorktreeResultDTO } from './dto/worktree.js';
|
|
23
|
+
import type { AbandonWorktreeRequest, AbandonWorktreeResultDTO, CloseWorktreeResultDTO } from './dto/worktree.js';
|
|
24
24
|
import type { BrokerExtensionStateDTO, BrokerGeneratedNameRequest, BrokerGeneratedNameResultDTO, BrokerInboxCursorDirective, BrokerInboxCursorRequest, BrokerModelCommitRequest, BrokerModelCommitResultDTO, BrokerPersonaAckRequest, BrokerPersonaAckResultDTO, BrokerSessionBoundRequest, BrokerSessionBoundResultDTO, BrokerSettleDirective, BrokerSettleRequest } from './dto/broker-ops.js';
|
|
25
25
|
export interface CrtrClientOptions {
|
|
26
26
|
/** Unix socket path (default local transport). Exactly one of socketPath|baseUrl. */
|
|
@@ -113,6 +113,7 @@ export declare class CrtrClient {
|
|
|
113
113
|
* because it interleaves a canvas WRITE with a git land transaction and
|
|
114
114
|
* crtrd is the repo host (same principle as spawnChild's creation git). */
|
|
115
115
|
closeWorktree(id: string): Promise<CloseWorktreeResultDTO>;
|
|
116
|
+
abandonWorktree(id: string, req: AbandonWorktreeRequest): Promise<AbandonWorktreeResultDTO>;
|
|
116
117
|
subscribe(id: string, req: SubscribeRequest): Promise<SubscriptionDTO>;
|
|
117
118
|
listFocuses(): Promise<FocusDTO[]>;
|
|
118
119
|
focusOf(nodeId: string): Promise<FocusDTO | null>;
|
package/dist/api/client.js
CHANGED
|
@@ -176,6 +176,9 @@ export class CrtrClient {
|
|
|
176
176
|
closeWorktree(id) {
|
|
177
177
|
return this.request('POST', routes.nodeWorktreeClose(this.nodePath(id)), {});
|
|
178
178
|
}
|
|
179
|
+
abandonWorktree(id, req) {
|
|
180
|
+
return this.request('POST', routes.nodeWorktreeAbandon(this.nodePath(id)), req);
|
|
181
|
+
}
|
|
179
182
|
subscribe(id, req) {
|
|
180
183
|
return this.request('POST', routes.nodeSubscriptions(this.nodePath(id)), req);
|
|
181
184
|
}
|
|
@@ -75,7 +75,7 @@ export interface BrokerExtensionNodeDTO {
|
|
|
75
75
|
fork_from: string | null;
|
|
76
76
|
profile_id: string | null;
|
|
77
77
|
managed_worktree?: {
|
|
78
|
-
state: 'open' | 'closed';
|
|
78
|
+
state: 'open' | 'closed' | 'abandoned';
|
|
79
79
|
cleanup?: 'pending' | 'complete';
|
|
80
80
|
path: string;
|
|
81
81
|
branch: string;
|
package/dist/api/dto/common.d.ts
CHANGED
|
@@ -19,6 +19,8 @@ export type LifecycleDTO = 'terminal' | 'resident';
|
|
|
19
19
|
export type ModeDTO = 'base' | 'orchestrator';
|
|
20
20
|
/** Why a node last stopped (mirrors the runtime `ExitIntent` union). */
|
|
21
21
|
export type ExitIntentDTO = 'done' | 'refresh' | 'idle-release' | 'parked' | null;
|
|
22
|
+
/** Why a terminal node ended (mirrors the runtime `TerminalReason` union). */
|
|
23
|
+
export type TerminalReasonDTO = 'finalized' | 'finished' | 'parked' | 'closed' | 'retired' | 'crashed' | 'stranded';
|
|
22
24
|
/** Inbox urgency tier for a delivered message (mirrors feed/inbox `InboxTier`). */
|
|
23
25
|
export type InboxTierDTO = 'critical' | 'urgent' | 'normal' | 'deferred';
|
|
24
26
|
/** Whether a node id is a safe single filesystem path segment. Re-declared here
|
|
@@ -21,20 +21,27 @@ export interface ReviveResultDTO {
|
|
|
21
21
|
revived: boolean;
|
|
22
22
|
resumed: boolean;
|
|
23
23
|
status: NodeStatusDTO;
|
|
24
|
+
/** What the call did: `launched` started a broker, `already-live` found one
|
|
25
|
+
* already running, `frozen` found no free broker slot and left the row
|
|
26
|
+
* waiting for one. */
|
|
27
|
+
outcome: 'launched' | 'already-live' | 'frozen';
|
|
24
28
|
}
|
|
25
29
|
/** `POST /v1/nodes/{id}/relaunch-root` result. A null id means the target
|
|
26
30
|
* was not a relaunchable live root, or its replacement failed to launch. */
|
|
27
31
|
export interface RelaunchRootResultDTO {
|
|
28
32
|
newNodeId: NodeIdDTO | null;
|
|
29
33
|
}
|
|
30
|
-
/** `POST /v1/nodes/revive-all` result. Node ids relaunched,
|
|
31
|
-
*
|
|
34
|
+
/** `POST /v1/nodes/revive-all` result. Node ids relaunched, any that failed to
|
|
35
|
+
* revive with the reason, and any the broker cap turned away (the reader
|
|
36
|
+
* reports all three). */
|
|
32
37
|
export interface ReviveAllResultDTO {
|
|
33
38
|
revived: NodeIdDTO[];
|
|
34
39
|
failed: {
|
|
35
40
|
node_id: NodeIdDTO;
|
|
36
41
|
error: string;
|
|
37
42
|
}[];
|
|
43
|
+
/** Frozen for capacity, not failed: the daemon relaunches these as slots free. */
|
|
44
|
+
frozen: NodeIdDTO[];
|
|
38
45
|
}
|
|
39
46
|
/** `POST /v1/nodes/{id}/close` body. The cascade set is computed server-side
|
|
40
47
|
* from edges; the flag only opts out of cascading descendants. */
|
|
@@ -57,6 +57,11 @@ export interface MessageResultDTO {
|
|
|
57
57
|
delivered: boolean;
|
|
58
58
|
/** Whether a dormant target was revived to receive the message. */
|
|
59
59
|
revived: boolean;
|
|
60
|
+
/** Present only when a wake was attempted and did not happen:
|
|
61
|
+
* `capacity_frozen` means no broker slot was free, so the target's row is
|
|
62
|
+
* frozen and the daemon relaunches it when one frees. The entry is durably
|
|
63
|
+
* appended either way, and delivery follows that relaunch. */
|
|
64
|
+
not_revived_reason?: 'capacity_frozen';
|
|
60
65
|
delivered_at?: IsoTime;
|
|
61
66
|
/** Which channel a `delivery:'interactive'` send actually used: `'engine'`
|
|
62
67
|
* (live broker frame loop, no inbox entry) or `'inbox'` (durable fallback).
|
package/dist/api/dto/nodes.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Cursor, ExitIntentDTO, IsoTime, LifecycleDTO, ModeDTO, NodeIdDTO, NodeStatusDTO } from './common.js';
|
|
1
|
+
import type { Cursor, ExitIntentDTO, IsoTime, LifecycleDTO, ModeDTO, NodeIdDTO, NodeStatusDTO, TerminalReasonDTO } from './common.js';
|
|
2
2
|
import type { ReportDTO } from './reports.js';
|
|
3
3
|
/** `GET /v1/nodes/{id}/subject` — the node-config subject substrate gate
|
|
4
4
|
* predicates evaluate against. Mirrors `NodeConfigSubject`; this narrow
|
|
@@ -37,9 +37,10 @@ export interface CreateNodeRequest {
|
|
|
37
37
|
description?: string;
|
|
38
38
|
parent?: NodeIdDTO | null;
|
|
39
39
|
root?: boolean;
|
|
40
|
-
/** Lifecycle of
|
|
41
|
-
*
|
|
42
|
-
*
|
|
40
|
+
/** Lifecycle of the new node. Roots default to `resident`; managed children
|
|
41
|
+
* default to `terminal`. Use `resident` for a child that remains wakeable
|
|
42
|
+
* without owing a final, or `terminal` for a bounded worker that must
|
|
43
|
+
* finalize. */
|
|
43
44
|
root_lifecycle?: LifecycleDTO;
|
|
44
45
|
/** Worktree branch name, or true for an auto-named managed worktree. */
|
|
45
46
|
worktree?: string | boolean;
|
|
@@ -75,6 +76,8 @@ export interface NodeSummaryDTO {
|
|
|
75
76
|
created: IsoTime;
|
|
76
77
|
intent: ExitIntentDTO;
|
|
77
78
|
waiting_for: NodeIdDTO | null;
|
|
79
|
+
frozen_at: IsoTime | null;
|
|
80
|
+
terminal_reason: TerminalReasonDTO | null;
|
|
78
81
|
pi_pid: number | null;
|
|
79
82
|
/** Launch-time process identity paired with `pi_pid`, or null when absent. */
|
|
80
83
|
pi_pid_identity: string | null;
|
|
@@ -121,7 +124,7 @@ export interface NodePathsDTO {
|
|
|
121
124
|
}
|
|
122
125
|
/** A node's managed git worktree, if any. */
|
|
123
126
|
export interface NodeWorktreeDTO {
|
|
124
|
-
state: 'open' | 'closed';
|
|
127
|
+
state: 'open' | 'closed' | 'abandoned';
|
|
125
128
|
/** Pending cleanup must be run manually after the owner exits. */
|
|
126
129
|
cleanup?: 'pending' | 'complete';
|
|
127
130
|
path: string;
|
|
@@ -131,6 +134,12 @@ export interface NodeWorktreeDTO {
|
|
|
131
134
|
base_sha: string;
|
|
132
135
|
created: IsoTime;
|
|
133
136
|
closed?: IsoTime;
|
|
137
|
+
abandoned?: {
|
|
138
|
+
branch: string;
|
|
139
|
+
tip_sha: string;
|
|
140
|
+
at: IsoTime;
|
|
141
|
+
by: string;
|
|
142
|
+
};
|
|
134
143
|
}
|
|
135
144
|
/** Immutable companion provenance and fork coordinates. Present only on a
|
|
136
145
|
* daemon-spawned companion node: a `review/companion` node for a human review
|
|
@@ -15,3 +15,13 @@ export interface CloseWorktreeResultDTO {
|
|
|
15
15
|
branch_deleted: boolean;
|
|
16
16
|
branch_delete_error?: string;
|
|
17
17
|
}
|
|
18
|
+
export interface AbandonWorktreeRequest {
|
|
19
|
+
by: string;
|
|
20
|
+
}
|
|
21
|
+
export interface AbandonWorktreeResultDTO {
|
|
22
|
+
node_id: NodeIdDTO;
|
|
23
|
+
branch: string;
|
|
24
|
+
tip_sha: string;
|
|
25
|
+
worktree_path: string;
|
|
26
|
+
branch_deleted: boolean;
|
|
27
|
+
}
|
package/dist/api/routes.d.ts
CHANGED
|
@@ -39,6 +39,7 @@ export declare const routes: {
|
|
|
39
39
|
readonly nodeWait: (id: string) => string;
|
|
40
40
|
readonly nodeConfig: (id: string) => string;
|
|
41
41
|
readonly nodeWorktreeClose: (id: string) => string;
|
|
42
|
+
readonly nodeWorktreeAbandon: (id: string) => string;
|
|
42
43
|
readonly nodeAttach: (id: string) => string;
|
|
43
44
|
readonly focuses: () => string;
|
|
44
45
|
readonly focusByNode: () => string;
|
package/dist/api/routes.js
CHANGED
|
@@ -57,6 +57,7 @@ export const routes = {
|
|
|
57
57
|
nodeWait: (id) => `${V}/nodes/${id}/wait`,
|
|
58
58
|
nodeConfig: (id) => `${V}/nodes/${id}/config`,
|
|
59
59
|
nodeWorktreeClose: (id) => `${V}/nodes/${id}/worktree/close`,
|
|
60
|
+
nodeWorktreeAbandon: (id) => `${V}/nodes/${id}/worktree/abandon`,
|
|
60
61
|
nodeAttach: (id) => `${V}/nodes/${id}/attach`,
|
|
61
62
|
// Focuses (viewer registry — the canvas.db `focuses` table)
|
|
62
63
|
focuses: () => `${V}/focuses`,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@north-light/crouter-api",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.237",
|
|
4
4
|
"description": "Typed crtrd /v1 API contract — DTOs, route builders, the error contract, and the CrtrClient. Zero runtime dependencies.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/api/index.js",
|