@nestos/kanban 0.5.1 → 0.5.2
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/LICENSE +674 -0
- package/README.md +73 -29
- package/dist/{activity-C6xDM-cg.d.cts → activity-BbC4sgKL.d.cts} +28 -2
- package/dist/{activity-Dw8DOw0L.d.ts → activity-Czlan5xW.d.ts} +28 -2
- package/dist/activity-module-DaO1Rry0.d.cts +22 -0
- package/dist/activity-module-T22wliZu.d.ts +22 -0
- package/dist/activity-ports-Dqxa86zT.d.cts +12 -0
- package/dist/activity-ports-cxfrelaL.d.ts +12 -0
- package/dist/activity.cjs +10 -282
- package/dist/activity.cjs.map +1 -1
- package/dist/activity.d.cts +8 -30
- package/dist/activity.d.ts +8 -30
- package/dist/activity.js +9 -281
- package/dist/activity.js.map +1 -1
- package/dist/{chunk-O4OGAAV4.js → chunk-3JYLJPE5.js} +29 -5
- package/dist/chunk-3JYLJPE5.js.map +1 -0
- package/dist/{chunk-ATUFFNLV.js → chunk-3LEIHB7Y.js} +5 -5
- package/dist/chunk-4XF6LQSU.cjs.map +1 -1
- package/dist/chunk-5Q7WB63A.cjs +282 -0
- package/dist/chunk-5Q7WB63A.cjs.map +1 -0
- package/dist/{chunk-PSKQAFDF.cjs → chunk-7KDOTBRX.cjs} +1 -1
- package/dist/chunk-7KDOTBRX.cjs.map +1 -0
- package/dist/{chunk-5DLZWW5Y.js → chunk-AHHEGTUA.js} +3 -3
- package/dist/chunk-AOHQCX7K.cjs +95 -0
- package/dist/chunk-AOHQCX7K.cjs.map +1 -0
- package/dist/{chunk-IUI5CI2S.cjs → chunk-DINLR6E6.cjs} +96 -92
- package/dist/chunk-DINLR6E6.cjs.map +1 -0
- package/dist/{chunk-L44TM4EE.cjs → chunk-EYTVC2H5.cjs} +568 -454
- package/dist/chunk-EYTVC2H5.cjs.map +1 -0
- package/dist/chunk-FEE2YBZ7.js +1972 -0
- package/dist/chunk-FEE2YBZ7.js.map +1 -0
- package/dist/chunk-FNO5K3A7.js +282 -0
- package/dist/chunk-FNO5K3A7.js.map +1 -0
- package/dist/chunk-IHHDXZPZ.js +382 -0
- package/dist/chunk-IHHDXZPZ.js.map +1 -0
- package/dist/chunk-J3EAIVA3.js +280 -0
- package/dist/chunk-J3EAIVA3.js.map +1 -0
- package/dist/{chunk-DFTOTBGF.js → chunk-KH3WF3K4.js} +20 -16
- package/dist/chunk-KH3WF3K4.js.map +1 -0
- package/dist/{chunk-TB2RZGDV.js → chunk-M35X5PHO.js} +14 -1
- package/dist/chunk-M35X5PHO.js.map +1 -0
- package/dist/chunk-QRGZD2JU.cjs +1972 -0
- package/dist/chunk-QRGZD2JU.cjs.map +1 -0
- package/dist/{chunk-4KF7KUAI.cjs → chunk-RBOER6EW.cjs} +6 -6
- package/dist/chunk-RBOER6EW.cjs.map +1 -0
- package/dist/{chunk-6MN3H3YF.cjs → chunk-RSH6QSEC.cjs} +16 -3
- package/dist/chunk-RSH6QSEC.cjs.map +1 -0
- package/dist/{chunk-T7P5EIC4.cjs → chunk-VMRDXOLX.cjs} +33 -33
- package/dist/chunk-VMRDXOLX.cjs.map +1 -0
- package/dist/{chunk-5XKOCKY2.js → chunk-X4UHZX6F.js} +1 -1
- package/dist/chunk-XBSGUVCY.cjs +382 -0
- package/dist/chunk-XBSGUVCY.cjs.map +1 -0
- package/dist/{chunk-OHQTKGQN.js → chunk-XKDZHAUE.js} +242 -128
- package/dist/chunk-XKDZHAUE.js.map +1 -0
- package/dist/chunk-ZUZGAO6G.cjs +280 -0
- package/dist/chunk-ZUZGAO6G.cjs.map +1 -0
- package/dist/{content-CAIp1njn.d.cts → content-C5aJZFlw.d.cts} +1 -1
- package/dist/{content-CGMJdyH_.d.ts → content-hLH5BNud.d.ts} +1 -1
- package/dist/contracts/index.cjs +13 -3
- package/dist/contracts/index.cjs.map +1 -1
- package/dist/contracts/index.d.cts +5 -4
- package/dist/contracts/index.d.ts +5 -4
- package/dist/contracts/index.js +14 -4
- package/dist/{discovery-DxpirOz3.d.cts → discovery-9E-LfwIw.d.cts} +1 -1
- package/dist/{discovery-gSqWpuRm.d.ts → discovery-D60yrjej.d.ts} +1 -1
- package/dist/discovery.cjs +63 -65
- package/dist/discovery.cjs.map +1 -1
- package/dist/discovery.d.cts +4 -4
- package/dist/discovery.d.ts +4 -4
- package/dist/discovery.js +5 -7
- package/dist/discovery.js.map +1 -1
- package/dist/execution-bridge-fpCnH6z5.d.cts +52 -0
- package/dist/execution-bridge-rk0uVy_n.d.ts +52 -0
- package/dist/execution.cjs +6 -356
- package/dist/execution.cjs.map +1 -1
- package/dist/execution.d.cts +4 -51
- package/dist/execution.d.ts +4 -51
- package/dist/execution.js +9 -359
- package/dist/execution.js.map +1 -1
- package/dist/index.cjs +10 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +9 -16
- package/dist/index.d.ts +9 -16
- package/dist/index.js +10 -12
- package/dist/index.js.map +1 -1
- package/dist/{module-CWNK2BMj.d.ts → module-CYfE7YhM.d.ts} +2 -2
- package/dist/{module-BbvwdCDF.d.cts → module-Ca9L3qCn.d.cts} +2 -2
- package/dist/{planning-CcFZYdIL.d.cts → planning-CHrOqQ6b.d.cts} +45 -10
- package/dist/{planning-CcFZYdIL.d.ts → planning-CHrOqQ6b.d.ts} +45 -10
- package/dist/{ports-Bn6ro2FB.d.ts → ports-B0McVg7B.d.ts} +4 -3
- package/dist/ports-BeGO1VRI.d.cts +49 -0
- package/dist/{ports-CaL6geqR.d.cts → ports-GQy0x-RI.d.cts} +4 -3
- package/dist/ports-ykGiNUSx.d.ts +49 -0
- package/dist/runtime/index.cjs +205 -0
- package/dist/runtime/index.cjs.map +1 -0
- package/dist/runtime/index.d.cts +75 -0
- package/dist/runtime/index.d.ts +75 -0
- package/dist/runtime/index.js +205 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/integration.cjs +423 -0
- package/dist/runtime/integration.cjs.map +1 -0
- package/dist/runtime/integration.d.cts +658 -0
- package/dist/runtime/integration.d.ts +658 -0
- package/dist/runtime/integration.js +423 -0
- package/dist/runtime/integration.js.map +1 -0
- package/dist/storage.cjs +9 -277
- package/dist/storage.cjs.map +1 -1
- package/dist/storage.d.cts +6 -6
- package/dist/storage.d.ts +6 -6
- package/dist/storage.js +11 -279
- package/dist/storage.js.map +1 -1
- package/dist/{store-q63eSMoT.d.cts → store-DPwHzGiz.d.cts} +2 -2
- package/dist/{store-Ct0gOAAg.d.ts → store-DgdrPCV9.d.ts} +2 -2
- package/dist/task-projection-CSorlMws.d.ts +11 -0
- package/dist/task-projection-DKKB_ueb.d.cts +11 -0
- package/examples/standalone.ts +22 -0
- package/package.json +117 -87
- package/dist/chunk-2YFPV5GF.cjs +0 -16
- package/dist/chunk-2YFPV5GF.cjs.map +0 -1
- package/dist/chunk-4KF7KUAI.cjs.map +0 -1
- package/dist/chunk-6MN3H3YF.cjs.map +0 -1
- package/dist/chunk-DFTOTBGF.js.map +0 -1
- package/dist/chunk-G6FCDLDF.js +0 -16
- package/dist/chunk-G6FCDLDF.js.map +0 -1
- package/dist/chunk-IUI5CI2S.cjs.map +0 -1
- package/dist/chunk-KYNYPKKH.cjs +0 -71
- package/dist/chunk-KYNYPKKH.cjs.map +0 -1
- package/dist/chunk-L44TM4EE.cjs.map +0 -1
- package/dist/chunk-LSE6JG5I.cjs +0 -20
- package/dist/chunk-LSE6JG5I.cjs.map +0 -1
- package/dist/chunk-O4OGAAV4.js.map +0 -1
- package/dist/chunk-OHQTKGQN.js.map +0 -1
- package/dist/chunk-PSKQAFDF.cjs.map +0 -1
- package/dist/chunk-QTMTBEBA.js +0 -20
- package/dist/chunk-QTMTBEBA.js.map +0 -1
- package/dist/chunk-T7P5EIC4.cjs.map +0 -1
- package/dist/chunk-TB2RZGDV.js.map +0 -1
- package/dist/ui/index.cjs +0 -1961
- package/dist/ui/index.cjs.map +0 -1
- package/dist/ui/index.d.cts +0 -209
- package/dist/ui/index.d.ts +0 -209
- package/dist/ui/index.js +0 -1961
- package/dist/ui/index.js.map +0 -1
- package/dist/ui/kanban.css +0 -194
- /package/dist/{chunk-ATUFFNLV.js.map → chunk-3LEIHB7Y.js.map} +0 -0
- /package/dist/{chunk-5DLZWW5Y.js.map → chunk-AHHEGTUA.js.map} +0 -0
- /package/dist/{chunk-5XKOCKY2.js.map → chunk-X4UHZX6F.js.map} +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
export { K as KanbanModuleHandle, c as createKanbanModule } from './module-
|
|
2
|
-
export { K as KanbanBodyStore, S as SeqKanbanStore } from './store-
|
|
3
|
-
import { K as KanbanModuleOptions } from './ports-
|
|
4
|
-
export {
|
|
5
|
-
import { l as KanbanBoardInput, j as KanbanBoard, m as KanbanBoardSummary, E as KanbanOverview, w as KanbanItem, a1 as KanbanTaskProjection, c as KanbanArchivedItem, y as KanbanItemQuery, x as KanbanItemPage, J as KanbanProjectRecord, P as KanbanRecordQuery, O as KanbanRecordPage, a7 as KanbanWorkflowState, R as KanbanReferenceTarget, Y as KanbanSuggestionQuery, X as KanbanSuggestionPage, I as KanbanPrincipal, S as KanbanRequest, t as KanbanEvent
|
|
6
|
-
export { D as DEFAULT_KANBAN_WORK_TYPES, K as KanbanActor, a as KanbanAmendment, d as KanbanArtifactRef, e as KanbanAssignment, n as KanbanColumn, o as KanbanCommand, p as KanbanDiscoveryBatch, q as KanbanDiscoveryChange, r as KanbanDispatch, s as KanbanEstimate, u as KanbanExternalReference, B as KanbanMember, C as KanbanNotificationPolicy, F as KanbanParticipant, G as KanbanPlanning, H as KanbanPolicy, L as KanbanPublishedPlan, N as KanbanRecordInput, Q as KanbanRecordSummary, T as KanbanService, U as KanbanSourceRef, V as KanbanSuggestion, W as KanbanSuggestionKind, a2 as KanbanText, a3 as KanbanWorkDefinition, a4 as KanbanWorkPlan, a5 as KanbanWorkType, a6 as KanbanWorkflowCommand, ab as kanbanReference } from './planning-
|
|
1
|
+
export { K as KanbanModuleHandle, c as createKanbanModule } from './module-CYfE7YhM.js';
|
|
2
|
+
export { K as KanbanBodyStore, S as SeqKanbanStore } from './store-DgdrPCV9.js';
|
|
3
|
+
import { K as KanbanModuleOptions } from './ports-B0McVg7B.js';
|
|
4
|
+
export { a as KanbanError, b as KanbanReadView, c as KanbanScanNotStartedError, d as KanbanState, e as KanbanStore } from './ports-B0McVg7B.js';
|
|
5
|
+
import { l as KanbanBoardInput, j as KanbanBoard, m as KanbanBoardSummary, E as KanbanOverview, w as KanbanItem, a1 as KanbanTaskProjection, c as KanbanArchivedItem, y as KanbanItemQuery, x as KanbanItemPage, J as KanbanProjectRecord, P as KanbanRecordQuery, O as KanbanRecordPage, a7 as KanbanWorkflowState, R as KanbanReferenceTarget, Y as KanbanSuggestionQuery, X as KanbanSuggestionPage, I as KanbanPrincipal, S as KanbanRequest, t as KanbanEvent } from './planning-CHrOqQ6b.js';
|
|
6
|
+
export { D as DEFAULT_KANBAN_WORK_TYPES, K as KanbanActor, a as KanbanAmendment, d as KanbanArtifactRef, e as KanbanAssignment, n as KanbanColumn, o as KanbanCommand, p as KanbanDiscoveryBatch, q as KanbanDiscoveryChange, r as KanbanDispatch, s as KanbanEstimate, u as KanbanExternalReference, z as KanbanItemSummary, B as KanbanMember, C as KanbanNotificationPolicy, F as KanbanParticipant, G as KanbanPlanning, H as KanbanPolicy, L as KanbanPublishedPlan, N as KanbanRecordInput, Q as KanbanRecordSummary, T as KanbanService, U as KanbanSourceRef, V as KanbanSuggestion, W as KanbanSuggestionKind, a2 as KanbanText, a3 as KanbanWorkDefinition, a4 as KanbanWorkPlan, a5 as KanbanWorkType, a6 as KanbanWorkflowCommand, ab as kanbanReference } from './planning-CHrOqQ6b.js';
|
|
7
|
+
export { T as TASK_START_DELAY_MS, p as projectKanbanTask, t as taskDue, a as taskEditing, b as taskStartAt } from './task-projection-CSorlMws.js';
|
|
7
8
|
import '@nestos/vfs-core';
|
|
8
|
-
import './discovery-
|
|
9
|
+
import './discovery-D60yrjej.js';
|
|
9
10
|
|
|
10
11
|
interface KanbanCommit {
|
|
11
12
|
boardId: string;
|
|
@@ -50,12 +51,4 @@ declare function createKanban(options: KanbanModuleOptions): {
|
|
|
50
51
|
|
|
51
52
|
declare function isKanbanEventRelevant(event: KanbanEvent, board: KanbanBoard, now: number): boolean;
|
|
52
53
|
|
|
53
|
-
type
|
|
54
|
-
declare const TASK_START_DELAY_MS = 300000;
|
|
55
|
-
declare function taskStartAt(item: Pick<Item, 'createdAt' | 'launch'>): number;
|
|
56
|
-
declare function taskEditing(item: Pick<Item, 'launch'>, now: number): boolean;
|
|
57
|
-
declare function taskDue(item: Item, now: number): boolean;
|
|
58
|
-
/** Ordered evidence projection shared by storage queries, CLI and UI. Session idle never proves acceptance. */
|
|
59
|
-
declare function projectKanbanTask(item: Item, workflow?: KanbanWorkflowState, now?: number, all?: Array<Pick<KanbanItemSummary, 'id' | 'status'>>): KanbanTaskProjection;
|
|
60
|
-
|
|
61
|
-
export { type Kanban, KanbanArchivedItem, KanbanBoard, KanbanBoardInput, KanbanBoardSummary, type KanbanCommit, KanbanEvent, KanbanItem, KanbanItemPage, KanbanItemQuery, KanbanItemSummary, KanbanModuleOptions, KanbanOverview, KanbanPrincipal, KanbanProjectRecord, KanbanRecordPage, KanbanRecordQuery, KanbanReferenceTarget, KanbanRequest, KanbanSuggestionPage, KanbanSuggestionQuery, KanbanWorkflowState, TASK_START_DELAY_MS, createKanban, isKanbanEventRelevant, projectKanbanTask, taskDue, taskEditing, taskStartAt };
|
|
54
|
+
export { type Kanban, KanbanArchivedItem, KanbanBoard, KanbanBoardInput, KanbanBoardSummary, type KanbanCommit, KanbanEvent, KanbanItem, KanbanItemPage, KanbanItemQuery, KanbanModuleOptions, KanbanOverview, KanbanPrincipal, KanbanProjectRecord, KanbanRecordPage, KanbanRecordQuery, KanbanReferenceTarget, KanbanRequest, KanbanSuggestionPage, KanbanSuggestionQuery, KanbanWorkflowState, createKanban, isKanbanEventRelevant };
|
package/dist/index.js
CHANGED
|
@@ -1,32 +1,30 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createKanbanModule
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-KH3WF3K4.js";
|
|
4
4
|
import {
|
|
5
5
|
SeqKanbanStore
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-AHHEGTUA.js";
|
|
7
7
|
import {
|
|
8
8
|
escalationReasons,
|
|
9
9
|
terminal
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-XKDZHAUE.js";
|
|
11
11
|
import "./chunk-RQP77ZTY.js";
|
|
12
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-3LEIHB7Y.js";
|
|
13
|
+
import {
|
|
14
|
+
DEFAULT_KANBAN_WORK_TYPES,
|
|
15
|
+
kanbanReference
|
|
16
|
+
} from "./chunk-X4UHZX6F.js";
|
|
13
17
|
import {
|
|
14
18
|
KanbanError,
|
|
15
19
|
KanbanScanNotStartedError
|
|
16
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-M35X5PHO.js";
|
|
17
21
|
import {
|
|
18
22
|
TASK_START_DELAY_MS,
|
|
19
23
|
projectKanbanTask,
|
|
20
24
|
taskDue,
|
|
21
25
|
taskEditing,
|
|
22
26
|
taskStartAt
|
|
23
|
-
} from "./chunk-
|
|
24
|
-
import {
|
|
25
|
-
DEFAULT_KANBAN_WORK_TYPES,
|
|
26
|
-
kanbanReference
|
|
27
|
-
} from "./chunk-5XKOCKY2.js";
|
|
28
|
-
import "./chunk-TB2RZGDV.js";
|
|
29
|
-
import "./chunk-QTMTBEBA.js";
|
|
27
|
+
} from "./chunk-3JYLJPE5.js";
|
|
30
28
|
|
|
31
29
|
// src/api.ts
|
|
32
30
|
function createKanban(options) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/api.ts","../src/event-policy.ts"],"sourcesContent":["import {createKanbanModule} from './module';\nimport type {KanbanModuleOptions} from './ports';\nimport type {KanbanRequest} from './contracts';\n\nexport interface KanbanCommit {boardId: string; operationId: string; revision: number}\nexport type Kanban = ReturnType<typeof createKanban>;\n\n/** Grouped public API; all writes still enter the same authorized transaction path. */\nexport function createKanban(options: KanbanModuleOptions) {\n const service = createKanbanModule(options);\n return {\n boards: {create: service.create, get: service.read, list: service.catalog, overview: service.overview},\n items: {get: service.item, query: service.query},\n records: {get: service.record, query: service.records},\n planning: {get: service.workflow},\n references: {resolve: service.resolve, suggest: service.suggest},\n currentPrincipal: service.currentPrincipal,\n async execute(boardId: string, request: KanbanRequest): Promise<KanbanCommit> {\n const board = await service.execute(boardId, request);\n return {boardId, operationId: request.operationId, revision: board.revision};\n },\n events: service.events,\n tick: service.scan,\n quiesce: () => service.quiesce(),\n dispose: () => service.dispose(),\n };\n}\n","import type {KanbanEvent, KanbanBoard} from './contracts';\nimport {terminal} from './planning';\nimport {escalationReasons} from './reducer';\n\nexport function isKanbanEventRelevant(event: KanbanEvent, board: KanbanBoard, now: number): boolean {\n const item = board.items.find(i => i.id === event.itemId);\n if (event.kind === 'escalated') return !!item && !terminal(item) && (event.data.reason === 'transfer-timeout'\n ? !item.transfer && item.status === 'claimed' : escalationReasons(board, item, now).includes(event.data.reason ?? ''));\n if (event.kind === 'submit') return item?.status === 'review';\n if (event.kind === 'request-transfer') return !!item?.transfer && item.transfer.expiresAt > now;\n if (event.kind === 'publish-proposal') return item?.status === 'open';\n return true;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/api.ts","../src/event-policy.ts"],"sourcesContent":["import {createKanbanModule} from './module';\nimport type {KanbanModuleOptions} from './ports';\nimport type {KanbanRequest} from './contracts';\n\nexport interface KanbanCommit {boardId: string; operationId: string; revision: number}\nexport type Kanban = ReturnType<typeof createKanban>;\n\n/** Grouped public API; all writes still enter the same authorized transaction path. */\nexport function createKanban(options: KanbanModuleOptions) {\n const service = createKanbanModule(options);\n return {\n boards: {create: service.create, get: service.read, list: service.catalog, overview: service.overview},\n items: {get: service.item, query: service.query},\n records: {get: service.record, query: service.records},\n planning: {get: service.workflow},\n references: {resolve: service.resolve, suggest: service.suggest},\n currentPrincipal: service.currentPrincipal,\n async execute(boardId: string, request: KanbanRequest): Promise<KanbanCommit> {\n const board = await service.execute(boardId, request);\n return {boardId, operationId: request.operationId, revision: board.revision};\n },\n events: service.events,\n tick: service.scan,\n quiesce: () => service.quiesce(),\n dispose: () => service.dispose(),\n };\n}\n","import type {KanbanEvent, KanbanBoard} from './contracts';\nimport {terminal} from './planning';\nimport {escalationReasons} from './reducer';\n\nexport function isKanbanEventRelevant(event: KanbanEvent, board: KanbanBoard, now: number): boolean {\n const item = board.items.find(i => i.id === event.itemId);\n if (event.kind === 'escalated') return !!item && !terminal(item) && (event.data.reason === 'transfer-timeout'\n ? !item.transfer && item.status === 'claimed' : escalationReasons(board, item, now).includes(event.data.reason ?? ''));\n if (event.kind === 'submit') return item?.status === 'review';\n if (event.kind === 'request-transfer') return !!item?.transfer && item.transfer.expiresAt > now;\n if (event.kind === 'publish-proposal') return item?.status === 'open';\n return true;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQO,SAAS,aAAa,SAA8B;AACvD,QAAM,UAAU,mBAAmB,OAAO;AAC1C,SAAO;AAAA,IACH,QAAQ,EAAC,QAAQ,QAAQ,QAAQ,KAAK,QAAQ,MAAM,MAAM,QAAQ,SAAS,UAAU,QAAQ,SAAQ;AAAA,IACrG,OAAO,EAAC,KAAK,QAAQ,MAAM,OAAO,QAAQ,MAAK;AAAA,IAC/C,SAAS,EAAC,KAAK,QAAQ,QAAQ,OAAO,QAAQ,QAAO;AAAA,IACrD,UAAU,EAAC,KAAK,QAAQ,SAAQ;AAAA,IAChC,YAAY,EAAC,SAAS,QAAQ,SAAS,SAAS,QAAQ,QAAO;AAAA,IAC/D,kBAAkB,QAAQ;AAAA,IAC1B,MAAM,QAAQ,SAAiB,SAA+C;AAC1E,YAAM,QAAQ,MAAM,QAAQ,QAAQ,SAAS,OAAO;AACpD,aAAO,EAAC,SAAS,aAAa,QAAQ,aAAa,UAAU,MAAM,SAAQ;AAAA,IAC/E;AAAA,IACA,QAAQ,QAAQ;AAAA,IAChB,MAAM,QAAQ;AAAA,IACd,SAAS,MAAM,QAAQ,QAAQ;AAAA,IAC/B,SAAS,MAAM,QAAQ,QAAQ;AAAA,EACnC;AACJ;;;ACtBO,SAAS,sBAAsB,OAAoB,OAAoB,KAAsB;AAChG,QAAM,OAAO,MAAM,MAAM,KAAK,OAAK,EAAE,OAAO,MAAM,MAAM;AACxD,MAAI,MAAM,SAAS,YAAa,QAAO,CAAC,CAAC,QAAQ,CAAC,SAAS,IAAI,MAAM,MAAM,KAAK,WAAW,qBACrF,CAAC,KAAK,YAAY,KAAK,WAAW,YAAY,kBAAkB,OAAO,MAAM,GAAG,EAAE,SAAS,MAAM,KAAK,UAAU,EAAE;AACxH,MAAI,MAAM,SAAS,SAAU,QAAO,MAAM,WAAW;AACrD,MAAI,MAAM,SAAS,mBAAoB,QAAO,CAAC,CAAC,MAAM,YAAY,KAAK,SAAS,YAAY;AAC5F,MAAI,MAAM,SAAS,mBAAoB,QAAO,MAAM,WAAW;AAC/D,SAAO;AACX;","names":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { T as KanbanService } from './planning-
|
|
2
|
-
import { K as KanbanModuleOptions } from './ports-
|
|
1
|
+
import { T as KanbanService } from './planning-CHrOqQ6b.js';
|
|
2
|
+
import { K as KanbanModuleOptions } from './ports-B0McVg7B.js';
|
|
3
3
|
|
|
4
4
|
/** Optional host-owned service; no timer or model calls are started implicitly. */
|
|
5
5
|
declare function createKanbanModule(options: KanbanModuleOptions): KanbanModuleHandle;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { T as KanbanService } from './planning-
|
|
2
|
-
import { K as KanbanModuleOptions } from './ports-
|
|
1
|
+
import { T as KanbanService } from './planning-CHrOqQ6b.cjs';
|
|
2
|
+
import { K as KanbanModuleOptions } from './ports-GQy0x-RI.cjs';
|
|
3
3
|
|
|
4
4
|
/** Optional host-owned service; no timer or model calls are started implicitly. */
|
|
5
5
|
declare function createKanbanModule(options: KanbanModuleOptions): KanbanModuleHandle;
|
|
@@ -144,10 +144,10 @@ interface KanbanBoardControl {
|
|
|
144
144
|
controls: Record<string, string>;
|
|
145
145
|
}
|
|
146
146
|
/** Manual mode still honors an explicit per-task run request. */
|
|
147
|
-
declare function boardAllowsStart(board: Pick<KanbanBoard, 'executionControl'>, item?: Pick<KanbanItem, 'launch'>): boolean;
|
|
148
|
-
declare function boardControlPhase(board: Pick<KanbanBoard, 'executionControl'> & {
|
|
147
|
+
declare function boardAllowsStart(board: Pick<KanbanBoard, 'executionControl' | 'lifecycle'>, item?: Pick<KanbanItem, 'launch'>): boolean;
|
|
148
|
+
declare function boardControlPhase(board: Pick<KanbanBoard, 'executionControl' | 'lifecycle'> & {
|
|
149
149
|
items: Array<Pick<KanbanItem, 'id' | 'status' | 'control'>>;
|
|
150
|
-
}): 'automatic' | 'manual' | 'pausing' | 'paused' | 'resuming' | 'error';
|
|
150
|
+
}): 'automatic' | 'manual' | 'pausing' | 'paused' | 'resuming' | 'error' | 'cancelling' | 'cancelled' | 'waiting-deletion';
|
|
151
151
|
|
|
152
152
|
interface KanbanLaunch {
|
|
153
153
|
mode?: 'automatic' | 'manual';
|
|
@@ -164,8 +164,8 @@ interface KanbanLaunch {
|
|
|
164
164
|
interface KanbanTaskControl {
|
|
165
165
|
id: string;
|
|
166
166
|
dispatchId?: string;
|
|
167
|
-
action: 'pause' | 'resume';
|
|
168
|
-
state: 'requested' | 'accepted' | 'paused' | 'resumed' | 'failed' | 'unknown';
|
|
167
|
+
action: 'pause' | 'resume' | 'cancel';
|
|
168
|
+
state: 'requested' | 'accepted' | 'paused' | 'resumed' | 'cancelled' | 'failed' | 'unknown';
|
|
169
169
|
code?: string;
|
|
170
170
|
}
|
|
171
171
|
interface KanbanTaskIssue {
|
|
@@ -174,14 +174,14 @@ interface KanbanTaskIssue {
|
|
|
174
174
|
type: 'clarification' | 'error';
|
|
175
175
|
resolvedBy?: string;
|
|
176
176
|
}
|
|
177
|
-
type KanbanTaskPhase = 'waiting-start' | 'analyzing' | 'queued' | 'waiting-dependency' | 'preparing' | 'running' | 'pausing' | 'paused' | 'resuming' | 'waiting-input' | 'error' | 'review' | 'completed' | 'cancelled' | 'unknown';
|
|
177
|
+
type KanbanTaskPhase = 'waiting-start' | 'analyzing' | 'queued' | 'waiting-dependency' | 'preparing' | 'running' | 'cancelling' | 'pausing' | 'paused' | 'resuming' | 'waiting-input' | 'error' | 'review' | 'completed' | 'cancelled' | 'unknown';
|
|
178
178
|
interface KanbanTaskProjection {
|
|
179
179
|
phase: KanbanTaskPhase;
|
|
180
180
|
reason?: string;
|
|
181
181
|
startAt?: number;
|
|
182
182
|
sessionId?: string;
|
|
183
183
|
dispatchId?: string;
|
|
184
|
-
actions: Array<'run' | 'edit' | 'cancel' | 'pause' | 'resume' | 'fix' | 'open-session' | 'resolve' | 'review'>;
|
|
184
|
+
actions: Array<'delete' | 'run' | 'edit' | 'cancel' | 'pause' | 'resume' | 'fix' | 'open-session' | 'resolve' | 'review'>;
|
|
185
185
|
}
|
|
186
186
|
type KanbanTaskCommand = {
|
|
187
187
|
type: 'begin-edit';
|
|
@@ -226,7 +226,7 @@ type KanbanTaskCommand = {
|
|
|
226
226
|
type: 'request-control';
|
|
227
227
|
itemId: string;
|
|
228
228
|
controlId: string;
|
|
229
|
-
action: 'pause' | 'resume';
|
|
229
|
+
action: 'pause' | 'resume' | 'cancel';
|
|
230
230
|
} | {
|
|
231
231
|
type: 'control-receipt';
|
|
232
232
|
itemId: string;
|
|
@@ -245,11 +245,12 @@ type KanbanTaskCommand = {
|
|
|
245
245
|
resolvedBy: string;
|
|
246
246
|
};
|
|
247
247
|
interface KanbanFixSession {
|
|
248
|
+
code?: string;
|
|
248
249
|
id: string;
|
|
249
250
|
boardId: string;
|
|
250
251
|
itemId: string;
|
|
251
252
|
sessionId: string;
|
|
252
|
-
state: 'clarifying' | 'frozen' | 'accepted';
|
|
253
|
+
state: 'clarifying' | 'frozen' | 'accepted' | 'cancelling' | 'cancelled';
|
|
253
254
|
createdItemId?: string;
|
|
254
255
|
}
|
|
255
256
|
|
|
@@ -325,7 +326,8 @@ interface KanbanProjectRecord {
|
|
|
325
326
|
title: string;
|
|
326
327
|
content: string;
|
|
327
328
|
rationale?: string;
|
|
328
|
-
|
|
329
|
+
deletedAt?: number;
|
|
330
|
+
status: 'draft' | 'confirmed' | 'rejected' | 'superseded' | 'cancelling' | 'cancelled';
|
|
329
331
|
itemIds: string[];
|
|
330
332
|
sources: KanbanSourceRef[];
|
|
331
333
|
author: KanbanPrincipal;
|
|
@@ -342,6 +344,7 @@ type KanbanRecordSummary = Omit<KanbanProjectRecord, 'content' | 'rationale' | '
|
|
|
342
344
|
sessionIds: string[];
|
|
343
345
|
};
|
|
344
346
|
interface KanbanRecordQuery {
|
|
347
|
+
includeDeleted?: boolean;
|
|
345
348
|
kind?: KanbanProjectRecord['kind'];
|
|
346
349
|
itemId?: string;
|
|
347
350
|
status?: KanbanProjectRecord['status'];
|
|
@@ -404,6 +407,7 @@ interface KanbanItem {
|
|
|
404
407
|
analysis?: KanbanAnalysisStatus;
|
|
405
408
|
control?: KanbanTaskControl;
|
|
406
409
|
issues?: KanbanTaskIssue[];
|
|
410
|
+
deletedAt?: number;
|
|
407
411
|
number?: number;
|
|
408
412
|
origin?: {
|
|
409
413
|
kind: 'direct' | 'discovery';
|
|
@@ -448,6 +452,13 @@ interface KanbanItem {
|
|
|
448
452
|
closureReason?: string;
|
|
449
453
|
}
|
|
450
454
|
interface KanbanBoard {
|
|
455
|
+
lifecycle?: {
|
|
456
|
+
operationId: string;
|
|
457
|
+
intent: 'cancel' | 'delete';
|
|
458
|
+
mode: 'drain' | 'cancel';
|
|
459
|
+
phase: 'waiting' | 'ready' | 'blocked';
|
|
460
|
+
code?: string;
|
|
461
|
+
};
|
|
451
462
|
/** Logical deletion retains audit, Session and resource associations. */
|
|
452
463
|
deletedAt?: number;
|
|
453
464
|
executionControl?: KanbanBoardControl;
|
|
@@ -508,6 +519,28 @@ interface KanbanEvent {
|
|
|
508
519
|
};
|
|
509
520
|
}
|
|
510
521
|
type KanbanCommand = KanbanTaskCommand | KanbanWorkflowCommand | {
|
|
522
|
+
type: 'delete-item';
|
|
523
|
+
itemId: string;
|
|
524
|
+
} | {
|
|
525
|
+
type: 'request-record-cancellation';
|
|
526
|
+
recordId: string;
|
|
527
|
+
} | {
|
|
528
|
+
type: 'cancel-record';
|
|
529
|
+
recordId: string;
|
|
530
|
+
} | {
|
|
531
|
+
type: 'delete-record';
|
|
532
|
+
recordId: string;
|
|
533
|
+
} | {
|
|
534
|
+
type: 'request-board-stop';
|
|
535
|
+
controlId: string;
|
|
536
|
+
intent: 'cancel' | 'delete';
|
|
537
|
+
mode: 'drain' | 'cancel';
|
|
538
|
+
} | {
|
|
539
|
+
type: 'observe-board-stop';
|
|
540
|
+
controlId: string;
|
|
541
|
+
phase: 'waiting' | 'ready' | 'blocked';
|
|
542
|
+
code?: string;
|
|
543
|
+
} | {
|
|
511
544
|
type: 'delete-board';
|
|
512
545
|
} | {
|
|
513
546
|
type: 'set-board-control';
|
|
@@ -770,6 +803,7 @@ interface KanbanPlanning {
|
|
|
770
803
|
references: string[];
|
|
771
804
|
}
|
|
772
805
|
interface KanbanItemSummary {
|
|
806
|
+
deletedAt?: number;
|
|
773
807
|
launch?: KanbanLaunch;
|
|
774
808
|
analysis?: KanbanAnalysisStatus;
|
|
775
809
|
control?: KanbanTaskControl;
|
|
@@ -804,6 +838,7 @@ interface KanbanArchivedItem {
|
|
|
804
838
|
reason: string;
|
|
805
839
|
}
|
|
806
840
|
interface KanbanItemQuery {
|
|
841
|
+
includeDeleted?: boolean;
|
|
807
842
|
phase?: KanbanTaskPhase;
|
|
808
843
|
view?: 'ready' | 'backlog' | 'in-progress' | 'review' | 'closed' | 'proposed' | 'archive' | 'all';
|
|
809
844
|
area?: string;
|
|
@@ -144,10 +144,10 @@ interface KanbanBoardControl {
|
|
|
144
144
|
controls: Record<string, string>;
|
|
145
145
|
}
|
|
146
146
|
/** Manual mode still honors an explicit per-task run request. */
|
|
147
|
-
declare function boardAllowsStart(board: Pick<KanbanBoard, 'executionControl'>, item?: Pick<KanbanItem, 'launch'>): boolean;
|
|
148
|
-
declare function boardControlPhase(board: Pick<KanbanBoard, 'executionControl'> & {
|
|
147
|
+
declare function boardAllowsStart(board: Pick<KanbanBoard, 'executionControl' | 'lifecycle'>, item?: Pick<KanbanItem, 'launch'>): boolean;
|
|
148
|
+
declare function boardControlPhase(board: Pick<KanbanBoard, 'executionControl' | 'lifecycle'> & {
|
|
149
149
|
items: Array<Pick<KanbanItem, 'id' | 'status' | 'control'>>;
|
|
150
|
-
}): 'automatic' | 'manual' | 'pausing' | 'paused' | 'resuming' | 'error';
|
|
150
|
+
}): 'automatic' | 'manual' | 'pausing' | 'paused' | 'resuming' | 'error' | 'cancelling' | 'cancelled' | 'waiting-deletion';
|
|
151
151
|
|
|
152
152
|
interface KanbanLaunch {
|
|
153
153
|
mode?: 'automatic' | 'manual';
|
|
@@ -164,8 +164,8 @@ interface KanbanLaunch {
|
|
|
164
164
|
interface KanbanTaskControl {
|
|
165
165
|
id: string;
|
|
166
166
|
dispatchId?: string;
|
|
167
|
-
action: 'pause' | 'resume';
|
|
168
|
-
state: 'requested' | 'accepted' | 'paused' | 'resumed' | 'failed' | 'unknown';
|
|
167
|
+
action: 'pause' | 'resume' | 'cancel';
|
|
168
|
+
state: 'requested' | 'accepted' | 'paused' | 'resumed' | 'cancelled' | 'failed' | 'unknown';
|
|
169
169
|
code?: string;
|
|
170
170
|
}
|
|
171
171
|
interface KanbanTaskIssue {
|
|
@@ -174,14 +174,14 @@ interface KanbanTaskIssue {
|
|
|
174
174
|
type: 'clarification' | 'error';
|
|
175
175
|
resolvedBy?: string;
|
|
176
176
|
}
|
|
177
|
-
type KanbanTaskPhase = 'waiting-start' | 'analyzing' | 'queued' | 'waiting-dependency' | 'preparing' | 'running' | 'pausing' | 'paused' | 'resuming' | 'waiting-input' | 'error' | 'review' | 'completed' | 'cancelled' | 'unknown';
|
|
177
|
+
type KanbanTaskPhase = 'waiting-start' | 'analyzing' | 'queued' | 'waiting-dependency' | 'preparing' | 'running' | 'cancelling' | 'pausing' | 'paused' | 'resuming' | 'waiting-input' | 'error' | 'review' | 'completed' | 'cancelled' | 'unknown';
|
|
178
178
|
interface KanbanTaskProjection {
|
|
179
179
|
phase: KanbanTaskPhase;
|
|
180
180
|
reason?: string;
|
|
181
181
|
startAt?: number;
|
|
182
182
|
sessionId?: string;
|
|
183
183
|
dispatchId?: string;
|
|
184
|
-
actions: Array<'run' | 'edit' | 'cancel' | 'pause' | 'resume' | 'fix' | 'open-session' | 'resolve' | 'review'>;
|
|
184
|
+
actions: Array<'delete' | 'run' | 'edit' | 'cancel' | 'pause' | 'resume' | 'fix' | 'open-session' | 'resolve' | 'review'>;
|
|
185
185
|
}
|
|
186
186
|
type KanbanTaskCommand = {
|
|
187
187
|
type: 'begin-edit';
|
|
@@ -226,7 +226,7 @@ type KanbanTaskCommand = {
|
|
|
226
226
|
type: 'request-control';
|
|
227
227
|
itemId: string;
|
|
228
228
|
controlId: string;
|
|
229
|
-
action: 'pause' | 'resume';
|
|
229
|
+
action: 'pause' | 'resume' | 'cancel';
|
|
230
230
|
} | {
|
|
231
231
|
type: 'control-receipt';
|
|
232
232
|
itemId: string;
|
|
@@ -245,11 +245,12 @@ type KanbanTaskCommand = {
|
|
|
245
245
|
resolvedBy: string;
|
|
246
246
|
};
|
|
247
247
|
interface KanbanFixSession {
|
|
248
|
+
code?: string;
|
|
248
249
|
id: string;
|
|
249
250
|
boardId: string;
|
|
250
251
|
itemId: string;
|
|
251
252
|
sessionId: string;
|
|
252
|
-
state: 'clarifying' | 'frozen' | 'accepted';
|
|
253
|
+
state: 'clarifying' | 'frozen' | 'accepted' | 'cancelling' | 'cancelled';
|
|
253
254
|
createdItemId?: string;
|
|
254
255
|
}
|
|
255
256
|
|
|
@@ -325,7 +326,8 @@ interface KanbanProjectRecord {
|
|
|
325
326
|
title: string;
|
|
326
327
|
content: string;
|
|
327
328
|
rationale?: string;
|
|
328
|
-
|
|
329
|
+
deletedAt?: number;
|
|
330
|
+
status: 'draft' | 'confirmed' | 'rejected' | 'superseded' | 'cancelling' | 'cancelled';
|
|
329
331
|
itemIds: string[];
|
|
330
332
|
sources: KanbanSourceRef[];
|
|
331
333
|
author: KanbanPrincipal;
|
|
@@ -342,6 +344,7 @@ type KanbanRecordSummary = Omit<KanbanProjectRecord, 'content' | 'rationale' | '
|
|
|
342
344
|
sessionIds: string[];
|
|
343
345
|
};
|
|
344
346
|
interface KanbanRecordQuery {
|
|
347
|
+
includeDeleted?: boolean;
|
|
345
348
|
kind?: KanbanProjectRecord['kind'];
|
|
346
349
|
itemId?: string;
|
|
347
350
|
status?: KanbanProjectRecord['status'];
|
|
@@ -404,6 +407,7 @@ interface KanbanItem {
|
|
|
404
407
|
analysis?: KanbanAnalysisStatus;
|
|
405
408
|
control?: KanbanTaskControl;
|
|
406
409
|
issues?: KanbanTaskIssue[];
|
|
410
|
+
deletedAt?: number;
|
|
407
411
|
number?: number;
|
|
408
412
|
origin?: {
|
|
409
413
|
kind: 'direct' | 'discovery';
|
|
@@ -448,6 +452,13 @@ interface KanbanItem {
|
|
|
448
452
|
closureReason?: string;
|
|
449
453
|
}
|
|
450
454
|
interface KanbanBoard {
|
|
455
|
+
lifecycle?: {
|
|
456
|
+
operationId: string;
|
|
457
|
+
intent: 'cancel' | 'delete';
|
|
458
|
+
mode: 'drain' | 'cancel';
|
|
459
|
+
phase: 'waiting' | 'ready' | 'blocked';
|
|
460
|
+
code?: string;
|
|
461
|
+
};
|
|
451
462
|
/** Logical deletion retains audit, Session and resource associations. */
|
|
452
463
|
deletedAt?: number;
|
|
453
464
|
executionControl?: KanbanBoardControl;
|
|
@@ -508,6 +519,28 @@ interface KanbanEvent {
|
|
|
508
519
|
};
|
|
509
520
|
}
|
|
510
521
|
type KanbanCommand = KanbanTaskCommand | KanbanWorkflowCommand | {
|
|
522
|
+
type: 'delete-item';
|
|
523
|
+
itemId: string;
|
|
524
|
+
} | {
|
|
525
|
+
type: 'request-record-cancellation';
|
|
526
|
+
recordId: string;
|
|
527
|
+
} | {
|
|
528
|
+
type: 'cancel-record';
|
|
529
|
+
recordId: string;
|
|
530
|
+
} | {
|
|
531
|
+
type: 'delete-record';
|
|
532
|
+
recordId: string;
|
|
533
|
+
} | {
|
|
534
|
+
type: 'request-board-stop';
|
|
535
|
+
controlId: string;
|
|
536
|
+
intent: 'cancel' | 'delete';
|
|
537
|
+
mode: 'drain' | 'cancel';
|
|
538
|
+
} | {
|
|
539
|
+
type: 'observe-board-stop';
|
|
540
|
+
controlId: string;
|
|
541
|
+
phase: 'waiting' | 'ready' | 'blocked';
|
|
542
|
+
code?: string;
|
|
543
|
+
} | {
|
|
511
544
|
type: 'delete-board';
|
|
512
545
|
} | {
|
|
513
546
|
type: 'set-board-control';
|
|
@@ -770,6 +803,7 @@ interface KanbanPlanning {
|
|
|
770
803
|
references: string[];
|
|
771
804
|
}
|
|
772
805
|
interface KanbanItemSummary {
|
|
806
|
+
deletedAt?: number;
|
|
773
807
|
launch?: KanbanLaunch;
|
|
774
808
|
analysis?: KanbanAnalysisStatus;
|
|
775
809
|
control?: KanbanTaskControl;
|
|
@@ -804,6 +838,7 @@ interface KanbanArchivedItem {
|
|
|
804
838
|
reason: string;
|
|
805
839
|
}
|
|
806
840
|
interface KanbanItemQuery {
|
|
841
|
+
includeDeleted?: boolean;
|
|
807
842
|
phase?: KanbanTaskPhase;
|
|
808
843
|
view?: 'ready' | 'backlog' | 'in-progress' | 'review' | 'closed' | 'proposed' | 'archive' | 'all';
|
|
809
844
|
area?: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { q as KanbanDiscoveryChange, N as KanbanRecordInput, S as KanbanRequest, T as KanbanService, j as KanbanBoard, W as KanbanSuggestionKind, V as KanbanSuggestion, d as KanbanArtifactRef, a7 as KanbanWorkflowState, J as KanbanProjectRecord, z as KanbanItemSummary, c as KanbanArchivedItem, t as KanbanEvent, Q as KanbanRecordSummary, K as KanbanActor, o as KanbanCommand, w as KanbanItem } from './planning-
|
|
2
|
-
import { b as KanbanScanInput, d as KanbanScanSession, e as KanbanScanText, K as KanbanDiscoveryResult, c as KanbanScanPolicy } from './discovery-
|
|
1
|
+
import { q as KanbanDiscoveryChange, N as KanbanRecordInput, S as KanbanRequest, T as KanbanService, j as KanbanBoard, W as KanbanSuggestionKind, V as KanbanSuggestion, d as KanbanArtifactRef, a7 as KanbanWorkflowState, J as KanbanProjectRecord, z as KanbanItemSummary, c as KanbanArchivedItem, t as KanbanEvent, Q as KanbanRecordSummary, K as KanbanActor, o as KanbanCommand, w as KanbanItem } from './planning-CHrOqQ6b.js';
|
|
2
|
+
import { b as KanbanScanInput, d as KanbanScanSession, e as KanbanScanText, K as KanbanDiscoveryResult, c as KanbanScanPolicy } from './discovery-D60yrjej.js';
|
|
3
3
|
|
|
4
4
|
interface KanbanDiscoveryState {
|
|
5
5
|
checkpoints: Record<string, string>;
|
|
@@ -115,6 +115,7 @@ interface KanbanModuleOptions {
|
|
|
115
115
|
}): Promise<void>;
|
|
116
116
|
/** Confirm an automated owner has settled before releasing responsibility. */
|
|
117
117
|
verifyDeletion?(board: KanbanBoard): Promise<void>;
|
|
118
|
+
verifyLifecycle?(board: KanbanBoard, command: KanbanCommand): Promise<void>;
|
|
118
119
|
verifyRelease?(input: {
|
|
119
120
|
actor: KanbanActor;
|
|
120
121
|
board: KanbanBoard;
|
|
@@ -139,4 +140,4 @@ declare class KanbanError extends Error {
|
|
|
139
140
|
declare class KanbanScanNotStartedError extends KanbanError {
|
|
140
141
|
}
|
|
141
142
|
|
|
142
|
-
export { type KanbanModuleOptions as K,
|
|
143
|
+
export { type KanbanModuleOptions as K, KanbanError as a, type KanbanReadView as b, KanbanScanNotStartedError as c, type KanbanState as d, type KanbanStore as e, type KanbanDiscoveryOptions as f, type KanbanDiscoveryState as g, type KanbanScanExecutor as h, type KanbanScanSource as i };
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { u as KanbanExternalReference, J as KanbanProjectRecord } from './planning-CHrOqQ6b.cjs';
|
|
2
|
+
|
|
3
|
+
interface KanbanRuntimeDiagnostic {
|
|
4
|
+
operationId: string;
|
|
5
|
+
stage: string;
|
|
6
|
+
result: 'started' | 'success' | 'failure';
|
|
7
|
+
durationMs: number;
|
|
8
|
+
code?: string;
|
|
9
|
+
operation?: string;
|
|
10
|
+
boardId?: string;
|
|
11
|
+
itemId?: string;
|
|
12
|
+
count?: number;
|
|
13
|
+
}
|
|
14
|
+
interface KanbanJournalOptions {
|
|
15
|
+
directory?: string;
|
|
16
|
+
artifactScheme?: string;
|
|
17
|
+
diagnostic?(event: KanbanRuntimeDiagnostic): void;
|
|
18
|
+
}
|
|
19
|
+
interface KanbanReferencePolicy {
|
|
20
|
+
resource: string;
|
|
21
|
+
decision: string;
|
|
22
|
+
execution: string;
|
|
23
|
+
nativeExecution?: string;
|
|
24
|
+
workspace?: string;
|
|
25
|
+
inherit?(references: readonly KanbanExternalReference[]): KanbanExternalReference[];
|
|
26
|
+
}
|
|
27
|
+
declare const defaultReferences: KanbanReferencePolicy;
|
|
28
|
+
interface KanbanResourceCatalog {
|
|
29
|
+
system: string;
|
|
30
|
+
decisionSystem?: string;
|
|
31
|
+
list(): Promise<Array<{
|
|
32
|
+
reference: KanbanExternalReference;
|
|
33
|
+
label: string;
|
|
34
|
+
}>>;
|
|
35
|
+
validate(references: readonly KanbanExternalReference[]): Promise<void>;
|
|
36
|
+
}
|
|
37
|
+
interface KanbanWorkLogOptions {
|
|
38
|
+
directory?: string;
|
|
39
|
+
references?: KanbanReferencePolicy;
|
|
40
|
+
label?(stage: string): string;
|
|
41
|
+
diagnostic?(event: KanbanRuntimeDiagnostic): void;
|
|
42
|
+
onRecord?(input: {
|
|
43
|
+
boardId: string;
|
|
44
|
+
itemId: string;
|
|
45
|
+
record: KanbanProjectRecord;
|
|
46
|
+
}): Promise<void>;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export { type KanbanResourceCatalog as K, type KanbanRuntimeDiagnostic as a, type KanbanJournalOptions as b, type KanbanWorkLogOptions as c, type KanbanReferencePolicy as d, defaultReferences as e };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { q as KanbanDiscoveryChange, N as KanbanRecordInput, S as KanbanRequest, T as KanbanService, j as KanbanBoard, W as KanbanSuggestionKind, V as KanbanSuggestion, d as KanbanArtifactRef, a7 as KanbanWorkflowState, J as KanbanProjectRecord, z as KanbanItemSummary, c as KanbanArchivedItem, t as KanbanEvent, Q as KanbanRecordSummary, K as KanbanActor, o as KanbanCommand, w as KanbanItem } from './planning-
|
|
2
|
-
import { b as KanbanScanInput, d as KanbanScanSession, e as KanbanScanText, K as KanbanDiscoveryResult, c as KanbanScanPolicy } from './discovery-
|
|
1
|
+
import { q as KanbanDiscoveryChange, N as KanbanRecordInput, S as KanbanRequest, T as KanbanService, j as KanbanBoard, W as KanbanSuggestionKind, V as KanbanSuggestion, d as KanbanArtifactRef, a7 as KanbanWorkflowState, J as KanbanProjectRecord, z as KanbanItemSummary, c as KanbanArchivedItem, t as KanbanEvent, Q as KanbanRecordSummary, K as KanbanActor, o as KanbanCommand, w as KanbanItem } from './planning-CHrOqQ6b.cjs';
|
|
2
|
+
import { b as KanbanScanInput, d as KanbanScanSession, e as KanbanScanText, K as KanbanDiscoveryResult, c as KanbanScanPolicy } from './discovery-9E-LfwIw.cjs';
|
|
3
3
|
|
|
4
4
|
interface KanbanDiscoveryState {
|
|
5
5
|
checkpoints: Record<string, string>;
|
|
@@ -115,6 +115,7 @@ interface KanbanModuleOptions {
|
|
|
115
115
|
}): Promise<void>;
|
|
116
116
|
/** Confirm an automated owner has settled before releasing responsibility. */
|
|
117
117
|
verifyDeletion?(board: KanbanBoard): Promise<void>;
|
|
118
|
+
verifyLifecycle?(board: KanbanBoard, command: KanbanCommand): Promise<void>;
|
|
118
119
|
verifyRelease?(input: {
|
|
119
120
|
actor: KanbanActor;
|
|
120
121
|
board: KanbanBoard;
|
|
@@ -139,4 +140,4 @@ declare class KanbanError extends Error {
|
|
|
139
140
|
declare class KanbanScanNotStartedError extends KanbanError {
|
|
140
141
|
}
|
|
141
142
|
|
|
142
|
-
export { type KanbanModuleOptions as K,
|
|
143
|
+
export { type KanbanModuleOptions as K, KanbanError as a, type KanbanReadView as b, KanbanScanNotStartedError as c, type KanbanState as d, type KanbanStore as e, type KanbanDiscoveryOptions as f, type KanbanDiscoveryState as g, type KanbanScanExecutor as h, type KanbanScanSource as i };
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { u as KanbanExternalReference, J as KanbanProjectRecord } from './planning-CHrOqQ6b.js';
|
|
2
|
+
|
|
3
|
+
interface KanbanRuntimeDiagnostic {
|
|
4
|
+
operationId: string;
|
|
5
|
+
stage: string;
|
|
6
|
+
result: 'started' | 'success' | 'failure';
|
|
7
|
+
durationMs: number;
|
|
8
|
+
code?: string;
|
|
9
|
+
operation?: string;
|
|
10
|
+
boardId?: string;
|
|
11
|
+
itemId?: string;
|
|
12
|
+
count?: number;
|
|
13
|
+
}
|
|
14
|
+
interface KanbanJournalOptions {
|
|
15
|
+
directory?: string;
|
|
16
|
+
artifactScheme?: string;
|
|
17
|
+
diagnostic?(event: KanbanRuntimeDiagnostic): void;
|
|
18
|
+
}
|
|
19
|
+
interface KanbanReferencePolicy {
|
|
20
|
+
resource: string;
|
|
21
|
+
decision: string;
|
|
22
|
+
execution: string;
|
|
23
|
+
nativeExecution?: string;
|
|
24
|
+
workspace?: string;
|
|
25
|
+
inherit?(references: readonly KanbanExternalReference[]): KanbanExternalReference[];
|
|
26
|
+
}
|
|
27
|
+
declare const defaultReferences: KanbanReferencePolicy;
|
|
28
|
+
interface KanbanResourceCatalog {
|
|
29
|
+
system: string;
|
|
30
|
+
decisionSystem?: string;
|
|
31
|
+
list(): Promise<Array<{
|
|
32
|
+
reference: KanbanExternalReference;
|
|
33
|
+
label: string;
|
|
34
|
+
}>>;
|
|
35
|
+
validate(references: readonly KanbanExternalReference[]): Promise<void>;
|
|
36
|
+
}
|
|
37
|
+
interface KanbanWorkLogOptions {
|
|
38
|
+
directory?: string;
|
|
39
|
+
references?: KanbanReferencePolicy;
|
|
40
|
+
label?(stage: string): string;
|
|
41
|
+
diagnostic?(event: KanbanRuntimeDiagnostic): void;
|
|
42
|
+
onRecord?(input: {
|
|
43
|
+
boardId: string;
|
|
44
|
+
itemId: string;
|
|
45
|
+
record: KanbanProjectRecord;
|
|
46
|
+
}): Promise<void>;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export { type KanbanResourceCatalog as K, type KanbanRuntimeDiagnostic as a, type KanbanJournalOptions as b, type KanbanWorkLogOptions as c, type KanbanReferencePolicy as d, defaultReferences as e };
|