@codetreker/daynight 0.8.15 → 0.8.19
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 +1 -0
- package/dist/api/client.js +6 -2
- package/dist/api/client.js.map +1 -1
- package/dist/api/parse.js +8 -4
- package/dist/api/parse.js.map +1 -1
- package/dist/api/types.d.ts +4 -3
- package/dist/cli/commands.js +1 -0
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/context.d.ts +1 -0
- package/dist/cli/context.js +2 -0
- package/dist/cli/context.js.map +1 -1
- package/dist/cli/input.d.ts +4 -0
- package/dist/cli/input.js +40 -0
- package/dist/cli/input.js.map +1 -0
- package/dist/cli/prompts.d.ts +1 -0
- package/dist/cli/prompts.js +25 -0
- package/dist/cli/prompts.js.map +1 -1
- package/dist/commands/completion/bash.js +1 -1
- package/dist/commands/completion/bash.js.map +1 -1
- package/dist/commands/completion/zsh.js +1 -1
- package/dist/commands/completion/zsh.js.map +1 -1
- package/dist/commands/server/runtime.js +2 -2
- package/dist/commands/server/runtime.js.map +1 -1
- package/dist/commands/setup/command.js +8 -1
- package/dist/commands/setup/command.js.map +1 -1
- package/dist/commands/setup/definition.js +2 -1
- package/dist/commands/setup/definition.js.map +1 -1
- package/dist/commands/skill/skills/using-daynight/SKILL.md +24 -19
- package/dist/commands/skill/skills/using-daynight/references/autopilot.md +45 -33
- package/dist/commands/skill/skills/using-daynight/references/create-task.md +87 -80
- package/dist/commands/skill/skills/using-daynight/references/goal.md +148 -0
- package/dist/commands/skill/skills/using-daynight/references/handbook.md +18 -4
- package/dist/commands/skill/skills/using-daynight/references/run-task.md +71 -52
- package/dist/commands/task/command.js +1 -1
- package/dist/commands/task/command.js.map +1 -1
- package/dist/commands/task/definition.js +1 -1
- package/dist/commands/task/definition.js.map +1 -1
- package/dist/commands/task/rendering.js +1 -0
- package/dist/commands/task/rendering.js.map +1 -1
- package/dist/config/document.d.ts +1 -1
- package/dist/config/document.js +25 -10
- package/dist/config/document.js.map +1 -1
- package/dist/config/files.js +4 -1
- package/dist/config/files.js.map +1 -1
- package/dist/config/server-token.d.ts +3 -0
- package/dist/config/server-token.js +14 -0
- package/dist/config/server-token.js.map +1 -0
- package/dist/config/server.d.ts +1 -0
- package/dist/config/server.js +7 -1
- package/dist/config/server.js.map +1 -1
- package/dist/config/setup.d.ts +1 -0
- package/dist/config/setup.js +54 -5
- package/dist/config/setup.js.map +1 -1
- package/package.json +4 -3
|
@@ -5,76 +5,95 @@ Execute exactly one specified task ID within the user's authorized scope. Read
|
|
|
5
5
|
This mode owns execution and completion; it returns without choosing a successor
|
|
6
6
|
or activating autopilot.
|
|
7
7
|
|
|
8
|
-
## Establish the task
|
|
8
|
+
## Establish the task and stage
|
|
9
9
|
|
|
10
|
-
Read the complete task with `daynight task show <task-id> --json`.
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
Read the complete task with `daynight task show <task-id> --json`. Its description
|
|
11
|
+
must make the current actions, scope, deliverables, constraints, and observable
|
|
12
|
+
completion summary understandable. Read its own primary Markdown's Solution and
|
|
13
|
+
Acceptance criteria; equivalent headings in the task's language are valid.
|
|
14
|
+
Resolve real shared input references using the source task ID and attachment
|
|
15
|
+
path or a verified immutable repository reference. Read required contents rather
|
|
16
|
+
than assuming a task read loads attachment inventory or bytes.
|
|
16
17
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
the
|
|
22
|
-
|
|
23
|
-
the
|
|
18
|
+
For a Goal stage or delivery task, read [the Goal protocol](goal.md) and identify
|
|
19
|
+
its role from the actual task content and context. Apply that stage's input and
|
|
20
|
+
output requirements. Goal description and design start from their stage briefs;
|
|
21
|
+
the completed requirements, applicable UI prototype, and architecture are outputs
|
|
22
|
+
of the stages that produce them. Delivery tasks require the delivered design and
|
|
23
|
+
applicable prototype. When a prototype is a required input, view and exercise it
|
|
24
|
+
with its resources. An unfinished output of the current stage is not a missing
|
|
25
|
+
input.
|
|
26
|
+
|
|
27
|
+
Check state, direct prerequisites, authorized scope, and required stage inputs.
|
|
28
|
+
A missing or unreadable primary Markdown, missing Solution or Acceptance criteria,
|
|
29
|
+
or absent required input leaves execution unready. Resolve it within the
|
|
30
|
+
existing authorization or return the concrete issue. Do not infer requirements
|
|
31
|
+
from a title, silently invent acceptance criteria, or move detailed plans into
|
|
32
|
+
the description. Do not execute prerequisites as an implicit expansion of the
|
|
33
|
+
requested task.
|
|
24
34
|
|
|
25
35
|
For `todo`, begin only when dependencies are done and the work is authorized,
|
|
26
36
|
then set `in_progress`. For `in_progress`, recover existing work and coordinate
|
|
27
|
-
using the project's
|
|
28
|
-
|
|
29
|
-
|
|
37
|
+
using the project's mechanisms; status is not an ownership claim. Report `done`
|
|
38
|
+
as complete; reopening needs explicit intent. A readable `proposed` task is
|
|
39
|
+
outside these executable states: preserve its actual state and resolve the
|
|
40
|
+
required authorized process before execution. Do not implicitly promote it.
|
|
41
|
+
Preserve the requested ID through recovery and waiting.
|
|
30
42
|
|
|
31
43
|
## Execute and maintain continuity
|
|
32
44
|
|
|
33
45
|
Follow the target repository's instructions for worktrees, implementation,
|
|
34
|
-
review, validation, and delivery. Use the
|
|
35
|
-
criteria
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
46
|
+
review, validation, and delivery. Use the task's stage-appropriate solution and
|
|
47
|
+
acceptance criteria, including applicable final-style prototype interactions.
|
|
48
|
+
Goal description defines the problem without architecture decisions or production
|
|
49
|
+
implementation. Design completes architecture and actually registers and verifies
|
|
50
|
+
the entire delivery breakdown before design PR handover. Do not start a successor
|
|
51
|
+
while running either stage.
|
|
52
|
+
|
|
53
|
+
Resolve material changes to the agreed solution or acceptance within the current
|
|
54
|
+
authorization. Rewrite the owning artifact and affected task summaries and input
|
|
55
|
+
references coherently. Preserve requirements; do not silently weaken acceptance.
|
|
56
|
+
Descriptions remain concrete task summaries. Each primary Markdown owns its
|
|
57
|
+
detailed plan and evidence; shared inputs remain at their verified source.
|
|
39
58
|
|
|
40
59
|
Advance only this task. Subagents collaborate on it, and waiting for CI, review,
|
|
41
60
|
approval, or merge remains part of it. Keep all required delivery PR URLs and
|
|
42
|
-
titles in the complete `properties.pullRequests` list
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
log. Keep operational progress, blockers, waiting items, and the next action in
|
|
50
|
-
the conversation or the project's existing execution checkpoint, retaining the
|
|
51
|
-
task ID and any necessary PR and workspace references.
|
|
61
|
+
titles in the complete `properties.pullRequests` list, preserving existing
|
|
62
|
+
entries. Record acceptance results and necessary delivery evidence, including
|
|
63
|
+
merge commits, with the primary Markdown's corresponding acceptance criteria.
|
|
64
|
+
Rewrite current evidence coherently rather than accumulating an execution log.
|
|
65
|
+
Keep operational progress, blockers, waiting items, and next action in the
|
|
66
|
+
conversation or existing execution checkpoint, retaining the task ID and needed
|
|
67
|
+
PR and workspace references.
|
|
52
68
|
|
|
53
69
|
## Confirm completion or return waiting
|
|
54
70
|
|
|
55
71
|
Development tasks and design or documentation tasks delivered through PRs remain
|
|
56
72
|
`in_progress` until the hosting platform confirms **every necessary delivery PR
|
|
57
|
-
is merged** and all acceptance criteria are satisfied. Code completion,
|
|
58
|
-
CI, approved review, and an open PR do not satisfy this condition. Verify
|
|
59
|
-
merge state through the
|
|
60
|
-
|
|
73
|
+
is merged** and all stage acceptance criteria are satisfied. Code completion,
|
|
74
|
+
passing CI, approved review, and an open PR do not satisfy this condition. Verify
|
|
75
|
+
actual merge state through the host's native client or API; do not assume a
|
|
76
|
+
particular host.
|
|
61
77
|
|
|
62
78
|
Completion rules grant no merge, deployment, external communication, or mainline
|
|
63
|
-
push permission. Follow
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
79
|
+
push permission. Follow existing authorization without asking again for actions
|
|
80
|
+
it covers. If the user requests an open PR for review or forbids merging, deliver
|
|
81
|
+
the reviewable PR, preserve `in_progress` and the waiting checkpoint, and return
|
|
82
|
+
its URL and required user action. Do not enable auto-merge. Missing permission,
|
|
83
|
+
unavailable merge visibility, or an unmet merge check likewise keeps completion
|
|
84
|
+
pending and successors blocked.
|
|
69
85
|
|
|
70
|
-
For tasks
|
|
71
|
-
|
|
72
|
-
then reread the complete task and set `done` with
|
|
73
|
-
Only service confirmation establishes the status update; reconcile
|
|
74
|
-
|
|
86
|
+
For tasks without a development or PR delivery path, use their stated stage
|
|
87
|
+
acceptance. In every case, confirm required evidence is recorded and readable,
|
|
88
|
+
then reread the complete task and set `done` with its exact observed version.
|
|
89
|
+
Only service confirmation establishes the status update; reconcile uncertain
|
|
90
|
+
results before reporting success. A Goal description task's completion means
|
|
91
|
+
problem definition is complete; design completion means architecture and actual
|
|
92
|
+
breakdown are delivered. Neither establishes whole-Goal completion.
|
|
75
93
|
|
|
76
|
-
Continue ordinary CI and review waits as
|
|
77
|
-
external intervention, preserve the
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
94
|
+
Continue ordinary CI and review waits as this task. When progress requires
|
|
95
|
+
external intervention, preserve the target, actual state, concrete blocker,
|
|
96
|
+
existing work, and next action in the checkpoint, then return the waiting result.
|
|
97
|
+
An unstarted task stays `todo`; a started task stays `in_progress`. Do not declare
|
|
98
|
+
completion or select other work to bypass a wait. After completion, return
|
|
99
|
+
without selecting a successor. Whole-Goal acceptance follows the Goal protocol.
|
|
@@ -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 : 3;
|
|
9
|
+
const taskPriority = (task) => task.status === "in_progress" ? 0 : task.ready ? 1 : task.status === "todo" ? 2 : task.status === "proposed" ? 3 : 4;
|
|
10
10
|
export const runTaskCommand = async (args, context, dependencies = defaultDependencies) => {
|
|
11
11
|
const command = parseCommand(taskDefinition, args, ["daynight", "task"], "daynight task --help");
|
|
12
12
|
if (command.kind !== "run") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/commands/task/command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAGhE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAOjD,MAAM,mBAAmB,GAA4B;IACnD,gBAAgB,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;IACrG,cAAc,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;CACvG,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,IAAU,EAAU,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/commands/task/command.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,7 +25,7 @@ export const taskDefinition = {
|
|
|
25
25
|
name: "list",
|
|
26
26
|
description: "List unfinished tasks, with in-progress and ready tasks first",
|
|
27
27
|
options: [{ names: ["--all"], description: "Include completed tasks; conflicts with --status" }, statusOption, { names: ["--ready"], description: "Include only tasks ready to start" }, projectOption, listJsonOption, helpOption],
|
|
28
|
-
details: "By default, exclude done tasks. Use --all for every status or --status for a specific status.\nCombine --ready with the selected statuses using AND. Read every page before printing.\nOrder in_progress first, then ready
|
|
28
|
+
details: "By default, exclude done tasks. Use --all for every status or --status for a specific status.\nCombine --ready with the selected statuses using AND. Read every page before printing.\nOrder in_progress first, then ready todo, blocked todo, proposed, 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.",
|
|
29
29
|
},
|
|
30
30
|
{
|
|
31
31
|
name: "ready",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../src/commands/task/definition.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../src/commands/task/definition.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rendering.js","sourceRoot":"","sources":["../../../src/commands/task/rendering.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rendering.js","sourceRoot":"","sources":["../../../src/commands/task/rendering.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,MAAM,WAAW,GAAG,CAAC,MAAyB,EAAU,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAE9H,MAAM,YAAY,GAAG,CAAC,IAAU,EAAqB,EAAE,CAAC;IACtD,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;IAC9B,YAAY,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;IAC1C,UAAU,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;CACrC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,IAAU,EAAqB,EAAE,CAAC;IAC1D,kBAAkB,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE;IACvD,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC;QAC9D,KAAK,KAAK,GAAG,CAAC,YAAY,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;QAC3D,aAAa,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE;KAC7C,CAAC;CACH,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,IAAU,EAAqB,EAAE,CAAC;IAC1D,UAAU,IAAI,CAAC,KAAK,EAAE;IACtB,eAAe,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;IAC5C,eAAe,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;CAC7C,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAU,EAAU,EAAE,CAAC;IAChD,GAAG,YAAY,CAAC,IAAI,CAAC;IACrB,gBAAgB,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;IAChD,GAAG,gBAAgB,CAAC,IAAI,CAAC;IACzB,WAAW,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;IACtC,YAAY,IAAI,CAAC,OAAO,EAAE;IAC1B,GAAG,gBAAgB,CAAC,IAAI,CAAC;IACzB,YAAY,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;IAC1C,YAAY,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;IAC1C,EAAE;CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAsB,EAAU,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAExI,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAsB,EAAU,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IAChI,GAAG,YAAY,CAAC,IAAI,CAAC;IACrB,GAAG,gBAAgB,CAAC,IAAI,CAAC;IACzB,WAAW,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;IACtC,GAAG,gBAAgB,CAAC,IAAI,CAAC;IACzB,EAAE;CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEzB,MAAM,eAAe,GAAG,CAAC,IAAe,EAAU,EAAE,CAAC;IACnD,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;IAC9B,kBAAkB,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;IACnD,oBAAoB,IAAI,CAAC,cAAc,EAAE;IACzC,WAAW,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;IACtC,UAAU,IAAI,CAAC,KAAK,EAAE;IACtB,eAAe,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;IAC5C,eAAe,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;IAC5C,YAAY,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;IAC1C,YAAY,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;IAC1C,EAAE;CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAgB,EAAU,EAAE,CAAC;IAC3D,YAAY,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;IAC5C,SAAS,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;IAC3C,eAAe,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;IACpD,YAAY,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;IACnD,YAAY,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;IACnD,EAAE;IACF,UAAU;IACV,UAAU,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE;IAC/B,aAAa,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE;IACrC,SAAS,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;IAC7B,gBAAgB,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE;IAC1C,SAAS,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;IAC7B,UAAU,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE;IAC/B,YAAY,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE;IACnC,EAAE;IACF,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;CACvF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAyC,EAAU,EAAE,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC;AAEpH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAsB,EAAU,EAAE,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC"}
|
|
@@ -4,6 +4,6 @@ export type ConfigurationDocument = {
|
|
|
4
4
|
document: ReturnType<typeof parseDocument>;
|
|
5
5
|
mapping: Record<string, unknown>;
|
|
6
6
|
};
|
|
7
|
-
export declare const supportedConfigurationFields: readonly ["serverUrl", "repositoryRoot", "repositories", "pollIntervalMs", "maxConcurrentWorker", "agentTimeoutMs", "maxAttempts", "retryDelayMs", "copilotModel", "copilotReasoningEffort"];
|
|
7
|
+
export declare const supportedConfigurationFields: readonly ["serverUrl", "serverToken", "repositoryRoot", "repositories", "pollIntervalMs", "maxConcurrentWorker", "agentTimeoutMs", "maxAttempts", "retryDelayMs", "copilotModel", "copilotReasoningEffort"];
|
|
8
8
|
export declare const parseConfigurationDocument: (source: string, paths: ConfigurationPaths) => ConfigurationDocument;
|
|
9
9
|
export declare const readConfiguration: (paths: ConfigurationPaths) => Promise<ConfigurationDocument>;
|
package/dist/config/document.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { parseDocument } from "yaml";
|
|
1
|
+
import { parseDocument, YAMLParseError, YAMLWarning } from "yaml";
|
|
2
2
|
import { readConfigurationSource } from "./files.js";
|
|
3
3
|
export const supportedConfigurationFields = [
|
|
4
4
|
"serverUrl",
|
|
5
|
+
"serverToken",
|
|
5
6
|
"repositoryRoot",
|
|
6
7
|
"repositories",
|
|
7
8
|
"pollIntervalMs",
|
|
@@ -12,17 +13,31 @@ export const supportedConfigurationFields = [
|
|
|
12
13
|
"copilotModel",
|
|
13
14
|
"copilotReasoningEffort",
|
|
14
15
|
];
|
|
16
|
+
const safeYamlFailure = (cause) => {
|
|
17
|
+
// Parser messages can include secret scalar, alias, and tag text; retain only diagnostic metadata.
|
|
18
|
+
if (cause instanceof YAMLParseError || cause instanceof YAMLWarning) {
|
|
19
|
+
return new Error(`${cause.name}: ${cause.code} at offsets ${cause.pos.join(", ")}.`);
|
|
20
|
+
}
|
|
21
|
+
const category = cause instanceof ReferenceError ? "ReferenceError" : cause instanceof TypeError ? "TypeError" : cause instanceof RangeError ? "RangeError" : cause instanceof SyntaxError ? "SyntaxError" : "Error";
|
|
22
|
+
return new Error(`YAML value decoding failed (${category}).`);
|
|
23
|
+
};
|
|
15
24
|
export const parseConfigurationDocument = (source, paths) => {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
25
|
+
let document;
|
|
26
|
+
try {
|
|
27
|
+
document = parseDocument(source, {
|
|
28
|
+
strict: true,
|
|
29
|
+
uniqueKeys: true,
|
|
30
|
+
stringKeys: true,
|
|
31
|
+
prettyErrors: false,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
catch (cause) {
|
|
35
|
+
throw new Error(`Cannot parse YAML in ${paths.configFile}.`, { cause: safeYamlFailure(cause) });
|
|
36
|
+
}
|
|
22
37
|
const problems = [...document.errors, ...document.warnings];
|
|
23
38
|
if (problems.length !== 0) {
|
|
24
39
|
throw new Error(`Invalid YAML in ${paths.configFile}.`, {
|
|
25
|
-
cause: new AggregateError(problems, "YAML configuration was rejected."),
|
|
40
|
+
cause: new AggregateError(problems.map(safeYamlFailure), "YAML configuration was rejected."),
|
|
26
41
|
});
|
|
27
42
|
}
|
|
28
43
|
let parsed;
|
|
@@ -30,7 +45,7 @@ export const parseConfigurationDocument = (source, paths) => {
|
|
|
30
45
|
parsed = document.toJS();
|
|
31
46
|
}
|
|
32
47
|
catch (cause) {
|
|
33
|
-
throw new Error(`Cannot decode YAML in ${paths.configFile}.`, { cause });
|
|
48
|
+
throw new Error(`Cannot decode YAML in ${paths.configFile}.`, { cause: safeYamlFailure(cause) });
|
|
34
49
|
}
|
|
35
50
|
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
|
|
36
51
|
throw new Error("Configuration must be a mapping.");
|
|
@@ -38,7 +53,7 @@ export const parseConfigurationDocument = (source, paths) => {
|
|
|
38
53
|
const mapping = parsed;
|
|
39
54
|
for (const field of Object.keys(mapping)) {
|
|
40
55
|
if (!supportedConfigurationFields.includes(field)) {
|
|
41
|
-
throw new Error(
|
|
56
|
+
throw new Error("Configuration contains an unsupported field.");
|
|
42
57
|
}
|
|
43
58
|
}
|
|
44
59
|
return { document, mapping };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/config/document.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/config/document.ts"],"names":[],"mappings":"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"}
|
package/dist/config/files.js
CHANGED
|
@@ -2,6 +2,7 @@ import { lstat, mkdir, open, readFile, stat, unlink } from "node:fs/promises";
|
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { replaceFileAtomically } from "../platform/files.js";
|
|
4
4
|
import { MissingConfigurationFileError } from "./errors.js";
|
|
5
|
+
import { parseConfigurationDocument } from "./document.js";
|
|
5
6
|
const hasCode = (error, code) => error instanceof Error && "code" in error && error.code === code;
|
|
6
7
|
const isMissingFile = async (file) => {
|
|
7
8
|
const absolute = path.resolve(file);
|
|
@@ -73,7 +74,9 @@ export const updateConfigurationFile = async (paths, update, signal) => {
|
|
|
73
74
|
const updated = await update(source);
|
|
74
75
|
signal?.throwIfAborted();
|
|
75
76
|
if (updated.source !== undefined) {
|
|
76
|
-
|
|
77
|
+
const { mapping } = parseConfigurationDocument(updated.source, paths);
|
|
78
|
+
const mode = process.platform !== "win32" && Object.hasOwn(mapping, "serverToken") ? 0o600 : existingEntry?.mode;
|
|
79
|
+
await replaceFileAtomically(paths.configFile, updated.source, mode);
|
|
77
80
|
}
|
|
78
81
|
return updated.result;
|
|
79
82
|
}
|
package/dist/config/files.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/config/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/config/files.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export const validateServerToken = (value) => {
|
|
2
|
+
if (typeof value !== "string" || !/^[\x21-\x7e]+$/.test(value)) {
|
|
3
|
+
throw new Error("serverToken must be a nonempty header-safe ASCII value without whitespace or control characters.");
|
|
4
|
+
}
|
|
5
|
+
return value;
|
|
6
|
+
};
|
|
7
|
+
export const validateTokenTransport = (serverUrl) => {
|
|
8
|
+
const url = new URL(serverUrl);
|
|
9
|
+
if (url.protocol === "https:" || (url.protocol === "http:" && (url.hostname === "localhost" || url.hostname === "[::1]" || /^127(?:\.\d{1,3}){3}$/.test(url.hostname))))
|
|
10
|
+
return;
|
|
11
|
+
throw new Error("serverToken requires an HTTPS server origin or loopback HTTP for development.");
|
|
12
|
+
};
|
|
13
|
+
export const parseServerTokenInput = (input) => validateServerToken(input.replace(/\r?\n$/, ""));
|
|
14
|
+
//# sourceMappingURL=server-token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-token.js","sourceRoot":"","sources":["../../src/config/server-token.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAc,EAAU,EAAE;IAC5D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,kGAAkG,CAAC,CAAC;IACtH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,SAAiB,EAAQ,EAAE;IAChE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/B,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,WAAW,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO;IAChL,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC,CAAC;AACnG,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAa,EAAU,EAAE,CAC7D,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC"}
|
package/dist/config/server.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ConfigurationPaths } from "./paths.js";
|
|
2
2
|
export type ServerConfiguration = {
|
|
3
3
|
serverUrl: string;
|
|
4
|
+
serverToken?: string;
|
|
4
5
|
};
|
|
5
6
|
export declare const normalizeServerUrl: (value: unknown) => string;
|
|
6
7
|
export declare const parseServerConfiguration: (source: string, paths: ConfigurationPaths) => ServerConfiguration;
|
package/dist/config/server.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { parseConfigurationDocument } from "./document.js";
|
|
2
2
|
import { readConfigurationSource } from "./files.js";
|
|
3
3
|
import { MissingConfigurationFieldError } from "./errors.js";
|
|
4
|
+
import { validateServerToken, validateTokenTransport } from "./server-token.js";
|
|
4
5
|
export const normalizeServerUrl = (value) => {
|
|
5
6
|
const invalid = () => new Error("serverUrl must be an HTTP(S) origin without credentials, a non-root path, query, fragment, whitespace, or backslashes.");
|
|
6
7
|
if (typeof value !== "string" || !/^https?:\/\//i.test(value) || /[\s\u0000-\u001f\u007f-\u009f\\?#]/u.test(value)) {
|
|
@@ -25,7 +26,12 @@ export const parseServerConfiguration = (source, paths) => {
|
|
|
25
26
|
if (!Object.hasOwn(mapping, "serverUrl")) {
|
|
26
27
|
throw new MissingConfigurationFieldError("serverUrl", "serverUrl is not configured; use daynight setup --server-url <url> to set the daynight-server HTTP(S) origin.");
|
|
27
28
|
}
|
|
28
|
-
|
|
29
|
+
const serverUrl = normalizeServerUrl(mapping.serverUrl);
|
|
30
|
+
if (!Object.hasOwn(mapping, "serverToken"))
|
|
31
|
+
return { serverUrl };
|
|
32
|
+
const serverToken = validateServerToken(mapping.serverToken);
|
|
33
|
+
validateTokenTransport(serverUrl);
|
|
34
|
+
return { serverUrl, serverToken };
|
|
29
35
|
}
|
|
30
36
|
catch (cause) {
|
|
31
37
|
throw new Error(`Invalid configuration file ${paths.configFile}: ${cause instanceof Error ? cause.message : String(cause)}`, { cause });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/config/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/config/server.ts"],"names":[],"mappings":"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"}
|
package/dist/config/setup.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { CliContext } from "../cli/context.js";
|
|
|
2
2
|
import type { AddRepositoryInput } from "../commands/review/repositories.js";
|
|
3
3
|
export type SetupInput = {
|
|
4
4
|
serverUrl?: string;
|
|
5
|
+
serverTokenStdin?: boolean;
|
|
5
6
|
reviewRepository?: AddRepositoryInput;
|
|
6
7
|
};
|
|
7
8
|
type Capability = "server" | "review";
|
package/dist/config/setup.js
CHANGED
|
@@ -5,6 +5,7 @@ import { MissingConfigurationFileError, isMissingConfiguration } from "./errors.
|
|
|
5
5
|
import { readConfigurationSource, updateConfigurationFile } from "./files.js";
|
|
6
6
|
import { resolveConfigurationPaths } from "./paths.js";
|
|
7
7
|
import { normalizeServerUrl } from "./server.js";
|
|
8
|
+
import { parseServerTokenInput, validateServerToken, validateTokenTransport } from "./server-token.js";
|
|
8
9
|
const optionalSource = async (context, signal) => {
|
|
9
10
|
try {
|
|
10
11
|
return await readConfigurationSource(resolveConfigurationPaths(context.homeDirectory()), signal);
|
|
@@ -16,6 +17,8 @@ const optionalSource = async (context, signal) => {
|
|
|
16
17
|
}
|
|
17
18
|
};
|
|
18
19
|
export const configure = async (context, input, capability, suppliedSignal) => withCliCancellation(context, async (signal) => {
|
|
20
|
+
if (input?.serverUrl !== undefined)
|
|
21
|
+
normalizeServerUrl(input.serverUrl);
|
|
19
22
|
const paths = resolveConfigurationPaths(context.homeDirectory());
|
|
20
23
|
const source = await optionalSource(context, signal);
|
|
21
24
|
const baseline = source === undefined ? {} : parseConfigurationDocument(source, paths).mapping;
|
|
@@ -42,7 +45,7 @@ export const configure = async (context, input, capability, suppliedSignal) => w
|
|
|
42
45
|
}
|
|
43
46
|
};
|
|
44
47
|
try {
|
|
45
|
-
let server = input?.serverUrl !== undefined || capability === "server";
|
|
48
|
+
let server = input?.serverUrl !== undefined || input?.serverTokenStdin === true || capability === "server";
|
|
46
49
|
let review = input?.reviewRepository !== undefined || capability === "review";
|
|
47
50
|
if (input === undefined && capability === undefined) {
|
|
48
51
|
const selected = await retry("Configure (server/review/both): ", (answer) => {
|
|
@@ -54,10 +57,51 @@ export const configure = async (context, input, capability, suppliedSignal) => w
|
|
|
54
57
|
review = selected !== "server";
|
|
55
58
|
}
|
|
56
59
|
let serverUrl = input?.serverUrl;
|
|
60
|
+
if (input?.serverTokenStdin === true && serverUrl === undefined) {
|
|
61
|
+
if (!Object.hasOwn(baseline, "serverUrl"))
|
|
62
|
+
throw new Error("--server-token-stdin requires --server-url when no serverUrl is configured.");
|
|
63
|
+
serverUrl = normalizeServerUrl(baseline.serverUrl);
|
|
64
|
+
}
|
|
57
65
|
if (server && serverUrl === undefined)
|
|
58
66
|
serverUrl = await retry("Server URL (for example http://127.0.0.1:8787): ", normalizeServerUrl);
|
|
59
67
|
if (serverUrl !== undefined)
|
|
60
68
|
serverUrl = normalizeServerUrl(serverUrl);
|
|
69
|
+
const sameOrigin = serverUrl !== undefined && Object.hasOwn(baseline, "serverUrl") && normalizeServerUrl(baseline.serverUrl) === serverUrl;
|
|
70
|
+
let serverToken;
|
|
71
|
+
if (input?.serverTokenStdin === true) {
|
|
72
|
+
validateTokenTransport(serverUrl);
|
|
73
|
+
if (context.readStdin === undefined)
|
|
74
|
+
throw new Error("serverToken stdin input is unavailable in this context.");
|
|
75
|
+
serverToken = parseServerTokenInput(await context.readStdin(signal));
|
|
76
|
+
signal.throwIfAborted();
|
|
77
|
+
}
|
|
78
|
+
else if (server && input?.serverUrl === undefined) {
|
|
79
|
+
if (context.prompt?.isInteractive !== true || context.prompt.askSecret === undefined)
|
|
80
|
+
throw new Error("Hidden terminal input is required to configure serverToken interactively.");
|
|
81
|
+
const question = sameOrigin && Object.hasOwn(baseline, "serverToken") ? "Server token (hidden; blank to keep current token): " : "Server token (hidden; blank to skip): ";
|
|
82
|
+
for (;;) {
|
|
83
|
+
signal.throwIfAborted();
|
|
84
|
+
const answer = await context.prompt.askSecret(question, signal);
|
|
85
|
+
signal.throwIfAborted();
|
|
86
|
+
if (answer === "")
|
|
87
|
+
break;
|
|
88
|
+
try {
|
|
89
|
+
const candidate = validateServerToken(answer);
|
|
90
|
+
validateTokenTransport(serverUrl);
|
|
91
|
+
serverToken = candidate;
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
catch (cause) {
|
|
95
|
+
if (cause instanceof CliCancelledError)
|
|
96
|
+
throw cause;
|
|
97
|
+
context.stderr(`${cause instanceof Error ? cause.message : String(cause)}\n`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
if (server && serverToken === undefined && sameOrigin && Object.hasOwn(baseline, "serverToken")) {
|
|
102
|
+
validateServerToken(baseline.serverToken);
|
|
103
|
+
validateTokenTransport(serverUrl);
|
|
104
|
+
}
|
|
61
105
|
let reviewRepository = input?.reviewRepository;
|
|
62
106
|
let reviewTools;
|
|
63
107
|
let reviewPaths;
|
|
@@ -79,7 +123,7 @@ export const configure = async (context, input, capability, suppliedSignal) => w
|
|
|
79
123
|
}
|
|
80
124
|
await reviewTools.updateRepositoryConfiguration(source, reviewRepository, reviewPaths, reviewOptions);
|
|
81
125
|
}
|
|
82
|
-
const selectedFields = [...(server ? ["serverUrl"] : []), ...(review ? ["repositoryRoot", "repositories"] : [])];
|
|
126
|
+
const selectedFields = [...(server ? ["serverUrl", "serverToken"] : []), ...(review ? ["repositoryRoot", "repositories"] : [])];
|
|
83
127
|
const fingerprint = (mapping) => JSON.stringify(selectedFields.map((field) => [field, Object.hasOwn(mapping, field), mapping[field]]));
|
|
84
128
|
signal.throwIfAborted();
|
|
85
129
|
await updateConfigurationFile(paths, async (currentSource) => {
|
|
@@ -87,8 +131,13 @@ export const configure = async (context, input, capability, suppliedSignal) => w
|
|
|
87
131
|
if (fingerprint(current?.mapping ?? {}) !== fingerprint(baseline))
|
|
88
132
|
throw new Error("Configuration changed during setup. Run setup again to review the current values.");
|
|
89
133
|
const document = current?.document ?? new Document({});
|
|
90
|
-
if (serverUrl !== undefined)
|
|
134
|
+
if (serverUrl !== undefined) {
|
|
91
135
|
document.set("serverUrl", serverUrl);
|
|
136
|
+
if (serverToken !== undefined)
|
|
137
|
+
document.set("serverToken", serverToken);
|
|
138
|
+
else if (!sameOrigin)
|
|
139
|
+
document.delete("serverToken");
|
|
140
|
+
}
|
|
92
141
|
let updatedSource = document.toString();
|
|
93
142
|
if (reviewRepository !== undefined) {
|
|
94
143
|
const result = await reviewTools.updateRepositoryConfiguration(updatedSource, reviewRepository, reviewPaths, reviewOptions);
|
|
@@ -100,8 +149,8 @@ export const configure = async (context, input, capability, suppliedSignal) => w
|
|
|
100
149
|
context.stderr(`Configuration saved to ${paths.configFile}.\n`);
|
|
101
150
|
}
|
|
102
151
|
catch (cause) {
|
|
103
|
-
if (signal.aborted)
|
|
104
|
-
throw new CliCancelledError("Setup cancelled.", { cause: signal.reason });
|
|
152
|
+
if (signal.aborted || cause instanceof CliCancelledError)
|
|
153
|
+
throw new CliCancelledError("Setup cancelled.", { cause: signal.aborted ? signal.reason : cause });
|
|
105
154
|
throw cause;
|
|
106
155
|
}
|
|
107
156
|
}, suppliedSignal, () => new CliCancelledError("Setup cancelled."));
|