@wrongstack/tools 0.295.0 → 0.296.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/dist/auto-proceed-loop-guard.d.ts +98 -0
- package/dist/auto-proceed-loop-guard.d.ts.map +1 -1
- package/dist/auto-proceed-loop-guard.js +119 -1
- package/dist/auto-proceed-loop-guard.js.map +2 -2
- package/dist/bash.js +92 -41
- package/dist/bash.js.map +2 -2
- package/dist/browser/index.js +17 -7
- package/dist/browser/index.js.map +2 -2
- package/dist/browser/network-guard-proxy.d.ts.map +1 -1
- package/dist/builtin.d.ts +2 -2
- package/dist/builtin.d.ts.map +1 -1
- package/dist/builtin.js +9158 -7302
- package/dist/builtin.js.map +4 -4
- package/dist/codebase-index/background-indexer.d.ts +28 -2
- package/dist/codebase-index/background-indexer.d.ts.map +1 -1
- package/dist/codebase-index/codebase-index-tool.d.ts.map +1 -1
- package/dist/codebase-index/dead-code-scan.d.ts +77 -0
- package/dist/codebase-index/dead-code-scan.d.ts.map +1 -0
- package/dist/codebase-index/generic-parser.d.ts.map +1 -1
- package/dist/codebase-index/index-service.d.ts +4 -3
- package/dist/codebase-index/index-service.d.ts.map +1 -1
- package/dist/codebase-index/index.d.ts +11 -8
- package/dist/codebase-index/index.d.ts.map +1 -1
- package/dist/codebase-index/index.js +5048 -3582
- package/dist/codebase-index/index.js.map +4 -4
- package/dist/codebase-index/indexer.d.ts +2 -0
- package/dist/codebase-index/indexer.d.ts.map +1 -1
- package/dist/codebase-index/parser-dispatch.d.ts +8 -0
- package/dist/codebase-index/parser-dispatch.d.ts.map +1 -0
- package/dist/codebase-index/project-server-cache.d.ts +11 -0
- package/dist/codebase-index/project-server-cache.d.ts.map +1 -0
- package/dist/codebase-index/project-server-client.d.ts +74 -0
- package/dist/codebase-index/project-server-client.d.ts.map +1 -0
- package/dist/codebase-index/project-server-endpoint.d.ts +24 -0
- package/dist/codebase-index/project-server-endpoint.d.ts.map +1 -0
- package/dist/codebase-index/project-server-protocol.d.ts +88 -0
- package/dist/codebase-index/project-server-protocol.d.ts.map +1 -0
- package/dist/codebase-index/project-server.d.ts +11 -0
- package/dist/codebase-index/project-server.d.ts.map +1 -0
- package/dist/codebase-index/project-server.js +5061 -0
- package/dist/codebase-index/project-server.js.map +7 -0
- package/dist/codebase-index/refs-extractor.d.ts +1 -0
- package/dist/codebase-index/refs-extractor.d.ts.map +1 -1
- package/dist/codebase-index/schema.d.ts +11 -0
- package/dist/codebase-index/schema.d.ts.map +1 -1
- package/dist/codebase-index/sqlite-runtime.d.ts +9 -0
- package/dist/codebase-index/sqlite-runtime.d.ts.map +1 -0
- package/dist/codebase-index/ts-parser.d.ts +5 -1
- package/dist/codebase-index/ts-parser.d.ts.map +1 -1
- package/dist/codebase-index/worker-protocol.d.ts +19 -1
- package/dist/codebase-index/worker-protocol.d.ts.map +1 -1
- package/dist/codebase-index/worker.js +3869 -3423
- package/dist/codebase-index/worker.js.map +4 -4
- package/dist/codebase-index/writer-admin.d.ts +16 -0
- package/dist/codebase-index/writer-admin.d.ts.map +1 -0
- package/dist/codebase-index/writer-bulk-insert.d.ts +25 -0
- package/dist/codebase-index/writer-bulk-insert.d.ts.map +1 -0
- package/dist/codebase-index/writer-graph-helpers.d.ts +52 -0
- package/dist/codebase-index/writer-graph-helpers.d.ts.map +1 -0
- package/dist/codebase-index/writer-graph-reader.d.ts +11 -0
- package/dist/codebase-index/writer-graph-reader.d.ts.map +1 -0
- package/dist/codebase-index/writer-helpers.d.ts +15 -0
- package/dist/codebase-index/writer-helpers.d.ts.map +1 -0
- package/dist/codebase-index/writer-pragmas.d.ts +3 -0
- package/dist/codebase-index/writer-pragmas.d.ts.map +1 -0
- package/dist/codebase-index/writer-ref-mapper.d.ts +11 -0
- package/dist/codebase-index/writer-ref-mapper.d.ts.map +1 -0
- package/dist/codebase-index/writer-schema.d.ts +7 -0
- package/dist/codebase-index/writer-schema.d.ts.map +1 -0
- package/dist/codebase-index/writer-search-helpers.d.ts +28 -0
- package/dist/codebase-index/writer-search-helpers.d.ts.map +1 -0
- package/dist/codebase-index/writer-store-pool.d.ts +45 -0
- package/dist/codebase-index/writer-store-pool.d.ts.map +1 -0
- package/dist/codebase-index/writer.d.ts +53 -88
- package/dist/codebase-index/writer.d.ts.map +1 -1
- package/dist/exec.js +92 -41
- package/dist/exec.js.map +2 -2
- package/dist/glob.d.ts.map +1 -1
- package/dist/glob.js +80 -30
- package/dist/glob.js.map +4 -4
- package/dist/grep.d.ts.map +1 -1
- package/dist/grep.js +87 -20
- package/dist/grep.js.map +4 -4
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9610 -7755
- package/dist/index.js.map +4 -4
- package/dist/kanban-board-inputs.d.ts +34 -0
- package/dist/kanban-board-inputs.d.ts.map +1 -0
- package/dist/kanban-decomposition-actions.d.ts +4 -0
- package/dist/kanban-decomposition-actions.d.ts.map +1 -0
- package/dist/kanban-detail-actions.d.ts +3 -0
- package/dist/kanban-detail-actions.d.ts.map +1 -0
- package/dist/kanban-evidence-bridge.d.ts +21 -0
- package/dist/kanban-evidence-bridge.d.ts.map +1 -0
- package/dist/kanban-presence.d.ts +10 -0
- package/dist/kanban-presence.d.ts.map +1 -0
- package/dist/kanban-split-task-handler.d.ts +6 -0
- package/dist/kanban-split-task-handler.d.ts.map +1 -0
- package/dist/kanban-task-inputs.d.ts +73 -0
- package/dist/kanban-task-inputs.d.ts.map +1 -0
- package/dist/kanban-tool-results.d.ts +14 -0
- package/dist/kanban-tool-results.d.ts.map +1 -0
- package/dist/kanban-tool-schema.d.ts +5 -0
- package/dist/kanban-tool-schema.d.ts.map +1 -0
- package/dist/kanban-tool-types.d.ts +135 -0
- package/dist/kanban-tool-types.d.ts.map +1 -0
- package/dist/kanban.d.ts +2 -130
- package/dist/kanban.d.ts.map +1 -1
- package/dist/kanban.js +944 -582
- package/dist/kanban.js.map +4 -4
- package/dist/pack.js +9157 -7302
- package/dist/pack.js.map +4 -4
- package/dist/plan.js +2 -2
- package/dist/plan.js.map +2 -2
- package/dist/process-registry-persistent.d.ts +1 -0
- package/dist/process-registry-persistent.d.ts.map +1 -1
- package/dist/ps-slash.js +92 -41
- package/dist/ps-slash.js.map +2 -2
- package/dist/replace.js +8 -0
- package/dist/replace.js.map +2 -2
- package/dist/session-kanban.d.ts.map +1 -1
- package/dist/session-kanban.js +15 -20
- package/dist/session-kanban.js.map +2 -2
- package/dist/task.d.ts.map +1 -1
- package/dist/task.js +48 -6
- package/dist/task.js.map +2 -2
- package/dist/todo.d.ts.map +1 -1
- package/dist/todo.js +47 -5
- package/dist/todo.js.map +2 -2
- package/dist/tool-tier.js +9159 -7303
- package/dist/tool-tier.js.map +4 -4
- package/dist/tree.d.ts.map +1 -1
- package/dist/tree.js +2 -14
- package/dist/tree.js.map +2 -2
- package/dist/win32.d.ts +10 -0
- package/dist/win32.d.ts.map +1 -0
- package/dist/win32.js +67 -0
- package/dist/win32.js.map +7 -0
- package/package.json +9 -5
- package/dist/shim/node-sqlite.d.ts +0 -3
- package/dist/shim/node-sqlite.d.ts.map +0 -1
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { KanbanToolInput } from './kanban-tool-types.js';
|
|
2
|
+
export declare function boardCreateInput(input: KanbanToolInput, title: string): {
|
|
3
|
+
title: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
tags?: string[];
|
|
6
|
+
generatedBy?: string;
|
|
7
|
+
atomicity?: {
|
|
8
|
+
mode: "assess" | "enforce" | "off";
|
|
9
|
+
decomposition: "auto" | "propose";
|
|
10
|
+
};
|
|
11
|
+
completionGate?: {
|
|
12
|
+
enforcement: import("@wrongstack/kanban").KanbanCompletionGateEnforcement;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
export declare function boardUpdatePatch(input: KanbanToolInput): {
|
|
16
|
+
title?: string;
|
|
17
|
+
description?: string;
|
|
18
|
+
tags?: string[];
|
|
19
|
+
atomicity?: {
|
|
20
|
+
mode: "assess" | "enforce" | "off";
|
|
21
|
+
decomposition: "auto" | "propose";
|
|
22
|
+
};
|
|
23
|
+
completionGate?: {
|
|
24
|
+
enforcement: import("@wrongstack/kanban").KanbanCompletionGateEnforcement;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
export declare function duplicateBoardOptions(input: KanbanToolInput): {
|
|
28
|
+
title?: string;
|
|
29
|
+
generatedBy?: string;
|
|
30
|
+
includeTasks?: boolean;
|
|
31
|
+
includeCompletedTasks?: boolean;
|
|
32
|
+
preserveAssignment?: boolean;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=kanban-board-inputs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kanban-board-inputs.d.ts","sourceRoot":"","sources":["../src/kanban-board-inputs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM;;;;;;QAS1D,IAAI;QACJ,aAAa;;;QAKG,WAAW;;EAGtC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe;;;;;QAQ3C,IAAI;QACJ,aAAa;;;QAKG,WAAW;;EAGtC;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe;;;;;;EAU3D"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Context } from '@wrongstack/core/agent';
|
|
2
|
+
import type { KanbanToolInput, KanbanToolOutput } from './kanban-tool-types.js';
|
|
3
|
+
export declare function handleKanbanDecompositionAction(projectRoot: string, input: KanbanToolInput, ctx: Context): Promise<KanbanToolOutput | undefined>;
|
|
4
|
+
//# sourceMappingURL=kanban-decomposition-actions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kanban-decomposition-actions.d.ts","sourceRoot":"","sources":["../src/kanban-decomposition-actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAUtD,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAEhF,wBAAsB,+BAA+B,CACnD,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,eAAe,EACtB,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CA0FvC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kanban-detail-actions.d.ts","sourceRoot":"","sources":["../src/kanban-detail-actions.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAEhF,wBAAsB,wBAAwB,CAC5C,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAuGvC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kanban → completed-work ledger bridge.
|
|
3
|
+
*
|
|
4
|
+
* Links the two evidence systems: when a task's verification report is
|
|
5
|
+
* produced (verify_completion, the completion gate via mark_assignment, or a
|
|
6
|
+
* managed Done transition), the session's completed-work ledger gets an entry
|
|
7
|
+
* pointing back at the report. The kanban package cannot do this itself — it
|
|
8
|
+
* has zero core dependency — so the bridge lives here in tools, which owns
|
|
9
|
+
* both sides.
|
|
10
|
+
*
|
|
11
|
+
* Best-effort by contract: a ledger failure must never turn a successful
|
|
12
|
+
* board mutation into an apparent task failure.
|
|
13
|
+
*/
|
|
14
|
+
import type { Context } from '@wrongstack/core/agent';
|
|
15
|
+
import type { KanbanVerificationReport } from '@wrongstack/kanban';
|
|
16
|
+
/** Stable dedupe key — re-verifying the same task updates the entry in place. */
|
|
17
|
+
export declare function kanbanEvidenceKey(boardId: string, taskId: string): string;
|
|
18
|
+
/** Parseable deep-link pointer to the persisted report. */
|
|
19
|
+
export declare function kanbanEvidencePointer(boardId: string, taskId: string): string;
|
|
20
|
+
export declare function recordKanbanVerificationEvidence(ctx: Context, report: KanbanVerificationReport): void;
|
|
21
|
+
//# sourceMappingURL=kanban-evidence-bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kanban-evidence-bridge.d.ts","sourceRoot":"","sources":["../src/kanban-evidence-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAEnE,iFAAiF;AACjF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,2DAA2D;AAC3D,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,wBAAwB,GAC/B,IAAI,CAcN"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { KanbanToolInput, KanbanToolOutput } from './kanban-tool-types.js';
|
|
2
|
+
export interface KanbanPresenceContext {
|
|
3
|
+
session?: {
|
|
4
|
+
id?: string | undefined;
|
|
5
|
+
} | undefined;
|
|
6
|
+
agentId?: string | undefined;
|
|
7
|
+
agentName?: string | undefined;
|
|
8
|
+
}
|
|
9
|
+
export declare function createKanbanPresenceWrapper(projectRoot: string, input: KanbanToolInput, ctx: KanbanPresenceContext): (result: KanbanToolOutput) => Promise<KanbanToolOutput>;
|
|
10
|
+
//# sourceMappingURL=kanban-presence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kanban-presence.d.ts","sourceRoot":"","sources":["../src/kanban-presence.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAEhF,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,GAAG,SAAS,CAAC;IAClD,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,eAAe,EACtB,GAAG,EAAE,qBAAqB,YAEJ,gBAAgB,KAAG,OAAO,CAAC,gBAAgB,CAAC,CAgBnE"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { KanbanBoard } from '@wrongstack/kanban';
|
|
2
|
+
import type { KanbanToolInput, KanbanToolOutput } from './kanban-tool-types.js';
|
|
3
|
+
/** Shared split handler used by both split_task and split_atomic. */
|
|
4
|
+
export declare function handleSplitTask(projectRoot: string, input: KanbanToolInput, extraSplitOptions: Record<string, unknown>): Promise<KanbanToolOutput>;
|
|
5
|
+
export declare function requireBoard(projectRoot: string, boardId: string | undefined): Promise<KanbanBoard | null>;
|
|
6
|
+
//# sourceMappingURL=kanban-split-task-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kanban-split-task-handler.d.ts","sourceRoot":"","sources":["../src/kanban-split-task-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,oBAAoB,CAAC;AAGlE,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAEhF,qEAAqE;AACrE,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,eAAe,EACtB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACzC,OAAO,CAAC,gBAAgB,CAAC,CA8C3B;AAED,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAE7B"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { AssignKanbanTaskInput, KanbanAgentAssignment } from '@wrongstack/kanban';
|
|
2
|
+
import type { KanbanToolInput } from './kanban-tool-types.js';
|
|
3
|
+
export declare function taskInput(input: KanbanToolInput): {
|
|
4
|
+
title: string;
|
|
5
|
+
columnId: string | undefined;
|
|
6
|
+
description: string | undefined;
|
|
7
|
+
dueDate: string | undefined;
|
|
8
|
+
priority: import("@wrongstack/kanban").KanbanTaskPriority | undefined;
|
|
9
|
+
type?: import("@wrongstack/kanban").KanbanTaskType;
|
|
10
|
+
status: import("@wrongstack/kanban").KanbanTaskStatus | undefined;
|
|
11
|
+
labels: string[] | undefined;
|
|
12
|
+
assignedAgent?: string | undefined;
|
|
13
|
+
assignee?: string | undefined;
|
|
14
|
+
dependsOn?: string[] | undefined;
|
|
15
|
+
estimatedHours?: number;
|
|
16
|
+
actualHours?: number;
|
|
17
|
+
assignment?: KanbanAgentAssignment;
|
|
18
|
+
order?: number;
|
|
19
|
+
retryPolicy?: "exponential" | "incremental" | "off";
|
|
20
|
+
costCeilingUsd?: number;
|
|
21
|
+
childTaskIds?: string[];
|
|
22
|
+
successCriteria?: {
|
|
23
|
+
id: `${string}-${string}-${string}-${string}-${string}`;
|
|
24
|
+
description: string;
|
|
25
|
+
type: 'manual';
|
|
26
|
+
status: "failed" | "passed" | "pending" | "skipped";
|
|
27
|
+
}[];
|
|
28
|
+
goalMetrics?: {
|
|
29
|
+
id: `${string}-${string}-${string}-${string}-${string}`;
|
|
30
|
+
name: string;
|
|
31
|
+
status: "met" | "missed" | "pending" | "waived";
|
|
32
|
+
target?: string | number;
|
|
33
|
+
current?: string | number;
|
|
34
|
+
unit?: string;
|
|
35
|
+
notes?: string;
|
|
36
|
+
}[];
|
|
37
|
+
links?: {
|
|
38
|
+
url: string;
|
|
39
|
+
type: "commit" | "design" | "doc" | "file" | "issue" | "other" | "pr" | "url";
|
|
40
|
+
title?: string;
|
|
41
|
+
}[];
|
|
42
|
+
notes?: {
|
|
43
|
+
id: `${string}-${string}-${string}-${string}-${string}`;
|
|
44
|
+
author: string;
|
|
45
|
+
content: string;
|
|
46
|
+
createdAt: string;
|
|
47
|
+
}[];
|
|
48
|
+
origin?: {
|
|
49
|
+
system: string;
|
|
50
|
+
graphId?: string;
|
|
51
|
+
specId?: string;
|
|
52
|
+
phaseId?: string;
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
/** Union of the single `dependencyTaskId` and the multi `dependsOn[]` inputs. */
|
|
56
|
+
export declare function mergedDependsOn(input: KanbanToolInput): string[] | undefined;
|
|
57
|
+
export declare function taskPatch(input: KanbanToolInput): {
|
|
58
|
+
title: string | undefined;
|
|
59
|
+
description: string | undefined;
|
|
60
|
+
dueDate: string | undefined;
|
|
61
|
+
columnId: string | undefined;
|
|
62
|
+
order: number | undefined;
|
|
63
|
+
priority: import("@wrongstack/kanban").KanbanTaskPriority | undefined;
|
|
64
|
+
type?: import("@wrongstack/kanban").KanbanTaskType;
|
|
65
|
+
status: import("@wrongstack/kanban").KanbanTaskStatus | undefined;
|
|
66
|
+
labels: string[] | undefined;
|
|
67
|
+
assignedAgent: string | undefined;
|
|
68
|
+
dependsOn?: string[] | undefined;
|
|
69
|
+
estimatedHours?: number;
|
|
70
|
+
actualHours?: number;
|
|
71
|
+
};
|
|
72
|
+
export declare function assignmentInput(input: KanbanToolInput): AssignKanbanTaskInput;
|
|
73
|
+
//# sourceMappingURL=kanban-task-inputs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kanban-task-inputs.d.ts","sourceRoot":"","sources":["../src/kanban-task-inputs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACvF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,wBAAgB,SAAS,CAAC,KAAK,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;cA+B5B,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuD3B;AAED,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,EAAE,GAAG,SAAS,CAM5E;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,eAAe;;;;;;;;;;;;;;EAgB/C;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,qBAAqB,CAsB7E"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { KanbanBoard, KanbanCompletionGateEnforcement, KanbanTask } from '@wrongstack/kanban';
|
|
2
|
+
import type { KanbanToolOutput } from './kanban-tool-types.js';
|
|
3
|
+
/** One-line guidance appended when a freshly created task should be split. */
|
|
4
|
+
export declare function atomicityNudge(task: KanbanTask): string;
|
|
5
|
+
/**
|
|
6
|
+
* Host-level completion-gate fallback. The kanban package stays env-free;
|
|
7
|
+
* only hosting surfaces (tools, webui-server) read WRONGSTACK_KANBAN_GATE,
|
|
8
|
+
* and only when the board carries no explicit completionGate policy.
|
|
9
|
+
*/
|
|
10
|
+
export declare function readEnvGateEnforcement(): KanbanCompletionGateEnforcement | undefined;
|
|
11
|
+
export declare function fail(message: string): KanbanToolOutput;
|
|
12
|
+
export declare function okBoard(board: KanbanBoard, message?: string): KanbanToolOutput;
|
|
13
|
+
export declare function okTask(board: KanbanBoard, task: KanbanTask, message: string): KanbanToolOutput;
|
|
14
|
+
//# sourceMappingURL=kanban-tool-results.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kanban-tool-results.d.ts","sourceRoot":"","sources":["../src/kanban-tool-results.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,+BAA+B,EAC/B,UAAU,EACX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,8EAA8E;AAC9E,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAOvD;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,+BAA+B,GAAG,SAAS,CAGpF;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAEtD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,SAAkB,GAAG,gBAAgB,CAEvF;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAE9F"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { JSONSchema } from '@wrongstack/core/types';
|
|
2
|
+
export declare const KANBAN_TOOL_DESCRIPTION = "Manage and audit project-scoped multi-kanban boards through the shared IPC Kanban server and its SQLite store. Managed cards enforce fully specified details and adjacent Backlog \u2192 Todo \u2192 Running \u2192 Review \u2192 Done transitions with persistent comments and evidence. Successful board access records live agent/session presence. Use verify_completion to validate a task against its success criteria and persist the verification report. Use split_atomic to split a task into child tasks with parent.atomic=true in a single atomic board mutation, enforcing subtree verification before the parent can complete.";
|
|
3
|
+
export declare const KANBAN_TOOL_USAGE_HINT = "Use this for durable project kanban state. Reassess with get_board whenever evidence changes; agents may add, update, split, merge, reprioritize, or remove tasks so the board remains a live plan. Presence includes active/last-seen session and agent metadata. For managed boards, fully fill card details, use transition_task after every material step, attach truthful evidence, and never use update_task/move_task to bypass lifecycle guards. Worker completion enters Review; only passed acceptance criteria plus review evidence allow Done. Use verify_completion to generate a verification report (persisted automatically) and split_atomic to atomically create child subtasks with the atomic flag pre-set.";
|
|
4
|
+
export declare const KANBAN_INPUT_SCHEMA: JSONSchema;
|
|
5
|
+
//# sourceMappingURL=kanban-tool-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kanban-tool-schema.d.ts","sourceRoot":"","sources":["../src/kanban-tool-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,eAAO,MAAM,uBAAuB,knBACyjB,CAAC;AAE9lB,eAAO,MAAM,sBAAsB,osBACgqB,CAAC;AAEpsB,eAAO,MAAM,mBAAmB,EAAE,UAoNjC,CAAC"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import type { SerializedTaskGraph } from '@wrongstack/core/types';
|
|
2
|
+
import type { AssignKanbanTaskInput, KanbanAgentRunStatus, KanbanBoard, KanbanBoardSummary, KanbanCompletionGateEnforcement, KanbanDecompositionSubtask, KanbanEvent, KanbanLifecycleStage, KanbanOrchestrationSnapshot, KanbanQueueHealth, KanbanSearchResult, KanbanTask, KanbanTaskPriority, KanbanTaskStatus, KanbanTaskType, KanbanVerificationReport } from '@wrongstack/kanban';
|
|
3
|
+
export type KanbanAction = 'list_boards' | 'get_board' | 'create_board' | 'duplicate_board' | 'update_board' | 'adopt_managed_lifecycle' | 'delete_board' | 'generate_board' | 'export_markdown' | 'export_task_graph' | 'sync_task_graph' | 'create_from_graph' | 'import_session_tasks' | 'search_tasks' | 'ready_tasks' | 'snapshot' | 'add_column' | 'update_column' | 'delete_column' | 'add_task' | 'split_task' | 'merge_tasks' | 'copy_task' | 'transfer_task' | 'get_task' | 'update_task' | 'transition_task' | 'repair_managed_projection' | 'move_task' | 'delete_task' | 'set_chain' | 'get_chain' | 'claim_task' | 'release_task' | 'assign_task' | 'mark_assignment' | 'heartbeat_assignment' | 'recover_stale' | 'events' | 'queue_health' | 'add_dependency' | 'add_goal_metric' | 'update_goal_metric' | 'add_check' | 'update_check' | 'add_note' | 'add_link' | 'verify_completion' | 'split_atomic' | 'assess_atomicity' | 'propose_decomposition';
|
|
4
|
+
export interface KanbanToolInput extends Omit<AssignKanbanTaskInput, 'status'> {
|
|
5
|
+
action: KanbanAction;
|
|
6
|
+
boardId?: string | undefined;
|
|
7
|
+
taskId?: string | undefined;
|
|
8
|
+
columnId?: string | undefined;
|
|
9
|
+
targetBoardId?: string | undefined;
|
|
10
|
+
taskIds?: string[] | undefined;
|
|
11
|
+
chainId?: string | undefined;
|
|
12
|
+
title?: string | undefined;
|
|
13
|
+
description?: string | undefined;
|
|
14
|
+
dueDate?: string | undefined;
|
|
15
|
+
tags?: string[] | undefined;
|
|
16
|
+
labels?: string[] | undefined;
|
|
17
|
+
priority?: KanbanTaskPriority | undefined;
|
|
18
|
+
taskType?: KanbanTaskType | undefined;
|
|
19
|
+
status?: KanbanTaskStatus | undefined;
|
|
20
|
+
order?: number | undefined;
|
|
21
|
+
targetColumnId?: string | undefined;
|
|
22
|
+
moveTasksToColumnId?: string | undefined;
|
|
23
|
+
query?: string | undefined;
|
|
24
|
+
limit?: number | undefined;
|
|
25
|
+
dependencyTaskId?: string | undefined;
|
|
26
|
+
enforceDependencies?: boolean | undefined;
|
|
27
|
+
childTitles?: string[] | undefined;
|
|
28
|
+
inheritAssignment?: boolean | undefined;
|
|
29
|
+
inheritLabels?: boolean | undefined;
|
|
30
|
+
inheritSuccessCriteria?: boolean | undefined;
|
|
31
|
+
inheritGoalMetrics?: boolean | undefined;
|
|
32
|
+
inheritDependencies?: boolean | undefined;
|
|
33
|
+
chainChildren?: boolean | undefined;
|
|
34
|
+
rewireDependents?: boolean | undefined;
|
|
35
|
+
closeSourceTasks?: boolean | undefined;
|
|
36
|
+
metricId?: string | undefined;
|
|
37
|
+
metricName?: string | undefined;
|
|
38
|
+
metricTarget?: string | number | undefined;
|
|
39
|
+
metricCurrent?: string | number | undefined;
|
|
40
|
+
metricUnit?: string | undefined;
|
|
41
|
+
metricStatus?: 'pending' | 'met' | 'missed' | 'waived' | undefined;
|
|
42
|
+
metricNotes?: string | undefined;
|
|
43
|
+
checkId?: string | undefined;
|
|
44
|
+
checkDescription?: string | undefined;
|
|
45
|
+
checkStatus?: 'pending' | 'passed' | 'failed' | 'skipped' | undefined;
|
|
46
|
+
note?: string | undefined;
|
|
47
|
+
author?: string | undefined;
|
|
48
|
+
url?: string | undefined;
|
|
49
|
+
linkTitle?: string | undefined;
|
|
50
|
+
linkType?: 'issue' | 'pr' | 'doc' | 'commit' | 'design' | 'file' | 'url' | 'other' | undefined;
|
|
51
|
+
context?: string | undefined;
|
|
52
|
+
columns?: string[] | undefined;
|
|
53
|
+
generatedBy?: string | undefined;
|
|
54
|
+
includeTasks?: boolean | undefined;
|
|
55
|
+
includeCompletedTasks?: boolean | undefined;
|
|
56
|
+
preserveAssignment?: boolean | undefined;
|
|
57
|
+
preserveDependencies?: boolean | undefined;
|
|
58
|
+
leaseId?: string | undefined;
|
|
59
|
+
expectedLeaseId?: string | undefined;
|
|
60
|
+
claimedAt?: string | undefined;
|
|
61
|
+
heartbeatAt?: string | undefined;
|
|
62
|
+
leaseExpiresAt?: string | undefined;
|
|
63
|
+
attempt?: number | undefined;
|
|
64
|
+
maxAttempts?: number | undefined;
|
|
65
|
+
costCeilingUsd?: number | undefined;
|
|
66
|
+
retryPolicy?: 'off' | 'incremental' | 'exponential' | undefined;
|
|
67
|
+
lastFailureKind?: string | undefined;
|
|
68
|
+
subagentId?: string | undefined;
|
|
69
|
+
runTaskId?: string | undefined;
|
|
70
|
+
lastResult?: string | undefined;
|
|
71
|
+
error?: string | undefined;
|
|
72
|
+
assignmentStatus?: KanbanAgentRunStatus | undefined;
|
|
73
|
+
lifecycleStage?: KanbanLifecycleStage | undefined;
|
|
74
|
+
transitionAction?: string | undefined;
|
|
75
|
+
transitionComment?: string | undefined;
|
|
76
|
+
attachmentUrl?: string | undefined;
|
|
77
|
+
attachmentTitle?: string | undefined;
|
|
78
|
+
attachmentType?: 'issue' | 'pr' | 'doc' | 'commit' | 'design' | 'file' | 'url' | 'other' | undefined;
|
|
79
|
+
releaseStatus?: 'pending' | 'ready' | 'blocked' | undefined;
|
|
80
|
+
releaseReason?: string | undefined;
|
|
81
|
+
clearAssignee?: boolean | undefined;
|
|
82
|
+
recoveryMode?: 'auto' | 'release' | 'retry' | 'fail' | undefined;
|
|
83
|
+
recoveryNow?: string | undefined;
|
|
84
|
+
recoveryPolicyFailOnCostCeiling?: boolean | undefined;
|
|
85
|
+
recoveryPolicyReleaseOnFailureKinds?: string[] | undefined;
|
|
86
|
+
recoveryPolicyReleaseOnHeartbeatDue?: boolean | undefined;
|
|
87
|
+
recoveryPolicyRetryPolicyOverride?: 'off' | 'incremental' | 'exponential' | undefined;
|
|
88
|
+
taskGraph?: unknown;
|
|
89
|
+
graphId?: string | undefined;
|
|
90
|
+
specId?: string | undefined;
|
|
91
|
+
sourceSystem?: string | undefined;
|
|
92
|
+
phaseId?: string | undefined;
|
|
93
|
+
preserveOriginTaskIds?: boolean | undefined;
|
|
94
|
+
includeArchived?: boolean | undefined;
|
|
95
|
+
archiveMissingTasks?: boolean | undefined;
|
|
96
|
+
preserveManualDependencies?: boolean | undefined;
|
|
97
|
+
/** Full dependency id list for add_task/update_task (superset of dependencyTaskId). */
|
|
98
|
+
dependsOn?: string[] | undefined;
|
|
99
|
+
/** Estimated effort in hours for add_task/update_task. */
|
|
100
|
+
estimatedHours?: number | undefined;
|
|
101
|
+
/** Actual effort in hours for add_task/update_task. */
|
|
102
|
+
actualHours?: number | undefined;
|
|
103
|
+
/** create_board/update_board: atomicity policy mode. */
|
|
104
|
+
atomicityMode?: 'off' | 'assess' | 'enforce' | undefined;
|
|
105
|
+
/** create_board/update_board: how proposed decompositions are applied. */
|
|
106
|
+
atomicityDecomposition?: 'auto' | 'propose' | undefined;
|
|
107
|
+
/** create_board/update_board: completion-gate enforcement. */
|
|
108
|
+
gateEnforcement?: KanbanCompletionGateEnforcement | undefined;
|
|
109
|
+
/** propose_decomposition: 2+ proposed subtasks. */
|
|
110
|
+
subtasks?: KanbanDecompositionSubtask[] | undefined;
|
|
111
|
+
}
|
|
112
|
+
export interface KanbanToolOutput {
|
|
113
|
+
ok: boolean;
|
|
114
|
+
verdict?: KanbanVerificationReport['verdict'] | undefined;
|
|
115
|
+
gate?: {
|
|
116
|
+
enforcement: KanbanCompletionGateEnforcement;
|
|
117
|
+
allowed: boolean;
|
|
118
|
+
verdict: KanbanVerificationReport['verdict'] | 'skipped';
|
|
119
|
+
issues: string[];
|
|
120
|
+
} | undefined;
|
|
121
|
+
message: string;
|
|
122
|
+
board?: KanbanBoard | undefined;
|
|
123
|
+
boards?: KanbanBoardSummary[] | undefined;
|
|
124
|
+
task?: KanbanTask | undefined;
|
|
125
|
+
tasks?: KanbanSearchResult[] | undefined;
|
|
126
|
+
recoveredTasks?: KanbanTask[] | undefined;
|
|
127
|
+
events?: KanbanEvent[] | undefined;
|
|
128
|
+
queueHealth?: KanbanQueueHealth | undefined;
|
|
129
|
+
children?: KanbanTask[] | undefined;
|
|
130
|
+
chain?: KanbanTask[] | undefined;
|
|
131
|
+
snapshot?: KanbanOrchestrationSnapshot | undefined;
|
|
132
|
+
taskGraph?: SerializedTaskGraph | undefined;
|
|
133
|
+
markdown?: string | undefined;
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=kanban-tool-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kanban-tool-types.d.ts","sourceRoot":"","sources":["../src/kanban-tool-types.ts"],"names":[],"mappings":"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"}
|
package/dist/kanban.d.ts
CHANGED
|
@@ -1,132 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
type KanbanAction = 'list_boards' | 'get_board' | 'create_board' | 'duplicate_board' | 'update_board' | 'delete_board' | 'generate_board' | 'export_markdown' | 'export_task_graph' | 'sync_task_graph' | 'create_from_graph' | 'import_session_tasks' | 'search_tasks' | 'ready_tasks' | 'snapshot' | 'add_column' | 'update_column' | 'delete_column' | 'add_task' | 'split_task' | 'merge_tasks' | 'copy_task' | 'transfer_task' | 'get_task' | 'update_task' | 'transition_task' | 'move_task' | 'delete_task' | 'set_chain' | 'get_chain' | 'claim_task' | 'release_task' | 'assign_task' | 'mark_assignment' | 'heartbeat_assignment' | 'recover_stale' | 'events' | 'queue_health' | 'add_dependency' | 'add_goal_metric' | 'update_goal_metric' | 'add_check' | 'update_check' | 'add_note' | 'add_link' | 'verify_completion' | 'split_atomic';
|
|
4
|
-
interface KanbanToolInput extends Omit<AssignKanbanTaskInput, 'status'> {
|
|
5
|
-
action: KanbanAction;
|
|
6
|
-
boardId?: string | undefined;
|
|
7
|
-
taskId?: string | undefined;
|
|
8
|
-
columnId?: string | undefined;
|
|
9
|
-
targetBoardId?: string | undefined;
|
|
10
|
-
taskIds?: string[] | undefined;
|
|
11
|
-
chainId?: string | undefined;
|
|
12
|
-
title?: string | undefined;
|
|
13
|
-
description?: string | undefined;
|
|
14
|
-
dueDate?: string | undefined;
|
|
15
|
-
tags?: string[] | undefined;
|
|
16
|
-
labels?: string[] | undefined;
|
|
17
|
-
priority?: KanbanTaskPriority | undefined;
|
|
18
|
-
taskType?: KanbanTaskType | undefined;
|
|
19
|
-
status?: KanbanTaskStatus | undefined;
|
|
20
|
-
order?: number | undefined;
|
|
21
|
-
targetColumnId?: string | undefined;
|
|
22
|
-
moveTasksToColumnId?: string | undefined;
|
|
23
|
-
query?: string | undefined;
|
|
24
|
-
limit?: number | undefined;
|
|
25
|
-
dependencyTaskId?: string | undefined;
|
|
26
|
-
enforceDependencies?: boolean | undefined;
|
|
27
|
-
childTitles?: string[] | undefined;
|
|
28
|
-
inheritAssignment?: boolean | undefined;
|
|
29
|
-
inheritLabels?: boolean | undefined;
|
|
30
|
-
inheritSuccessCriteria?: boolean | undefined;
|
|
31
|
-
inheritGoalMetrics?: boolean | undefined;
|
|
32
|
-
inheritDependencies?: boolean | undefined;
|
|
33
|
-
chainChildren?: boolean | undefined;
|
|
34
|
-
rewireDependents?: boolean | undefined;
|
|
35
|
-
closeSourceTasks?: boolean | undefined;
|
|
36
|
-
metricId?: string | undefined;
|
|
37
|
-
metricName?: string | undefined;
|
|
38
|
-
metricTarget?: string | number | undefined;
|
|
39
|
-
metricCurrent?: string | number | undefined;
|
|
40
|
-
metricUnit?: string | undefined;
|
|
41
|
-
metricStatus?: 'pending' | 'met' | 'missed' | 'waived' | undefined;
|
|
42
|
-
metricNotes?: string | undefined;
|
|
43
|
-
checkId?: string | undefined;
|
|
44
|
-
checkDescription?: string | undefined;
|
|
45
|
-
checkStatus?: 'pending' | 'passed' | 'failed' | 'skipped' | undefined;
|
|
46
|
-
note?: string | undefined;
|
|
47
|
-
author?: string | undefined;
|
|
48
|
-
url?: string | undefined;
|
|
49
|
-
linkTitle?: string | undefined;
|
|
50
|
-
linkType?: 'issue' | 'pr' | 'doc' | 'commit' | 'design' | 'file' | 'url' | 'other' | undefined;
|
|
51
|
-
context?: string | undefined;
|
|
52
|
-
columns?: string[] | undefined;
|
|
53
|
-
generatedBy?: string | undefined;
|
|
54
|
-
includeTasks?: boolean | undefined;
|
|
55
|
-
includeCompletedTasks?: boolean | undefined;
|
|
56
|
-
preserveAssignment?: boolean | undefined;
|
|
57
|
-
preserveDependencies?: boolean | undefined;
|
|
58
|
-
leaseId?: string | undefined;
|
|
59
|
-
/**
|
|
60
|
-
* Ownership fence. When set on `mark_assignment` / `heartbeat_assignment`,
|
|
61
|
-
* the assignment is only mutated if `task.assignment.leaseId` still matches
|
|
62
|
-
* this value (checked atomically inside the board mutation lock). This lets
|
|
63
|
-
* a worker prove it still owns the lease before renewing or finalizing, and
|
|
64
|
-
* makes a stale worker that was recovered+reassigned a safe no-op rather
|
|
65
|
-
* than a TOCTOU gap that overwrites the successor's state. Omit for legacy
|
|
66
|
-
* unconditional behavior.
|
|
67
|
-
*/
|
|
68
|
-
expectedLeaseId?: string | undefined;
|
|
69
|
-
claimedAt?: string | undefined;
|
|
70
|
-
heartbeatAt?: string | undefined;
|
|
71
|
-
leaseExpiresAt?: string | undefined;
|
|
72
|
-
attempt?: number | undefined;
|
|
73
|
-
maxAttempts?: number | undefined;
|
|
74
|
-
costCeilingUsd?: number | undefined;
|
|
75
|
-
retryPolicy?: 'off' | 'incremental' | 'exponential' | undefined;
|
|
76
|
-
lastFailureKind?: string | undefined;
|
|
77
|
-
subagentId?: string | undefined;
|
|
78
|
-
runTaskId?: string | undefined;
|
|
79
|
-
lastResult?: string | undefined;
|
|
80
|
-
error?: string | undefined;
|
|
81
|
-
assignmentStatus?: KanbanAgentRunStatus | undefined;
|
|
82
|
-
lifecycleStage?: KanbanLifecycleStage | undefined;
|
|
83
|
-
transitionAction?: string | undefined;
|
|
84
|
-
transitionComment?: string | undefined;
|
|
85
|
-
attachmentUrl?: string | undefined;
|
|
86
|
-
attachmentTitle?: string | undefined;
|
|
87
|
-
attachmentType?: 'issue' | 'pr' | 'doc' | 'commit' | 'design' | 'file' | 'url' | 'other' | undefined;
|
|
88
|
-
releaseStatus?: 'pending' | 'ready' | 'blocked' | undefined;
|
|
89
|
-
releaseReason?: string | undefined;
|
|
90
|
-
clearAssignee?: boolean | undefined;
|
|
91
|
-
recoveryMode?: 'auto' | 'release' | 'retry' | 'fail' | undefined;
|
|
92
|
-
recoveryNow?: string | undefined;
|
|
93
|
-
recoveryPolicyFailOnCostCeiling?: boolean | undefined;
|
|
94
|
-
recoveryPolicyReleaseOnFailureKinds?: string[] | undefined;
|
|
95
|
-
recoveryPolicyReleaseOnHeartbeatDue?: boolean | undefined;
|
|
96
|
-
recoveryPolicyRetryPolicyOverride?: 'off' | 'incremental' | 'exponential' | undefined;
|
|
97
|
-
taskGraph?: unknown;
|
|
98
|
-
graphId?: string | undefined;
|
|
99
|
-
specId?: string | undefined;
|
|
100
|
-
sourceSystem?: string | undefined;
|
|
101
|
-
phaseId?: string | undefined;
|
|
102
|
-
preserveOriginTaskIds?: boolean | undefined;
|
|
103
|
-
includeArchived?: boolean | undefined;
|
|
104
|
-
archiveMissingTasks?: boolean | undefined;
|
|
105
|
-
preserveManualDependencies?: boolean | undefined;
|
|
106
|
-
/** Full dependency id list for add_task/update_task (superset of dependencyTaskId). */
|
|
107
|
-
dependsOn?: string[] | undefined;
|
|
108
|
-
/** Estimated effort in hours for add_task/update_task. */
|
|
109
|
-
estimatedHours?: number | undefined;
|
|
110
|
-
/** Actual effort in hours for add_task/update_task. */
|
|
111
|
-
actualHours?: number | undefined;
|
|
112
|
-
}
|
|
113
|
-
interface KanbanToolOutput {
|
|
114
|
-
ok: boolean;
|
|
115
|
-
verdict?: KanbanVerificationReport['verdict'] | undefined;
|
|
116
|
-
message: string;
|
|
117
|
-
board?: KanbanBoard | undefined;
|
|
118
|
-
boards?: KanbanBoardSummary[] | undefined;
|
|
119
|
-
task?: KanbanTask | undefined;
|
|
120
|
-
tasks?: KanbanSearchResult[] | undefined;
|
|
121
|
-
recoveredTasks?: KanbanTask[] | undefined;
|
|
122
|
-
events?: KanbanEvent[] | undefined;
|
|
123
|
-
queueHealth?: KanbanQueueHealth | undefined;
|
|
124
|
-
children?: KanbanTask[] | undefined;
|
|
125
|
-
chain?: KanbanTask[] | undefined;
|
|
126
|
-
snapshot?: KanbanOrchestrationSnapshot | undefined;
|
|
127
|
-
taskGraph?: SerializedTaskGraph | undefined;
|
|
128
|
-
markdown?: string | undefined;
|
|
129
|
-
}
|
|
1
|
+
import type { Tool } from '@wrongstack/core/types';
|
|
2
|
+
import type { KanbanToolInput, KanbanToolOutput } from './kanban-tool-types.js';
|
|
130
3
|
export declare const kanbanTool: Tool<KanbanToolInput, KanbanToolOutput>;
|
|
131
|
-
export {};
|
|
132
4
|
//# sourceMappingURL=kanban.d.ts.map
|
package/dist/kanban.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kanban.d.ts","sourceRoot":"","sources":["../src/kanban.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"kanban.d.ts","sourceRoot":"","sources":["../src/kanban.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAyB,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAkE1E,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAKhF,eAAO,MAAM,UAAU,EAAE,IAAI,CAAC,eAAe,EAAE,gBAAgB,CAm2B9D,CAAC"}
|