@nestos/kanban 0.0.0-stage → 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 +165 -2
- package/dist/activity-BbC4sgKL.d.cts +258 -0
- package/dist/activity-Czlan5xW.d.ts +258 -0
- 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 +16 -0
- package/dist/activity.cjs.map +1 -0
- package/dist/activity.d.cts +12 -0
- package/dist/activity.d.ts +12 -0
- package/dist/activity.js +16 -0
- package/dist/activity.js.map +1 -0
- package/dist/chunk-3JYLJPE5.js +95 -0
- package/dist/chunk-3JYLJPE5.js.map +1 -0
- package/dist/chunk-3LEIHB7Y.js +221 -0
- package/dist/chunk-3LEIHB7Y.js.map +1 -0
- package/dist/chunk-4XF6LQSU.cjs +9 -0
- package/dist/chunk-4XF6LQSU.cjs.map +1 -0
- package/dist/chunk-5Q7WB63A.cjs +282 -0
- package/dist/chunk-5Q7WB63A.cjs.map +1 -0
- package/dist/chunk-7KDOTBRX.cjs +58 -0
- package/dist/chunk-7KDOTBRX.cjs.map +1 -0
- package/dist/chunk-AHHEGTUA.js +148 -0
- package/dist/chunk-AHHEGTUA.js.map +1 -0
- package/dist/chunk-AOHQCX7K.cjs +95 -0
- package/dist/chunk-AOHQCX7K.cjs.map +1 -0
- package/dist/chunk-DINLR6E6.cjs +443 -0
- package/dist/chunk-DINLR6E6.cjs.map +1 -0
- package/dist/chunk-EYTVC2H5.cjs +1612 -0
- 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-KH3WF3K4.js +443 -0
- package/dist/chunk-KH3WF3K4.js.map +1 -0
- package/dist/chunk-M35X5PHO.js +196 -0
- 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-RBOER6EW.cjs +221 -0
- package/dist/chunk-RBOER6EW.cjs.map +1 -0
- package/dist/chunk-RQP77ZTY.js +9 -0
- package/dist/chunk-RQP77ZTY.js.map +1 -0
- package/dist/chunk-RSH6QSEC.cjs +196 -0
- package/dist/chunk-RSH6QSEC.cjs.map +1 -0
- package/dist/chunk-VMRDXOLX.cjs +148 -0
- package/dist/chunk-VMRDXOLX.cjs.map +1 -0
- package/dist/chunk-X4UHZX6F.js +58 -0
- package/dist/chunk-X4UHZX6F.js.map +1 -0
- package/dist/chunk-XBSGUVCY.cjs +382 -0
- package/dist/chunk-XBSGUVCY.cjs.map +1 -0
- package/dist/chunk-XKDZHAUE.js +1612 -0
- 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-C5aJZFlw.d.cts +35 -0
- package/dist/content-hLH5BNud.d.ts +35 -0
- package/dist/contracts/index.cjs +31 -0
- package/dist/contracts/index.cjs.map +1 -0
- package/dist/contracts/index.d.cts +5 -0
- package/dist/contracts/index.d.ts +5 -0
- package/dist/contracts/index.js +31 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/discovery-9E-LfwIw.d.cts +61 -0
- package/dist/discovery-D60yrjej.d.ts +61 -0
- package/dist/discovery.cjs +377 -0
- package/dist/discovery.cjs.map +1 -0
- package/dist/discovery.d.cts +22 -0
- package/dist/discovery.d.ts +22 -0
- package/dist/discovery.js +377 -0
- package/dist/discovery.js.map +1 -0
- package/dist/execution-bridge-fpCnH6z5.d.cts +52 -0
- package/dist/execution-bridge-rk0uVy_n.d.ts +52 -0
- package/dist/execution.cjs +18 -0
- package/dist/execution.cjs.map +1 -0
- package/dist/execution.d.cts +42 -0
- package/dist/execution.d.ts +42 -0
- package/dist/execution.js +18 -0
- package/dist/execution.js.map +1 -0
- package/dist/index.cjs +74 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +54 -0
- package/dist/index.d.ts +54 -0
- package/dist/index.js +74 -0
- package/dist/index.js.map +1 -0
- package/dist/module-CYfE7YhM.d.ts +11 -0
- package/dist/module-Ca9L3qCn.d.cts +11 -0
- package/dist/planning-CHrOqQ6b.d.cts +879 -0
- package/dist/planning-CHrOqQ6b.d.ts +879 -0
- package/dist/ports-B0McVg7B.d.ts +143 -0
- package/dist/ports-BeGO1VRI.d.cts +49 -0
- package/dist/ports-GQy0x-RI.d.cts +143 -0
- 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 +21 -0
- package/dist/storage.cjs.map +1 -0
- package/dist/storage.d.cts +71 -0
- package/dist/storage.d.ts +71 -0
- package/dist/storage.js +21 -0
- package/dist/storage.js.map +1 -0
- package/dist/store-DPwHzGiz.d.cts +28 -0
- package/dist/store-DgdrPCV9.d.ts +28 -0
- 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 +143 -4
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { K as KanbanBodyStore } from './store-DgdrPCV9.js';
|
|
2
|
+
export { S as SeqKanbanStore } from './store-DgdrPCV9.js';
|
|
3
|
+
import { e as KanbanStore, b as KanbanReadView, d as KanbanState, K as KanbanModuleOptions } from './ports-B0McVg7B.js';
|
|
4
|
+
import { t as KanbanEvent, c as KanbanArchivedItem } from './planning-CHrOqQ6b.js';
|
|
5
|
+
import { K as KanbanContent } from './content-hLH5BNud.js';
|
|
6
|
+
import '@nestos/vfs-core';
|
|
7
|
+
import './discovery-D60yrjej.js';
|
|
8
|
+
|
|
9
|
+
/** A transport snapshot is pinned to one revision; unknown writes must not be replayed. */
|
|
10
|
+
interface KanbanSeqSnapshot {
|
|
11
|
+
revision: string | null;
|
|
12
|
+
entries: Array<{
|
|
13
|
+
key: string;
|
|
14
|
+
value: unknown;
|
|
15
|
+
}>;
|
|
16
|
+
}
|
|
17
|
+
type KanbanSeqChange = {
|
|
18
|
+
action: 'set';
|
|
19
|
+
key: string;
|
|
20
|
+
value: string;
|
|
21
|
+
} | {
|
|
22
|
+
action: 'delete';
|
|
23
|
+
key: string;
|
|
24
|
+
};
|
|
25
|
+
interface KanbanSeqClient {
|
|
26
|
+
query(path: string, query: {
|
|
27
|
+
keys: string[];
|
|
28
|
+
expectedRevision?: string;
|
|
29
|
+
}): Promise<KanbanSeqSnapshot>;
|
|
30
|
+
transaction(path: string, expectedRevision: string | null, changes: KanbanSeqChange[]): Promise<unknown>;
|
|
31
|
+
readBody?(path: string, hash: string): Promise<ArrayBuffer | null>;
|
|
32
|
+
writeBody?(path: string, hash: string, bytes: ArrayBuffer): Promise<void>;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/** The project export and its authorization are frozen in the injected HTTP client. */
|
|
36
|
+
declare class ConditionalKanbanStore implements KanbanStore {
|
|
37
|
+
private readonly client;
|
|
38
|
+
private readonly prepareDirectory;
|
|
39
|
+
private readonly path;
|
|
40
|
+
private readonly bodies?;
|
|
41
|
+
constructor(client: Pick<KanbanSeqClient, 'query' | 'transaction'> & Partial<Pick<KanbanSeqClient, 'readBody' | 'writeBody'>>, prepareDirectory: () => Promise<void>, path?: string, bodies?: KanbanBodyStore | undefined);
|
|
42
|
+
private select;
|
|
43
|
+
boardId(number: number): Promise<string | null>;
|
|
44
|
+
ids(): Promise<string[]>;
|
|
45
|
+
view(id: string): Promise<KanbanReadView | null>;
|
|
46
|
+
read(id: string): Promise<KanbanState | null>;
|
|
47
|
+
private loadRows;
|
|
48
|
+
private queryRevision;
|
|
49
|
+
events(id: string, after: number, limit: number, through: number): Promise<KanbanEvent[]>;
|
|
50
|
+
archived(board: string, item: string): Promise<KanbanArchivedItem | null>;
|
|
51
|
+
private numberBoard;
|
|
52
|
+
update(id: string, operationId: string, fingerprint: string, change: (state: KanbanState | null) => KanbanState): Promise<KanbanState>;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
interface KanbanContentOptions extends KanbanModuleOptions {
|
|
56
|
+
content: KanbanContent;
|
|
57
|
+
operationId: string;
|
|
58
|
+
fillMissing?: boolean;
|
|
59
|
+
missingReferences?: 'reject' | 'detach';
|
|
60
|
+
}
|
|
61
|
+
declare function inspectKanbanContent(store: KanbanStore, content: KanbanContent): Promise<{
|
|
62
|
+
version: number;
|
|
63
|
+
complete: boolean;
|
|
64
|
+
}>;
|
|
65
|
+
/** Authorized bootstrap/import: domain changes and the installed version commit together. */
|
|
66
|
+
declare function installKanbanContent(options: KanbanContentOptions): Promise<{
|
|
67
|
+
changed: boolean;
|
|
68
|
+
created: number;
|
|
69
|
+
}>;
|
|
70
|
+
|
|
71
|
+
export { ConditionalKanbanStore, KanbanBodyStore, type KanbanContentOptions, type KanbanSeqChange, type KanbanSeqClient, type KanbanSeqSnapshot, KanbanStore, inspectKanbanContent, installKanbanContent };
|
package/dist/storage.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ConditionalKanbanStore,
|
|
3
|
+
inspectKanbanContent,
|
|
4
|
+
installKanbanContent
|
|
5
|
+
} from "./chunk-J3EAIVA3.js";
|
|
6
|
+
import {
|
|
7
|
+
SeqKanbanStore
|
|
8
|
+
} from "./chunk-AHHEGTUA.js";
|
|
9
|
+
import "./chunk-XKDZHAUE.js";
|
|
10
|
+
import "./chunk-RQP77ZTY.js";
|
|
11
|
+
import "./chunk-3LEIHB7Y.js";
|
|
12
|
+
import "./chunk-X4UHZX6F.js";
|
|
13
|
+
import "./chunk-M35X5PHO.js";
|
|
14
|
+
import "./chunk-3JYLJPE5.js";
|
|
15
|
+
export {
|
|
16
|
+
ConditionalKanbanStore,
|
|
17
|
+
SeqKanbanStore,
|
|
18
|
+
inspectKanbanContent,
|
|
19
|
+
installKanbanContent
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { e as KanbanStore, b as KanbanReadView, d as KanbanState } from './ports-GQy0x-RI.cjs';
|
|
2
|
+
import { t as KanbanEvent, c as KanbanArchivedItem } from './planning-CHrOqQ6b.cjs';
|
|
3
|
+
import { IFileSystem } from '@nestos/vfs-core';
|
|
4
|
+
|
|
5
|
+
interface KanbanBodyStore {
|
|
6
|
+
read(sha256: string): Promise<ArrayBuffer | null>;
|
|
7
|
+
write(sha256: string, bytes: ArrayBuffer): Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/** One user-scoped journal, with atomic board/index/receipt commits. */
|
|
11
|
+
declare class SeqKanbanStore implements KanbanStore {
|
|
12
|
+
private readonly fs;
|
|
13
|
+
private readonly path;
|
|
14
|
+
private readonly bodies;
|
|
15
|
+
private constructor();
|
|
16
|
+
static open(fs: IFileSystem, directory?: string, bodies?: KanbanBodyStore): Promise<SeqKanbanStore>;
|
|
17
|
+
boardId(number: number): Promise<string | null>;
|
|
18
|
+
ids(): Promise<string[]>;
|
|
19
|
+
events(id: string, after: number, limit: number, through: number): Promise<KanbanEvent[]>;
|
|
20
|
+
archived(boardId: string, itemId: string): Promise<KanbanArchivedItem | null>;
|
|
21
|
+
private load;
|
|
22
|
+
view(id: string): Promise<KanbanReadView | null>;
|
|
23
|
+
read(id: string): Promise<KanbanState | null>;
|
|
24
|
+
update(id: string, operationId: string, fingerprint: string, change: (state: KanbanState | null) => KanbanState): Promise<KanbanState>;
|
|
25
|
+
private persist;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export { type KanbanBodyStore as K, SeqKanbanStore as S };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { e as KanbanStore, b as KanbanReadView, d as KanbanState } from './ports-B0McVg7B.js';
|
|
2
|
+
import { t as KanbanEvent, c as KanbanArchivedItem } from './planning-CHrOqQ6b.js';
|
|
3
|
+
import { IFileSystem } from '@nestos/vfs-core';
|
|
4
|
+
|
|
5
|
+
interface KanbanBodyStore {
|
|
6
|
+
read(sha256: string): Promise<ArrayBuffer | null>;
|
|
7
|
+
write(sha256: string, bytes: ArrayBuffer): Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/** One user-scoped journal, with atomic board/index/receipt commits. */
|
|
11
|
+
declare class SeqKanbanStore implements KanbanStore {
|
|
12
|
+
private readonly fs;
|
|
13
|
+
private readonly path;
|
|
14
|
+
private readonly bodies;
|
|
15
|
+
private constructor();
|
|
16
|
+
static open(fs: IFileSystem, directory?: string, bodies?: KanbanBodyStore): Promise<SeqKanbanStore>;
|
|
17
|
+
boardId(number: number): Promise<string | null>;
|
|
18
|
+
ids(): Promise<string[]>;
|
|
19
|
+
events(id: string, after: number, limit: number, through: number): Promise<KanbanEvent[]>;
|
|
20
|
+
archived(boardId: string, itemId: string): Promise<KanbanArchivedItem | null>;
|
|
21
|
+
private load;
|
|
22
|
+
view(id: string): Promise<KanbanReadView | null>;
|
|
23
|
+
read(id: string): Promise<KanbanState | null>;
|
|
24
|
+
update(id: string, operationId: string, fingerprint: string, change: (state: KanbanState | null) => KanbanState): Promise<KanbanState>;
|
|
25
|
+
private persist;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export { type KanbanBodyStore as K, SeqKanbanStore as S };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { w as KanbanItem, a7 as KanbanWorkflowState, z as KanbanItemSummary, a1 as KanbanTaskProjection } from './planning-CHrOqQ6b.js';
|
|
2
|
+
|
|
3
|
+
type Item = Pick<KanbanItem, 'deletedAt' | 'id' | 'status' | 'createdAt' | 'launch' | 'analysis' | 'control' | 'issues' | 'blocked' | 'externalRefs' | 'planning'>;
|
|
4
|
+
declare const TASK_START_DELAY_MS = 300000;
|
|
5
|
+
declare function taskStartAt(item: Pick<Item, 'createdAt' | 'launch'>): number;
|
|
6
|
+
declare function taskEditing(item: Pick<Item, 'launch'>, now: number): boolean;
|
|
7
|
+
declare function taskDue(item: Item, now: number): boolean;
|
|
8
|
+
/** Ordered evidence projection shared by storage queries, CLI and UI. Session idle never proves acceptance. */
|
|
9
|
+
declare function projectKanbanTask(item: Item, workflow?: KanbanWorkflowState, now?: number, all?: Array<Pick<KanbanItemSummary, 'id' | 'status'>>): KanbanTaskProjection;
|
|
10
|
+
|
|
11
|
+
export { TASK_START_DELAY_MS as T, taskEditing as a, taskStartAt as b, projectKanbanTask as p, taskDue as t };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { w as KanbanItem, a7 as KanbanWorkflowState, z as KanbanItemSummary, a1 as KanbanTaskProjection } from './planning-CHrOqQ6b.cjs';
|
|
2
|
+
|
|
3
|
+
type Item = Pick<KanbanItem, 'deletedAt' | 'id' | 'status' | 'createdAt' | 'launch' | 'analysis' | 'control' | 'issues' | 'blocked' | 'externalRefs' | 'planning'>;
|
|
4
|
+
declare const TASK_START_DELAY_MS = 300000;
|
|
5
|
+
declare function taskStartAt(item: Pick<Item, 'createdAt' | 'launch'>): number;
|
|
6
|
+
declare function taskEditing(item: Pick<Item, 'launch'>, now: number): boolean;
|
|
7
|
+
declare function taskDue(item: Item, now: number): boolean;
|
|
8
|
+
/** Ordered evidence projection shared by storage queries, CLI and UI. Session idle never proves acceptance. */
|
|
9
|
+
declare function projectKanbanTask(item: Item, workflow?: KanbanWorkflowState, now?: number, all?: Array<Pick<KanbanItemSummary, 'id' | 'status'>>): KanbanTaskProjection;
|
|
10
|
+
|
|
11
|
+
export { TASK_START_DELAY_MS as T, taskEditing as a, taskStartAt as b, projectKanbanTask as p, taskDue as t };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import {createVFS, MemoryBackend} from '@nestos/vfs-core';
|
|
2
|
+
import {createKanban, SeqKanbanStore} from '@nestos/kanban';
|
|
3
|
+
|
|
4
|
+
const {manager} = await createVFS({rootBackend: new MemoryBackend()});
|
|
5
|
+
const store = await SeqKanbanStore.open(await manager.openFileSystem('/'));
|
|
6
|
+
// The demo trusts its single in-memory user. Production hosts enforce authorization here.
|
|
7
|
+
const api = createKanban({store, actor: {kind: 'human', id: 'owner'}, authorize: async () => {}});
|
|
8
|
+
try {
|
|
9
|
+
await api.boards.create({id: 'research', title: 'Research', scope: {kind: 'system'},
|
|
10
|
+
members: [{kind: 'human', id: 'owner', responsibility: 'Research'}],
|
|
11
|
+
policy: {requireEstimate: false, review: 'assignee'}});
|
|
12
|
+
await api.execute('research', {operationId: 'create', expectedRevision: (await api.boards.get('research')).revision,
|
|
13
|
+
command: {type: 'create-item', stage: 'open', item: {id: 'experiment', title: 'Experiment', responsibility: 'Collect evidence', acceptance: 'Evidence recorded'}}});
|
|
14
|
+
await api.execute('research', {operationId: 'claim', expectedRevision: (await api.boards.get('research')).revision,
|
|
15
|
+
command: {type: 'claim', itemId: 'experiment'}});
|
|
16
|
+
const item = (await api.items.get('research', 'experiment')).item;
|
|
17
|
+
await api.execute('research', {operationId: 'submit', expectedRevision: (await api.boards.get('research')).revision,
|
|
18
|
+
command: {type: 'submit', itemId: item.id, token: item.owner!.token, resultRef: 'lab:evidence'}});
|
|
19
|
+
const delivered = (await api.items.get('research', 'experiment')).item;
|
|
20
|
+
if (delivered.status !== 'completed') throw new Error('Expected a completed item');
|
|
21
|
+
console.log(JSON.stringify({id: delivered.id, status: delivered.status}));
|
|
22
|
+
} finally {await api.dispose(); await manager.dispose();}
|
package/package.json
CHANGED
|
@@ -1,6 +1,145 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nestos/kanban",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.5.2",
|
|
4
|
+
"description": "Portable VFS-backed Kanban domain, coordination runtime and contracts.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./src/index.ts",
|
|
7
|
+
"types": "./src/index.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": "./src/index.ts",
|
|
10
|
+
"./contracts": "./src/contracts/index.ts",
|
|
11
|
+
"./storage": "./src/storage.ts",
|
|
12
|
+
"./execution": "./src/execution.ts",
|
|
13
|
+
"./discovery": "./src/discovery-entry.ts",
|
|
14
|
+
"./activity": "./src/activity.ts",
|
|
15
|
+
"./runtime": "./src/runtime/index.ts",
|
|
16
|
+
"./integration": "./src/runtime/integration.ts"
|
|
17
|
+
},
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsup && node scripts/check-package.mjs",
|
|
20
|
+
"test": "vitest run",
|
|
21
|
+
"typecheck": "tsc --noEmit",
|
|
22
|
+
"example": "tsx examples/standalone.ts",
|
|
23
|
+
"prepack": "pnpm build",
|
|
24
|
+
"test:package": "node scripts/check-package.mjs"
|
|
25
|
+
},
|
|
26
|
+
"peerDependencies": {
|
|
27
|
+
"@nestos/vfs-core": "^0.5.1"
|
|
28
|
+
},
|
|
29
|
+
"devDependencies": {
|
|
30
|
+
"@nestos/vfs-core": "^0.5.1",
|
|
31
|
+
"typescript": "^5.9.3",
|
|
32
|
+
"tsup": "^8.5.0",
|
|
33
|
+
"vitest": "^3.2.4",
|
|
34
|
+
"tsx": "^4.20.6"
|
|
35
|
+
},
|
|
36
|
+
"files": [
|
|
37
|
+
"dist",
|
|
38
|
+
"examples"
|
|
39
|
+
],
|
|
40
|
+
"publishConfig": {
|
|
41
|
+
"access": "public",
|
|
42
|
+
"main": "./dist/index.cjs",
|
|
43
|
+
"types": "./dist/index.d.ts",
|
|
44
|
+
"exports": {
|
|
45
|
+
".": {
|
|
46
|
+
"import": {
|
|
47
|
+
"types": "./dist/index.d.ts",
|
|
48
|
+
"default": "./dist/index.js"
|
|
49
|
+
},
|
|
50
|
+
"require": {
|
|
51
|
+
"types": "./dist/index.d.cts",
|
|
52
|
+
"default": "./dist/index.cjs"
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"./contracts": {
|
|
56
|
+
"import": {
|
|
57
|
+
"types": "./dist/contracts/index.d.ts",
|
|
58
|
+
"default": "./dist/contracts/index.js"
|
|
59
|
+
},
|
|
60
|
+
"require": {
|
|
61
|
+
"types": "./dist/contracts/index.d.cts",
|
|
62
|
+
"default": "./dist/contracts/index.cjs"
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"./storage": {
|
|
66
|
+
"import": {
|
|
67
|
+
"types": "./dist/storage.d.ts",
|
|
68
|
+
"default": "./dist/storage.js"
|
|
69
|
+
},
|
|
70
|
+
"require": {
|
|
71
|
+
"types": "./dist/storage.d.cts",
|
|
72
|
+
"default": "./dist/storage.cjs"
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"./execution": {
|
|
76
|
+
"import": {
|
|
77
|
+
"types": "./dist/execution.d.ts",
|
|
78
|
+
"default": "./dist/execution.js"
|
|
79
|
+
},
|
|
80
|
+
"require": {
|
|
81
|
+
"types": "./dist/execution.d.cts",
|
|
82
|
+
"default": "./dist/execution.cjs"
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"./discovery": {
|
|
86
|
+
"import": {
|
|
87
|
+
"types": "./dist/discovery.d.ts",
|
|
88
|
+
"default": "./dist/discovery.js"
|
|
89
|
+
},
|
|
90
|
+
"require": {
|
|
91
|
+
"types": "./dist/discovery.d.cts",
|
|
92
|
+
"default": "./dist/discovery.cjs"
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
"./activity": {
|
|
96
|
+
"import": {
|
|
97
|
+
"types": "./dist/activity.d.ts",
|
|
98
|
+
"default": "./dist/activity.js"
|
|
99
|
+
},
|
|
100
|
+
"require": {
|
|
101
|
+
"types": "./dist/activity.d.cts",
|
|
102
|
+
"default": "./dist/activity.cjs"
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
"./runtime": {
|
|
106
|
+
"import": {
|
|
107
|
+
"types": "./dist/runtime/index.d.ts",
|
|
108
|
+
"default": "./dist/runtime/index.js"
|
|
109
|
+
},
|
|
110
|
+
"require": {
|
|
111
|
+
"types": "./dist/runtime/index.d.cts",
|
|
112
|
+
"default": "./dist/runtime/index.cjs"
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
"./integration": {
|
|
116
|
+
"import": {
|
|
117
|
+
"types": "./dist/runtime/integration.d.ts",
|
|
118
|
+
"default": "./dist/runtime/integration.js"
|
|
119
|
+
},
|
|
120
|
+
"require": {
|
|
121
|
+
"types": "./dist/runtime/integration.d.cts",
|
|
122
|
+
"default": "./dist/runtime/integration.cjs"
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
"repository": {
|
|
128
|
+
"type": "git",
|
|
129
|
+
"url": "git+https://github.com/nest-agentos/kanban.git"
|
|
130
|
+
},
|
|
131
|
+
"bugs": {
|
|
132
|
+
"url": "https://github.com/nest-agentos/kanban/issues"
|
|
133
|
+
},
|
|
134
|
+
"homepage": "https://github.com/nest-agentos/kanban#readme",
|
|
135
|
+
"packageManager": "pnpm@10.20.0",
|
|
136
|
+
"license": "SEE LICENSE IN LICENSE",
|
|
137
|
+
"engines": {
|
|
138
|
+
"node": ">=20.19.0"
|
|
139
|
+
},
|
|
140
|
+
"peerDependenciesMeta": {
|
|
141
|
+
"@nestos/vfs-core": {
|
|
142
|
+
"optional": true
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|