deuk-agent-flow 5.0.2 → 5.0.7

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.
Files changed (102) hide show
  1. package/CHANGELOG.ko.md +45 -0
  2. package/CHANGELOG.md +48 -0
  3. package/bundled/deuk-agent-flow.vsix +0 -0
  4. package/core-rules/AGENTS.md +5 -5
  5. package/package.json +20 -2
  6. package/scripts/bundle-vscode-vsix.ts +1 -1
  7. package/scripts/cli-args.ts +46 -1
  8. package/scripts/cli-context-commands.ts +35 -0
  9. package/scripts/cli-init-claude.ts +179 -0
  10. package/scripts/cli-init-commands.ts +21 -8
  11. package/scripts/cli-init-core.ts +89 -0
  12. package/scripts/cli-init-instructions.ts +489 -0
  13. package/scripts/cli-init-migrate.ts +504 -0
  14. package/scripts/cli-init-workspace.ts +63 -0
  15. package/scripts/cli-locales.ts +85 -0
  16. package/scripts/cli-skill-commands.ts +3 -1
  17. package/scripts/cli-ticket-commands.ts +68 -2
  18. package/scripts/cli-ticket-docmeta.ts +103 -0
  19. package/scripts/cli-ticket-document.ts +153 -0
  20. package/scripts/cli-ticket-evidence.ts +312 -0
  21. package/scripts/cli-ticket-home.ts +449 -0
  22. package/scripts/cli-ticket-index.ts +8 -0
  23. package/scripts/cli-ticket-scan.ts +102 -0
  24. package/scripts/cli-ticket-surface.ts +56 -0
  25. package/scripts/cli.ts +10 -1
  26. package/scripts/oss-prepack.js +32 -0
  27. package/scripts/out/scripts/bundle-vscode-vsix.js +68 -0
  28. package/scripts/out/scripts/bundle-vscode-vsix.js.map +1 -0
  29. package/scripts/out/scripts/cli-args.js +411 -0
  30. package/scripts/out/scripts/cli-args.js.map +1 -0
  31. package/scripts/out/scripts/cli-context-commands.js +31 -0
  32. package/scripts/out/scripts/cli-context-commands.js.map +1 -0
  33. package/scripts/out/scripts/cli-init-claude.js +176 -0
  34. package/scripts/out/scripts/cli-init-claude.js.map +1 -0
  35. package/scripts/out/scripts/cli-init-commands.js +98 -0
  36. package/scripts/out/scripts/cli-init-commands.js.map +1 -0
  37. package/scripts/out/scripts/cli-init-core.js +89 -0
  38. package/scripts/out/scripts/cli-init-core.js.map +1 -0
  39. package/scripts/out/scripts/cli-init-instructions.js +460 -0
  40. package/scripts/out/scripts/cli-init-instructions.js.map +1 -0
  41. package/scripts/out/scripts/cli-init-logic.js +41 -0
  42. package/scripts/out/scripts/cli-init-logic.js.map +1 -0
  43. package/scripts/out/scripts/cli-init-migrate.js +497 -0
  44. package/scripts/out/scripts/cli-init-migrate.js.map +1 -0
  45. package/scripts/out/scripts/cli-init-workspace.js +57 -0
  46. package/scripts/out/scripts/cli-init-workspace.js.map +1 -0
  47. package/scripts/out/scripts/cli-locales.js +83 -0
  48. package/scripts/out/scripts/cli-locales.js.map +1 -0
  49. package/scripts/out/scripts/cli-prompts.js +101 -0
  50. package/scripts/out/scripts/cli-prompts.js.map +1 -0
  51. package/scripts/out/scripts/cli-rule-compiler.js +121 -0
  52. package/scripts/out/scripts/cli-rule-compiler.js.map +1 -0
  53. package/scripts/out/scripts/cli-skill-commands.js +708 -0
  54. package/scripts/out/scripts/cli-skill-commands.js.map +1 -0
  55. package/scripts/out/scripts/cli-telemetry-commands.js +604 -0
  56. package/scripts/out/scripts/cli-telemetry-commands.js.map +1 -0
  57. package/scripts/out/scripts/cli-ticket-command-shared.js +2 -0
  58. package/scripts/out/scripts/cli-ticket-command-shared.js.map +1 -0
  59. package/scripts/out/scripts/cli-ticket-commands.js +3538 -0
  60. package/scripts/out/scripts/cli-ticket-commands.js.map +1 -0
  61. package/scripts/out/scripts/cli-ticket-docmeta.js +90 -0
  62. package/scripts/out/scripts/cli-ticket-docmeta.js.map +1 -0
  63. package/scripts/out/scripts/cli-ticket-document.js +121 -0
  64. package/scripts/out/scripts/cli-ticket-document.js.map +1 -0
  65. package/scripts/out/scripts/cli-ticket-evidence.js +286 -0
  66. package/scripts/out/scripts/cli-ticket-evidence.js.map +1 -0
  67. package/scripts/out/scripts/cli-ticket-home.js +440 -0
  68. package/scripts/out/scripts/cli-ticket-home.js.map +1 -0
  69. package/scripts/out/scripts/cli-ticket-index.js +280 -0
  70. package/scripts/out/scripts/cli-ticket-index.js.map +1 -0
  71. package/scripts/out/scripts/cli-ticket-migration.js +261 -0
  72. package/scripts/out/scripts/cli-ticket-migration.js.map +1 -0
  73. package/scripts/out/scripts/cli-ticket-parser.js +90 -0
  74. package/scripts/out/scripts/cli-ticket-parser.js.map +1 -0
  75. package/scripts/out/scripts/cli-ticket-scan.js +93 -0
  76. package/scripts/out/scripts/cli-ticket-scan.js.map +1 -0
  77. package/scripts/out/scripts/cli-ticket-surface.js +53 -0
  78. package/scripts/out/scripts/cli-ticket-surface.js.map +1 -0
  79. package/scripts/out/scripts/cli-usage-commands.js +310 -0
  80. package/scripts/out/scripts/cli-usage-commands.js.map +1 -0
  81. package/scripts/out/scripts/cli-utils.js +1544 -0
  82. package/scripts/out/scripts/cli-utils.js.map +1 -0
  83. package/scripts/out/scripts/cli.js +705 -0
  84. package/scripts/out/scripts/cli.js.map +1 -0
  85. package/scripts/out/scripts/lint-md.js +238 -0
  86. package/scripts/out/scripts/lint-md.js.map +1 -0
  87. package/scripts/out/scripts/lint-rules.js +193 -0
  88. package/scripts/out/scripts/lint-rules.js.map +1 -0
  89. package/scripts/out/scripts/merge-logic.js +38 -0
  90. package/scripts/out/scripts/merge-logic.js.map +1 -0
  91. package/scripts/out/scripts/plan-parser.js +52 -0
  92. package/scripts/out/scripts/plan-parser.js.map +1 -0
  93. package/scripts/out/scripts/ticket-machine.js +94 -0
  94. package/scripts/out/scripts/ticket-machine.js.map +1 -0
  95. package/scripts/out/scripts/ticket-workflow.js +498 -0
  96. package/scripts/out/scripts/ticket-workflow.js.map +1 -0
  97. package/scripts/ticket-machine.ts +99 -0
  98. package/scripts/ticket-workflow.ts +544 -0
  99. package/templates/skills/role-closer/SKILL.md +27 -0
  100. package/templates/skills/role-implementer/SKILL.md +30 -0
  101. package/templates/skills/role-planner/SKILL.md +29 -0
  102. package/templates/skills/role-qa-verifier/SKILL.md +30 -0
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * OSS publish pre-build script.
4
+ * Runs in the OSS mirror (no dev source, no pre-built scripts/out).
5
+ * Steps: (1) root npm install, (2) tsc scripts, (3) vscode-extension npm install, (4) vsix bundle.
6
+ */
7
+ import { spawnSync } from "child_process";
8
+ import { fileURLToPath } from "url";
9
+ import path from "path";
10
+
11
+ const root = path.dirname(path.dirname(fileURLToPath(import.meta.url)));
12
+ const ext = path.join(root, "vscode-extension");
13
+
14
+ function run(cmd, args, cwd) {
15
+ const r = spawnSync(cmd, args, { cwd, stdio: "inherit", shell: true });
16
+ if (r.status !== 0) process.exit(r.status ?? 1);
17
+ }
18
+
19
+ console.log("[oss-prepack] (1/4) root npm install...");
20
+ run("npm", ["install", "--no-audit", "--no-fund", "--loglevel=silent"], root);
21
+
22
+ console.log("[oss-prepack] (2/4) tsc scripts...");
23
+ const tscBin = path.join(root, "node_modules", "typescript", "bin", "tsc");
24
+ run("node", [tscBin, "-p", "tsconfig.scripts.json"], root);
25
+
26
+ console.log("[oss-prepack] (3/4) vscode-extension npm install...");
27
+ run("npm", ["install", "--no-audit", "--no-fund", "--loglevel=silent"], ext);
28
+
29
+ console.log("[oss-prepack] (4/4) vsix bundle...");
30
+ run("node", ["scripts/out/scripts/bundle-vscode-vsix.js"], root);
31
+
32
+ console.log("[oss-prepack] done.");
@@ -0,0 +1,68 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Packs vscode-extension into bundled/deuk-agent-flow.vsix for the npm tarball.
4
+ * Temporarily sets the extension package.json version to the root package version.
5
+ */
6
+ import fs from "fs";
7
+ import { execSync } from "child_process";
8
+ import { makePath, resolvePackageRoot } from "./cli-utils.js";
9
+ const root = resolvePackageRoot({ fromUrl: import.meta.url });
10
+ const extDir = makePath(root, 'vscode-extension');
11
+ const extPkgPath = makePath(extDir, 'package.json');
12
+ const bundledDir = makePath(root, 'bundled');
13
+ const vsixPath = makePath(bundledDir, 'deuk-agent-flow.vsix');
14
+ const installAfterBundle = process.argv.includes('--install') || process.env.DEUK_AGENT_FLOW_INSTALL_VSIX === '1';
15
+ const skipCompile = process.argv.includes('--skip-compile') || process.env.DEUK_AGENT_FLOW_SKIP_COMPILE === '1';
16
+ const rootPkg = JSON.parse(fs.readFileSync(makePath(root, 'package.json'), 'utf8'));
17
+ const extPkg = JSON.parse(fs.readFileSync(extPkgPath, 'utf8'));
18
+ const savedPrepublish = extPkg.scripts?.['vscode:prepublish'];
19
+ extPkg.version = rootPkg.version;
20
+ extPkg.scripts = {
21
+ ...extPkg.scripts,
22
+ 'vscode:prepublish': 'tsc -p ./',
23
+ };
24
+ fs.writeFileSync(extPkgPath, JSON.stringify(extPkg, null, 2) + '\n');
25
+ try {
26
+ if (!fs.existsSync(bundledDir))
27
+ fs.mkdirSync(bundledDir, { recursive: true });
28
+ execSync('npm install --no-audit --no-fund --loglevel=silent', { cwd: extDir, stdio: 'inherit', shell: true });
29
+ if (!skipCompile) {
30
+ execSync('npm run compile', { cwd: extDir, stdio: 'inherit' });
31
+ }
32
+ const vsceBin = makePath(extDir, 'node_modules', '.bin', process.platform === 'win32' ? 'vsce.cmd' : 'vsce');
33
+ if (!fs.existsSync(vsceBin)) {
34
+ console.error('[deuk-agent-flow] @vscode/vsce missing. Run npm install in vscode-extension.');
35
+ process.exit(1);
36
+ }
37
+ const q = (s) => (s.includes(' ') ? `"${s.replace(/"/g, '\\"')}"` : s);
38
+ execSync(`${q(vsceBin)} package --no-dependencies --out ${q(vsixPath)}`, { cwd: extDir, input: 'y\n', stdio: ['pipe', 'inherit', 'inherit'], shell: true });
39
+ if (!fs.existsSync(vsixPath)) {
40
+ console.error('[deuk-agent-flow] bundle-vscode: expected VSIX missing:', vsixPath);
41
+ process.exit(1);
42
+ }
43
+ console.log('[deuk-agent-flow] bundled VS Code extension:', vsixPath);
44
+ if (installAfterBundle) {
45
+ if (process.platform === 'win32') {
46
+ // Windows node 컨텍스트: WSL bash 스크립트로 WSL 파일시스템에 직접 설치
47
+ const wslScript = execSync(`wsl.exe wslpath -u "${root.replace(/\\/g, '/')}/scripts/install-vsix-wsl.sh"`, { encoding: 'utf8', shell: true }).toString().trim();
48
+ execSync(`wsl.exe bash "${wslScript}"`, { stdio: 'inherit', shell: true });
49
+ }
50
+ else {
51
+ execSync('node scripts/out/scripts/install-vscode-vsix.js --all', { cwd: root, stdio: 'inherit', shell: true });
52
+ }
53
+ }
54
+ }
55
+ finally {
56
+ // #version-sync: keep the extension package.json version pinned to the root version
57
+ // (do NOT restore savedVer) so vscode-extension/package.json auto-tracks the root on
58
+ // every bundle instead of drifting back to a stale value. Only prepublish is temporary.
59
+ extPkg.version = rootPkg.version;
60
+ if (savedPrepublish === undefined) {
61
+ delete extPkg.scripts['vscode:prepublish'];
62
+ }
63
+ else {
64
+ extPkg.scripts['vscode:prepublish'] = savedPrepublish;
65
+ }
66
+ fs.writeFileSync(extPkgPath, JSON.stringify(extPkg, null, 2) + '\n');
67
+ }
68
+ //# sourceMappingURL=bundle-vscode-vsix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle-vscode-vsix.js","sourceRoot":"","sources":["../../bundle-vscode-vsix.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,411 @@
1
+ // Parse a phase token from --phase/--to. Accepts "2", "phase2", "phase 2", "end", "start".
2
+ // Returns NaN when no digit is present and not a known named state so callers can detect
3
+ // a malformed value (e.g. "--to phaseX") instead of silently advancing. (#635)
4
+ const NAMED_PHASE_MAP = { start: 1, phase1: 1, phase2: 2, phase3: 3, phase4: 4, end: 4 };
5
+ function parsePhaseToken(raw) {
6
+ const s = String(raw ?? "").trim().toLowerCase();
7
+ if (NAMED_PHASE_MAP[s] !== undefined)
8
+ return NAMED_PHASE_MAP[s];
9
+ const m = s.match(/\d+/);
10
+ return m ? Number(m[0]) : NaN;
11
+ }
12
+ export function parseTicketArgs(argv) {
13
+ const invocationCwd = process.cwd();
14
+ const out = { cwd: invocationCwd, invocationCwd, dryRun: false, nonInteractive: false, limit: 20 };
15
+ for (let i = 0; i < argv.length; i++) {
16
+ const a = argv[i];
17
+ if (a === "--cwd") {
18
+ out.cwd = argv[++i];
19
+ out.cwdExplicit = true;
20
+ }
21
+ else if (a === "--dry-run")
22
+ out.dryRun = true;
23
+ else if (a === "--apply")
24
+ out.apply = true;
25
+ else if (a === "--non-interactive")
26
+ out.nonInteractive = true;
27
+ else if (a === "--id" || a === "--ticket")
28
+ out.ticketId = argv[++i];
29
+ else if (a === "--title")
30
+ out.title = argv[++i];
31
+ else if (a === "--platform")
32
+ out.platform = argv[++i];
33
+ else if (a === "--group")
34
+ out.group = argv[++i];
35
+ else if (a === "--parent" || a === "--main-ticket")
36
+ out.parent = argv[++i];
37
+ else if (a === "--workspace")
38
+ out.workspace = argv[++i];
39
+ else if (a === "--allow-cwd-target") {
40
+ throw new Error("ticket commands no longer support cwd-based target selection. Use --workspace <id>.");
41
+ }
42
+ else if (a === "--project")
43
+ out.project = argv[++i];
44
+ else if (a === "--content")
45
+ out.content = argv[++i];
46
+ else if (a === "--content-file")
47
+ out.contentFile = argv[++i];
48
+ else if (a === "--from")
49
+ out.from = argv[++i];
50
+ else if (a === "--plan-body")
51
+ out.planBody = argv[++i];
52
+ else if (a === "--plan-body-file")
53
+ out.planBodyFile = argv[++i];
54
+ else if (a === "--ref")
55
+ out.ref = argv[++i];
56
+ else if (a === "--limit")
57
+ out.limit = Number(argv[++i]);
58
+ else if (a === "--submodule")
59
+ out.submodule = argv[++i];
60
+ else if (a === "--latest" || a === "-l")
61
+ out.latest = true;
62
+ else if (a === "--path-only")
63
+ out.pathOnly = true;
64
+ else if (a === "--print-content")
65
+ out.printContent = true;
66
+ else if (a === "--with-total")
67
+ out.withTotal = true;
68
+ else if (a === "--takeover")
69
+ out.takeover = true;
70
+ else if (a === "--all")
71
+ out.all = true;
72
+ else if (a === "--active")
73
+ out.active = true;
74
+ else if (a === "--status")
75
+ out.status = argv[++i];
76
+ else if (a === "--archived")
77
+ out.archived = true;
78
+ else if (a === "--priority")
79
+ out.priority = argv[++i];
80
+ else if (a === "--report")
81
+ out.report = argv[++i];
82
+ else if (a === "--json")
83
+ out.json = true;
84
+ else if (a === "--remote")
85
+ out.remote = argv[++i];
86
+ else if (a === "--sync")
87
+ out.sync = true;
88
+ else if (a === "--no-sync")
89
+ out.sync = false;
90
+ else if (a === "--chain")
91
+ out.chain = true;
92
+ else if (a === "--render")
93
+ out.render = true;
94
+ else if (a === "--docs-language")
95
+ out.docsLanguage = argv[++i];
96
+ else if (a === "--workflow")
97
+ out.workflowMode = argv[++i];
98
+ else if (a === "--approval")
99
+ out.approval = argv[++i];
100
+ else if (a === "--evidence")
101
+ out.evidence = argv[++i];
102
+ else if (a === "--skip-phase0")
103
+ out.skipPhase0 = true;
104
+ else if (a === "--summary")
105
+ out.summary = argv[++i];
106
+ else if (a === "--type")
107
+ out.ticketType = argv[++i];
108
+ else if (a === "--tags")
109
+ out.tags = argv[++i];
110
+ else if (a === "--phase" || a === "--to") {
111
+ out.phase = parsePhaseToken(argv[++i]);
112
+ out.phaseRequested = true;
113
+ }
114
+ else if (a === "--next")
115
+ out.next = true;
116
+ else if (a === "--handoff")
117
+ out.handoff = true;
118
+ else if (a === "--reason")
119
+ out.reason = argv[++i];
120
+ else if (a === "--claim")
121
+ out.claim = argv[++i];
122
+ else if (a === "--require-filled")
123
+ out.requireFilled = true;
124
+ else if (a === "--allow-placeholder")
125
+ out.allowPlaceholder = true;
126
+ else if (a === "--compact")
127
+ out.compact = true;
128
+ else if (a === "--status-detail")
129
+ out.statusDetail = true;
130
+ else if (a === "--verbose")
131
+ out.verbose = true;
132
+ else if (a === "-h" || a === "--help")
133
+ out.help = true;
134
+ else if (a === "--session-id")
135
+ out.sessionId = argv[++i];
136
+ else if (a.startsWith("-")) {
137
+ // #775: unknown 플래그를 조용히 무시하지 않는다. 에이전트가 흔히 쓰는
138
+ // --description/--body 등을 no-op으로 삼키면, 그 뒤 본문이 positional로
139
+ // ticketId에 둔갑 흡수되고(아래 분기) plan-body 없음으로 모호하게 실패해
140
+ // 원인을 못 짚고 반복 실패한다. 결정적 에러로 즉시 알린다.
141
+ const hint = UNKNOWN_FLAG_HINTS[a];
142
+ throw new Error(`unknown flag: ${a}` +
143
+ (hint ? ` (did you mean ${hint}?)` : "") +
144
+ `. Run \`deuk-agent-flow ticket --help\` for supported flags.`);
145
+ }
146
+ // #775: positional 토큰은 selector(ticketId) 후보. 단, title/plan-body/summary가
147
+ // 이미 있는 create 컨텍스트에서 떠도는 본문 문자열을 ticketId로 흡수하면
148
+ // 본문이 거대한 ID로 둔갑한다. 이미 selector가 있거나 본문 입력이 잡혔으면 거부.
149
+ else if (out.ticketId !== undefined) {
150
+ throw new Error(`unexpected extra argument: "${truncateArg(a)}". ` +
151
+ `A ticket selector is already set ("${truncateArg(String(out.ticketId))}"). ` +
152
+ `Pass free-form text via --plan-body/--summary, not as a positional argument.`);
153
+ }
154
+ else if (out.title !== undefined || out.summary !== undefined || out.planBody !== undefined || out.planBodyFile !== undefined) {
155
+ throw new Error(`unexpected positional argument: "${truncateArg(a)}". ` +
156
+ `Use --plan-body or --summary for descriptive text; positional input is only the ticket id/selector.`);
157
+ }
158
+ else
159
+ out.ticketId = a;
160
+ }
161
+ return out;
162
+ }
163
+ // #775: 흔히 오타·타 CLI 관습으로 들어오는 미지원 플래그를 올바른 플래그로 안내.
164
+ const UNKNOWN_FLAG_HINTS = {
165
+ "--description": "--plan-body or --summary",
166
+ "--desc": "--plan-body or --summary",
167
+ "--body": "--plan-body",
168
+ "--message": "--summary",
169
+ "-m": "--summary",
170
+ "--name": "--title",
171
+ "--ws": "--workspace",
172
+ };
173
+ // 에러 메시지에 긴 본문이 통째로 찍히지 않도록 길이를 자른다.
174
+ function truncateArg(value, max = 60) {
175
+ const s = String(value ?? "").replace(/\s+/g, " ").trim();
176
+ return s.length > max ? `${s.slice(0, max)}…` : s;
177
+ }
178
+ export function parseArgs(argv) {
179
+ const out = { cwd: process.cwd(), dryRun: false, backup: false };
180
+ for (let i = 0; i < argv.length; i++) {
181
+ const a = argv[i];
182
+ if (a === "--cwd") {
183
+ out.cwd = argv[++i];
184
+ out.cwdExplicit = true;
185
+ }
186
+ else if (a === "--dry-run")
187
+ out.dryRun = true;
188
+ else if (a === "--backup")
189
+ out.backup = true;
190
+ else if (a === "--non-interactive")
191
+ out.nonInteractive = true;
192
+ else if (a === "--interactive")
193
+ out.interactive = true;
194
+ else if (a === "--clean")
195
+ out.clean = true;
196
+ else if (a === "--tag")
197
+ out.tag = argv[++i];
198
+ else if (a === "--platform")
199
+ out.platform = argv[++i];
200
+ else if (a === "--marker-begin")
201
+ out.markerBegin = argv[++i];
202
+ else if (a === "--marker-end")
203
+ out.markerEnd = argv[++i];
204
+ else if (a === "--cursorrules")
205
+ out.cursorrules = argv[++i];
206
+ else if (a === "--append-if-no-markers")
207
+ out.appendIfNoMarkers = true;
208
+ else if (a === "--workflow")
209
+ out.workflowMode = argv[++i];
210
+ else if (a === "--approval")
211
+ out.approval = argv[++i];
212
+ else if (a === "--workspace")
213
+ out.workspace = argv[++i];
214
+ else if (a === "--prompt")
215
+ out.prompt = argv[++i];
216
+ else if (a === "--project")
217
+ out.project = argv[++i];
218
+ else if (a === "--section")
219
+ out.section = argv[++i];
220
+ else if (a === "--json")
221
+ out.json = true;
222
+ else if (a === "--path-only")
223
+ out.pathOnly = true;
224
+ else if (a === "--remote")
225
+ out.remote = argv[++i];
226
+ else if (a === "--kind" || a === "--workspace-kind")
227
+ out.workspaceKind = argv[++i];
228
+ else if (a === "--stack" || a === "--technical-surface")
229
+ out.stack = argv[++i];
230
+ else if (a === "--context-mcp")
231
+ out.contextMcp = argv[++i];
232
+ else if (a === "--sync")
233
+ out.sync = true;
234
+ else if (a === "--no-sync")
235
+ out.sync = false;
236
+ else if (a === "--docs-language")
237
+ out.docsLanguage = argv[++i];
238
+ else if (a === "--compact")
239
+ out.compact = true;
240
+ else if (a === "--session-id")
241
+ out.sessionId = argv[++i];
242
+ else if (a === "-h" || a === "--help")
243
+ out.help = true;
244
+ }
245
+ return out;
246
+ }
247
+ export function parseSkillArgs(argv) {
248
+ const out = { cwd: process.cwd(), dryRun: false, nonInteractive: false };
249
+ for (let i = 0; i < argv.length; i++) {
250
+ const a = argv[i];
251
+ if (a === "--cwd")
252
+ out.cwd = argv[++i];
253
+ else if (a === "--dry-run")
254
+ out.dryRun = true;
255
+ else if (a === "--non-interactive")
256
+ out.nonInteractive = true;
257
+ else if (a === "--skill" || a === "--id")
258
+ out.skill = argv[++i];
259
+ else if (a === "--platform")
260
+ out.platform = argv[++i];
261
+ else if (a === "--json")
262
+ out.json = true;
263
+ }
264
+ return out;
265
+ }
266
+ export function parseUsageArgs(argv) {
267
+ const out = {
268
+ cwd: process.cwd(),
269
+ json: false,
270
+ platform: "",
271
+ client: "",
272
+ agentId: "",
273
+ weeklyRemaining: null,
274
+ fiveHourRemaining: null,
275
+ weeklyReset: "",
276
+ fiveHourReset: "",
277
+ taskGrade: "",
278
+ taskLabel: "",
279
+ turnCount: 0,
280
+ linkedTicketCount: 0,
281
+ crossWorkspace: false
282
+ };
283
+ for (let i = 0; i < argv.length; i++) {
284
+ const a = argv[i];
285
+ if (a === "--cwd")
286
+ out.cwd = argv[++i];
287
+ else if (a === "--platform")
288
+ out.platform = argv[++i];
289
+ else if (a === "--client")
290
+ out.client = argv[++i];
291
+ else if (a === "--agent" || a === "--agent-id")
292
+ out.agentId = argv[++i];
293
+ else if (a === "--weekly-remaining")
294
+ out.weeklyRemaining = Number(argv[++i]);
295
+ else if (a === "--five-hour-remaining")
296
+ out.fiveHourRemaining = Number(argv[++i]);
297
+ else if (a === "--weekly-reset")
298
+ out.weeklyReset = argv[++i];
299
+ else if (a === "--five-hour-reset")
300
+ out.fiveHourReset = argv[++i];
301
+ else if (a === "--task-grade")
302
+ out.taskGrade = argv[++i];
303
+ else if (a === "--task" || a === "--task-label")
304
+ out.taskLabel = argv[++i];
305
+ else if (a === "--turns" || a === "--turn-count")
306
+ out.turnCount = Number(argv[++i]);
307
+ else if (a === "--linked-tickets" || a === "--linked-ticket-count")
308
+ out.linkedTicketCount = Number(argv[++i]);
309
+ else if (a === "--cross-workspace")
310
+ out.crossWorkspace = true;
311
+ else if (a === "--json")
312
+ out.json = true;
313
+ }
314
+ return out;
315
+ }
316
+ export function parseTelemetryArgs(argv) {
317
+ const out = {
318
+ cwd: process.cwd(),
319
+ tokens: 0,
320
+ tdw: 0,
321
+ model: "",
322
+ client: "",
323
+ agentId: "",
324
+ ticket: "",
325
+ action: "",
326
+ file: "",
327
+ remote: "",
328
+ source: "",
329
+ kind: "",
330
+ event: "",
331
+ occurredAt: "",
332
+ phase: "",
333
+ status: "",
334
+ ragResult: "",
335
+ localFallback: false,
336
+ knowledgeAction: "",
337
+ tokenQuality: "",
338
+ savedTokens: 0,
339
+ sessionMode: "",
340
+ retryCount: 0,
341
+ turnCount: 0,
342
+ failureCount: 0,
343
+ phaseTransitionCount: 0,
344
+ outcome: "",
345
+ qualityScore: 0,
346
+ json: false
347
+ };
348
+ for (let i = 0; i < argv.length; i++) {
349
+ const a = argv[i];
350
+ if (a === "--cwd")
351
+ out.cwd = argv[++i];
352
+ else if (a === "--tokens")
353
+ out.tokens = Number(argv[++i]);
354
+ else if (a === "--tdw")
355
+ out.tdw = Number(argv[++i]);
356
+ else if (a === "--model")
357
+ out.model = argv[++i];
358
+ else if (a === "--client")
359
+ out.client = argv[++i];
360
+ else if (a === "--agent" || a === "--agent-id")
361
+ out.agentId = argv[++i];
362
+ else if (a === "--ticket")
363
+ out.ticket = argv[++i];
364
+ else if (a === "--action")
365
+ out.action = argv[++i];
366
+ else if (a === "--file")
367
+ out.file = argv[++i];
368
+ else if (a === "--remote")
369
+ out.remote = argv[++i];
370
+ else if (a === "--source")
371
+ out.source = argv[++i];
372
+ else if (a === "--kind")
373
+ out.kind = argv[++i];
374
+ else if (a === "--event")
375
+ out.event = argv[++i];
376
+ else if (a === "--occurred-at")
377
+ out.occurredAt = argv[++i];
378
+ else if (a === "--phase")
379
+ out.phase = Number(argv[++i]);
380
+ else if (a === "--status")
381
+ out.status = argv[++i];
382
+ else if (a === "--rag-result")
383
+ out.ragResult = argv[++i];
384
+ else if (a === "--local-fallback")
385
+ out.localFallback = true;
386
+ else if (a === "--knowledge-action")
387
+ out.knowledgeAction = argv[++i];
388
+ else if (a === "--token-quality")
389
+ out.tokenQuality = argv[++i];
390
+ else if (a === "--saved-tokens")
391
+ out.savedTokens = Number(argv[++i]);
392
+ else if (a === "--session-mode")
393
+ out.sessionMode = argv[++i];
394
+ else if (a === "--retries")
395
+ out.retryCount = Number(argv[++i]);
396
+ else if (a === "--turns")
397
+ out.turnCount = Number(argv[++i]);
398
+ else if (a === "--failures")
399
+ out.failureCount = Number(argv[++i]);
400
+ else if (a === "--phase-transitions")
401
+ out.phaseTransitionCount = Number(argv[++i]);
402
+ else if (a === "--outcome")
403
+ out.outcome = argv[++i];
404
+ else if (a === "--quality-score")
405
+ out.qualityScore = Number(argv[++i]);
406
+ else if (a === "--json")
407
+ out.json = true;
408
+ }
409
+ return out;
410
+ }
411
+ //# sourceMappingURL=cli-args.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-args.js","sourceRoot":"","sources":["../../cli-args.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { existsSync } from "fs";
2
+ import { resolve } from "path";
3
+ import { resolvePackageRoot } from "./cli-utils.js";
4
+ import { spawnSync } from "child_process";
5
+ const pkgRoot = resolvePackageRoot({ fromUrl: import.meta.url });
6
+ function contextBinCandidate() {
7
+ if (process.env.DEUK_AGENT_CONTEXT_BIN) {
8
+ return resolve(process.env.DEUK_AGENT_CONTEXT_BIN);
9
+ }
10
+ return resolve(pkgRoot, "..", "DeukAgentContext", "bin", "deuk-agent-context.js");
11
+ }
12
+ export function runContextCommand(args = []) {
13
+ const localBin = contextBinCandidate();
14
+ const result = existsSync(localBin)
15
+ ? spawnSync(process.execPath, [localBin, ...args], { stdio: "inherit", cwd: process.cwd() })
16
+ : spawnSync("deuk-agent-context", args, {
17
+ stdio: "inherit",
18
+ cwd: process.cwd(),
19
+ shell: process.platform === "win32",
20
+ });
21
+ if (result.error) {
22
+ if (result.error.code === "ENOENT") {
23
+ throw new Error("deuk-agent-context command not found. Install or link DeukAgentContext, or set DEUK_AGENT_CONTEXT_BIN.");
24
+ }
25
+ throw result.error;
26
+ }
27
+ if (typeof result.status === "number" && result.status !== 0) {
28
+ process.exit(result.status);
29
+ }
30
+ }
31
+ //# sourceMappingURL=cli-context-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-context-commands.js","sourceRoot":"","sources":["../../cli-context-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAW,OAAO,EAAE,MAAM,MAAM,CAAC;AAExC,OAAO,EAAqB,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,OAAO,GAAG,kBAAkB,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AAEjE,SAAS,mBAAmB;IAC1B,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC;QACvC,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,uBAAuB,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAI,GAAG,EAAE;IACzC,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC;QACjC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QAC5F,CAAC,CAAC,SAAS,CAAC,oBAAoB,EAAE,IAAI,EAAE;YACpC,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,KAAK,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;SACpC,CAAC,CAAC;IAEP,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,IAAK,MAAM,CAAC,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9D,MAAM,IAAI,KAAK,CAAC,wGAAwG,CAAC,CAAC;QAC5H,CAAC;QACD,MAAM,MAAM,CAAC,KAAK,CAAC;IACrB,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}