adr-kit 0.7.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +41 -24
- package/README.zh.md +40 -27
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +71 -27
- package/dist/cli.js.map +1 -1
- package/dist/commands/accept.d.ts +7 -1
- package/dist/commands/accept.d.ts.map +1 -1
- package/dist/commands/accept.js +7 -3
- package/dist/commands/accept.js.map +1 -1
- package/dist/commands/completion.d.ts.map +1 -1
- package/dist/commands/completion.js +131 -3
- package/dist/commands/completion.js.map +1 -1
- package/dist/commands/config.d.ts +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +1 -10
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/decide.d.ts +6 -1
- package/dist/commands/decide.d.ts.map +1 -1
- package/dist/commands/decide.js +6 -3
- package/dist/commands/decide.js.map +1 -1
- package/dist/commands/graph.d.ts +0 -1
- package/dist/commands/graph.d.ts.map +1 -1
- package/dist/commands/graph.js +2 -4
- package/dist/commands/graph.js.map +1 -1
- package/dist/commands/init.js +2 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/instructions.d.ts +1 -1
- package/dist/commands/instructions.d.ts.map +1 -1
- package/dist/commands/instructions.js +14 -26
- package/dist/commands/instructions.js.map +1 -1
- package/dist/commands/list.d.ts +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +2 -15
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/propose.d.ts.map +1 -1
- package/dist/commands/propose.js +2 -1
- package/dist/commands/propose.js.map +1 -1
- package/dist/commands/status.d.ts +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +1 -11
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/tree.d.ts +3 -0
- package/dist/commands/tree.d.ts.map +1 -0
- package/dist/commands/tree.js +15 -0
- package/dist/commands/tree.js.map +1 -0
- package/dist/commands/validate.d.ts +1 -1
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +1 -17
- package/dist/commands/validate.js.map +1 -1
- package/dist/core/adr.d.ts +44 -10
- package/dist/core/adr.d.ts.map +1 -1
- package/dist/core/adr.js +29 -4
- package/dist/core/adr.js.map +1 -1
- package/dist/core/deliberation.d.ts +21 -0
- package/dist/core/deliberation.d.ts.map +1 -0
- package/dist/core/deliberation.js +82 -0
- package/dist/core/deliberation.js.map +1 -0
- package/dist/core/graph.d.ts +0 -1
- package/dist/core/graph.d.ts.map +1 -1
- package/dist/core/graph.js +0 -18
- package/dist/core/graph.js.map +1 -1
- package/dist/core/repository.d.ts.map +1 -1
- package/dist/core/repository.js +28 -7
- package/dist/core/repository.js.map +1 -1
- package/dist/core/templates.d.ts +13 -6
- package/dist/core/templates.d.ts.map +1 -1
- package/dist/core/templates.js +16 -9
- package/dist/core/templates.js.map +1 -1
- package/dist/core/tool-integrations.d.ts.map +1 -1
- package/dist/core/tool-integrations.js +156 -31
- package/dist/core/tool-integrations.js.map +1 -1
- package/dist/core/validate.d.ts.map +1 -1
- package/dist/core/validate.js +11 -5
- package/dist/core/validate.js.map +1 -1
- package/package.json +4 -2
- package/dist/core/execution-env.d.ts +0 -19
- package/dist/core/execution-env.d.ts.map +0 -1
- package/dist/core/execution-env.js +0 -30
- package/dist/core/execution-env.js.map +0 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DECIDED_BY_VALUES } from '../core/adr.js';
|
|
1
2
|
const COMMANDS = [
|
|
2
3
|
'init',
|
|
3
4
|
'propose',
|
|
@@ -13,27 +14,154 @@ const COMMANDS = [
|
|
|
13
14
|
'update',
|
|
14
15
|
'config',
|
|
15
16
|
'graph',
|
|
17
|
+
'tree',
|
|
16
18
|
'completion',
|
|
17
19
|
'version',
|
|
18
20
|
'help',
|
|
19
21
|
];
|
|
22
|
+
/**
|
|
23
|
+
* Options each command takes, used for completion. `--decided-by` is listed
|
|
24
|
+
* because it is required on the two commands that record a decision and its
|
|
25
|
+
* two values are the whole point of the flag: completing the command name and
|
|
26
|
+
* stopping there leaves the caller to guess a required argument.
|
|
27
|
+
*/
|
|
28
|
+
const COMMAND_OPTIONS = {
|
|
29
|
+
init: ['--tools', '--workflows', '--help'],
|
|
30
|
+
propose: ['--help'],
|
|
31
|
+
decide: ['--raised-by', '--decided-by', '--help'],
|
|
32
|
+
accept: ['--raised-by', '--decided-by', '--help'],
|
|
33
|
+
reject: ['--reason', '--help'],
|
|
34
|
+
supersede: ['--by', '--help'],
|
|
35
|
+
list: ['--help'],
|
|
36
|
+
show: ['--help'],
|
|
37
|
+
status: ['--help'],
|
|
38
|
+
instructions: ['--help'],
|
|
39
|
+
validate: ['--all', '--help'],
|
|
40
|
+
update: ['--tools', '--workflows', '--help'],
|
|
41
|
+
config: ['--help'],
|
|
42
|
+
graph: ['--mermaid', '--dot', '--text', '--formal-only', '--tag', '--help'],
|
|
43
|
+
tree: ['--mermaid', '--text', '--help'],
|
|
44
|
+
completion: ['--help'],
|
|
45
|
+
version: ['--help'],
|
|
46
|
+
help: ['--help'],
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Options that consume the following word as their value. Declaring them as
|
|
50
|
+
* valueless would make every shell treat them as flags, so completion would
|
|
51
|
+
* repeat the option list in a position where the CLI expects free text.
|
|
52
|
+
*/
|
|
53
|
+
const VALUE_OPTIONS = ['--by', '--reason', '--tag', '--tools', '--workflows'];
|
|
54
|
+
/** Short descriptions for the shells that show one next to an option. */
|
|
55
|
+
const OPTION_DESCRIPTIONS = {
|
|
56
|
+
'--by': 'the decision that replaces this one',
|
|
57
|
+
'--decided-by': 'whose judgment settled the decision',
|
|
58
|
+
'--raised-by': 'who raised the decision',
|
|
59
|
+
'--reason': 'why the draft is discarded',
|
|
60
|
+
'--tag': 'filter to one theme',
|
|
61
|
+
'--tools': 'AI tools to install integrations for',
|
|
62
|
+
'--workflows': 'workflows to install',
|
|
63
|
+
};
|
|
64
|
+
function takesValue(option) {
|
|
65
|
+
return VALUE_OPTIONS.includes(option);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* A `_arguments` spec: a boolean stands alone, while a value option has to
|
|
69
|
+
* carry its `=` and an argument slot, or zsh offers it as a flag and the
|
|
70
|
+
* caller is left typing a value with the option list still on screen.
|
|
71
|
+
*/
|
|
72
|
+
function zshSpec(option) {
|
|
73
|
+
if (option === '--decided-by' || option === '--raised-by') {
|
|
74
|
+
return `'${option}=[${OPTION_DESCRIPTIONS[option]}]:declared by:(${DECIDED_BY_VALUES.join(' ')})'`;
|
|
75
|
+
}
|
|
76
|
+
if (takesValue(option)) {
|
|
77
|
+
return `'${option}=[${OPTION_DESCRIPTIONS[option]}]:${option.slice(2)}:'`;
|
|
78
|
+
}
|
|
79
|
+
return option;
|
|
80
|
+
}
|
|
20
81
|
export function completionCommand(shell) {
|
|
21
82
|
const words = COMMANDS.join(' ');
|
|
22
83
|
switch (shell) {
|
|
23
84
|
case 'bash':
|
|
24
85
|
return `_adrkit_completion() {
|
|
25
|
-
local cur
|
|
86
|
+
local cur prev command option
|
|
26
87
|
cur="\${COMP_WORDS[COMP_CWORD]}"
|
|
88
|
+
prev="\${COMP_WORDS[COMP_CWORD-1]}"
|
|
89
|
+
command="\${COMP_WORDS[1]}"
|
|
90
|
+
|
|
91
|
+
case "$prev" in
|
|
92
|
+
--decided-by|--raised-by)
|
|
93
|
+
if [[ "$command" == "decide" || "$command" == "accept" ]]; then
|
|
94
|
+
COMPREPLY=( $(compgen -W "${DECIDED_BY_VALUES.join(' ')}" -- "$cur") )
|
|
95
|
+
else
|
|
96
|
+
# The flag is not accepted here, so its values are not candidates.
|
|
97
|
+
COMPREPLY=()
|
|
98
|
+
fi
|
|
99
|
+
return
|
|
100
|
+
;;
|
|
101
|
+
${VALUE_OPTIONS.join('|')})
|
|
102
|
+
# Free text with no candidate list: offering the option list again here
|
|
103
|
+
# would suggest flags where the CLI expects a value.
|
|
104
|
+
COMPREPLY=()
|
|
105
|
+
return
|
|
106
|
+
;;
|
|
107
|
+
esac
|
|
108
|
+
|
|
109
|
+
# Options once a command is being written; command names only for the first
|
|
110
|
+
# word. The -z arm is what keeps --decided-by completable when the option
|
|
111
|
+
# itself is still being typed (an empty word left by the trailing space).
|
|
112
|
+
if [[ "$cur" == -* || ( -z "$cur" && "$COMP_CWORD" -gt 1 ) ]]; then
|
|
113
|
+
case "$command" in
|
|
114
|
+
${Object.entries(COMMAND_OPTIONS)
|
|
115
|
+
.map(([name, options]) => ` ${name}) option="${options.join(' ')}" ;;`)
|
|
116
|
+
.join('\n')}
|
|
117
|
+
*) option="--help" ;;
|
|
118
|
+
esac
|
|
119
|
+
COMPREPLY=( $(compgen -W "$option" -- "$cur") )
|
|
120
|
+
return
|
|
121
|
+
fi
|
|
122
|
+
|
|
27
123
|
COMPREPLY=( $(compgen -W "${words}" -- "$cur") )
|
|
28
124
|
}
|
|
29
125
|
complete -F _adrkit_completion adrkit
|
|
30
126
|
`;
|
|
31
127
|
case 'zsh':
|
|
32
128
|
return `#compdef adrkit
|
|
33
|
-
_arguments
|
|
129
|
+
# _arguments is only legal inside a completion function, so the whole script
|
|
130
|
+
# lives in one; zsh defines it lazily when the user first completes adrkit.
|
|
131
|
+
_adrkit() {
|
|
132
|
+
if (( CURRENT == 2 )); then
|
|
133
|
+
_arguments '1:command:(${words})'
|
|
134
|
+
return
|
|
135
|
+
fi
|
|
136
|
+
# Parse the remaining words as arguments of the selected subcommand.
|
|
137
|
+
local command=$words[2]
|
|
138
|
+
words=( "\${words[@]:1}" )
|
|
139
|
+
(( CURRENT-- ))
|
|
140
|
+
case $command in
|
|
141
|
+
${Object.entries(COMMAND_OPTIONS)
|
|
142
|
+
.map(([name, options]) => ` ${name}) _arguments ${options.map(zshSpec).join(' ')} '1:argument:' ;;`)
|
|
143
|
+
.join('\n')}
|
|
144
|
+
# Commands outside this table take a free-text argument and --help only.
|
|
145
|
+
*) _arguments '--help' '1:argument:' ;;
|
|
146
|
+
esac
|
|
147
|
+
}
|
|
148
|
+
_adrkit "$@"
|
|
34
149
|
`;
|
|
35
150
|
case 'fish':
|
|
36
|
-
return COMMANDS.map((command) => `complete -c adrkit -f -a "${command}"`).join('\n') +
|
|
151
|
+
return (COMMANDS.map((command) => `complete -c adrkit -f -a "${command}"`).join('\n') +
|
|
152
|
+
'\n' +
|
|
153
|
+
Object.entries(COMMAND_OPTIONS)
|
|
154
|
+
.flatMap(([command, options]) => options
|
|
155
|
+
.filter((option) => option !== '--decided-by' && option !== '--raised-by')
|
|
156
|
+
.map((option) => `complete -c adrkit -n "__fish_seen_subcommand_from ${command}" -l ${option.slice(2)}${takesValue(option) ? ' -x' : ''}`))
|
|
157
|
+
.join('\n') +
|
|
158
|
+
'\n' +
|
|
159
|
+
// `-x` requires the value and suppresses file candidates; both
|
|
160
|
+
// declarations live on one line with the two values as `-a`.
|
|
161
|
+
`complete -c adrkit -n "__fish_seen_subcommand_from decide accept" -l raised-by -x -a "${DECIDED_BY_VALUES.join(' ')}"` +
|
|
162
|
+
'\n' +
|
|
163
|
+
`complete -c adrkit -n "__fish_seen_subcommand_from decide accept" -l decided-by -x -a "${DECIDED_BY_VALUES.join(' ')}"` +
|
|
164
|
+
'\n');
|
|
37
165
|
default:
|
|
38
166
|
throw new Error(`unsupported shell "${shell}". Supported: bash, zsh, fish`);
|
|
39
167
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG;IACf,MAAM;IACN,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,MAAM;IACN,MAAM;IACN,QAAQ;IACR,cAAc;IACd,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,YAAY;IACZ,SAAS;IACT,MAAM;CACP,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjC,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,MAAM;YACT,OAAO
|
|
1
|
+
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function configCommand(cwd: string
|
|
1
|
+
export declare function configCommand(cwd: string): string;
|
|
2
2
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAGA,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAGA,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAgBjD"}
|
package/dist/commands/config.js
CHANGED
|
@@ -1,20 +1,11 @@
|
|
|
1
1
|
import { configPath, readConfig, requireRoot } from '../core/config.js';
|
|
2
2
|
import { WORKFLOW_NAMES } from '../core/tool-integrations.js';
|
|
3
|
-
export function configCommand(cwd
|
|
3
|
+
export function configCommand(cwd) {
|
|
4
4
|
const root = requireRoot(cwd);
|
|
5
5
|
const config = readConfig(root);
|
|
6
6
|
// A missing `workflows` key means the full set (the default); report the
|
|
7
7
|
// effective selection so `config` never hides what `update` would install.
|
|
8
8
|
const workflows = config.workflows ?? WORKFLOW_NAMES;
|
|
9
|
-
if (asJson) {
|
|
10
|
-
return JSON.stringify({
|
|
11
|
-
path: configPath(root),
|
|
12
|
-
context: config.context ?? '',
|
|
13
|
-
rules: config.rules ?? {},
|
|
14
|
-
tools: config.tools ?? [],
|
|
15
|
-
workflows,
|
|
16
|
-
}, null, 2);
|
|
17
|
-
}
|
|
18
9
|
const lines = [`config: ${configPath(root)}`, ''];
|
|
19
10
|
if (config.context !== undefined && config.context.trim().length > 0) {
|
|
20
11
|
lines.push('context:', config.context.trim(), '');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,MAAM,UAAU,aAAa,CAAC,GAAW
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,yEAAyE;IACzE,2EAA2E;IAC3E,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,cAAc,CAAC;IACrD,MAAM,KAAK,GAAG,CAAC,WAAW,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAClD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrE,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,KAAK,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,cAAc,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACrD,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import type { DecidedBy, RaisedBy } from '../core/adr.js';
|
|
2
|
+
/**
|
|
3
|
+
* `decidedBy` is the declaration the caller made for this decision: the CLI
|
|
4
|
+
* cannot observe who chose, so the value travels in rather than being inferred.
|
|
5
|
+
*/
|
|
6
|
+
export declare function decideCommand(title: string, cwd: string, decidedBy: DecidedBy, raisedBy: RaisedBy): string;
|
|
2
7
|
//# sourceMappingURL=decide.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decide.d.ts","sourceRoot":"","sources":["../../src/commands/decide.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"decide.d.ts","sourceRoot":"","sources":["../../src/commands/decide.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAO1D;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,GACjB,MAAM,CAyBR"}
|
package/dist/commands/decide.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { existsSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { readConfig, requireRoot } from '../core/config.js';
|
|
4
|
-
import { detectDecidedBy } from '../core/execution-env.js';
|
|
5
4
|
import { gitHead } from '../core/git.js';
|
|
6
5
|
import { folderPath, nextDecisionNumber, writeRecord } from '../core/repository.js';
|
|
7
6
|
import { decisionTemplate } from '../core/templates.js';
|
|
8
7
|
import { slugify } from '../core/slug.js';
|
|
9
|
-
|
|
8
|
+
/**
|
|
9
|
+
* `decidedBy` is the declaration the caller made for this decision: the CLI
|
|
10
|
+
* cannot observe who chose, so the value travels in rather than being inferred.
|
|
11
|
+
*/
|
|
12
|
+
export function decideCommand(title, cwd, decidedBy, raisedBy) {
|
|
10
13
|
const trimmed = title.trim();
|
|
11
14
|
if (trimmed.length === 0) {
|
|
12
15
|
throw new Error('title must not be empty');
|
|
@@ -21,7 +24,7 @@ export function decideCommand(title, cwd, env = process.env) {
|
|
|
21
24
|
if (existsSync(path)) {
|
|
22
25
|
throw new Error(`decision already exists: adr/decisions/${fileName}`);
|
|
23
26
|
}
|
|
24
|
-
const content = decisionTemplate(number, trimmed, readConfig(root).context, gitHead(root),
|
|
27
|
+
const content = decisionTemplate(number, trimmed, readConfig(root).context, gitHead(root), decidedBy, raisedBy);
|
|
25
28
|
writeRecord(root, 'decisions', fileName, content);
|
|
26
29
|
return `created adr/decisions/${fileName}\n\nfill in the decision and validate it with:\n adrkit validate ${number}`;
|
|
27
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decide.js","sourceRoot":"","sources":["../../src/commands/decide.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"decide.js","sourceRoot":"","sources":["../../src/commands/decide.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAa,EACb,GAAW,EACX,SAAoB,EACpB,QAAkB;IAElB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,GAAG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;IACpD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC3D,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,0CAA0C,QAAQ,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,OAAO,GAAG,gBAAgB,CAC9B,MAAM,EACN,OAAO,EACP,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EACxB,OAAO,CAAC,IAAI,CAAC,EACb,SAAS,EACT,QAAQ,CACT,CAAC;IACF,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClD,OAAO,yBAAyB,QAAQ,qEAAqE,MAAM,EAAE,CAAC;AACxH,CAAC"}
|
package/dist/commands/graph.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/commands/graph.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/commands/graph.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAezE"}
|
package/dist/commands/graph.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { requireRoot } from '../core/config.js';
|
|
2
2
|
import { listRecords } from '../core/repository.js';
|
|
3
|
-
import { buildDecisionGraph, dotGraph,
|
|
3
|
+
import { buildDecisionGraph, dotGraph, mermaidGraph, textTree } from '../core/graph.js';
|
|
4
4
|
export function graphCommand(cwd, flags) {
|
|
5
|
-
const formats = ['mermaid', 'dot', '
|
|
5
|
+
const formats = ['mermaid', 'dot', 'text'].filter((format) => flags[format]);
|
|
6
6
|
if (formats.length > 1) {
|
|
7
7
|
throw new Error(`--${formats.join(' and --')} are mutually exclusive; pick one output format`);
|
|
8
8
|
}
|
|
@@ -13,8 +13,6 @@ export function graphCommand(cwd, flags) {
|
|
|
13
13
|
});
|
|
14
14
|
if (formats[0] === 'dot')
|
|
15
15
|
return dotGraph(graph);
|
|
16
|
-
if (formats[0] === 'json')
|
|
17
|
-
return jsonGraph(graph);
|
|
18
16
|
if (formats[0] === 'text')
|
|
19
17
|
return textTree(graph);
|
|
20
18
|
return mermaidGraph(graph);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/commands/graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/commands/graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAUxF,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,KAAuB;IAC/D,MAAM,OAAO,GAAI,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAW,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACxF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,KAAK,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,iDAAiD,CAC9E,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;QAClD,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,GAAG,EAAE,KAAK,CAAC,GAAG;KACf,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK;QAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM;QAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC"}
|
package/dist/commands/init.js
CHANGED
|
@@ -14,8 +14,8 @@ export function initCommand(targetDir, toolsValue, workflowsValue) {
|
|
|
14
14
|
...integrationSummary(root, integrations),
|
|
15
15
|
'',
|
|
16
16
|
'Next:',
|
|
17
|
-
' adrkit decide "use sqlite for sessions" # record a decision
|
|
18
|
-
' adrkit propose "your first decision" #
|
|
17
|
+
' adrkit decide "use sqlite for sessions" --raised-by human --decided-by human # record a decision',
|
|
18
|
+
' adrkit propose "your first decision" # only when it still needs review',
|
|
19
19
|
].join('\n');
|
|
20
20
|
}
|
|
21
21
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,cAAc,EACd,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,UAAU,WAAW,CAAC,SAAiB,EAAE,UAAmB,EAAE,cAAuB;IACzF,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;IACjD,sEAAsE;IACtE,2EAA2E;IAC3E,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,cAAc,CACtC,SAAS,EACT,KAAK,EACL,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CACrD,CAAC;IACF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACnE,OAAO;QACL,0BAA0B,IAAI,EAAE;QAChC,GAAG,KAAK;QACR,GAAG,kBAAkB,CAAC,IAAI,EAAE,YAAY,CAAC;QACzC,EAAE;QACF,OAAO;QACP,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,cAAc,EACd,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,UAAU,WAAW,CAAC,SAAiB,EAAE,UAAmB,EAAE,cAAuB;IACzF,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;IACjD,sEAAsE;IACtE,2EAA2E;IAC3E,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,cAAc,CACtC,SAAS,EACT,KAAK,EACL,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CACrD,CAAC;IACF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACnE,OAAO;QACL,0BAA0B,IAAI,EAAE;QAChC,GAAG,KAAK;QACR,GAAG,kBAAkB,CAAC,IAAI,EAAE,YAAY,CAAC;QACzC,EAAE;QACF,OAAO;QACP,oGAAoG;QACpG,6EAA6E;KAC9E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function instructionsCommand(cwd: string
|
|
1
|
+
export declare function instructionsCommand(cwd: string): string;
|
|
2
2
|
//# sourceMappingURL=instructions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../../src/commands/instructions.ts"],"names":[],"mappings":"AAIA,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../../src/commands/instructions.ts"],"names":[],"mappings":"AAIA,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA2FvD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { findRoot } from '../core/config.js';
|
|
2
2
|
import { listDrafts, listRecords } from '../core/repository.js';
|
|
3
3
|
import { formatIssues, validateDraft, validateRepository } from '../core/validate.js';
|
|
4
|
-
export function instructionsCommand(cwd
|
|
4
|
+
export function instructionsCommand(cwd) {
|
|
5
5
|
const root = findRoot(cwd);
|
|
6
6
|
if (root === undefined) {
|
|
7
7
|
const output = [
|
|
@@ -9,11 +9,10 @@ export function instructionsCommand(cwd, asJson = false) {
|
|
|
9
9
|
'',
|
|
10
10
|
'Next:',
|
|
11
11
|
' adrkit init',
|
|
12
|
-
' adrkit decide "your first decision"',
|
|
12
|
+
' adrkit decide "your first decision" --raised-by <human|agent> --decided-by <human|agent>',
|
|
13
|
+
' (raised-by: who raised it; decided-by: whose judgment settled it)',
|
|
13
14
|
].join('\n');
|
|
14
|
-
return
|
|
15
|
-
? JSON.stringify({ step: 'init', message: output }, null, 2)
|
|
16
|
-
: output;
|
|
15
|
+
return output;
|
|
17
16
|
}
|
|
18
17
|
// Pending drafts come first: promoting or discarding them is the steer, and a
|
|
19
18
|
// draft elsewhere in the repo must not hide the proposals that are ready.
|
|
@@ -32,9 +31,7 @@ export function instructionsCommand(cwd, asJson = false) {
|
|
|
32
31
|
'Next:',
|
|
33
32
|
' adrkit validate',
|
|
34
33
|
].join('\n');
|
|
35
|
-
return
|
|
36
|
-
? JSON.stringify({ step: 'fix-validation', issues, message: output }, null, 2)
|
|
37
|
-
: output;
|
|
34
|
+
return output;
|
|
38
35
|
}
|
|
39
36
|
const drafts = listDrafts(root);
|
|
40
37
|
if (drafts.length > 0) {
|
|
@@ -62,21 +59,15 @@ export function instructionsCommand(cwd, asJson = false) {
|
|
|
62
59
|
}
|
|
63
60
|
lines.push('', 'Next:');
|
|
64
61
|
for (const name of ready) {
|
|
65
|
-
|
|
62
|
+
// The placeholder keeps an agent from copy-pasting a human declaration
|
|
63
|
+
// for its own judgment: whoever runs this must pick the value.
|
|
64
|
+
lines.push(` adrkit accept ${name} --raised-by <human|agent> --decided-by <human|agent> # promote to a decision`);
|
|
66
65
|
}
|
|
67
66
|
for (const name of Object.keys(needsWork)) {
|
|
68
67
|
lines.push(` adrkit reject ${name} # or fix adr/.drafts/${name} and accept it`);
|
|
69
68
|
}
|
|
70
69
|
const output = lines.join('\n');
|
|
71
|
-
return
|
|
72
|
-
? JSON.stringify({
|
|
73
|
-
step: 'decide',
|
|
74
|
-
pending: drafts.map((draft) => draft.fileName),
|
|
75
|
-
readyToAccept: ready,
|
|
76
|
-
needsWork,
|
|
77
|
-
message: output,
|
|
78
|
-
}, null, 2)
|
|
79
|
-
: output;
|
|
70
|
+
return output;
|
|
80
71
|
}
|
|
81
72
|
const issues = validateRepository(root);
|
|
82
73
|
if (issues.length > 0) {
|
|
@@ -88,19 +79,16 @@ export function instructionsCommand(cwd, asJson = false) {
|
|
|
88
79
|
'Next:',
|
|
89
80
|
' adrkit validate',
|
|
90
81
|
].join('\n');
|
|
91
|
-
return
|
|
92
|
-
? JSON.stringify({ step: 'fix-validation', issues, message: output }, null, 2)
|
|
93
|
-
: output;
|
|
82
|
+
return output;
|
|
94
83
|
}
|
|
95
84
|
const output = [
|
|
96
85
|
'No proposals waiting.',
|
|
97
86
|
'',
|
|
98
87
|
'Next:',
|
|
99
|
-
' adrkit
|
|
100
|
-
'
|
|
88
|
+
' adrkit decide "an already-made decision" --raised-by <human|agent> --decided-by <human|agent>',
|
|
89
|
+
' (raised-by: who raised it; decided-by: whose judgment settled it)',
|
|
90
|
+
' adrkit propose "a decision that still needs review" # ephemeral draft (the exception)',
|
|
101
91
|
].join('\n');
|
|
102
|
-
return
|
|
103
|
-
? JSON.stringify({ step: 'propose', message: output }, null, 2)
|
|
104
|
-
: output;
|
|
92
|
+
return output;
|
|
105
93
|
}
|
|
106
94
|
//# sourceMappingURL=instructions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../src/commands/instructions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEtF,MAAM,UAAU,mBAAmB,CAAC,GAAW
|
|
1
|
+
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../src/commands/instructions.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/list.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function listCommand(cwd: string
|
|
1
|
+
export declare function listCommand(cwd: string): string;
|
|
2
2
|
//# sourceMappingURL=list.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAGA,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAGA,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA4B/C"}
|
package/dist/commands/list.js
CHANGED
|
@@ -1,24 +1,11 @@
|
|
|
1
1
|
import { requireRoot } from '../core/config.js';
|
|
2
2
|
import { displayName, listDrafts, listRecords, relativePath } from '../core/repository.js';
|
|
3
|
-
export function listCommand(cwd
|
|
3
|
+
export function listCommand(cwd) {
|
|
4
4
|
const root = requireRoot(cwd);
|
|
5
5
|
const records = listRecords(root);
|
|
6
6
|
const drafts = listDrafts(root);
|
|
7
|
-
if (asJson) {
|
|
8
|
-
const payload = [...records, ...drafts].map((record) => ({
|
|
9
|
-
folder: record.folder,
|
|
10
|
-
status: record.status,
|
|
11
|
-
number: record.number,
|
|
12
|
-
title: record.title,
|
|
13
|
-
fileName: record.fileName,
|
|
14
|
-
path: relativePath(record),
|
|
15
|
-
rejectionReason: record.rejectionReason,
|
|
16
|
-
supersededBy: record.supersededBy,
|
|
17
|
-
}));
|
|
18
|
-
return JSON.stringify(payload, null, 2);
|
|
19
|
-
}
|
|
20
7
|
if (records.length === 0 && drafts.length === 0) {
|
|
21
|
-
return 'no ADRs yet: start one with "adrkit
|
|
8
|
+
return 'no ADRs yet: start one with "adrkit decide <title> --raised-by human --decided-by human" or "adrkit propose <title>"';
|
|
22
9
|
}
|
|
23
10
|
const lines = [];
|
|
24
11
|
if (records.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE3F,MAAM,UAAU,WAAW,CAAC,GAAW
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE3F,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAEhC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,OAAO,sHAAsH,CAAC;IAChI,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC3B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,KAAK,YAAY,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS;gBACxF,CAAC,CAAC,oBAAoB,MAAM,CAAC,YAAY,GAAG;gBAC5C,CAAC,CAAC,EAAE,CAAC;YACP,KAAK,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC,MAAM,CAAC,GAAG,cAAc,MAAM,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrF,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QACnC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,KAAK,MAAM,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3D,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;AACpC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"propose.d.ts","sourceRoot":"","sources":["../../src/commands/propose.ts"],"names":[],"mappings":"AAQA,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"propose.d.ts","sourceRoot":"","sources":["../../src/commands/propose.ts"],"names":[],"mappings":"AAQA,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CA0BjE"}
|
package/dist/commands/propose.js
CHANGED
|
@@ -26,7 +26,8 @@ export function proposeCommand(title, cwd) {
|
|
|
26
26
|
`created adr/.drafts/${fileName}`,
|
|
27
27
|
'',
|
|
28
28
|
'A draft is ephemeral: promote it with',
|
|
29
|
-
` adrkit accept "${trimmed}"`,
|
|
29
|
+
` adrkit accept "${trimmed}" --raised-by human --decided-by human`,
|
|
30
|
+
' (use --raised-by agent when the agent raised it; --decided-by agent when the choice was the agent\'s own judgment)',
|
|
30
31
|
'or discard it with',
|
|
31
32
|
` adrkit reject "${trimmed}"`,
|
|
32
33
|
].join('\n');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"propose.js","sourceRoot":"","sources":["../../src/commands/propose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,GAAW;IACvD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,GAAG,UAAU,EAAE,IAAI,IAAI,KAAK,CAAC;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC9C,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,qCAAqC,QAAQ,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;IACpE,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/C,OAAO;QACL,uBAAuB,QAAQ,EAAE;QACjC,EAAE;QACF,uCAAuC;QACvC,oBAAoB,OAAO,
|
|
1
|
+
{"version":3,"file":"propose.js","sourceRoot":"","sources":["../../src/commands/propose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,GAAW;IACvD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,GAAG,UAAU,EAAE,IAAI,IAAI,KAAK,CAAC;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC9C,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,qCAAqC,QAAQ,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;IACpE,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/C,OAAO;QACL,uBAAuB,QAAQ,EAAE;QACjC,EAAE;QACF,uCAAuC;QACvC,oBAAoB,OAAO,wCAAwC;QACnE,sHAAsH;QACtH,oBAAoB;QACpB,oBAAoB,OAAO,GAAG;KAC/B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CA8BvD"}
|
package/dist/commands/status.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { requireRoot } from '../core/config.js';
|
|
2
2
|
import { listDrafts, listRecords } from '../core/repository.js';
|
|
3
3
|
import { formatIssues, validateRepository } from '../core/validate.js';
|
|
4
|
-
export function statusCommand(cwd
|
|
4
|
+
export function statusCommand(cwd) {
|
|
5
5
|
const root = requireRoot(cwd);
|
|
6
6
|
const issues = validateRepository(root);
|
|
7
7
|
let records = [];
|
|
@@ -26,16 +26,6 @@ export function statusCommand(cwd, asJson = false) {
|
|
|
26
26
|
counts.accepted += 1;
|
|
27
27
|
}
|
|
28
28
|
counts.drafts = drafts.length;
|
|
29
|
-
if (asJson) {
|
|
30
|
-
return {
|
|
31
|
-
valid: issues.length === 0,
|
|
32
|
-
output: JSON.stringify({
|
|
33
|
-
valid: issues.length === 0,
|
|
34
|
-
counts,
|
|
35
|
-
issues,
|
|
36
|
-
}, null, 2),
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
29
|
const lines = ['Lifecycle', ''];
|
|
40
30
|
lines.push(` accepted: ${counts.accepted}`);
|
|
41
31
|
lines.push(` superseded: ${counts.superseded}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAOvE,MAAM,UAAU,aAAa,CAAC,GAAW
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAOvE,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,OAAO,GAAgB,EAAE,CAAC;IAC9B,IAAI,CAAC;QACH,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,0EAA0E;IAC5E,CAAC;IACD,IAAI,MAAM,GAAgB,EAAE,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,wEAAwE;IAC1E,CAAC;IAED,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACzD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,YAAY;YAAE,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;;YACtD,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAE9B,MAAM,KAAK,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7C,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IACjD,KAAK,CAAC,IAAI,CAAC,uBAAuB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACnD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3F,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAClE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../src/commands/tree.ts"],"names":[],"mappings":"AASA,gEAAgE;AAChE,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,CAQ1F"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { section } from '../core/adr.js';
|
|
2
|
+
import { requireRoot } from '../core/config.js';
|
|
3
|
+
import { parseDeliberation, renderDeliberationMermaid, renderDeliberationText, } from '../core/deliberation.js';
|
|
4
|
+
import { resolveRecord } from '../core/repository.js';
|
|
5
|
+
/** Render a record's optional `## Deliberation` design tree. */
|
|
6
|
+
export function treeCommand(query, cwd, format) {
|
|
7
|
+
const root = requireRoot(cwd);
|
|
8
|
+
const record = resolveRecord(root, query);
|
|
9
|
+
const nodes = parseDeliberation(section(record, 'Deliberation'));
|
|
10
|
+
if (nodes.length === 0) {
|
|
11
|
+
throw new Error(`"${record.title}" has no "## Deliberation" tree to render`);
|
|
12
|
+
}
|
|
13
|
+
return format === 'mermaid' ? renderDeliberationMermaid(nodes) : renderDeliberationText(nodes);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=tree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree.js","sourceRoot":"","sources":["../../src/commands/tree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,gEAAgE;AAChE,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,GAAW,EAAE,MAA0B;IAChF,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;IACjE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,2CAA2C,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;AACjG,CAAC"}
|
|
@@ -2,5 +2,5 @@ export interface ValidateResult {
|
|
|
2
2
|
valid: boolean;
|
|
3
3
|
output: string;
|
|
4
4
|
}
|
|
5
|
-
export declare function validateCommand(cwd: string, query?: string
|
|
5
|
+
export declare function validateCommand(cwd: string, query?: string): ValidateResult;
|
|
6
6
|
//# sourceMappingURL=validate.d.ts.map
|