@codetreker/daynight 0.13.1 → 0.17.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/api/client.d.ts +10 -6
- package/dist/api/client.js +77 -16
- package/dist/api/client.js.map +1 -1
- package/dist/api/parse.js +39 -8
- package/dist/api/parse.js.map +1 -1
- package/dist/api/types.d.ts +86 -5
- package/dist/commands/skill/refresh-installed.d.ts +1 -0
- package/dist/commands/skill/refresh-installed.js +17 -0
- package/dist/commands/skill/refresh-installed.js.map +1 -0
- package/dist/commands/skill/refresh.d.ts +4 -0
- package/dist/commands/skill/refresh.js +87 -0
- package/dist/commands/skill/refresh.js.map +1 -0
- package/dist/commands/skill/skills/using-daynight/SKILL.md +23 -16
- package/dist/commands/skill/skills/using-daynight/references/autopilot.md +69 -48
- package/dist/commands/skill/skills/using-daynight/references/create-task.md +25 -18
- package/dist/commands/skill/skills/using-daynight/references/goal.md +65 -22
- package/dist/commands/skill/skills/using-daynight/references/handbook.md +56 -39
- package/dist/commands/skill/skills/using-daynight/references/run-task.md +41 -34
- package/dist/commands/skill/targets.d.ts +1 -0
- package/dist/commands/skill/targets.js +17 -9
- package/dist/commands/skill/targets.js.map +1 -1
- package/dist/commands/task/command.js +18 -13
- package/dist/commands/task/command.js.map +1 -1
- package/dist/commands/task/definition.js +20 -21
- package/dist/commands/task/definition.js.map +1 -1
- package/dist/commands/task/rendering.js +3 -1
- package/dist/commands/task/rendering.js.map +1 -1
- package/dist/commands/update/definition.js +2 -2
- package/dist/commands/update/definition.js.map +1 -1
- package/dist/commands/update/updater.d.ts +2 -1
- package/dist/commands/update/updater.js +19 -4
- package/dist/commands/update/updater.js.map +1 -1
- package/dist/repository/git.d.ts +6 -3
- package/dist/repository/git.js +6 -4
- package/dist/repository/git.js.map +1 -1
- package/package.json +2 -2
|
@@ -13,15 +13,12 @@ needed to use them correctly.
|
|
|
13
13
|
| `project create` | Register a repository as a project or find its existing project. |
|
|
14
14
|
| `project list` | Find projects on the configured service. |
|
|
15
15
|
| `project show` | Inspect a project's details. |
|
|
16
|
-
| `task create` | Register a
|
|
17
|
-
| `task ready` | Read a bounded candidate page of
|
|
16
|
+
| `task create` | Register a todo task with its metadata and dependencies. |
|
|
17
|
+
| `task ready` | Read a bounded candidate page of todo tasks with completed prerequisites. |
|
|
18
18
|
| `task list` | Read every matching page; defaults to unfinished tasks. |
|
|
19
19
|
| `task show` | Read one task's complete details and exact version. |
|
|
20
|
-
| `task update` | Change metadata, automatic-execution permission, dependencies, or PR references; status is not writable. |
|
|
21
|
-
| `task
|
|
22
|
-
| `task unapprove` | Withdraw approval of todo work, returning it to proposed using an observed version. |
|
|
23
|
-
| `task claim` | Change ready todo to in_progress using an observed version. |
|
|
24
|
-
| `task complete` | Change in_progress to done after acceptance and required authorized delivery. |
|
|
20
|
+
| `task update` | Change metadata, automatic-execution permission, platform requirements, dependencies, or PR references; status is not writable. |
|
|
21
|
+
| `task set-status` | Set todo, in_progress, or done using an observed exact version. |
|
|
25
22
|
| `task graph` | Inspect the project's dependency graph and summary. |
|
|
26
23
|
| `task attachment put` | Upload or replace one attachment file. |
|
|
27
24
|
| `task attachment list` | Read a task's attachment inventory and metadata. |
|
|
@@ -48,12 +45,11 @@ service. An explicit project overrides discovery for that invocation. Resolve
|
|
|
48
45
|
missing or ambiguous matches rather than guessing an ID or creating a project
|
|
49
46
|
to make a query succeed.
|
|
50
47
|
|
|
51
|
-
**Read scope.** Ready is a candidate page of
|
|
52
|
-
creation rather than relevance. An empty page does not rule out
|
|
53
|
-
in-progress or dependency-blocked work. List traverses every matching page but
|
|
48
|
+
**Read scope.** Ready is a candidate page of todo tasks, ordered by
|
|
49
|
+
creation rather than relevance. An empty page does not rule out in-progress or dependency-blocked work. List traverses every matching page but
|
|
54
50
|
excludes `done` by default; include completed tasks explicitly when checking the
|
|
55
51
|
full backlog or prior registrations. Its grouping is in-progress, ready todo,
|
|
56
|
-
blocked todo,
|
|
52
|
+
blocked todo, then done when included; this does not rank relevance.
|
|
57
53
|
Human lists are summaries; JSON lists omit only `description` and preserve every
|
|
58
54
|
other task field. Use show when a description is needed; ready, details and write
|
|
59
55
|
results retain full tasks. Graph provides compact dependency context without
|
|
@@ -61,49 +57,68 @@ full descriptions, PR properties, or versions. Read the selected task's details
|
|
|
61
57
|
before acting. A graph-limit error still permits bounded candidate and
|
|
62
58
|
individual task reads.
|
|
63
59
|
|
|
64
|
-
**
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
to
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
Cancel and Escape submit no action. Task approval itself grants no implementation,
|
|
82
|
-
publication, deployment or merge permission.
|
|
60
|
+
**Task status.** Creation starts in `todo` with no task approval stage and does
|
|
61
|
+
not start execution. `task set-status <task-id> <status> --if-version <version>`
|
|
62
|
+
sets any of `todo`, `in_progress`, or `done`. The service checks the exact version
|
|
63
|
+
before a same-status no-op; it preserves all fields for a current-version no-op
|
|
64
|
+
and refuses stale versions. A real change increments the version once. Generic
|
|
65
|
+
metadata updates cannot write status. Status, materials, and readiness grant no
|
|
66
|
+
implementation, publication, deployment, or merge permission.
|
|
67
|
+
|
|
68
|
+
Entering in_progress or done requires every direct prerequisite done. Reopening
|
|
69
|
+
done to todo or in_progress is refused when a direct successor is in_progress or
|
|
70
|
+
done; successors are never changed automatically. Entering in_progress starts a
|
|
71
|
+
new execution interval and clears completion; returning to todo clears both
|
|
72
|
+
endpoints. In_progress to done retains the nullable start and records completion.
|
|
73
|
+
Todo to done records only completion, with unknown duration. Same-status and
|
|
74
|
+
metadata updates preserve timing. State changes provide no process ownership,
|
|
75
|
+
release, transfer, stop, or lease semantics. The Web confirms every status choice,
|
|
76
|
+
including the current status; cancel and Escape submit no request.
|
|
83
77
|
|
|
84
78
|
**Automatic execution permission.** Tasks expose the required boolean
|
|
85
|
-
`allowAgents`, independent of status
|
|
79
|
+
`allowAgents`, independent of status and dependency readiness. New tasks
|
|
86
80
|
start false; public creation cannot set it. Existing tasks receive true through
|
|
87
81
|
the database migration. Use `task update <task-id> --allow-agents true|false --if-version <version>` only
|
|
88
82
|
for an explicitly authorized permission change.
|
|
89
83
|
Omission preserves the current value, including explicit false. Actual changes
|
|
90
84
|
are locked during in_progress; exact-version same-value requests keep the
|
|
91
|
-
version and timestamps, while stale versions still conflict.
|
|
92
|
-
claim, complete and other metadata updates preserve the flag.
|
|
85
|
+
version and timestamps, while stale versions still conflict. Status changes and other metadata updates preserve the flag.
|
|
93
86
|
|
|
94
87
|
`task list` and `task ready` accept `--allow-agents true|false`. The server
|
|
95
88
|
combines that condition with other filters before pagination and the ready limit;
|
|
96
89
|
an unfiltered ready page may contain tasks without automatic-execution permission.
|
|
97
90
|
Automatic selection requires true and automated workflows must not enable it
|
|
98
|
-
themselves. An explicitly user-selected task may still use manual
|
|
91
|
+
themselves. An explicitly user-selected task may still use manual execution regardless
|
|
99
92
|
of the flag. Permission does not grant execution, publication or merge authority.
|
|
100
93
|
A lost permission PATCH response is an unconfirmed write: read actual task state
|
|
101
94
|
before reconsidering the operation, without resubmitting automatically.
|
|
102
95
|
|
|
103
|
-
**
|
|
96
|
+
**Execution platform.** Complete tasks, inventory items and graph nodes expose
|
|
97
|
+
`requiredPlatform` as `null`, `windows`, `linux` or `macos`; null means unrestricted.
|
|
98
|
+
Set a requirement with `task create --required-platform <platform>` or
|
|
99
|
+
`task update <task-id> --required-platform <platform> --if-version <version>`.
|
|
100
|
+
Clear it with `task update <task-id> --clear-required-platform --if-version <version>`;
|
|
101
|
+
setting and clearing in one command is invalid. Omitting both update options
|
|
102
|
+
preserves the requirement. Existing and new tasks without a requirement are
|
|
103
|
+
unrestricted. Actual changes are locked during in_progress; an exact-version
|
|
104
|
+
same-value request keeps version and timestamps, while stale versions conflict.
|
|
105
|
+
Explicitly user-selected tasks and fixed queues retain their manual execution
|
|
106
|
+
path independently of platform compatibility. Automatic selections keep their
|
|
107
|
+
actual-platform context and recheck full-task eligibility before set-status.
|
|
108
|
+
|
|
109
|
+
`task list` and `task ready` accept `--compatible-platform <platform>`. The
|
|
110
|
+
server includes unrestricted tasks and exact matches, combining this condition
|
|
111
|
+
with status, readiness and `--allow-agents` before pagination or the ready limit.
|
|
112
|
+
Platform compatibility does not change readiness or enable automatic execution.
|
|
113
|
+
Preserve the filter when requesting additional candidate inventory; do not filter
|
|
114
|
+
a bounded unfiltered ready page locally. A query option selects a candidate
|
|
115
|
+
platform and does not establish the actual execution environment. Worker runtime
|
|
116
|
+
must identify its own platform; a Linux runtime in WSL is Linux.
|
|
117
|
+
|
|
118
|
+
**Task concurrency.** Bind each metadata update and status change to
|
|
104
119
|
the exact version read for that decision using `--if-version`; the CLI's default
|
|
105
120
|
pre-submit read cannot protect an earlier decision. Preserve full int64 decimal
|
|
106
|
-
digits without numeric rounding.
|
|
121
|
+
digits without numeric rounding. Entering in_progress is a versioned transition, not an
|
|
107
122
|
assignee lock, renewable lease or proof that existing work belongs to this
|
|
108
123
|
session. On a conflict, reread and reconsider; a new action needs a fresh
|
|
109
124
|
decision, not merely a newer version. Never retry a mutation automatically.
|
|
@@ -111,7 +126,7 @@ decision, not merely a newer version. Never retry a mutation automatically.
|
|
|
111
126
|
**Dependency classification.** `dependsOn` contains every direct prerequisite;
|
|
112
127
|
`externalDependsOn` is its explicit external subset. Ordinary prerequisites are
|
|
113
128
|
`dependsOn` minus that subset. Both are canonical, duplicate-free UUID sets,
|
|
114
|
-
not insertion order. Every prerequisite must be done before
|
|
129
|
+
not insertion order. Every prerequisite must be done before entering in_progress or done,
|
|
115
130
|
including external ones; cycle checks and project access rules use all edges.
|
|
116
131
|
External means cross-chain within the same project, not a cross-project
|
|
117
132
|
reference. It separates chain ownership, not blocking or authorization. Use
|
|
@@ -174,5 +189,7 @@ resource IDs rather than reporting success or blindly resending a write.
|
|
|
174
189
|
Task registration, execution, and selection follow [create-task](create-task.md),
|
|
175
190
|
[run-task](run-task.md), and [autopilot](autopilot.md), respectively. For a chain
|
|
176
191
|
of independently tracked delivery stages, use [the Goal protocol](goal.md).
|
|
177
|
-
|
|
178
|
-
|
|
192
|
+
Every stage and delivery task follows the same todo/in_progress/done contract.
|
|
193
|
+
A fixed Goal queue may use existing scoped execution authorization for its ready
|
|
194
|
+
successors; registration and discussion confirmation grant no delivery execution
|
|
195
|
+
permission.
|
|
@@ -25,48 +25,56 @@ its role from the actual task content and context. Apply that stage's input and
|
|
|
25
25
|
output requirements. Requirements and solution discussions start from their stage briefs;
|
|
26
26
|
the completed requirements, applicable UI prototype, and architecture are outputs
|
|
27
27
|
of the stages that produce them. Delivery tasks require the delivered design and
|
|
28
|
-
applicable prototype.
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
28
|
+
applicable prototype. Before implementation, read every required architecture
|
|
29
|
+
document listed in the delivery task's description using its architecture task ID
|
|
30
|
+
and full attachment paths or verified immutable repository references. This also
|
|
31
|
+
applies when the architecture task is only an indirect prerequisite. Confirm the
|
|
32
|
+
description's references satisfy the Goal protocol. When a prototype is a required
|
|
33
|
+
input, view and exercise it with its resources. An unfinished output of the current
|
|
34
|
+
stage is not a missing input.
|
|
35
|
+
|
|
36
|
+
An explicitly user-selected task may use the manual execution path regardless of
|
|
37
|
+
`allowAgents` or platform compatibility; a fixed queue explicitly selected by the
|
|
38
|
+
user has the same manual path. These conditions gate automatic selection, not
|
|
39
|
+
explicit assignment. Automated task selection requires true and must not enable
|
|
40
|
+
the flag itself. An automatically selected ID passed here remains automatic
|
|
41
|
+
selection, even though run-task receives a concrete ID. Carry its actual runtime
|
|
42
|
+
platform from autopilot and wait if unsupported or unknown. Immediately before
|
|
43
|
+
setting in_progress, reread the full task and recheck `todo`, ready,
|
|
44
|
+
`allowAgents=true`, and `requiredPlatform` either null or equal to that same actual
|
|
45
|
+
platform. A changed or incompatible requirement prevents starting and requires a
|
|
46
|
+
new selection decision; a changed execution environment requires fresh runtime
|
|
47
|
+
identification and candidate queries. Use the exact version from this full-task
|
|
48
|
+
recheck with `--if-version`; an earlier candidate page does not authorize the
|
|
49
|
+
manual exception after automatic eligibility changes.
|
|
35
50
|
|
|
36
51
|
Check state, every direct prerequisite, authorized scope, and required stage
|
|
37
52
|
inputs. Read `dependsOn` and its `externalDependsOn` subset: ordinary edges
|
|
38
53
|
express same-chain prerequisites, external marks distinguish verified cross-chain
|
|
39
|
-
ownership. Both kinds must be done
|
|
40
|
-
never grants permission to execute a prerequisite,
|
|
54
|
+
ownership. Both kinds must be done before entering in_progress or done. Classification
|
|
55
|
+
never grants permission to execute a prerequisite, enable automatic
|
|
41
56
|
execution, or remove a blocker.
|
|
42
57
|
A missing or unreadable primary Markdown, missing Solution or Acceptance criteria,
|
|
43
|
-
or
|
|
44
|
-
existing authorization or return the concrete issue.
|
|
45
|
-
from a title, silently invent acceptance criteria, or
|
|
46
|
-
the description. Do not execute prerequisites as an
|
|
47
|
-
requested task.
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
`task approve` with that exact observed version, then confirm the resulting todo
|
|
56
|
-
state. The user can also approve directly through the CLI or Web. Approval does
|
|
57
|
-
not expand implementation or delivery authorization.
|
|
58
|
-
|
|
59
|
-
If approval is withdrawn before claim, the task is proposed again and waits for
|
|
60
|
-
new explicit approval. Do not infer approval from its earlier todo state or
|
|
61
|
-
retry a failed claim with a newer version.
|
|
58
|
+
or missing or unreadable required architecture reference or input leaves execution
|
|
59
|
+
unready. Resolve it within the existing authorization or return the concrete issue.
|
|
60
|
+
Do not infer requirements from a title, silently invent acceptance criteria, or
|
|
61
|
+
move detailed plans into the description. Do not execute prerequisites as an
|
|
62
|
+
implicit expansion of the requested task.
|
|
63
|
+
|
|
64
|
+
Creation leaves a task `todo` and does not execute it. An explicit request to
|
|
65
|
+
start the current Goal discussion, or the user-directed transition that starts
|
|
66
|
+
solution discussion, authorizes entering in_progress for that discussion under
|
|
67
|
+
the Goal protocol; registration alone does not. Existing execution authorization
|
|
68
|
+
may cover the stated task or fixed Goal queue and its ready successors. Task
|
|
69
|
+
status never expands implementation or delivery authorization.
|
|
62
70
|
|
|
63
71
|
For ready `todo`, begin only when dependencies are done, required stage inputs are complete
|
|
64
|
-
and the work is authorized. Use `task
|
|
72
|
+
and the work is authorized. Use `task set-status <task-id> in_progress` with the exact version observed for
|
|
65
73
|
that decision and confirm in_progress before starting. A stale version or
|
|
66
74
|
changed prerequisite requires rereading and reconsidering, with no automatic
|
|
67
|
-
|
|
75
|
+
mutation retry. For `in_progress`, recover existing work and coordinate using the
|
|
68
76
|
project's established mechanisms; the state is not an assignee lock or lease.
|
|
69
|
-
A task already `done` is reported as such
|
|
77
|
+
A task already `done` is reported as such unless reopening is within the explicit requested scope; use the same versioned status setter and dependency protection.
|
|
70
78
|
Preserve the requested task ID through recovery and waiting.
|
|
71
79
|
|
|
72
80
|
## Execute and maintain continuity
|
|
@@ -132,7 +140,7 @@ pending and successors blocked.
|
|
|
132
140
|
|
|
133
141
|
For tasks without a development or PR delivery path, use their stated stage
|
|
134
142
|
acceptance. In every case, confirm required evidence is recorded and readable,
|
|
135
|
-
then reread the complete in-progress task and use `task
|
|
143
|
+
then reread the complete in-progress task and use `task set-status <task-id> done` with its exact
|
|
136
144
|
observed version. For Goal discussions, use their confirmation gates and verified
|
|
137
145
|
accepted materials; for delivery tasks, use their acceptance and required authorized PR
|
|
138
146
|
merges.
|
|
@@ -144,8 +152,7 @@ actual verified breakdown are delivered. Neither establishes whole-Goal completi
|
|
|
144
152
|
Continue ordinary CI and review waits as this task. When progress requires
|
|
145
153
|
external intervention, preserve the target, actual state, concrete blocker,
|
|
146
154
|
existing work, and next action in the checkpoint, then return the waiting result.
|
|
147
|
-
|
|
148
|
-
work stays `in_progress`. Do not declare
|
|
155
|
+
Unstarted work stays `todo`; active work stays `in_progress`. Do not declare
|
|
149
156
|
completion or select other work to bypass a wait. After completion, return
|
|
150
157
|
without selecting a successor, except for an explicit user-directed discussion
|
|
151
158
|
transition under the Goal protocol. That transition does not activate autopilot
|
|
@@ -8,4 +8,5 @@ export type SkillTarget = {
|
|
|
8
8
|
missingParents: readonly string[];
|
|
9
9
|
agents: SkillAgent[];
|
|
10
10
|
};
|
|
11
|
+
export declare const mergeSkillTargets: (candidates: readonly SkillTarget[]) => SkillTarget[];
|
|
11
12
|
export declare const planSkillTargets: (base: string, agents: readonly SkillAgent[]) => Promise<SkillTarget[]>;
|
|
@@ -5,17 +5,16 @@ const contains = (parent, child) => {
|
|
|
5
5
|
const relative = path.relative(comparisonPath(parent), comparisonPath(child));
|
|
6
6
|
return relative !== "" && relative !== ".." && !relative.startsWith(`..${path.sep}`) && !path.isAbsolute(relative);
|
|
7
7
|
};
|
|
8
|
-
export const
|
|
8
|
+
export const mergeSkillTargets = (candidates) => {
|
|
9
9
|
const targets = [];
|
|
10
|
-
for (const
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const existing = targets.find((target) => comparisonPath(target.path) === comparisonPath(targetPath));
|
|
15
|
-
if (existing !== undefined)
|
|
16
|
-
existing.agents.push(agent);
|
|
10
|
+
for (const candidate of candidates) {
|
|
11
|
+
const existing = targets.find((target) => comparisonPath(target.path) === comparisonPath(candidate.path));
|
|
12
|
+
if (existing === undefined)
|
|
13
|
+
targets.push({ ...candidate, agents: [...candidate.agents] });
|
|
17
14
|
else
|
|
18
|
-
|
|
15
|
+
for (const agent of candidate.agents)
|
|
16
|
+
if (!existing.agents.some(({ id }) => id === agent.id))
|
|
17
|
+
existing.agents.push(agent);
|
|
19
18
|
}
|
|
20
19
|
for (const [index, first] of targets.entries()) {
|
|
21
20
|
for (const second of targets.slice(index + 1)) {
|
|
@@ -33,4 +32,13 @@ export const planSkillTargets = async (base, agents) => {
|
|
|
33
32
|
}
|
|
34
33
|
return targets;
|
|
35
34
|
};
|
|
35
|
+
export const planSkillTargets = async (base, agents) => {
|
|
36
|
+
const targets = [];
|
|
37
|
+
for (const agent of agents) {
|
|
38
|
+
const parent = await resolvePhysicalDirectory(path.join(base, agent.directory, "skills"));
|
|
39
|
+
const physicalParent = path.join(parent.ancestorPath, ...parent.missingComponents);
|
|
40
|
+
targets.push({ path: path.join(physicalParent, "using-daynight"), legacyPath: path.join(physicalParent, "daynight"), parent: physicalParent, ancestor: parent.ancestorPath, missingParents: parent.missingComponents, agents: [agent] });
|
|
41
|
+
}
|
|
42
|
+
return mergeSkillTargets(targets);
|
|
43
|
+
};
|
|
36
44
|
//# sourceMappingURL=targets.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"targets.js","sourceRoot":"","sources":["../../../src/commands/skill/targets.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAaxE,MAAM,cAAc,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AAC7G,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAE,KAAa,EAAW,EAAE;IAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9E,OAAO,QAAQ,KAAK,EAAE,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACrH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"targets.js","sourceRoot":"","sources":["../../../src/commands/skill/targets.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ const defaultDependencies = {
|
|
|
6
6
|
runServerCommand: async (...args) => (await import("../server/runtime.js")).runServerCommand(...args),
|
|
7
7
|
resolveProject: async (...args) => (await import("../../repository/index.js")).resolveProject(...args),
|
|
8
8
|
};
|
|
9
|
-
const taskPriority = (task) => task.status === "in_progress" ? 0 : task.ready ? 1 : task.status === "todo" ? 2 :
|
|
9
|
+
const taskPriority = (task) => task.status === "in_progress" ? 0 : task.ready ? 1 : task.status === "todo" ? 2 : 3;
|
|
10
10
|
const compileDependencies = async (ordinary, external, clear, help) => {
|
|
11
11
|
if (clear && (ordinary !== undefined || external !== undefined))
|
|
12
12
|
throw new UsageError("--clear-dependencies conflicts with --depends-on and --external-depends-on.", help);
|
|
@@ -42,12 +42,18 @@ export const runTaskCommand = async (args, context, dependencies = defaultDepend
|
|
|
42
42
|
}
|
|
43
43
|
const help = `${command.path.join(" ")} --help`;
|
|
44
44
|
const name = command.command.name;
|
|
45
|
-
const
|
|
45
|
+
const setsStatus = name === "set-status";
|
|
46
46
|
const title = command.options.get("--title");
|
|
47
47
|
const description = command.options.get("--description");
|
|
48
48
|
const status = command.options.get("--status");
|
|
49
49
|
const allowAgentsArgument = command.options.get("--allow-agents");
|
|
50
50
|
const allowAgents = allowAgentsArgument === undefined ? undefined : allowAgentsArgument === "true";
|
|
51
|
+
const requiredPlatform = command.options.get("--required-platform");
|
|
52
|
+
const clearRequiredPlatform = command.options.has("--clear-required-platform");
|
|
53
|
+
if (clearRequiredPlatform && requiredPlatform !== undefined)
|
|
54
|
+
throw new UsageError("--clear-required-platform conflicts with --required-platform.", help);
|
|
55
|
+
const platformFields = clearRequiredPlatform ? { requiredPlatform: null } : requiredPlatform === undefined ? {} : { requiredPlatform };
|
|
56
|
+
const compatiblePlatform = command.options.get("--compatible-platform");
|
|
51
57
|
const all = command.options.has("--all");
|
|
52
58
|
if (all && status !== undefined)
|
|
53
59
|
throw new UsageError("--all conflicts with --status.", help);
|
|
@@ -73,24 +79,25 @@ export const runTaskCommand = async (args, context, dependencies = defaultDepend
|
|
|
73
79
|
const dependencyFields = await compileDependencies(dependsOn, externalDependsOn, clearDependencies, help);
|
|
74
80
|
const changes = {
|
|
75
81
|
...(allowAgents === undefined ? {} : { allowAgents }),
|
|
82
|
+
...platformFields,
|
|
76
83
|
...(title === undefined ? {} : { title }),
|
|
77
84
|
...(description === undefined ? {} : { description }),
|
|
78
85
|
...dependencyFields,
|
|
79
86
|
...(properties === undefined ? {} : { properties }),
|
|
80
87
|
};
|
|
81
88
|
if (name === "update" && Object.keys(changes).length === 0)
|
|
82
|
-
throw new UsageError("Task update requires a title, description, automatic-execution permission, dependency, or PR reference change.", help);
|
|
89
|
+
throw new UsageError("Task update requires a title, description, automatic-execution permission, platform requirement, dependency, or PR reference change.", help);
|
|
83
90
|
const rawProjectId = command.options.get("--project");
|
|
84
91
|
let projectId;
|
|
85
92
|
let taskId;
|
|
86
|
-
if (rawProjectId !== undefined || name === "show" || name === "update" ||
|
|
93
|
+
if (rawProjectId !== undefined || name === "show" || name === "update" || setsStatus) {
|
|
87
94
|
const { canonicalId } = await import("../../api/parse.js");
|
|
88
95
|
if (rawProjectId !== undefined) {
|
|
89
96
|
projectId = canonicalId(rawProjectId) ?? undefined;
|
|
90
97
|
if (projectId === undefined)
|
|
91
98
|
throw new UsageError("project-id must be a hyphenated UUID.", help);
|
|
92
99
|
}
|
|
93
|
-
if (name === "show" || name === "update" ||
|
|
100
|
+
if (name === "show" || name === "update" || setsStatus) {
|
|
94
101
|
taskId = canonicalId(command.values[0]) ?? undefined;
|
|
95
102
|
if (taskId === undefined)
|
|
96
103
|
throw new UsageError("task-id must be a hyphenated UUID.", help);
|
|
@@ -120,13 +127,13 @@ export const runTaskCommand = async (args, context, dependencies = defaultDepend
|
|
|
120
127
|
const { renderTask, renderTaskGraph, renderTaskJson, renderTaskList, renderTaskListJson, renderTaskSummaryList } = await import("./rendering.js");
|
|
121
128
|
operation.check();
|
|
122
129
|
if (command.command.name === "create") {
|
|
123
|
-
const input = { title: title, ...(description === undefined ? {} : { description }), ...dependencyFields, ...(properties === undefined ? {} : { properties }) };
|
|
130
|
+
const input = { title: title, ...(description === undefined ? {} : { description }), ...platformFields, ...dependencyFields, ...(properties === undefined ? {} : { properties }) };
|
|
124
131
|
const task = await api.createTask(project.id, input);
|
|
125
132
|
operation.check();
|
|
126
133
|
return `Task created.\n${renderTask(task)}`;
|
|
127
134
|
}
|
|
128
135
|
if (command.command.name === "list") {
|
|
129
|
-
const filters = { ...(status === undefined ? {} : { status }), ...(command.options.has("--ready") ? { ready: true } : {}), ...(allowAgents === undefined ? {} : { allowAgents }) };
|
|
136
|
+
const filters = { ...(status === undefined ? {} : { status }), ...(command.options.has("--ready") ? { ready: true } : {}), ...(allowAgents === undefined ? {} : { allowAgents }), ...(compatiblePlatform === undefined ? {} : { compatiblePlatform }) };
|
|
130
137
|
const tasks = (await api.listTasks(project.id, filters))
|
|
131
138
|
.filter((task) => all || status !== undefined || task.status !== "done")
|
|
132
139
|
.toSorted((left, right) => taskPriority(left) - taskPriority(right));
|
|
@@ -134,7 +141,7 @@ export const runTaskCommand = async (args, context, dependencies = defaultDepend
|
|
|
134
141
|
return command.options.has("--json") ? renderTaskListJson(tasks) : renderTaskSummaryList(tasks);
|
|
135
142
|
}
|
|
136
143
|
if (command.command.name === "ready") {
|
|
137
|
-
const tasks = await api.listReadyTasks(project.id, readyLimit, ...(allowAgents === undefined ?
|
|
144
|
+
const tasks = await api.listReadyTasks(project.id, readyLimit, { ...(allowAgents === undefined ? {} : { allowAgents }), ...(compatiblePlatform === undefined ? {} : { compatiblePlatform }) });
|
|
138
145
|
operation.check();
|
|
139
146
|
return command.options.has("--json") ? renderTaskJson(tasks) : tasks.length === 0 ? "No ready tasks.\n" : renderTaskList(tasks);
|
|
140
147
|
}
|
|
@@ -150,12 +157,10 @@ export const runTaskCommand = async (args, context, dependencies = defaultDepend
|
|
|
150
157
|
}
|
|
151
158
|
const version = expectedVersion === undefined ? (await api.getTask(project.id, taskId)).version : expectedVersion;
|
|
152
159
|
operation.check();
|
|
153
|
-
if (
|
|
154
|
-
const
|
|
155
|
-
const task = await mutate(project.id, taskId, { version });
|
|
160
|
+
if (setsStatus) {
|
|
161
|
+
const task = await api.setTaskStatus(project.id, taskId, { version, status: command.values[1] });
|
|
156
162
|
operation.check();
|
|
157
|
-
|
|
158
|
-
return `Task ${result}.\n${renderTask(task)}`;
|
|
163
|
+
return `Task status set.\n${renderTask(task)}`;
|
|
159
164
|
}
|
|
160
165
|
const task = await api.updateTask(project.id, taskId, { ...changes, version });
|
|
161
166
|
operation.check();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/commands/task/command.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/commands/task/command.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,8 +7,11 @@ const descriptionOption = { names: ["--description"], description: "Task descrip
|
|
|
7
7
|
const dependencyOption = { names: ["--depends-on"], description: "Ordinary prerequisite UUID; repeat for the complete ordinary set", value: { name: "task-id", kind: "text" }, repeatable: true };
|
|
8
8
|
const externalDependencyOption = { names: ["--external-depends-on"], description: "External prerequisite UUID; repeat for the complete external set", value: { name: "task-id", kind: "text" }, repeatable: true };
|
|
9
9
|
const dependencyDetails = "Supplying either dependency option replaces every dependency and its classification. --depends-on supplies ordinary prerequisites; --external-depends-on supplies external prerequisites. External-only input keeps only those external prerequisites; ordinary-only input makes every supplied prerequisite ordinary. IDs must be valid UUIDs and occur once across both options. Both kinds block execution until completed.";
|
|
10
|
-
const statusOption = { names: ["--status"], description: "Task status", value: { name: "status", kind: "text", choices: ["
|
|
10
|
+
const statusOption = { names: ["--status"], description: "Task status", value: { name: "status", kind: "text", choices: ["todo", "in_progress", "done"] } };
|
|
11
11
|
const allowAgentsOption = { names: ["--allow-agents"], description: "Automatic-execution permission", value: { name: "true|false", kind: "text", choices: ["true", "false"] } };
|
|
12
|
+
const platformChoices = ["windows", "linux", "macos"];
|
|
13
|
+
const requiredPlatformOption = { names: ["--required-platform"], description: "Required execution platform", value: { name: "platform", kind: "text", choices: platformChoices } };
|
|
14
|
+
const compatiblePlatformOption = { names: ["--compatible-platform"], description: "Include unrestricted tasks and tasks requiring this execution platform", value: { name: "platform", kind: "text", choices: platformChoices } };
|
|
12
15
|
const versionOption = { names: ["--if-version"], description: "Use this expected task version without reading a newer version", value: { name: "version", kind: "text" } };
|
|
13
16
|
const pullRequestOptions = [
|
|
14
17
|
{ names: ["--pull-request-url"], description: "PR URL text; repeat for the complete list", value: { name: "text", kind: "text", allowEmpty: true }, repeatable: true },
|
|
@@ -21,21 +24,21 @@ export const taskDefinition = {
|
|
|
21
24
|
commands: [
|
|
22
25
|
{
|
|
23
26
|
name: "create",
|
|
24
|
-
description: "Create a
|
|
25
|
-
options: [{ ...titleOption, required: true }, descriptionOption, dependencyOption, externalDependencyOption, ...pullRequestOptions, projectOption, helpOption],
|
|
26
|
-
details: `New tasks start in
|
|
27
|
+
description: "Create a todo task with optional dependencies and PR references",
|
|
28
|
+
options: [{ ...titleOption, required: true }, descriptionOption, requiredPlatformOption, dependencyOption, externalDependencyOption, ...pullRequestOptions, projectOption, helpOption],
|
|
29
|
+
details: `New tasks start in todo with automatic execution disabled. Creating a task does not start execution. Without --required-platform, execution has no platform restriction. Omitting both dependency options creates a task with no prerequisites.\n${dependencyDetails}\nPR URL and title counts must match; the nth URL pairs with the nth title. Empty values are accepted, and all text is stored as supplied.`,
|
|
27
30
|
},
|
|
28
31
|
{
|
|
29
32
|
name: "list",
|
|
30
33
|
description: "List unfinished tasks, with in-progress and ready tasks first",
|
|
31
|
-
options: [{ names: ["--all"], description: "Include completed tasks; conflicts with --status" }, statusOption, { names: ["--ready"], description: "Include only tasks ready to start" }, allowAgentsOption, projectOption, listJsonOption, helpOption],
|
|
32
|
-
details: "By default, exclude done tasks. Use --all for every status or --status for a specific status.\nCombine --ready
|
|
34
|
+
options: [{ names: ["--all"], description: "Include completed tasks; conflicts with --status" }, statusOption, { names: ["--ready"], description: "Include only tasks ready to start" }, allowAgentsOption, compatiblePlatformOption, projectOption, listJsonOption, helpOption],
|
|
35
|
+
details: "By default, exclude done tasks. Use --all for every status or --status for a specific status.\nCombine --ready, --allow-agents and --compatible-platform with the selected statuses using AND. Platform compatibility includes unrestricted tasks and exact matches, without changing readiness. All filters apply before pagination; read every page before printing.\nOrder in_progress first, then ready todo, blocked todo, and done tasks; preserve server order within each group.\nText lists omit description, version, and timestamps. --json omits description and preserves every other task field with the same filtering and ordering.",
|
|
33
36
|
},
|
|
34
37
|
{
|
|
35
38
|
name: "ready",
|
|
36
39
|
description: "Show the first ready tasks in the project",
|
|
37
|
-
options: [{ names: ["--limit"], description: "Maximum number of tasks to return, from 1 to 100 (default: 10)", value: { name: "count", kind: "text" } }, allowAgentsOption, projectOption, jsonOption, helpOption],
|
|
38
|
-
details: "Read one bounded page ordered by creation time, then task UUID, ascending. A task is ready when it is todo and every dependency is done. --allow-agents
|
|
40
|
+
options: [{ names: ["--limit"], description: "Maximum number of tasks to return, from 1 to 100 (default: 10)", value: { name: "count", kind: "text" } }, allowAgentsOption, compatiblePlatformOption, projectOption, jsonOption, helpOption],
|
|
41
|
+
details: "Read one bounded page ordered by creation time, then task UUID, ascending. A task is ready when it is todo and every dependency is done. --allow-agents and --compatible-platform combine with ready before the page limit and do not change readiness. Platform compatibility includes unrestricted tasks and exact matches.",
|
|
39
42
|
},
|
|
40
43
|
{
|
|
41
44
|
name: "show",
|
|
@@ -47,26 +50,22 @@ export const taskDefinition = {
|
|
|
47
50
|
name: "update",
|
|
48
51
|
description: "Atomically update task fields, dependencies, and PR references",
|
|
49
52
|
arguments: [taskArgument],
|
|
50
|
-
options: [titleOption, descriptionOption, allowAgentsOption,
|
|
53
|
+
options: [titleOption, descriptionOption, allowAgentsOption, requiredPlatformOption,
|
|
54
|
+
{ names: ["--clear-required-platform"], description: "Remove the execution-platform requirement" }, dependencyOption, externalDependencyOption,
|
|
51
55
|
{ names: ["--clear-dependencies"], description: "Clear the complete dependency set" },
|
|
52
56
|
...pullRequestOptions,
|
|
53
57
|
{ names: ["--clear-pull-requests"], description: "Clear the complete PR reference list" },
|
|
54
58
|
versionOption,
|
|
55
59
|
projectOption, helpOption],
|
|
56
|
-
details: `Provide at least one changed field. --allow-agents changes the automatic-execution permission independently of
|
|
60
|
+
details: `Provide at least one changed field. --allow-agents changes the automatic-execution permission independently of status. --required-platform sets the execution-platform requirement; --clear-required-platform removes it and conflicts with --required-platform. Omitting both platform options preserves the requirement. Actual permission or platform changes are locked during in_progress; exact-version same-value updates keep version and timestamps. Use daynight task set-status to change status.\n${dependencyDetails}\nOmitting both dependency options preserves all dependencies and classifications. --clear-dependencies clears both sets and conflicts with either dependency option.\nPR URL and title counts must match; the nth URL pairs with the nth title. Pairs replace the complete list; empty values are accepted. --clear-pull-requests conflicts with either PR option. Omitted PR options preserve the current list.\nWithout --if-version, read the current version before submitting the update. Conflicts are not retried.`,
|
|
57
61
|
},
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
{ name: "
|
|
62
|
-
{ name: "complete", description: "Complete an in_progress task, moving it to done", rule: "Every direct prerequisite must be done." },
|
|
63
|
-
].map(({ name, description, rule }) => ({
|
|
64
|
-
name,
|
|
65
|
-
description,
|
|
66
|
-
arguments: [taskArgument],
|
|
62
|
+
{
|
|
63
|
+
name: "set-status",
|
|
64
|
+
description: "Set a task to todo, in_progress, or done",
|
|
65
|
+
arguments: [taskArgument, { name: "status", description: "Target task status", choices: ["todo", "in_progress", "done"] }],
|
|
67
66
|
options: [versionOption, projectOption, helpOption],
|
|
68
|
-
details:
|
|
69
|
-
}
|
|
67
|
+
details: "Every direct prerequisite must be done when entering in_progress or done. Reopening done work is refused while a direct successor is in_progress or done.\nA current-version same-status request preserves all stored fields; a stale version still conflicts. Entering in_progress starts a new execution interval; returning to todo clears it; direct todo to done records an unknown duration.\nWithout --if-version, read the current version immediately before submitting. With --if-version, submit exactly that version without reading the task. Conflicts and mutations are not retried.",
|
|
68
|
+
},
|
|
70
69
|
{
|
|
71
70
|
name: "graph",
|
|
72
71
|
description: "Show the complete task graph and summary",
|