@wrongstack/tools 0.303.0 → 0.305.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/builtin.d.ts +6 -0
- package/dist/builtin.js +715 -378
- package/dist/codebase-index/codebase-index-tool.d.ts +6 -0
- package/dist/codebase-index/index.js +112 -89
- package/dist/codebase-index/indexer.d.ts +6 -0
- package/dist/codebase-index/project-server.js +112 -89
- package/dist/codebase-index/schema.d.ts +11 -0
- package/dist/codebase-index/worker.js +112 -89
- package/dist/index.d.ts +3 -3
- package/dist/index.js +777 -397
- package/dist/kanban-contract-actions.d.ts +7 -0
- package/dist/kanban-task-inputs.d.ts +15 -2
- package/dist/kanban-tool-schema.d.ts +2 -2
- package/dist/kanban-tool-types.d.ts +32 -11
- package/dist/kanban.js +366 -245
- package/dist/pack.js +714 -378
- package/dist/plan.js +601 -289
- package/dist/read.js +112 -89
- package/dist/session-kanban.d.ts +86 -1
- package/dist/session-kanban.js +216 -46
- package/dist/task.js +601 -289
- package/dist/todo.js +601 -289
- package/dist/tool-tier.js +714 -378
- package/package.json +3 -3
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { KanbanToolInput, KanbanToolOutput } from './kanban-tool-types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Handle a contract-map action, or return `undefined` when the action belongs
|
|
4
|
+
* to another handler. Mirrors the shape of `handleKanbanDetailAction`.
|
|
5
|
+
*/
|
|
6
|
+
export declare function handleKanbanContractAction(projectRoot: string, input: KanbanToolInput, actor: string | undefined): Promise<KanbanToolOutput | undefined>;
|
|
7
|
+
//# sourceMappingURL=kanban-contract-actions.d.ts.map
|
|
@@ -18,12 +18,14 @@ export declare function taskInput(input: KanbanToolInput): {
|
|
|
18
18
|
order?: number;
|
|
19
19
|
retryPolicy?: "exponential" | "incremental" | "off";
|
|
20
20
|
costCeilingUsd?: number;
|
|
21
|
+
atomic?: boolean;
|
|
21
22
|
childTaskIds?: string[];
|
|
22
23
|
successCriteria?: {
|
|
23
24
|
id: `${string}-${string}-${string}-${string}-${string}`;
|
|
24
25
|
description: string;
|
|
25
|
-
type:
|
|
26
|
+
type: "command" | "file_exists" | "file_matches" | "git_diff" | "manual" | "metric" | "test";
|
|
26
27
|
status: "failed" | "passed" | "pending" | "skipped";
|
|
28
|
+
notes?: string;
|
|
27
29
|
}[];
|
|
28
30
|
goalMetrics?: {
|
|
29
31
|
id: `${string}-${string}-${string}-${string}-${string}`;
|
|
@@ -53,7 +55,16 @@ export declare function taskInput(input: KanbanToolInput): {
|
|
|
53
55
|
phaseId?: string;
|
|
54
56
|
};
|
|
55
57
|
};
|
|
56
|
-
/**
|
|
58
|
+
/**
|
|
59
|
+
* Union of the single `dependencyTaskId` and the multi `dependsOn[]` inputs.
|
|
60
|
+
*
|
|
61
|
+
* Returns `undefined` only when neither was supplied, so an explicit
|
|
62
|
+
* `dependsOn: []` CLEARS the list instead of being silently ignored. It used to
|
|
63
|
+
* collapse empty to `undefined`, which meant a dependency added by mistake
|
|
64
|
+
* could never be taken back from the tool surface: `dependency-incomplete`
|
|
65
|
+
* then held the card out of Running for good, and the only escapes were
|
|
66
|
+
* finishing work nobody wanted or deleting the blocking card outright.
|
|
67
|
+
*/
|
|
57
68
|
export declare function mergedDependsOn(input: KanbanToolInput): string[] | undefined;
|
|
58
69
|
export declare function taskPatch(input: KanbanToolInput): {
|
|
59
70
|
title: string | undefined;
|
|
@@ -67,6 +78,8 @@ export declare function taskPatch(input: KanbanToolInput): {
|
|
|
67
78
|
labels: string[] | undefined;
|
|
68
79
|
assignedAgent: string | undefined;
|
|
69
80
|
dependsOn?: string[] | undefined;
|
|
81
|
+
atomic?: boolean;
|
|
82
|
+
childTaskIds?: string[];
|
|
70
83
|
estimatedHours?: number;
|
|
71
84
|
actualHours?: number;
|
|
72
85
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { JSONSchema } from '@wrongstack/core/types';
|
|
2
|
-
export declare const KANBAN_TOOL_DESCRIPTION = "
|
|
3
|
-
export declare const KANBAN_TOOL_USAGE_HINT = "
|
|
2
|
+
export declare const KANBAN_TOOL_DESCRIPTION = "Durable project task boards: create and move cards, record checks, notes, links and assignments. The board is a record of the work, not a permit for it \u2014 nothing here gates other tools. Managed boards additionally enforce ordered Backlog \u2192 Todo \u2192 Running \u2192 Review \u2192 Done transitions; release_managed_lifecycle turns that off.";
|
|
3
|
+
export declare const KANBAN_TOOL_USAGE_HINT = "Track substantial or multi-step work so it survives the session; a trivial edit or a question needs no card. Work stays on ONE board: call list_boards first and add_task to the board this project already uses. create_board is for a genuinely separate line of work, not for each new piece of it \u2014 a second board splits the same effort in two, and a board holding a single card is the usual sign. Common flow: list_boards or search_tasks to orient, add_task to record work, start_task when you begin, update_check with checkStatus \"passed\" to tick acceptance criteria (read their ids from get_task), then transition_task. On a managed board a refused transition names the field it wants \u2014 supply it and retry. When the acceptance criterion is something a machine can run, say so: set checkType (\"command\", \"test\", \"file_exists\", \"file_matches\", \"git_diff\", \"metric\") and put the command, pattern or path in checkNotes, then verify_completion executes it and the result is real evidence. Leave checkType off (or \"manual\") only for criteria that genuinely need a human eye \u2014 a manual check records your assertion, it does not test anything.";
|
|
4
4
|
export declare const KANBAN_INPUT_SCHEMA: JSONSchema;
|
|
5
5
|
//# sourceMappingURL=kanban-tool-schema.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { SerializedTaskGraph } from '@wrongstack/core/types';
|
|
2
2
|
import type { AssignKanbanTaskInput, KanbanAgentRunStatus, KanbanBoard, KanbanBoardSummary, KanbanCompletionGateEnforcement, KanbanContractEdgeType, KanbanContractEnforcement, KanbanContractGraph, KanbanContractGraphEnforcement, KanbanContractGraphEvaluation, KanbanContractNodeKind, KanbanContractNodeState, KanbanDecompositionSubtask, KanbanEvent, KanbanLifecycleStage, KanbanOrchestrationSnapshot, KanbanQueueHealth, KanbanSearchResult, KanbanTask, KanbanTaskPriority, KanbanTaskStatus, KanbanTaskType, KanbanVerificationReport, KanbanWorkbenchSnapshot } 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' | 'workbench' | 'add_column' | 'update_column' | 'delete_column' | 'add_task' | 'split_task' | 'merge_tasks' | 'copy_task' | 'transfer_task' | 'get_task' | 'start_task' | 'update_task' | 'transition_task' | 'repair_managed_projection' | 'move_task' | 'delete_task' | 'set_chain' | 'get_chain' | '
|
|
3
|
+
export type KanbanAction = 'list_boards' | 'get_board' | 'create_board' | 'duplicate_board' | 'update_board' | 'adopt_managed_lifecycle' | 'release_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' | 'workbench' | 'add_column' | 'update_column' | 'delete_column' | 'add_task' | 'split_task' | 'merge_tasks' | 'copy_task' | 'transfer_task' | 'get_task' | 'start_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' | 'remove_check' | 'add_note' | 'add_link' | 'verify_completion' | 'split_atomic' | 'assess_atomicity' | 'propose_decomposition' | 'get_contract_graph' | 'configure_contract_graph' | 'upsert_contract_node' | 'remove_contract_node' | 'add_contract_edge' | 'remove_contract_edge';
|
|
4
4
|
export interface KanbanToolInput extends Omit<AssignKanbanTaskInput, 'status'> {
|
|
5
5
|
action: KanbanAction;
|
|
6
6
|
boardId?: string | undefined;
|
|
@@ -9,16 +9,8 @@ export interface KanbanToolInput extends Omit<AssignKanbanTaskInput, 'status'> {
|
|
|
9
9
|
targetBoardId?: string | undefined;
|
|
10
10
|
taskIds?: string[] | undefined;
|
|
11
11
|
chainId?: string | undefined;
|
|
12
|
-
contractNodeId?: string | undefined;
|
|
13
|
-
contractNodeKind?: KanbanContractNodeKind | undefined;
|
|
14
|
-
contractNodeState?: KanbanContractNodeState | undefined;
|
|
15
|
-
contractEnforcement?: KanbanContractEnforcement | undefined;
|
|
16
|
-
contractGraphEnforcement?: KanbanContractGraphEnforcement | undefined;
|
|
17
|
-
contractEdgeId?: string | undefined;
|
|
18
|
-
contractEdgeType?: KanbanContractEdgeType | undefined;
|
|
19
12
|
fromNodeId?: string | undefined;
|
|
20
13
|
toNodeId?: string | undefined;
|
|
21
|
-
contractRationale?: string | undefined;
|
|
22
14
|
baseline?: string | number | undefined;
|
|
23
15
|
threshold?: string | number | undefined;
|
|
24
16
|
title?: string | undefined;
|
|
@@ -55,6 +47,30 @@ export interface KanbanToolInput extends Omit<AssignKanbanTaskInput, 'status'> {
|
|
|
55
47
|
checkId?: string | undefined;
|
|
56
48
|
checkDescription?: string | undefined;
|
|
57
49
|
checkStatus?: 'pending' | 'passed' | 'failed' | 'skipped' | undefined;
|
|
50
|
+
/**
|
|
51
|
+
* Verifier type for an acceptance criterion. Narrower than `KanbanCheckType`
|
|
52
|
+
* on purpose: only the types the default deterministic registry can actually
|
|
53
|
+
* run are offered, so a criterion this tool creates never reports
|
|
54
|
+
* `skipped — no verifier plugin registered`.
|
|
55
|
+
*/
|
|
56
|
+
checkType?: 'manual' | 'command' | 'test' | 'file_exists' | 'file_matches' | 'git_diff' | 'metric' | undefined;
|
|
57
|
+
/** Executable body for a non-manual `checkType`; plugins read it before the description. */
|
|
58
|
+
checkNotes?: string | undefined;
|
|
59
|
+
contractEnforcement?: KanbanContractGraphEnforcement | undefined;
|
|
60
|
+
contractNodeId?: string | undefined;
|
|
61
|
+
contractNodeKind?: KanbanContractNodeKind | undefined;
|
|
62
|
+
contractNodeTitle?: string | undefined;
|
|
63
|
+
contractNodeDescription?: string | undefined;
|
|
64
|
+
contractNodeState?: KanbanContractNodeState | undefined;
|
|
65
|
+
contractNodeEnforcement?: KanbanContractEnforcement | undefined;
|
|
66
|
+
contractCheckId?: string | undefined;
|
|
67
|
+
contractMetricId?: string | undefined;
|
|
68
|
+
contractWaiverReason?: string | undefined;
|
|
69
|
+
contractEdgeId?: string | undefined;
|
|
70
|
+
contractEdgeFrom?: string | undefined;
|
|
71
|
+
contractEdgeTo?: string | undefined;
|
|
72
|
+
contractEdgeType?: KanbanContractEdgeType | undefined;
|
|
73
|
+
contractEdgeRationale?: string | undefined;
|
|
58
74
|
note?: string | undefined;
|
|
59
75
|
author?: string | undefined;
|
|
60
76
|
url?: string | undefined;
|
|
@@ -108,7 +124,12 @@ export interface KanbanToolInput extends Omit<AssignKanbanTaskInput, 'status'> {
|
|
|
108
124
|
archiveMissingTasks?: boolean | undefined;
|
|
109
125
|
preserveManualDependencies?: boolean | undefined;
|
|
110
126
|
/** Full dependency id list for add_task/update_task (superset of dependencyTaskId). */
|
|
127
|
+
/** `update_task`: an explicit `[]` clears every dependency. */
|
|
111
128
|
dependsOn?: string[] | undefined;
|
|
129
|
+
/** `update_task`: mark a card a composite parent, or `false` to make it a leaf again. */
|
|
130
|
+
atomic?: boolean | undefined;
|
|
131
|
+
/** `update_task`: an explicit `[]` detaches every child from a composite parent. */
|
|
132
|
+
childTaskIds?: string[] | undefined;
|
|
112
133
|
/** Estimated effort in hours for add_task/update_task. */
|
|
113
134
|
estimatedHours?: number | undefined;
|
|
114
135
|
/** Actual effort in hours for add_task/update_task. */
|
|
@@ -143,9 +164,9 @@ export interface KanbanToolOutput {
|
|
|
143
164
|
chain?: KanbanTask[] | undefined;
|
|
144
165
|
snapshot?: KanbanOrchestrationSnapshot | undefined;
|
|
145
166
|
workbench?: KanbanWorkbenchSnapshot | undefined;
|
|
146
|
-
contractGraph?: KanbanContractGraph | undefined;
|
|
147
|
-
contractEvaluation?: KanbanContractGraphEvaluation | undefined;
|
|
148
167
|
taskGraph?: SerializedTaskGraph | undefined;
|
|
149
168
|
markdown?: string | undefined;
|
|
169
|
+
contractGraph?: KanbanContractGraph | null | undefined;
|
|
170
|
+
contractEvaluation?: KanbanContractGraphEvaluation | undefined;
|
|
150
171
|
}
|
|
151
172
|
//# sourceMappingURL=kanban-tool-types.d.ts.map
|