@a5c-ai/agent-comm-mux 5.0.1-staging.04ca6ab00d21
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 +21 -0
- package/README.md +99 -0
- package/dist/adapter-registry.d.ts +51 -0
- package/dist/adapter-registry.d.ts.map +1 -0
- package/dist/adapter-registry.js +208 -0
- package/dist/adapter-registry.js.map +1 -0
- package/dist/adapter-types.d.ts +164 -0
- package/dist/adapter-types.d.ts.map +1 -0
- package/dist/adapter-types.js +27 -0
- package/dist/adapter-types.js.map +1 -0
- package/dist/adapter.d.ts +248 -0
- package/dist/adapter.d.ts.map +1 -0
- package/dist/adapter.js +18 -0
- package/dist/adapter.js.map +1 -0
- package/dist/atomic-fs.d.ts +33 -0
- package/dist/atomic-fs.d.ts.map +1 -0
- package/dist/atomic-fs.js +190 -0
- package/dist/atomic-fs.js.map +1 -0
- package/dist/auth-manager.d.ts +37 -0
- package/dist/auth-manager.d.ts.map +1 -0
- package/dist/auth-manager.js +94 -0
- package/dist/auth-manager.js.map +1 -0
- package/dist/auth-types.d.ts +83 -0
- package/dist/auth-types.d.ts.map +1 -0
- package/dist/auth-types.js +10 -0
- package/dist/auth-types.js.map +1 -0
- package/dist/automation.d.ts +104 -0
- package/dist/automation.d.ts.map +1 -0
- package/dist/automation.js +2 -0
- package/dist/automation.js.map +1 -0
- package/dist/browser.d.ts +5 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +2 -0
- package/dist/browser.js.map +1 -0
- package/dist/builtin-hooks.d.ts +24 -0
- package/dist/builtin-hooks.d.ts.map +1 -0
- package/dist/builtin-hooks.js +80 -0
- package/dist/builtin-hooks.js.map +1 -0
- package/dist/capabilities.d.ts +251 -0
- package/dist/capabilities.d.ts.map +1 -0
- package/dist/capabilities.js +7 -0
- package/dist/capabilities.js.map +1 -0
- package/dist/client.d.ts +118 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +316 -0
- package/dist/client.js.map +1 -0
- package/dist/config-manager.d.ts +85 -0
- package/dist/config-manager.d.ts.map +1 -0
- package/dist/config-manager.js +202 -0
- package/dist/config-manager.js.map +1 -0
- package/dist/config-types.d.ts +134 -0
- package/dist/config-types.d.ts.map +1 -0
- package/dist/config-types.js +10 -0
- package/dist/config-types.js.map +1 -0
- package/dist/cost-utils.d.ts +31 -0
- package/dist/cost-utils.d.ts.map +1 -0
- package/dist/cost-utils.js +69 -0
- package/dist/cost-utils.js.map +1 -0
- package/dist/errors.d.ts +50 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +85 -0
- package/dist/errors.js.map +1 -0
- package/dist/events-control.d.ts +91 -0
- package/dist/events-control.d.ts.map +1 -0
- package/dist/events-control.js +8 -0
- package/dist/events-control.js.map +1 -0
- package/dist/events.d.ts +285 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +8 -0
- package/dist/events.js.map +1 -0
- package/dist/hook-catalog.d.ts +20 -0
- package/dist/hook-catalog.d.ts.map +1 -0
- package/dist/hook-catalog.js +63 -0
- package/dist/hook-catalog.js.map +1 -0
- package/dist/hook-dispatcher.d.ts +24 -0
- package/dist/hook-dispatcher.d.ts.map +1 -0
- package/dist/hook-dispatcher.js +91 -0
- package/dist/hook-dispatcher.js.map +1 -0
- package/dist/hook-payload.d.ts +24 -0
- package/dist/hook-payload.d.ts.map +1 -0
- package/dist/hook-payload.js +62 -0
- package/dist/hook-payload.js.map +1 -0
- package/dist/hooks.d.ts +59 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +118 -0
- package/dist/hooks.js.map +1 -0
- package/dist/host-detection.d.ts +67 -0
- package/dist/host-detection.d.ts.map +1 -0
- package/dist/host-detection.js +147 -0
- package/dist/host-detection.js.map +1 -0
- package/dist/index.d.ts +88 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +50 -0
- package/dist/index.js.map +1 -0
- package/dist/interaction-channel-impl.d.ts +56 -0
- package/dist/interaction-channel-impl.d.ts.map +1 -0
- package/dist/interaction-channel-impl.js +159 -0
- package/dist/interaction-channel-impl.js.map +1 -0
- package/dist/interaction.d.ts +93 -0
- package/dist/interaction.d.ts.map +1 -0
- package/dist/interaction.js +8 -0
- package/dist/interaction.js.map +1 -0
- package/dist/invocation.d.ts +100 -0
- package/dist/invocation.d.ts.map +1 -0
- package/dist/invocation.js +17 -0
- package/dist/invocation.js.map +1 -0
- package/dist/kanban.d.ts +894 -0
- package/dist/kanban.d.ts.map +1 -0
- package/dist/kanban.js +1155 -0
- package/dist/kanban.js.map +1 -0
- package/dist/merge.d.ts +37 -0
- package/dist/merge.d.ts.map +1 -0
- package/dist/merge.js +102 -0
- package/dist/merge.js.map +1 -0
- package/dist/model-registry.d.ts +61 -0
- package/dist/model-registry.d.ts.map +1 -0
- package/dist/model-registry.js +198 -0
- package/dist/model-registry.js.map +1 -0
- package/dist/plugin-manager-impl.d.ts +48 -0
- package/dist/plugin-manager-impl.d.ts.map +1 -0
- package/dist/plugin-manager-impl.js +343 -0
- package/dist/plugin-manager-impl.js.map +1 -0
- package/dist/plugin-manager.d.ts +81 -0
- package/dist/plugin-manager.d.ts.map +1 -0
- package/dist/plugin-manager.js +7 -0
- package/dist/plugin-manager.js.map +1 -0
- package/dist/plugin-types.d.ts +114 -0
- package/dist/plugin-types.d.ts.map +1 -0
- package/dist/plugin-types.js +7 -0
- package/dist/plugin-types.js.map +1 -0
- package/dist/process-tracker.d.ts +20 -0
- package/dist/process-tracker.d.ts.map +1 -0
- package/dist/process-tracker.js +96 -0
- package/dist/process-tracker.js.map +1 -0
- package/dist/profiles.d.ts +99 -0
- package/dist/profiles.d.ts.map +1 -0
- package/dist/profiles.js +231 -0
- package/dist/profiles.js.map +1 -0
- package/dist/programmatic-runner.d.ts +4 -0
- package/dist/programmatic-runner.d.ts.map +1 -0
- package/dist/programmatic-runner.js +110 -0
- package/dist/programmatic-runner.js.map +1 -0
- package/dist/provider-config.d.ts +40 -0
- package/dist/provider-config.d.ts.map +1 -0
- package/dist/provider-config.js +67 -0
- package/dist/provider-config.js.map +1 -0
- package/dist/provider-profiles.d.ts +47 -0
- package/dist/provider-profiles.d.ts.map +1 -0
- package/dist/provider-profiles.js +117 -0
- package/dist/provider-profiles.js.map +1 -0
- package/dist/provider-resolver.d.ts +15 -0
- package/dist/provider-resolver.d.ts.map +1 -0
- package/dist/provider-resolver.js +114 -0
- package/dist/provider-resolver.js.map +1 -0
- package/dist/provider-support-matrix.d.ts +12 -0
- package/dist/provider-support-matrix.d.ts.map +1 -0
- package/dist/provider-support-matrix.js +88 -0
- package/dist/provider-support-matrix.js.map +1 -0
- package/dist/remote-runner.d.ts +4 -0
- package/dist/remote-runner.d.ts.map +1 -0
- package/dist/remote-runner.js +114 -0
- package/dist/remote-runner.js.map +1 -0
- package/dist/retry.d.ts +13 -0
- package/dist/retry.d.ts.map +1 -0
- package/dist/retry.js +17 -0
- package/dist/retry.js.map +1 -0
- package/dist/run-handle-cost.d.ts +36 -0
- package/dist/run-handle-cost.d.ts.map +1 -0
- package/dist/run-handle-cost.js +62 -0
- package/dist/run-handle-cost.js.map +1 -0
- package/dist/run-handle-impl.d.ts +144 -0
- package/dist/run-handle-impl.d.ts.map +1 -0
- package/dist/run-handle-impl.js +695 -0
- package/dist/run-handle-impl.js.map +1 -0
- package/dist/run-handle.d.ts +222 -0
- package/dist/run-handle.d.ts.map +1 -0
- package/dist/run-handle.js +9 -0
- package/dist/run-handle.js.map +1 -0
- package/dist/run-options-validation.d.ts +23 -0
- package/dist/run-options-validation.d.ts.map +1 -0
- package/dist/run-options-validation.js +234 -0
- package/dist/run-options-validation.js.map +1 -0
- package/dist/run-options.d.ts +128 -0
- package/dist/run-options.d.ts.map +1 -0
- package/dist/run-options.js +329 -0
- package/dist/run-options.js.map +1 -0
- package/dist/runtime-hook-dispatcher.d.ts +19 -0
- package/dist/runtime-hook-dispatcher.d.ts.map +1 -0
- package/dist/runtime-hook-dispatcher.js +50 -0
- package/dist/runtime-hook-dispatcher.js.map +1 -0
- package/dist/runtime-hooks.d.ts +47 -0
- package/dist/runtime-hooks.d.ts.map +1 -0
- package/dist/runtime-hooks.js +2 -0
- package/dist/runtime-hooks.js.map +1 -0
- package/dist/schema/__tests__/event-schema.test.d.ts +1 -0
- package/dist/schema/__tests__/event-schema.test.d.ts.map +1 -0
- package/dist/schema/__tests__/event-schema.test.js +480 -0
- package/dist/schema/__tests__/event-schema.test.js.map +1 -0
- package/dist/schema/event-schema.d.ts +120 -0
- package/dist/schema/event-schema.d.ts.map +1 -0
- package/dist/schema/event-schema.js +546 -0
- package/dist/schema/event-schema.js.map +1 -0
- package/dist/schema/index.d.ts +7 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +49 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/session-manager-helpers.d.ts +33 -0
- package/dist/session-manager-helpers.d.ts.map +1 -0
- package/dist/session-manager-helpers.js +66 -0
- package/dist/session-manager-helpers.js.map +1 -0
- package/dist/session-manager.d.ts +70 -0
- package/dist/session-manager.d.ts.map +1 -0
- package/dist/session-manager.js +343 -0
- package/dist/session-manager.js.map +1 -0
- package/dist/session-types.d.ts +358 -0
- package/dist/session-types.d.ts.map +1 -0
- package/dist/session-types.js +10 -0
- package/dist/session-types.js.map +1 -0
- package/dist/spawn-invocation.d.ts +52 -0
- package/dist/spawn-invocation.d.ts.map +1 -0
- package/dist/spawn-invocation.js +218 -0
- package/dist/spawn-invocation.js.map +1 -0
- package/dist/spawn-runner-utils.d.ts +21 -0
- package/dist/spawn-runner-utils.d.ts.map +1 -0
- package/dist/spawn-runner-utils.js +102 -0
- package/dist/spawn-runner-utils.js.map +1 -0
- package/dist/spawn-runner.d.ts +21 -0
- package/dist/spawn-runner.d.ts.map +1 -0
- package/dist/spawn-runner.js +576 -0
- package/dist/spawn-runner.js.map +1 -0
- package/dist/spawn-runtime-hooks.d.ts +15 -0
- package/dist/spawn-runtime-hooks.d.ts.map +1 -0
- package/dist/spawn-runtime-hooks.js +136 -0
- package/dist/spawn-runtime-hooks.js.map +1 -0
- package/dist/state-machine.d.ts +33 -0
- package/dist/state-machine.d.ts.map +1 -0
- package/dist/state-machine.js +61 -0
- package/dist/state-machine.js.map +1 -0
- package/dist/storage.d.ts +47 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +90 -0
- package/dist/storage.js.map +1 -0
- package/dist/stream-assembler.d.ts +51 -0
- package/dist/stream-assembler.d.ts.map +1 -0
- package/dist/stream-assembler.js +86 -0
- package/dist/stream-assembler.js.map +1 -0
- package/dist/tools/classify.d.ts +9 -0
- package/dist/tools/classify.d.ts.map +1 -0
- package/dist/tools/classify.js +77 -0
- package/dist/tools/classify.js.map +1 -0
- package/dist/tools/index.d.ts +2 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/types.d.ts +288 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -0
- package/dist/workspaces.d.ts +142 -0
- package/dist/workspaces.d.ts.map +1 -0
- package/dist/workspaces.js +515 -0
- package/dist/workspaces.js.map +1 -0
- package/package.json +107 -0
package/dist/kanban.d.ts
ADDED
|
@@ -0,0 +1,894 @@
|
|
|
1
|
+
import type { WorkspaceRebaseSurface, WorkspaceRuntimeSurface } from './session-types.js';
|
|
2
|
+
export type KanbanPriority = 'critical' | 'high' | 'medium' | 'low';
|
|
3
|
+
export type KanbanCollaboratorRole = 'owner' | 'maintainer' | 'contributor' | 'viewer';
|
|
4
|
+
export type KanbanEntityVisibility = 'private' | 'team' | 'workspace-shared';
|
|
5
|
+
export type KanbanActivityEntityType = 'project' | 'issue' | 'board' | 'workspace';
|
|
6
|
+
export type KanbanActivityActorKind = 'human' | 'agent' | 'system';
|
|
7
|
+
export type KanbanPermissionAction = 'manage-project-settings' | 'manage-team-members' | 'edit-board' | 'assign-issues' | 'review-work' | 'manage-workspaces';
|
|
8
|
+
export type KanbanIssueStatus = 'backlog' | 'ready' | 'in-progress' | 'blocked' | 'review' | 'done';
|
|
9
|
+
export type KanbanWorkflowState = 'todo' | 'in-progress' | 'review' | 'done';
|
|
10
|
+
export type KanbanSwimlaneId = 'expedite' | 'standard' | 'blocked';
|
|
11
|
+
export type KanbanDispatchReadiness = 'needs-decomposition' | 'ready' | 'blocked' | 'dispatched' | 'completed';
|
|
12
|
+
export type KanbanDependencyType = 'blocks' | 'blocked-by' | 'related';
|
|
13
|
+
export type KanbanDecompositionStatus = 'todo' | 'ready' | 'done';
|
|
14
|
+
export type KanbanDecompositionKind = 'research' | 'implementation' | 'validation' | 'coordination';
|
|
15
|
+
export type KanbanIntegrationProvider = 'github' | 'azure-repos';
|
|
16
|
+
export type KanbanIntegrationStatus = 'connected' | 'disconnected' | 'partial-setup' | 'expired-auth' | 'missing-scopes' | 'failing';
|
|
17
|
+
export type KanbanPullRequestLinkState = 'unlinked' | 'linked' | 'partially-linked';
|
|
18
|
+
export type KanbanRepositoryProvider = KanbanIntegrationProvider | 'gitlab' | 'bitbucket' | 'local';
|
|
19
|
+
export type KanbanPullRequestStatus = 'draft' | 'open' | 'in-review' | 'approved' | 'changes-requested' | 'merged';
|
|
20
|
+
export type KanbanReviewStatus = 'unlinked' | 'pending' | 'approved' | 'changes-requested';
|
|
21
|
+
export type KanbanMergeStatus = 'not-ready' | 'blocked' | 'ready' | 'merged';
|
|
22
|
+
export type KanbanCiGateStatus = 'pending' | 'passing' | 'failing' | 'skipped';
|
|
23
|
+
export type KanbanPublishStatus = 'not-ready' | 'pending' | 'ready' | 'published' | 'failed';
|
|
24
|
+
export type KanbanReviewTargetType = 'issue' | 'workspace';
|
|
25
|
+
export type KanbanReviewDecision = 'pending' | 'changes-requested' | 'approved';
|
|
26
|
+
export type KanbanReviewQueueState = 'queued' | 'in-review' | 'completed';
|
|
27
|
+
export type KanbanDiffLineKind = 'context' | 'add' | 'delete';
|
|
28
|
+
export type KanbanDiffPresentation = 'unified' | 'split';
|
|
29
|
+
export type KanbanReviewCommentStatus = 'open' | 'resolved';
|
|
30
|
+
export type KanbanReviewCommentSide = 'base' | 'head';
|
|
31
|
+
export type KanbanReviewExecutionTargetKind = 'workspace' | 'session' | 'run';
|
|
32
|
+
export type KanbanTaskTagScopeKind = 'global' | 'project' | 'workspace';
|
|
33
|
+
export interface KanbanDispatchContextLabelDefinition {
|
|
34
|
+
readonly id: string;
|
|
35
|
+
readonly key: string;
|
|
36
|
+
readonly label: string;
|
|
37
|
+
readonly instruction: string;
|
|
38
|
+
readonly description?: string;
|
|
39
|
+
readonly order: number;
|
|
40
|
+
readonly createdAt: string;
|
|
41
|
+
readonly updatedAt: string;
|
|
42
|
+
}
|
|
43
|
+
export interface KanbanDispatchContextLabelRef {
|
|
44
|
+
readonly labelId: string;
|
|
45
|
+
}
|
|
46
|
+
export interface KanbanDispatchContextLabelProjection {
|
|
47
|
+
readonly labelId: string;
|
|
48
|
+
readonly key: string;
|
|
49
|
+
readonly label: string;
|
|
50
|
+
readonly instruction: string;
|
|
51
|
+
}
|
|
52
|
+
export interface KanbanExecutionContextEnvelope {
|
|
53
|
+
readonly kind: 'dispatch-context-labels';
|
|
54
|
+
readonly project: {
|
|
55
|
+
readonly id: string;
|
|
56
|
+
readonly key?: string;
|
|
57
|
+
readonly name?: string;
|
|
58
|
+
};
|
|
59
|
+
readonly issue: {
|
|
60
|
+
readonly id: string;
|
|
61
|
+
readonly key: string;
|
|
62
|
+
readonly title: string;
|
|
63
|
+
};
|
|
64
|
+
readonly dispatch: {
|
|
65
|
+
readonly runIds: readonly string[];
|
|
66
|
+
readonly sessionIds: readonly string[];
|
|
67
|
+
readonly labelIds: readonly string[];
|
|
68
|
+
readonly labels: readonly KanbanDispatchContextLabelProjection[];
|
|
69
|
+
readonly renderedContext?: string;
|
|
70
|
+
readonly lastDispatchedAt?: string;
|
|
71
|
+
};
|
|
72
|
+
readonly block: string;
|
|
73
|
+
}
|
|
74
|
+
export interface KanbanDispatchContextExecutionEnvelope {
|
|
75
|
+
readonly source: 'dispatch-context-labels';
|
|
76
|
+
readonly appliedLabels: readonly KanbanDispatchContextLabelProjection[];
|
|
77
|
+
readonly renderedBlock: string;
|
|
78
|
+
readonly metadata: {
|
|
79
|
+
readonly labelIds: readonly string[];
|
|
80
|
+
readonly labelKeys: readonly string[];
|
|
81
|
+
readonly labelCount: number;
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
export interface KanbanLabel {
|
|
85
|
+
readonly id: string;
|
|
86
|
+
readonly name: string;
|
|
87
|
+
readonly color?: string;
|
|
88
|
+
readonly description?: string;
|
|
89
|
+
}
|
|
90
|
+
export interface KanbanTaskTagScope {
|
|
91
|
+
readonly kind: KanbanTaskTagScopeKind;
|
|
92
|
+
readonly refId?: string;
|
|
93
|
+
}
|
|
94
|
+
export interface KanbanTaskTag {
|
|
95
|
+
readonly id: string;
|
|
96
|
+
readonly key: string;
|
|
97
|
+
readonly label: string;
|
|
98
|
+
readonly content: string;
|
|
99
|
+
readonly description?: string;
|
|
100
|
+
readonly order: number;
|
|
101
|
+
readonly createdAt: string;
|
|
102
|
+
readonly updatedAt: string;
|
|
103
|
+
readonly scope?: KanbanTaskTagScope;
|
|
104
|
+
}
|
|
105
|
+
export interface KanbanAssignee {
|
|
106
|
+
readonly id: string;
|
|
107
|
+
readonly displayName: string;
|
|
108
|
+
readonly email?: string;
|
|
109
|
+
readonly avatarUrl?: string;
|
|
110
|
+
}
|
|
111
|
+
export interface KanbanCollaborator extends KanbanAssignee {
|
|
112
|
+
readonly role: KanbanCollaboratorRole;
|
|
113
|
+
}
|
|
114
|
+
export interface KanbanPermissionGrant {
|
|
115
|
+
readonly action: KanbanPermissionAction;
|
|
116
|
+
readonly roles: readonly KanbanCollaboratorRole[];
|
|
117
|
+
readonly description?: string;
|
|
118
|
+
}
|
|
119
|
+
export interface KanbanTeamSettings {
|
|
120
|
+
readonly visibility: KanbanEntityVisibility;
|
|
121
|
+
readonly defaultRole: KanbanCollaboratorRole;
|
|
122
|
+
readonly allowSelfAssign: boolean;
|
|
123
|
+
}
|
|
124
|
+
export interface KanbanProjectSettings {
|
|
125
|
+
readonly reviewRequiredForDone: boolean;
|
|
126
|
+
readonly activityScope: 'project-and-issues' | 'all-board-entities';
|
|
127
|
+
readonly workspaceProvisioning: 'owners-maintainers' | 'contributors-and-up';
|
|
128
|
+
}
|
|
129
|
+
export interface KanbanActivityActor {
|
|
130
|
+
readonly kind: KanbanActivityActorKind;
|
|
131
|
+
readonly id: string;
|
|
132
|
+
readonly displayName: string;
|
|
133
|
+
readonly role?: KanbanCollaboratorRole;
|
|
134
|
+
}
|
|
135
|
+
export interface KanbanActivityEntry {
|
|
136
|
+
readonly id: string;
|
|
137
|
+
readonly entityType: KanbanActivityEntityType;
|
|
138
|
+
readonly entityId: string;
|
|
139
|
+
readonly action: string;
|
|
140
|
+
readonly summary: string;
|
|
141
|
+
readonly actor: KanbanActivityActor;
|
|
142
|
+
readonly createdAt: string;
|
|
143
|
+
}
|
|
144
|
+
export interface KanbanTeam {
|
|
145
|
+
readonly id: string;
|
|
146
|
+
readonly name: string;
|
|
147
|
+
readonly members: readonly KanbanCollaborator[];
|
|
148
|
+
readonly settings: KanbanTeamSettings;
|
|
149
|
+
}
|
|
150
|
+
export interface KanbanAcceptanceCriterion {
|
|
151
|
+
readonly id: string;
|
|
152
|
+
readonly title: string;
|
|
153
|
+
readonly satisfied: boolean;
|
|
154
|
+
readonly notes?: string;
|
|
155
|
+
}
|
|
156
|
+
export interface KanbanIssueDependency {
|
|
157
|
+
readonly issueId: string;
|
|
158
|
+
readonly type: KanbanDependencyType;
|
|
159
|
+
}
|
|
160
|
+
export interface KanbanDecompositionItem {
|
|
161
|
+
readonly id: string;
|
|
162
|
+
readonly title: string;
|
|
163
|
+
readonly status: KanbanDecompositionStatus;
|
|
164
|
+
readonly kind: KanbanDecompositionKind;
|
|
165
|
+
readonly issueId?: string;
|
|
166
|
+
}
|
|
167
|
+
export interface KanbanIssueDispatchState {
|
|
168
|
+
readonly readiness: KanbanDispatchReadiness;
|
|
169
|
+
readonly blockedReasons: readonly string[];
|
|
170
|
+
readonly runIds: readonly string[];
|
|
171
|
+
readonly sessionIds: readonly string[];
|
|
172
|
+
readonly contextLabels: readonly KanbanDispatchContextLabelRef[];
|
|
173
|
+
readonly contextLabelProjections: readonly KanbanDispatchContextLabelProjection[];
|
|
174
|
+
readonly executionContext?: KanbanDispatchContextExecutionEnvelope;
|
|
175
|
+
readonly renderedContext?: string;
|
|
176
|
+
readonly lastDispatchedAt?: string;
|
|
177
|
+
}
|
|
178
|
+
export interface KanbanIssueSource {
|
|
179
|
+
readonly kind: 'seed' | 'file' | 'run-derived';
|
|
180
|
+
readonly path?: string;
|
|
181
|
+
readonly externalId?: string;
|
|
182
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
183
|
+
}
|
|
184
|
+
export interface KanbanIssueWorkspaceLink {
|
|
185
|
+
readonly workspacePath: string;
|
|
186
|
+
readonly workspaceName: string;
|
|
187
|
+
readonly branchName?: string;
|
|
188
|
+
readonly linkedAt: string;
|
|
189
|
+
readonly source: 'created-from-issue' | 'linked-existing-workspace';
|
|
190
|
+
}
|
|
191
|
+
export interface KanbanPullRequestReviewLink {
|
|
192
|
+
readonly id: string;
|
|
193
|
+
readonly label: string;
|
|
194
|
+
readonly reviewer?: string;
|
|
195
|
+
readonly status: Exclude<KanbanReviewStatus, 'unlinked'>;
|
|
196
|
+
readonly url?: string;
|
|
197
|
+
}
|
|
198
|
+
export interface KanbanCiGate {
|
|
199
|
+
readonly id: string;
|
|
200
|
+
readonly name: string;
|
|
201
|
+
readonly provider?: string;
|
|
202
|
+
readonly required: boolean;
|
|
203
|
+
readonly status: KanbanCiGateStatus;
|
|
204
|
+
readonly summary?: string;
|
|
205
|
+
readonly url?: string;
|
|
206
|
+
}
|
|
207
|
+
export interface KanbanRepositorySettings {
|
|
208
|
+
readonly baseBranch: string;
|
|
209
|
+
readonly autoMerge: boolean;
|
|
210
|
+
readonly requiredApprovals: number;
|
|
211
|
+
readonly ciProvider?: string;
|
|
212
|
+
readonly publishTarget?: string;
|
|
213
|
+
}
|
|
214
|
+
export interface KanbanIntegrationPrerequisite {
|
|
215
|
+
readonly key: string;
|
|
216
|
+
readonly label: string;
|
|
217
|
+
readonly satisfied: boolean;
|
|
218
|
+
readonly guidance?: string;
|
|
219
|
+
}
|
|
220
|
+
export interface KanbanIntegrationActionState {
|
|
221
|
+
readonly canCreatePullRequest: boolean;
|
|
222
|
+
readonly canManagePullRequest: boolean;
|
|
223
|
+
readonly canApproveFromReview: boolean;
|
|
224
|
+
readonly reason?: string;
|
|
225
|
+
}
|
|
226
|
+
export interface KanbanIntegrationConnection {
|
|
227
|
+
readonly provider: KanbanIntegrationProvider;
|
|
228
|
+
readonly label: string;
|
|
229
|
+
readonly status: KanbanIntegrationStatus;
|
|
230
|
+
readonly accountLabel?: string;
|
|
231
|
+
readonly connectedAt?: string;
|
|
232
|
+
readonly failureMessage?: string;
|
|
233
|
+
readonly missingScopes?: readonly string[];
|
|
234
|
+
readonly prerequisites: readonly KanbanIntegrationPrerequisite[];
|
|
235
|
+
readonly guidance: string;
|
|
236
|
+
readonly actions: KanbanIntegrationActionState;
|
|
237
|
+
}
|
|
238
|
+
export interface KanbanRepositoryIntegrationState {
|
|
239
|
+
readonly provider: KanbanIntegrationProvider;
|
|
240
|
+
readonly status: KanbanIntegrationStatus;
|
|
241
|
+
readonly linkState: KanbanPullRequestLinkState;
|
|
242
|
+
readonly failureMessage?: string;
|
|
243
|
+
readonly guidance: string;
|
|
244
|
+
readonly missingScopes?: readonly string[];
|
|
245
|
+
readonly prerequisites: readonly KanbanIntegrationPrerequisite[];
|
|
246
|
+
readonly actions: KanbanIntegrationActionState;
|
|
247
|
+
}
|
|
248
|
+
export interface KanbanRepositoryContext {
|
|
249
|
+
readonly id: string;
|
|
250
|
+
readonly name: string;
|
|
251
|
+
readonly owner: string;
|
|
252
|
+
readonly fullName: string;
|
|
253
|
+
readonly provider: KanbanRepositoryProvider;
|
|
254
|
+
readonly url?: string;
|
|
255
|
+
readonly defaultBranch: string;
|
|
256
|
+
readonly linkedAt: string;
|
|
257
|
+
readonly settings: KanbanRepositorySettings;
|
|
258
|
+
}
|
|
259
|
+
export interface KanbanPullRequest {
|
|
260
|
+
readonly id: string;
|
|
261
|
+
readonly number: number;
|
|
262
|
+
readonly title: string;
|
|
263
|
+
readonly status: KanbanPullRequestStatus;
|
|
264
|
+
readonly branchName: string;
|
|
265
|
+
readonly baseBranch: string;
|
|
266
|
+
readonly mergeStatus: KanbanMergeStatus;
|
|
267
|
+
readonly reviewLinks: readonly KanbanPullRequestReviewLink[];
|
|
268
|
+
readonly url?: string;
|
|
269
|
+
readonly linkState?: KanbanPullRequestLinkState;
|
|
270
|
+
readonly createdAt: string;
|
|
271
|
+
readonly updatedAt: string;
|
|
272
|
+
}
|
|
273
|
+
export interface KanbanIssueRepositoryLifecycle {
|
|
274
|
+
readonly repositoryId: string;
|
|
275
|
+
readonly branchName: string;
|
|
276
|
+
readonly reviewStatus: KanbanReviewStatus;
|
|
277
|
+
readonly mergeStatus: KanbanMergeStatus;
|
|
278
|
+
readonly publishStatus: KanbanPublishStatus;
|
|
279
|
+
readonly ciGates: readonly KanbanCiGate[];
|
|
280
|
+
readonly pullRequest?: KanbanPullRequest;
|
|
281
|
+
readonly integration?: KanbanRepositoryIntegrationState;
|
|
282
|
+
readonly publishUrl?: string;
|
|
283
|
+
readonly lastPublishedAt?: string;
|
|
284
|
+
}
|
|
285
|
+
export interface KanbanLinkedPullRequestSummary {
|
|
286
|
+
readonly provider: KanbanIntegrationProvider;
|
|
287
|
+
readonly status: KanbanPullRequestStatus;
|
|
288
|
+
readonly linkState: KanbanPullRequestLinkState;
|
|
289
|
+
readonly title: string;
|
|
290
|
+
readonly number?: number;
|
|
291
|
+
readonly url?: string;
|
|
292
|
+
readonly branchName?: string;
|
|
293
|
+
readonly baseBranch?: string;
|
|
294
|
+
readonly reviewStatus?: KanbanReviewStatus;
|
|
295
|
+
readonly mergeStatus?: KanbanMergeStatus;
|
|
296
|
+
readonly publishStatus?: KanbanPublishStatus;
|
|
297
|
+
readonly ciGates?: readonly KanbanCiGate[];
|
|
298
|
+
readonly integrationStatus: KanbanIntegrationStatus;
|
|
299
|
+
readonly guidance?: string;
|
|
300
|
+
}
|
|
301
|
+
export interface KanbanReviewFeedbackSource {
|
|
302
|
+
readonly kind: 'agent-feedback';
|
|
303
|
+
readonly label: string;
|
|
304
|
+
readonly sessionId?: string;
|
|
305
|
+
readonly runId?: string;
|
|
306
|
+
readonly effectId?: string;
|
|
307
|
+
readonly messageId?: string;
|
|
308
|
+
}
|
|
309
|
+
export interface KanbanDiffLine {
|
|
310
|
+
readonly kind: KanbanDiffLineKind;
|
|
311
|
+
readonly content: string;
|
|
312
|
+
readonly oldLineNumber?: number;
|
|
313
|
+
readonly newLineNumber?: number;
|
|
314
|
+
}
|
|
315
|
+
export interface KanbanDiffHunk {
|
|
316
|
+
readonly id: string;
|
|
317
|
+
readonly header: string;
|
|
318
|
+
readonly lines: readonly KanbanDiffLine[];
|
|
319
|
+
}
|
|
320
|
+
export interface KanbanDiffFile {
|
|
321
|
+
readonly id: string;
|
|
322
|
+
readonly path: string;
|
|
323
|
+
readonly additions: number;
|
|
324
|
+
readonly deletions: number;
|
|
325
|
+
readonly hunks: readonly KanbanDiffHunk[];
|
|
326
|
+
}
|
|
327
|
+
export interface KanbanReviewCommentAnchor {
|
|
328
|
+
readonly fileId: string;
|
|
329
|
+
readonly filePath: string;
|
|
330
|
+
readonly hunkId: string;
|
|
331
|
+
readonly side: KanbanReviewCommentSide;
|
|
332
|
+
readonly line: number;
|
|
333
|
+
}
|
|
334
|
+
export interface KanbanReviewComment {
|
|
335
|
+
readonly id: string;
|
|
336
|
+
readonly author: {
|
|
337
|
+
readonly kind: 'agent' | 'human';
|
|
338
|
+
readonly name: string;
|
|
339
|
+
};
|
|
340
|
+
readonly body: string;
|
|
341
|
+
readonly createdAt: string;
|
|
342
|
+
readonly status: KanbanReviewCommentStatus;
|
|
343
|
+
readonly anchor: KanbanReviewCommentAnchor;
|
|
344
|
+
readonly feedbackSource?: KanbanReviewFeedbackSource;
|
|
345
|
+
}
|
|
346
|
+
export interface KanbanReviewExecutionTarget {
|
|
347
|
+
readonly id: string;
|
|
348
|
+
readonly kind: KanbanReviewExecutionTargetKind;
|
|
349
|
+
readonly label: string;
|
|
350
|
+
readonly href: string;
|
|
351
|
+
readonly description?: string;
|
|
352
|
+
readonly actionLabel?: string;
|
|
353
|
+
}
|
|
354
|
+
export interface KanbanReviewSubmission {
|
|
355
|
+
readonly decision: KanbanReviewDecision;
|
|
356
|
+
readonly summary?: string;
|
|
357
|
+
readonly submittedAt: string;
|
|
358
|
+
readonly executionTargetId?: string;
|
|
359
|
+
readonly executionTargetLabel?: string;
|
|
360
|
+
}
|
|
361
|
+
export interface KanbanReviewSummary {
|
|
362
|
+
readonly decision: KanbanReviewDecision;
|
|
363
|
+
readonly queueState: KanbanReviewQueueState;
|
|
364
|
+
readonly commentCount: number;
|
|
365
|
+
readonly openCommentCount: number;
|
|
366
|
+
readonly latestActivityAt: string;
|
|
367
|
+
}
|
|
368
|
+
export interface KanbanReviewArtifact {
|
|
369
|
+
readonly id: string;
|
|
370
|
+
readonly targetType: KanbanReviewTargetType;
|
|
371
|
+
readonly targetId: string;
|
|
372
|
+
readonly targetLabel: string;
|
|
373
|
+
readonly title: string;
|
|
374
|
+
readonly summary?: string;
|
|
375
|
+
readonly branch?: string;
|
|
376
|
+
readonly decision: KanbanReviewDecision;
|
|
377
|
+
readonly queueState: KanbanReviewQueueState;
|
|
378
|
+
readonly diff: readonly KanbanDiffFile[];
|
|
379
|
+
readonly comments: readonly KanbanReviewComment[];
|
|
380
|
+
readonly preferredPresentation?: KanbanDiffPresentation;
|
|
381
|
+
readonly executionTargets?: readonly KanbanReviewExecutionTarget[];
|
|
382
|
+
readonly latestSubmission?: KanbanReviewSubmission;
|
|
383
|
+
readonly integration?: KanbanRepositoryIntegrationState;
|
|
384
|
+
readonly linkedPullRequest?: KanbanLinkedPullRequestSummary;
|
|
385
|
+
readonly updatedAt: string;
|
|
386
|
+
}
|
|
387
|
+
export interface KanbanReviewQueueItem {
|
|
388
|
+
readonly artifactId: string;
|
|
389
|
+
readonly targetType: KanbanReviewTargetType;
|
|
390
|
+
readonly targetId: string;
|
|
391
|
+
readonly targetLabel: string;
|
|
392
|
+
readonly title: string;
|
|
393
|
+
readonly decision: KanbanReviewDecision;
|
|
394
|
+
readonly queueState: KanbanReviewQueueState;
|
|
395
|
+
readonly commentCount: number;
|
|
396
|
+
readonly openCommentCount: number;
|
|
397
|
+
readonly updatedAt: string;
|
|
398
|
+
}
|
|
399
|
+
export interface KanbanReviewSnapshot {
|
|
400
|
+
readonly generatedAt: string;
|
|
401
|
+
readonly artifacts: readonly KanbanReviewArtifact[];
|
|
402
|
+
readonly queue: readonly KanbanReviewQueueItem[];
|
|
403
|
+
readonly summary: {
|
|
404
|
+
readonly total: number;
|
|
405
|
+
readonly issueCount: number;
|
|
406
|
+
readonly workspaceCount: number;
|
|
407
|
+
readonly pendingCount: number;
|
|
408
|
+
readonly changesRequestedCount: number;
|
|
409
|
+
readonly approvedCount: number;
|
|
410
|
+
readonly openCommentCount: number;
|
|
411
|
+
};
|
|
412
|
+
}
|
|
413
|
+
export interface KanbanIssue {
|
|
414
|
+
readonly id: string;
|
|
415
|
+
readonly projectId: string;
|
|
416
|
+
readonly key: string;
|
|
417
|
+
readonly title: string;
|
|
418
|
+
readonly summary?: string;
|
|
419
|
+
readonly description?: string;
|
|
420
|
+
readonly status: KanbanIssueStatus;
|
|
421
|
+
readonly priority: KanbanPriority;
|
|
422
|
+
readonly labels: readonly KanbanLabel[];
|
|
423
|
+
readonly assignees: readonly KanbanAssignee[];
|
|
424
|
+
readonly collaborators: readonly KanbanCollaborator[];
|
|
425
|
+
readonly dependencies: readonly KanbanIssueDependency[];
|
|
426
|
+
readonly acceptanceCriteria: readonly KanbanAcceptanceCriterion[];
|
|
427
|
+
readonly decomposition: readonly KanbanDecompositionItem[];
|
|
428
|
+
readonly childIssueIds: readonly string[];
|
|
429
|
+
readonly parentIssueId?: string;
|
|
430
|
+
readonly createdAt: string;
|
|
431
|
+
readonly updatedAt: string;
|
|
432
|
+
readonly dispatch: KanbanIssueDispatchState;
|
|
433
|
+
readonly repositoryLifecycle?: KanbanIssueRepositoryLifecycle;
|
|
434
|
+
readonly workspaceLinks?: readonly KanbanIssueWorkspaceLink[];
|
|
435
|
+
readonly activity: readonly KanbanActivityEntry[];
|
|
436
|
+
readonly source?: KanbanIssueSource;
|
|
437
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
438
|
+
readonly review?: KanbanReviewSummary;
|
|
439
|
+
}
|
|
440
|
+
export interface KanbanStatusDefinition {
|
|
441
|
+
readonly id: string;
|
|
442
|
+
readonly name: string;
|
|
443
|
+
readonly kind: 'backlog' | 'active' | 'done';
|
|
444
|
+
readonly wipLimit?: number;
|
|
445
|
+
}
|
|
446
|
+
export interface KanbanProjectMetrics {
|
|
447
|
+
readonly totalIssues: number;
|
|
448
|
+
readonly readyIssues: number;
|
|
449
|
+
readonly blockedIssues: number;
|
|
450
|
+
readonly dispatchedIssues: number;
|
|
451
|
+
readonly completedIssues: number;
|
|
452
|
+
readonly needsDecompositionIssues: number;
|
|
453
|
+
readonly inProgressIssues: number;
|
|
454
|
+
}
|
|
455
|
+
export interface LinkedRunSummary {
|
|
456
|
+
readonly projectName: string;
|
|
457
|
+
readonly totalRuns: number;
|
|
458
|
+
readonly activeRuns: number;
|
|
459
|
+
readonly completedRuns: number;
|
|
460
|
+
readonly failedRuns: number;
|
|
461
|
+
readonly staleRuns?: number;
|
|
462
|
+
readonly latestUpdate: string;
|
|
463
|
+
}
|
|
464
|
+
export interface KanbanProject {
|
|
465
|
+
readonly id: string;
|
|
466
|
+
readonly key: string;
|
|
467
|
+
readonly name: string;
|
|
468
|
+
readonly description?: string;
|
|
469
|
+
readonly issueIds: readonly string[];
|
|
470
|
+
readonly labels: readonly KanbanLabel[];
|
|
471
|
+
readonly assignees: readonly KanbanAssignee[];
|
|
472
|
+
readonly team: KanbanTeam;
|
|
473
|
+
readonly settings: KanbanProjectSettings;
|
|
474
|
+
readonly permissions: readonly KanbanPermissionGrant[];
|
|
475
|
+
readonly activity: readonly KanbanActivityEntry[];
|
|
476
|
+
readonly statuses: readonly KanbanStatusDefinition[];
|
|
477
|
+
readonly repositories: readonly KanbanRepositoryContext[];
|
|
478
|
+
readonly integrations: readonly KanbanIntegrationConnection[];
|
|
479
|
+
readonly linkedRunProjectName?: string;
|
|
480
|
+
readonly linkedRunSummary?: LinkedRunSummary;
|
|
481
|
+
readonly metrics: KanbanProjectMetrics;
|
|
482
|
+
}
|
|
483
|
+
export interface KanbanBacklogSnapshot {
|
|
484
|
+
readonly generatedAt: string;
|
|
485
|
+
readonly projects: readonly KanbanProject[];
|
|
486
|
+
readonly issues: readonly KanbanIssue[];
|
|
487
|
+
readonly dispatchContextLabels: readonly KanbanDispatchContextLabelDefinition[];
|
|
488
|
+
}
|
|
489
|
+
export interface KanbanBoardPolicyHook {
|
|
490
|
+
readonly id: string;
|
|
491
|
+
readonly name: string;
|
|
492
|
+
readonly description: string;
|
|
493
|
+
readonly scope: 'board' | 'column' | 'card';
|
|
494
|
+
readonly blocking: boolean;
|
|
495
|
+
readonly columnIds?: readonly KanbanWorkflowState[];
|
|
496
|
+
}
|
|
497
|
+
export interface KanbanBoardPolicySignal {
|
|
498
|
+
readonly hookId: string;
|
|
499
|
+
readonly severity: 'info' | 'warning' | 'error';
|
|
500
|
+
readonly message: string;
|
|
501
|
+
readonly blocking: boolean;
|
|
502
|
+
}
|
|
503
|
+
export interface KanbanBoardMoveTarget {
|
|
504
|
+
readonly state: KanbanWorkflowState;
|
|
505
|
+
readonly allowed: boolean;
|
|
506
|
+
readonly signals: readonly KanbanBoardPolicySignal[];
|
|
507
|
+
}
|
|
508
|
+
export interface KanbanBoardCard {
|
|
509
|
+
readonly issueId: string;
|
|
510
|
+
readonly issueKey: string;
|
|
511
|
+
readonly projectId: string;
|
|
512
|
+
readonly title: string;
|
|
513
|
+
readonly summary?: string;
|
|
514
|
+
readonly workflowState: KanbanWorkflowState;
|
|
515
|
+
readonly swimlaneId: KanbanSwimlaneId;
|
|
516
|
+
readonly priority: KanbanPriority;
|
|
517
|
+
readonly readiness: KanbanDispatchReadiness;
|
|
518
|
+
readonly blocked: boolean;
|
|
519
|
+
readonly blockedReasons: readonly string[];
|
|
520
|
+
readonly labelNames: readonly string[];
|
|
521
|
+
readonly assigneeNames: readonly string[];
|
|
522
|
+
readonly collaboratorNames: readonly string[];
|
|
523
|
+
readonly dependencyCount: number;
|
|
524
|
+
readonly childCount: number;
|
|
525
|
+
readonly activityCount: number;
|
|
526
|
+
readonly latestActivityAt?: string;
|
|
527
|
+
readonly acceptanceProgress: {
|
|
528
|
+
readonly satisfied: number;
|
|
529
|
+
readonly total: number;
|
|
530
|
+
};
|
|
531
|
+
readonly repository?: KanbanRepositoryContext;
|
|
532
|
+
readonly repositoryLifecycle?: KanbanIssueRepositoryLifecycle;
|
|
533
|
+
readonly moveTargets: readonly KanbanBoardMoveTarget[];
|
|
534
|
+
readonly policySignals: readonly KanbanBoardPolicySignal[];
|
|
535
|
+
readonly review?: KanbanReviewSummary;
|
|
536
|
+
}
|
|
537
|
+
export interface KanbanBoardColumn {
|
|
538
|
+
readonly id: KanbanWorkflowState;
|
|
539
|
+
readonly name: string;
|
|
540
|
+
readonly issueIds: readonly string[];
|
|
541
|
+
readonly issueCount: number;
|
|
542
|
+
readonly wipLimit?: number;
|
|
543
|
+
readonly isOverLimit: boolean;
|
|
544
|
+
}
|
|
545
|
+
export interface KanbanBoardSwimlane {
|
|
546
|
+
readonly id: KanbanSwimlaneId;
|
|
547
|
+
readonly name: string;
|
|
548
|
+
readonly issueIds: readonly string[];
|
|
549
|
+
}
|
|
550
|
+
export interface KanbanProjectBoard {
|
|
551
|
+
readonly projectId: string;
|
|
552
|
+
readonly projectKey: string;
|
|
553
|
+
readonly projectName: string;
|
|
554
|
+
readonly generatedAt: string;
|
|
555
|
+
readonly columns: readonly KanbanBoardColumn[];
|
|
556
|
+
readonly swimlanes: readonly KanbanBoardSwimlane[];
|
|
557
|
+
readonly cards: readonly KanbanBoardCard[];
|
|
558
|
+
readonly policyHooks: readonly KanbanBoardPolicyHook[];
|
|
559
|
+
}
|
|
560
|
+
export interface KanbanBoardSnapshot {
|
|
561
|
+
readonly generatedAt: string;
|
|
562
|
+
readonly projects: readonly KanbanProjectBoard[];
|
|
563
|
+
}
|
|
564
|
+
export interface KanbanIssueMoveEvaluation {
|
|
565
|
+
readonly issueId: string;
|
|
566
|
+
readonly fromState: KanbanWorkflowState;
|
|
567
|
+
readonly toState: KanbanWorkflowState;
|
|
568
|
+
readonly allowed: boolean;
|
|
569
|
+
readonly nextStatus?: KanbanIssueStatus;
|
|
570
|
+
readonly signals: readonly KanbanBoardPolicySignal[];
|
|
571
|
+
}
|
|
572
|
+
export interface KanbanBacklogSummary {
|
|
573
|
+
readonly projectCount: number;
|
|
574
|
+
readonly issueCount: number;
|
|
575
|
+
readonly readyCount: number;
|
|
576
|
+
readonly blockedCount: number;
|
|
577
|
+
readonly dispatchedCount: number;
|
|
578
|
+
readonly completedCount: number;
|
|
579
|
+
readonly needsDecompositionCount: number;
|
|
580
|
+
readonly inProgressCount: number;
|
|
581
|
+
}
|
|
582
|
+
export interface KanbanBacklogOverview {
|
|
583
|
+
readonly snapshot: KanbanBacklogSnapshot;
|
|
584
|
+
readonly board: KanbanBoardSnapshot;
|
|
585
|
+
readonly summary: KanbanBacklogSummary;
|
|
586
|
+
}
|
|
587
|
+
export interface KanbanIssueCreateInput {
|
|
588
|
+
readonly projectId?: string;
|
|
589
|
+
readonly parentIssueId?: string;
|
|
590
|
+
readonly title: string;
|
|
591
|
+
readonly summary?: string;
|
|
592
|
+
readonly description?: string;
|
|
593
|
+
readonly status?: KanbanIssue['status'];
|
|
594
|
+
readonly priority?: KanbanIssue['priority'];
|
|
595
|
+
readonly labelIds?: readonly string[];
|
|
596
|
+
readonly assigneeIds?: readonly string[];
|
|
597
|
+
readonly acceptanceCriteria?: readonly string[];
|
|
598
|
+
readonly decomposition?: readonly Pick<KanbanIssue['decomposition'][number], 'title' | 'kind' | 'status'>[];
|
|
599
|
+
readonly source?: KanbanIssue['source'];
|
|
600
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
601
|
+
}
|
|
602
|
+
export interface KanbanIssueCreateResult {
|
|
603
|
+
readonly overview: KanbanBacklogOverview;
|
|
604
|
+
readonly issue: KanbanIssue;
|
|
605
|
+
}
|
|
606
|
+
export interface KanbanIssueMoveInput {
|
|
607
|
+
readonly issueId: string;
|
|
608
|
+
readonly toState: KanbanWorkflowState;
|
|
609
|
+
}
|
|
610
|
+
export interface KanbanIssueUpdateInput {
|
|
611
|
+
readonly issueId: string;
|
|
612
|
+
readonly expectedUpdatedAt?: string;
|
|
613
|
+
readonly description?: string;
|
|
614
|
+
readonly priority?: KanbanIssue['priority'];
|
|
615
|
+
readonly assigneeIds?: readonly string[];
|
|
616
|
+
readonly labelIds?: readonly string[];
|
|
617
|
+
}
|
|
618
|
+
export interface KanbanIssueWorkspaceRef {
|
|
619
|
+
readonly path: string;
|
|
620
|
+
readonly name: string;
|
|
621
|
+
readonly branchName: string;
|
|
622
|
+
}
|
|
623
|
+
export interface KanbanIssueWorkspaceCreateResult {
|
|
624
|
+
readonly workspace: KanbanIssueWorkspaceRef;
|
|
625
|
+
readonly overview: KanbanBacklogOverview;
|
|
626
|
+
}
|
|
627
|
+
export interface KanbanIssueWorkspaceLinkInput {
|
|
628
|
+
readonly issueId: string;
|
|
629
|
+
readonly workspacePath: string;
|
|
630
|
+
readonly workspaceName?: string;
|
|
631
|
+
readonly branchName?: string;
|
|
632
|
+
readonly source: 'created-from-issue' | 'linked-existing-workspace';
|
|
633
|
+
}
|
|
634
|
+
export type KanbanWorkspaceStatus = 'active' | 'idle' | 'archived' | 'missing';
|
|
635
|
+
export type KanbanWorkspaceAction = 'pin' | 'unpin' | 'archive' | 'cleanup' | 'recover' | 'notes-save' | 'rebase-start' | 'rebase-auto-resolve' | 'rebase-open-in-editor' | 'rebase-mark-resolved' | 'rebase-abort';
|
|
636
|
+
export interface KanbanWorkspaceSessionSummary {
|
|
637
|
+
readonly sessionId: string;
|
|
638
|
+
readonly agent: string;
|
|
639
|
+
readonly status: 'active' | 'inactive';
|
|
640
|
+
readonly cwd?: string;
|
|
641
|
+
readonly title?: string;
|
|
642
|
+
readonly updatedAt?: number;
|
|
643
|
+
readonly activeRunId?: string | null;
|
|
644
|
+
readonly latestRunId?: string | null;
|
|
645
|
+
readonly runtime?: WorkspaceRuntimeSurface;
|
|
646
|
+
}
|
|
647
|
+
export interface KanbanWorkspaceIssueSummary {
|
|
648
|
+
readonly issueId: string;
|
|
649
|
+
readonly issueKey: string;
|
|
650
|
+
readonly issueTitle: string;
|
|
651
|
+
readonly projectId: string;
|
|
652
|
+
readonly projectKey: string;
|
|
653
|
+
readonly projectName: string;
|
|
654
|
+
readonly linkedAt: string;
|
|
655
|
+
readonly source: 'created-from-issue' | 'linked-existing-workspace';
|
|
656
|
+
}
|
|
657
|
+
export interface KanbanWorkspaceOwnershipProjectSummary {
|
|
658
|
+
readonly projectId: string;
|
|
659
|
+
readonly projectKey: string;
|
|
660
|
+
readonly projectName: string;
|
|
661
|
+
}
|
|
662
|
+
export interface KanbanWorkspaceOwnershipIssueSummary {
|
|
663
|
+
readonly issueId: string;
|
|
664
|
+
readonly issueKey: string;
|
|
665
|
+
readonly issueTitle: string;
|
|
666
|
+
}
|
|
667
|
+
export interface KanbanWorkspaceOwnershipHostSummary {
|
|
668
|
+
readonly provider: KanbanIntegrationProvider;
|
|
669
|
+
readonly label: string;
|
|
670
|
+
readonly accountLabel?: string;
|
|
671
|
+
}
|
|
672
|
+
export interface KanbanWorkspaceOwnershipSummary {
|
|
673
|
+
readonly source: 'created-from-issue' | 'linked-existing-workspace' | 'created-from-project' | 'created-from-host';
|
|
674
|
+
readonly project?: KanbanWorkspaceOwnershipProjectSummary;
|
|
675
|
+
readonly issue?: KanbanWorkspaceOwnershipIssueSummary;
|
|
676
|
+
readonly host?: KanbanWorkspaceOwnershipHostSummary;
|
|
677
|
+
}
|
|
678
|
+
export interface KanbanWorkspaceRunSummary {
|
|
679
|
+
readonly runId: string;
|
|
680
|
+
readonly status: string;
|
|
681
|
+
readonly projectName?: string;
|
|
682
|
+
}
|
|
683
|
+
export interface KanbanWorkspaceGitSummary {
|
|
684
|
+
readonly root: string | null;
|
|
685
|
+
readonly commonDir: string | null;
|
|
686
|
+
readonly trackingBranch: string | null;
|
|
687
|
+
readonly branch: string | null;
|
|
688
|
+
readonly head: string | null;
|
|
689
|
+
readonly ahead: number | null;
|
|
690
|
+
readonly behind: number | null;
|
|
691
|
+
readonly dirty: boolean | null;
|
|
692
|
+
readonly uncommittedCount: number | null;
|
|
693
|
+
readonly isWorktree: boolean;
|
|
694
|
+
readonly isPrimary: boolean;
|
|
695
|
+
}
|
|
696
|
+
export interface KanbanWorkspaceNotesSummary {
|
|
697
|
+
readonly value: string;
|
|
698
|
+
readonly updatedAt: string | null;
|
|
699
|
+
}
|
|
700
|
+
export interface KanbanWorkspaceLinks {
|
|
701
|
+
readonly editorHref: string | null;
|
|
702
|
+
}
|
|
703
|
+
export interface KanbanWorkspaceSessionCollection {
|
|
704
|
+
readonly total: number;
|
|
705
|
+
readonly active: number;
|
|
706
|
+
readonly items: readonly KanbanWorkspaceSessionSummary[];
|
|
707
|
+
}
|
|
708
|
+
export interface KanbanWorkspaceRunCollection {
|
|
709
|
+
readonly total: number;
|
|
710
|
+
readonly active: number;
|
|
711
|
+
readonly items: readonly KanbanWorkspaceRunSummary[];
|
|
712
|
+
}
|
|
713
|
+
export interface KanbanWorkspaceActionAvailability {
|
|
714
|
+
readonly canPin?: boolean;
|
|
715
|
+
readonly canUnpin?: boolean;
|
|
716
|
+
readonly canArchive: boolean;
|
|
717
|
+
readonly canCleanup: boolean;
|
|
718
|
+
readonly canRecover: boolean;
|
|
719
|
+
readonly canRebaseStart: boolean;
|
|
720
|
+
readonly canRebaseAutoResolve: boolean;
|
|
721
|
+
readonly canRebaseOpenInEditor: boolean;
|
|
722
|
+
readonly canRebaseMarkResolved: boolean;
|
|
723
|
+
readonly canRebaseAbort: boolean;
|
|
724
|
+
}
|
|
725
|
+
export interface KanbanWorkspaceSummary {
|
|
726
|
+
readonly path: string;
|
|
727
|
+
readonly name: string;
|
|
728
|
+
readonly status: KanbanWorkspaceStatus;
|
|
729
|
+
readonly pinnedAt?: string | null;
|
|
730
|
+
readonly missing: boolean;
|
|
731
|
+
readonly archivedAt: string | null;
|
|
732
|
+
readonly cleanedAt: string | null;
|
|
733
|
+
readonly lastActivityAt: string | null;
|
|
734
|
+
readonly git: KanbanWorkspaceGitSummary;
|
|
735
|
+
readonly notes: KanbanWorkspaceNotesSummary;
|
|
736
|
+
readonly links: KanbanWorkspaceLinks;
|
|
737
|
+
readonly sessions: KanbanWorkspaceSessionCollection;
|
|
738
|
+
readonly runs: KanbanWorkspaceRunCollection;
|
|
739
|
+
readonly rebase?: WorkspaceRebaseSurface;
|
|
740
|
+
readonly actions: KanbanWorkspaceActionAvailability;
|
|
741
|
+
readonly review?: KanbanReviewSummary;
|
|
742
|
+
readonly issues?: readonly KanbanWorkspaceIssueSummary[];
|
|
743
|
+
readonly ownership?: KanbanWorkspaceOwnershipSummary;
|
|
744
|
+
}
|
|
745
|
+
export interface KanbanWorkspaceInventory {
|
|
746
|
+
readonly workspaces: readonly KanbanWorkspaceSummary[];
|
|
747
|
+
readonly summary: {
|
|
748
|
+
readonly total: number;
|
|
749
|
+
readonly active: number;
|
|
750
|
+
readonly idle: number;
|
|
751
|
+
readonly archived: number;
|
|
752
|
+
readonly missing: number;
|
|
753
|
+
};
|
|
754
|
+
}
|
|
755
|
+
export interface KanbanWorkspaceActionResult {
|
|
756
|
+
readonly ok: boolean;
|
|
757
|
+
readonly workspacePath: string;
|
|
758
|
+
readonly action: KanbanWorkspaceAction;
|
|
759
|
+
readonly message: string;
|
|
760
|
+
}
|
|
761
|
+
export interface KanbanWorkspaceActionResponse {
|
|
762
|
+
readonly result: KanbanWorkspaceActionResult;
|
|
763
|
+
readonly inventory: KanbanWorkspaceInventory;
|
|
764
|
+
}
|
|
765
|
+
export interface KanbanWorkspaceInventoryQuery {
|
|
766
|
+
readonly sessions?: readonly KanbanWorkspaceSessionSummary[];
|
|
767
|
+
}
|
|
768
|
+
export interface KanbanWorkspaceActionInput {
|
|
769
|
+
readonly action: KanbanWorkspaceAction;
|
|
770
|
+
readonly workspacePath: string;
|
|
771
|
+
readonly note?: string;
|
|
772
|
+
readonly sessions?: readonly KanbanWorkspaceSessionSummary[];
|
|
773
|
+
}
|
|
774
|
+
export declare function normalizeKanbanTaskTagKey(value: string): string;
|
|
775
|
+
export declare function normalizeKanbanDispatchContextLabelKey(value: string): string;
|
|
776
|
+
export declare function normalizeKanbanDispatchContextLabel(label: Omit<KanbanDispatchContextLabelDefinition, 'key' | 'instruction' | 'order'> & {
|
|
777
|
+
readonly key?: string;
|
|
778
|
+
readonly instruction: string;
|
|
779
|
+
readonly order?: number;
|
|
780
|
+
}): KanbanDispatchContextLabelDefinition;
|
|
781
|
+
export declare function normalizeKanbanDispatchContextLabels(labels: readonly (Omit<KanbanDispatchContextLabelDefinition, 'key' | 'instruction' | 'order'> & {
|
|
782
|
+
readonly key?: string;
|
|
783
|
+
readonly instruction: string;
|
|
784
|
+
readonly order?: number;
|
|
785
|
+
})[]): KanbanDispatchContextLabelDefinition[];
|
|
786
|
+
export declare function normalizeKanbanDispatchContextLabelRefs(refs: readonly (KanbanDispatchContextLabelRef | {
|
|
787
|
+
readonly labelId?: string;
|
|
788
|
+
})[]): KanbanDispatchContextLabelRef[];
|
|
789
|
+
export declare function projectDispatchContextLabels(definitions: readonly KanbanDispatchContextLabelDefinition[], refs: readonly KanbanDispatchContextLabelRef[]): KanbanDispatchContextLabelProjection[];
|
|
790
|
+
export declare function renderDispatchContextLabels(definitions: readonly KanbanDispatchContextLabelDefinition[], refs: readonly KanbanDispatchContextLabelRef[]): string;
|
|
791
|
+
export declare function renderKanbanExecutionContextBlock(input: {
|
|
792
|
+
readonly projectId: string;
|
|
793
|
+
readonly projectKey?: string;
|
|
794
|
+
readonly projectName?: string;
|
|
795
|
+
readonly issueId: string;
|
|
796
|
+
readonly issueKey: string;
|
|
797
|
+
readonly issueTitle: string;
|
|
798
|
+
readonly runIds?: readonly string[];
|
|
799
|
+
readonly sessionIds?: readonly string[];
|
|
800
|
+
readonly labelIds?: readonly string[];
|
|
801
|
+
readonly labels?: readonly KanbanDispatchContextLabelProjection[];
|
|
802
|
+
readonly renderedContext?: string;
|
|
803
|
+
readonly lastDispatchedAt?: string;
|
|
804
|
+
}): string;
|
|
805
|
+
export declare function buildKanbanExecutionContextEnvelope(input: {
|
|
806
|
+
readonly issue: Pick<KanbanIssue, 'id' | 'key' | 'title' | 'projectId' | 'dispatch'>;
|
|
807
|
+
readonly project?: Pick<KanbanProject, 'id' | 'key' | 'name'>;
|
|
808
|
+
}): KanbanExecutionContextEnvelope | undefined;
|
|
809
|
+
export declare function buildDispatchContextExecutionEnvelope(definitions: readonly KanbanDispatchContextLabelDefinition[], refs: readonly KanbanDispatchContextLabelRef[]): KanbanDispatchContextExecutionEnvelope | undefined;
|
|
810
|
+
export declare function findKanbanExecutionContextEnvelopesForRun(snapshot: Pick<KanbanBacklogSnapshot, 'projects' | 'issues'>, runId: string): KanbanExecutionContextEnvelope[];
|
|
811
|
+
export declare function findKanbanExecutionContextEnvelopesForSession(snapshot: Pick<KanbanBacklogSnapshot, 'projects' | 'issues'>, sessionId: string): KanbanExecutionContextEnvelope[];
|
|
812
|
+
export declare function normalizeKanbanTaskTag(taskTag: Omit<KanbanTaskTag, 'key' | 'content' | 'order' | 'scope'> & {
|
|
813
|
+
readonly key?: string;
|
|
814
|
+
readonly content: string;
|
|
815
|
+
readonly order?: number;
|
|
816
|
+
readonly scope?: Partial<KanbanTaskTagScope>;
|
|
817
|
+
}): KanbanTaskTag;
|
|
818
|
+
export declare function normalizeKanbanTaskTags(taskTags: readonly (Omit<KanbanTaskTag, 'key' | 'content' | 'order' | 'scope'> & {
|
|
819
|
+
readonly key?: string;
|
|
820
|
+
readonly content: string;
|
|
821
|
+
readonly order?: number;
|
|
822
|
+
readonly scope?: Partial<KanbanTaskTagScope>;
|
|
823
|
+
})[]): KanbanTaskTag[];
|
|
824
|
+
export declare function summarizeKanbanReviewArtifact(artifact: Pick<KanbanReviewArtifact, 'decision' | 'queueState' | 'comments' | 'updatedAt'>): KanbanReviewSummary;
|
|
825
|
+
export declare function normalizeKanbanIssue(issue: Omit<KanbanIssue, 'dispatch' | 'collaborators' | 'activity'> & {
|
|
826
|
+
readonly collaborators?: readonly KanbanCollaborator[];
|
|
827
|
+
readonly activity?: readonly KanbanActivityEntry[];
|
|
828
|
+
readonly dispatch?: Partial<KanbanIssueDispatchState>;
|
|
829
|
+
}, issuesById: ReadonlyMap<string, KanbanIssue>, repositoryMap?: ReadonlyMap<string, KanbanRepositoryContext>, dispatchContextLabels?: readonly KanbanDispatchContextLabelDefinition[]): KanbanIssue;
|
|
830
|
+
export declare function resolveKanbanWorkflowState(issue: Pick<KanbanIssue, 'status'>): KanbanWorkflowState;
|
|
831
|
+
export declare function resolveKanbanSwimlane(issue: Pick<KanbanIssue, 'priority' | 'status' | 'dispatch'>): KanbanSwimlaneId;
|
|
832
|
+
export declare function resolveKanbanStatusForWorkflowState(issue: Pick<KanbanIssue, 'status' | 'dispatch'>, state: KanbanWorkflowState): KanbanIssueStatus;
|
|
833
|
+
export declare function evaluateKanbanIssueMove(input: {
|
|
834
|
+
readonly project: KanbanProject;
|
|
835
|
+
readonly issues: readonly KanbanIssue[];
|
|
836
|
+
readonly issueId: string;
|
|
837
|
+
readonly toState: KanbanWorkflowState;
|
|
838
|
+
}): KanbanIssueMoveEvaluation;
|
|
839
|
+
export declare function computeKanbanProjectMetrics(issues: readonly KanbanIssue[]): KanbanProjectMetrics;
|
|
840
|
+
export declare function buildKanbanBacklogSnapshot(input: {
|
|
841
|
+
readonly generatedAt?: string;
|
|
842
|
+
readonly projects: readonly (Omit<KanbanProject, 'metrics' | 'team' | 'settings' | 'permissions' | 'activity' | 'integrations'> & {
|
|
843
|
+
readonly team?: Partial<KanbanTeam>;
|
|
844
|
+
readonly settings?: Partial<KanbanProjectSettings>;
|
|
845
|
+
readonly permissions?: readonly KanbanPermissionGrant[];
|
|
846
|
+
readonly activity?: readonly KanbanActivityEntry[];
|
|
847
|
+
readonly repositories?: readonly KanbanRepositoryContext[];
|
|
848
|
+
readonly integrations?: readonly KanbanIntegrationConnection[];
|
|
849
|
+
})[];
|
|
850
|
+
readonly issues: readonly (Omit<KanbanIssue, 'dispatch' | 'collaborators' | 'activity'> & {
|
|
851
|
+
readonly collaborators?: readonly KanbanCollaborator[];
|
|
852
|
+
readonly activity?: readonly KanbanActivityEntry[];
|
|
853
|
+
readonly dispatch?: Partial<KanbanIssueDispatchState>;
|
|
854
|
+
})[];
|
|
855
|
+
readonly dispatchContextLabels?: readonly (Omit<KanbanDispatchContextLabelDefinition, 'key' | 'instruction' | 'order'> & {
|
|
856
|
+
readonly key?: string;
|
|
857
|
+
readonly instruction: string;
|
|
858
|
+
readonly order?: number;
|
|
859
|
+
})[];
|
|
860
|
+
}): KanbanBacklogSnapshot;
|
|
861
|
+
export declare function buildKanbanProjectBoard(input: {
|
|
862
|
+
readonly generatedAt?: string;
|
|
863
|
+
readonly project: KanbanProject;
|
|
864
|
+
readonly issues: readonly KanbanIssue[];
|
|
865
|
+
}): KanbanProjectBoard;
|
|
866
|
+
export declare function buildKanbanBoardSnapshot(snapshot: KanbanBacklogSnapshot): KanbanBoardSnapshot;
|
|
867
|
+
export declare function upsertKanbanProjectRepository<TProject extends {
|
|
868
|
+
readonly repositories?: readonly KanbanRepositoryContext[];
|
|
869
|
+
}>(project: TProject, repository: KanbanRepositoryContext): TProject;
|
|
870
|
+
export declare function updateKanbanProjectRepositorySettings<TProject extends {
|
|
871
|
+
readonly repositories?: readonly KanbanRepositoryContext[];
|
|
872
|
+
}>(project: TProject, input: {
|
|
873
|
+
readonly repositoryId: string;
|
|
874
|
+
readonly settings: Partial<KanbanRepositorySettings>;
|
|
875
|
+
}): TProject;
|
|
876
|
+
export declare function linkKanbanIssueRepository<TIssue extends {
|
|
877
|
+
readonly repositoryLifecycle?: KanbanIssueRepositoryLifecycle;
|
|
878
|
+
}>(issue: TIssue, input: {
|
|
879
|
+
readonly repositoryId: string;
|
|
880
|
+
readonly branchName: string;
|
|
881
|
+
readonly integration?: KanbanRepositoryIntegrationState;
|
|
882
|
+
}): TIssue;
|
|
883
|
+
export declare function createKanbanIssuePullRequest<TIssue extends {
|
|
884
|
+
readonly repositoryLifecycle?: KanbanIssueRepositoryLifecycle;
|
|
885
|
+
}>(issue: TIssue, input: {
|
|
886
|
+
readonly title: string;
|
|
887
|
+
readonly number: number;
|
|
888
|
+
readonly now: string;
|
|
889
|
+
readonly baseBranch: string;
|
|
890
|
+
readonly branchName: string;
|
|
891
|
+
readonly reviewLinks?: readonly Omit<KanbanPullRequestReviewLink, 'id'>[];
|
|
892
|
+
readonly url?: string;
|
|
893
|
+
readonly linkState?: KanbanPullRequestLinkState;
|
|
894
|
+
}): TIssue;
|