koneck 2.29.0 → 2.30.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +32 -0
  2. package/dist/checkpoint.d.ts +20 -0
  3. package/dist/checkpoint.d.ts.map +1 -1
  4. package/dist/checkpoint.js +169 -10
  5. package/dist/checkpoint.js.map +1 -1
  6. package/dist/completion-notices.d.ts +8 -0
  7. package/dist/completion-notices.d.ts.map +1 -0
  8. package/dist/completion-notices.js +14 -0
  9. package/dist/completion-notices.js.map +1 -0
  10. package/dist/config-store.d.ts +2 -0
  11. package/dist/config-store.d.ts.map +1 -1
  12. package/dist/config-store.js +6 -2
  13. package/dist/config-store.js.map +1 -1
  14. package/dist/config.d.ts +9 -0
  15. package/dist/config.d.ts.map +1 -1
  16. package/dist/config.js +28 -1
  17. package/dist/config.js.map +1 -1
  18. package/dist/engine.d.ts +9 -12
  19. package/dist/engine.d.ts.map +1 -1
  20. package/dist/engine.js +48 -26
  21. package/dist/engine.js.map +1 -1
  22. package/dist/git-diff.d.ts +16 -0
  23. package/dist/git-diff.d.ts.map +1 -0
  24. package/dist/git-diff.js +56 -0
  25. package/dist/git-diff.js.map +1 -0
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +36 -28
  28. package/dist/index.js.map +1 -1
  29. package/dist/ink-chat.d.ts +83 -1
  30. package/dist/ink-chat.d.ts.map +1 -1
  31. package/dist/ink-chat.js +772 -53
  32. package/dist/ink-chat.js.map +1 -1
  33. package/dist/permissions.d.ts.map +1 -1
  34. package/dist/permissions.js +67 -9
  35. package/dist/permissions.js.map +1 -1
  36. package/dist/preflight.d.ts +24 -0
  37. package/dist/preflight.d.ts.map +1 -0
  38. package/dist/preflight.js +87 -0
  39. package/dist/preflight.js.map +1 -0
  40. package/dist/refactor.d.ts +7 -3
  41. package/dist/refactor.d.ts.map +1 -1
  42. package/dist/refactor.js +122 -35
  43. package/dist/refactor.js.map +1 -1
  44. package/dist/run-limits.d.ts +9 -0
  45. package/dist/run-limits.d.ts.map +1 -0
  46. package/dist/run-limits.js +13 -0
  47. package/dist/run-limits.js.map +1 -0
  48. package/dist/session-bus.d.ts +14 -0
  49. package/dist/session-bus.d.ts.map +1 -1
  50. package/dist/session-bus.js +24 -3
  51. package/dist/session-bus.js.map +1 -1
  52. package/dist/session.d.ts +20 -0
  53. package/dist/session.d.ts.map +1 -1
  54. package/dist/session.js +27 -7
  55. package/dist/session.js.map +1 -1
  56. package/dist/types.d.ts +7 -1
  57. package/dist/types.d.ts.map +1 -1
  58. package/dist/worktree.d.ts +2 -0
  59. package/dist/worktree.d.ts.map +1 -1
  60. package/dist/worktree.js +68 -4
  61. package/dist/worktree.js.map +1 -1
  62. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAEhD,wFAAwF;AACxF,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEjD,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE7D,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACnC,4FAA4F;IAC5F,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,KAAK,EAAE,SAAS,QAAQ,EAkCpC,CAAC;AAEF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAE/C;AAcD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAM/C;AAED,2FAA2F;AAC3F,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAWD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQ/D;AAED,+CAA+C;AAC/C,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAUpF;AAiCD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAsB1D;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CACpB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,SAAS,SAAS,EAAE,GAC1B,QAAQ,CAaV;AAMD;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAUjE;AAED,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAIvF;AAED,yDAAyD;AACzD,wBAAgB,OAAO,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,GAAG,SAAS,EAAE,CAIjF;AAED,kEAAkE;AAClE,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAEpD"}
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAEhD,wFAAwF;AACxF,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEjD,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE7D,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACnC,4FAA4F;IAC5F,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,KAAK,EAAE,SAAS,QAAQ,EAkCpC,CAAC;AAEF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAE/C;AAcD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAM/C;AAED,2FAA2F;AAC3F,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAWD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQ/D;AAED,+CAA+C;AAC/C,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAUpF;AA6FD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAqB1D;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CACpB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,SAAS,SAAS,EAAE,GAC1B,QAAQ,CAaV;AAMD;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAUjE;AAED,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAIvF;AAED,yDAAyD;AACzD,wBAAgB,OAAO,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,GAAG,SAAS,EAAE,CAIjF;AAED,kEAAkE;AAClE,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAEpD"}
@@ -45,7 +45,7 @@ const READ_TOOLS = new Set([
45
45
  /** Tools that change the working tree. */
46
46
  const WRITE_TOOLS = new Set([
47
47
  'write_file', 'apply_diff', 'search_replace', 'move_file', 'delete_file',
48
- 'git_commit', 'git_create_branch', 'git_checkout', 'git_stash',
48
+ 'git_commit', 'git_create_branch', 'git_checkout', 'git_stash', 'native_refactor',
49
49
  ]);
50
50
  export function toolRisk(name) {
51
51
  if (READ_TOOLS.has(name))
@@ -122,15 +122,73 @@ const READ_ONLY_COMMANDS = new Set([
122
122
  ]);
123
123
  /** Subcommands of tools that are safe only in part: `git log` yes, `git push` emphatically not. */
124
124
  const READ_ONLY_SUBCOMMANDS = {
125
- git: new Set(['status', 'log', 'diff', 'show', 'branch', 'remote', 'blame', 'describe',
126
- 'rev-parse', 'ls-files', 'shortlog', 'tag', 'config']),
127
- npm: new Set(['ls', 'list', 'view', 'outdated', 'why', 'root', 'prefix', 'config']),
125
+ // `branch`, `remote`, `tag`, and `config` each have innocent-looking write forms. They are
126
+ // handled below with an argument-aware grammar rather than trusted by name alone.
127
+ git: new Set(['status', 'log', 'diff', 'show', 'blame', 'describe', 'rev-parse', 'ls-files', 'shortlog']),
128
+ // `npm config set` writes global or project configuration; query forms are handled below.
129
+ npm: new Set(['ls', 'list', 'view', 'outdated', 'why', 'root', 'prefix']),
128
130
  yarn: new Set(['list', 'why', 'info']),
129
131
  pnpm: new Set(['list', 'why', 'root']),
130
132
  cargo: new Set(['tree', 'metadata']),
131
133
  docker: new Set(['ps', 'images', 'version', 'info']),
132
134
  kubectl: new Set(['get', 'describe', 'version']),
133
135
  };
136
+ const GIT_EXTERNAL_FILTER_FLAGS = new Set(['--ext-diff', '--textconv']);
137
+ const GIT_MUTATING_BRANCH_FLAGS = new Set(['-d', '-D', '-m', '-M', '--delete', '--move', '--set-upstream-to', '--edit-description']);
138
+ function hasOption(options, option) {
139
+ return options.some(value => value === option || value.startsWith(`${option}=`));
140
+ }
141
+ function isReadOnlyGit(words) {
142
+ const sub = (words[1] ?? '').toLowerCase();
143
+ const args = words.slice(2);
144
+ if (READ_ONLY_SUBCOMMANDS.git.has(sub)) {
145
+ // Git can execute configured external diff or text-conversion drivers. They are not an
146
+ // observation guarantee merely because the verb is `diff` or `show`.
147
+ return ![...GIT_EXTERNAL_FILTER_FLAGS].some(option => hasOption(args, option));
148
+ }
149
+ if (sub === 'branch') {
150
+ // Listing is safe; naming a branch creates it, while several flags delete/move/configure it.
151
+ return args.every(arg => arg.startsWith('-') && ![...GIT_MUTATING_BRANCH_FLAGS].some(option => hasOption([arg], option)));
152
+ }
153
+ if (sub === 'tag') {
154
+ // A bare `git tag` lists. Require --list for any optioned form; a positional tag name creates.
155
+ return args.length === 0 || args.every(arg => arg === '-l' || arg === '--list' || arg.startsWith('--list='));
156
+ }
157
+ if (sub === 'remote') {
158
+ return args.length === 0 || args.every(arg => arg === '-v');
159
+ }
160
+ if (sub === 'config') {
161
+ const query = args.some(arg => ['--get', '--get-all', '--get-regexp', '--list', '--get-urlmatch', '--show-origin', '--show-scope'].includes(arg));
162
+ // A single key with no value is Git's read form; two positional values would set it.
163
+ const values = args.filter(arg => !arg.startsWith('-'));
164
+ return query || values.length === 1;
165
+ }
166
+ return false;
167
+ }
168
+ function isReadOnlyNpmConfig(words) {
169
+ const operation = (words[2] ?? '').toLowerCase();
170
+ return operation === 'get' || operation === 'list';
171
+ }
172
+ /** Options that make otherwise observational Unix tools execute or write. */
173
+ function genericReadCommandIsSafe(head, words) {
174
+ const args = words.slice(1);
175
+ if (head === 'find') {
176
+ return !args.some(arg => [
177
+ '-delete', '-exec', '-execdir', '-ok', '-okdir', '-fprint', '-fprint0', '-fprintf', '-fls',
178
+ ].includes(arg));
179
+ }
180
+ if (head === 'env') {
181
+ // `env NAME=value` only prints an environment, but `env NAME=value command` executes it.
182
+ return args.every(arg => arg.startsWith('-') ? arg !== '-S' && !arg.startsWith('--split-string') : arg.includes('='));
183
+ }
184
+ if (head === 'sort')
185
+ return !args.some(arg => arg === '-o' || arg.startsWith('--output'));
186
+ if (head === 'diff')
187
+ return !args.some(arg => arg === '-o' || arg.startsWith('--output'));
188
+ if (head === 'tree')
189
+ return !args.some(arg => arg === '-o' || arg.startsWith('--output'));
190
+ return true;
191
+ }
134
192
  /**
135
193
  * Whether a command only reads.
136
194
  *
@@ -147,6 +205,10 @@ export function isReadOnlyCommand(command) {
147
205
  // Redirection writes files even when the command itself would not.
148
206
  if (words.some(w => w === '>' || w === '>>'))
149
207
  return false;
208
+ if (head === 'git')
209
+ return isReadOnlyGit(words);
210
+ if (head === 'npm' && (words[1] ?? '').toLowerCase() === 'config')
211
+ return isReadOnlyNpmConfig(words);
150
212
  const subcommands = READ_ONLY_SUBCOMMANDS[head];
151
213
  if (subcommands) {
152
214
  const sub = (words[1] ?? '').toLowerCase();
@@ -154,11 +216,7 @@ export function isReadOnlyCommand(command) {
154
216
  }
155
217
  if (!READ_ONLY_COMMANDS.has(head))
156
218
  return false;
157
- // `find … -delete` and `find … -exec` are not reads at all.
158
- if (head === 'find' && words.some(w => w === '-delete' || w === '-exec' || w === '-execdir')) {
159
- return false;
160
- }
161
- return true;
219
+ return genericReadCommandIsSafe(head, words);
162
220
  }
163
221
  /**
164
222
  * What should happen to one tool call: run it, ask, or refuse.
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AAiCxB,MAAM,CAAC,MAAM,KAAK,GAAwB;IACxC;QACE,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,0DAA0D;QACjE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;QACxD,MAAM,EAAE,EAAE;KACX;IACD;QACE,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,kDAAkD;QACzD,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE;QACtD,MAAM,EAAE,EAAE;KACX;IACD;QACE,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,mDAAmD;QAC1D,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;QACpD,MAAM,EAAE,EAAE;KACX;IACD;QACE,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,kDAAkD;QACzD,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;QACtD,uFAAuF;QACvF,oDAAoD;QACpD,MAAM,EACJ,qFAAqF;YACrF,uFAAuF;YACvF,+DAA+D;KAClE;CACF,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAE,CAAC;AACvD,CAAC;AAED,qGAAqG;AACrG,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACzB,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY;IACjF,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS;CACxD,CAAC,CAAC;AAEH,0CAA0C;AAC1C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IAC1B,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,aAAa;IACxE,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,WAAW,EAAE,iBAAiB;CAClF,CAAC,CAAC;AAEH,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IACxC,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IAC1C,qFAAqF;IACrF,kFAAkF;IAClF,OAAO,MAAM,CAAC;AAChB,CAAC;AASD;;;;;;GAMG;AACH,MAAM,cAAc,GAAG,iBAAiB,CAAC;AAEzC;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAe;IACrD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;IAC9B,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACpD,OAAO,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC;AAC9B,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,WAAW,CAAC,IAAe,EAAE,IAAY,EAAE,QAAgB;IACzE,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACrC,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,CAAC;QAAC,OAAO,GAAG,MAAM,CAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAA2B,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;IAChH,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC5B,6FAA6F;IAC7F,uFAAuF;IACvF,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC;AAGD;;;;;;;;;;GAUG;AACH,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IACjC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;IAC7E,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU;IAC/E,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS;IACrF,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO;CACtE,CAAC,CAAC;AAEH,mGAAmG;AACnG,MAAM,qBAAqB,GAAkD;IAC3E,2FAA2F;IAC3F,kFAAkF;IAClF,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IACzG,0FAA0F;IAC1F,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzE,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACtC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACtC,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACpC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACpD,OAAO,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;CACjD,CAAC;AAEF,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;AACxE,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,mBAAmB,EAAE,oBAAoB,CAAC,CAAC,CAAC;AAErI,SAAS,SAAS,CAAC,OAA0B,EAAE,MAAc;IAC3D,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,aAAa,CAAC,KAAwB;IAC7C,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,uFAAuF;QACvF,qEAAqE;QACrE,OAAO,CAAC,CAAC,GAAG,yBAAyB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;QACrB,6FAA6F;QAC7F,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,yBAAyB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5H,CAAC;IACD,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;QAClB,+FAA+F;QAC/F,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/G,CAAC;IACD,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAClJ,qFAAqF;QACrF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QACxD,OAAO,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAwB;IACnD,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACjD,OAAO,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,MAAM,CAAC;AACrD,CAAC;AAED,6EAA6E;AAC7E,SAAS,wBAAwB,CAAC,IAAY,EAAE,KAAwB;IACtE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM;SAC3F,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACnB,CAAC;IACD,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,yFAAyF;QACzF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACxH,CAAC;IACD,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1F,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1F,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1F,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAErD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAE5C,mEAAmE;IACnE,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAE3D,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,QAAQ;QAAE,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAErG,MAAM,WAAW,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3C,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAEhD,OAAO,wBAAwB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CACpB,IAAY,EACZ,IAAY,EACZ,QAAgB,EAChB,KAA2B;IAE3B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IAEhC,2FAA2F;IAC3F,mFAAmF;IACnF,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAC/B,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC;YAAC,OAAO,GAAG,MAAM,CAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAA2B,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC;QAC5G,IAAI,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC;YAAE,OAAO,OAAO,CAAC;IAC5D,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAC3E,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;AACvD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAW;IACzC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;QACtD,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAkB,EAAE,CACzC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,OAAQ,CAAe,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACtF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,KAA2B;IACtE,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;AAC1E,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,OAAO,CAAC,KAA2B,EAAE,IAAe;IAClE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAC7B,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC;AACjD,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,YAAY,CAAC,IAAe;IAC1C,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,2BAA2B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,OAAO,CAAC;AAC3F,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { type QualityGateResult } from './quality-gate.js';
2
+ export interface PreflightResult {
3
+ git: boolean;
4
+ staged: number;
5
+ unstaged: number;
6
+ untracked: number;
7
+ whitespacePassed: boolean | null;
8
+ whitespaceOutput?: string;
9
+ quality: QualityGateResult;
10
+ }
11
+ /** A single source of truth for whether the deterministic shipping gate is satisfied. */
12
+ export declare function isPreflightReady(result: PreflightResult): boolean;
13
+ /**
14
+ * Deterministic evidence before a commit or review.
15
+ *
16
+ * This is intentionally not a "clean tree" test: a coding session is normally *meant* to have
17
+ * changes. It instead says what is present, catches malformed patches, and runs the project's
18
+ * own verification commands. A model review remains a complementary judgment, not a substitute.
19
+ */
20
+ export declare function runPreflight(cwd: string): Promise<PreflightResult>;
21
+ /** The last lines contain the actionable compiler/test failure; cap them so a panel stays usable. */
22
+ export declare function diagnosticTail(output: string | undefined, maxLines?: number, maxChars?: number): string | undefined;
23
+ export declare function preflightReport(result: PreflightResult): string;
24
+ //# sourceMappingURL=preflight.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preflight.d.ts","sourceRoot":"","sources":["../src/preflight.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG3E,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED,yFAAyF;AACzF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAGjE;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAsCxE;AAED,qGAAqG;AACrG,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,SAAK,EAAE,QAAQ,SAAQ,GAAG,MAAM,GAAG,SAAS,CAI9G;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAwB/D"}
@@ -0,0 +1,87 @@
1
+ import { execa } from 'execa';
2
+ import { runQualityGate } from './quality-gate.js';
3
+ import { redactSecrets } from './redact.js';
4
+ /** A single source of truth for whether the deterministic shipping gate is satisfied. */
5
+ export function isPreflightReady(result) {
6
+ return result.git && result.whitespacePassed === true &&
7
+ result.quality.checks.length > 0 && result.quality.passed;
8
+ }
9
+ /**
10
+ * Deterministic evidence before a commit or review.
11
+ *
12
+ * This is intentionally not a "clean tree" test: a coding session is normally *meant* to have
13
+ * changes. It instead says what is present, catches malformed patches, and runs the project's
14
+ * own verification commands. A model review remains a complementary judgment, not a substitute.
15
+ */
16
+ export async function runPreflight(cwd) {
17
+ const quality = await runQualityGate(cwd, { report: false });
18
+ // Test suites and linters sometimes write coverage or generated fixtures. All Git evidence is
19
+ // gathered after they settle, otherwise one preflight can describe several different trees.
20
+ const [status, unstagedCheck, stagedCheck] = await Promise.all([
21
+ execa('git', ['status', '--porcelain'], { cwd, all: true, reject: false }),
22
+ execa('git', ['diff', '--check', '--no-ext-diff'], { cwd, all: true, reject: false }),
23
+ execa('git', ['diff', '--cached', '--check', '--no-ext-diff'], { cwd, all: true, reject: false }),
24
+ ]);
25
+ const git = status.exitCode === 0;
26
+ const entries = git ? (status.all ?? '').split('\n').filter(Boolean) : [];
27
+ const staged = entries.filter(line => !line.startsWith('??') && line[0] && line[0] !== ' ').length;
28
+ const unstaged = entries.filter(line => !line.startsWith('??') && line[1] && line[1] !== ' ').length;
29
+ const untracked = entries.filter(line => line.startsWith('??')).length;
30
+ // `git diff --check` only sees tracked patches. Check each untracked path as a diff against
31
+ // /dev/null too, otherwise a new file with trailing whitespace can slip through a "ready"
32
+ // report. `--no-index` exits 1 merely because files differ; its output is the evidence here.
33
+ const untrackedFiles = git
34
+ ? await execa('git', ['ls-files', '--others', '--exclude-standard', '-z'], { cwd, all: true, reject: false })
35
+ .then(r => r.exitCode === 0 ? r.stdout.split('\0').filter(Boolean) : [])
36
+ : [];
37
+ const untrackedChecks = await Promise.all(untrackedFiles.map(file => execa('git', ['diff', '--check', '--no-index', '/dev/null', file], { cwd, all: true, reject: false })));
38
+ const untrackedOutput = untrackedChecks.map(check => check.all ?? '').filter(Boolean).join('\n').trim();
39
+ return {
40
+ git,
41
+ staged,
42
+ unstaged,
43
+ untracked,
44
+ whitespacePassed: git ? unstagedCheck.exitCode === 0 && stagedCheck.exitCode === 0 && !untrackedOutput : null,
45
+ ...((unstagedCheck.all || stagedCheck.all || untrackedOutput)
46
+ ? { whitespaceOutput: redactSecrets([unstagedCheck.all, stagedCheck.all, untrackedOutput].filter(Boolean).join('\n').trim()) }
47
+ : {}),
48
+ quality,
49
+ };
50
+ }
51
+ /** The last lines contain the actionable compiler/test failure; cap them so a panel stays usable. */
52
+ export function diagnosticTail(output, maxLines = 18, maxChars = 1_800) {
53
+ const text = redactSecrets(output ?? '').trim();
54
+ if (!text)
55
+ return undefined;
56
+ return text.split('\n').slice(-maxLines).join('\n').slice(-maxChars);
57
+ }
58
+ export function preflightReport(result) {
59
+ const lines = ['**Preflight**'];
60
+ if (!result.git) {
61
+ lines.push('', 'Git: not a repository — patch integrity could not be checked.');
62
+ }
63
+ else {
64
+ lines.push('', `Working tree: ${result.staged} staged · ${result.unstaged} unstaged · ${result.untracked} untracked`);
65
+ lines.push(`Patch whitespace: ${result.whitespacePassed ? 'PASS' : 'FAIL'}`);
66
+ const whitespace = diagnosticTail(result.whitespaceOutput);
67
+ if (whitespace)
68
+ lines.push('```', whitespace, '```');
69
+ }
70
+ if (result.quality.checks.length === 0) {
71
+ lines.push('Quality: no lint or test command detected.');
72
+ }
73
+ else {
74
+ for (const check of result.quality.checks) {
75
+ lines.push(`Quality — ${check.label}: ${check.passed ? 'PASS' : 'FAIL'} (${Math.round(check.durationMs)}ms)`);
76
+ const diagnostic = check.passed ? undefined : diagnosticTail(check.output);
77
+ if (diagnostic)
78
+ lines.push('```', diagnostic, '```');
79
+ }
80
+ }
81
+ const ready = isPreflightReady(result);
82
+ lines.push('', ready
83
+ ? 'Ready for human review. Run `/review` for an evidence-based code review, then commit when satisfied.'
84
+ : 'Not ready to ship yet. Resolve failures above, then run `/preflight` again.');
85
+ return lines.join('\n');
86
+ }
87
+ //# sourceMappingURL=preflight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../src/preflight.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,14 @@
1
1
  import type { AgentConfig } from './types.js';
2
- export declare function renameSymbol(symbolName: string, newName: string, cwd: string): Promise<{
2
+ type RefactorOptions = {
3
+ announce?: boolean;
4
+ };
5
+ export declare function renameSymbol(symbolName: string, newName: string, cwd: string, options?: RefactorOptions): Promise<{
3
6
  filesChanged: string[];
4
7
  occurrences: number;
5
8
  }>;
6
- export declare function extractInterface(filePath: string, className: string, cwd: string): Promise<void>;
7
- export declare function moveSymbol(symbolName: string, fromFile: string, toFile: string, cwd: string): Promise<void>;
9
+ export declare function extractInterface(filePath: string, className: string, cwd: string, options?: RefactorOptions): Promise<void>;
10
+ export declare function moveSymbol(symbolName: string, fromFile: string, toFile: string, cwd: string, options?: RefactorOptions): Promise<void>;
8
11
  export declare function splitFile(filePath: string, cwd: string, config: AgentConfig): Promise<void>;
9
12
  export declare function runRefactor(action: 'rename' | 'extract' | 'move' | 'split', args: string[], config: AgentConfig): Promise<void>;
13
+ export {};
10
14
  //# sourceMappingURL=refactor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"refactor.d.ts","sourceRoot":"","sources":["../src/refactor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAK9C,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CA0B1D;AAID,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAkCf;AAID,wBAAsB,UAAU,CAC9B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CA8Df;AAID,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBjG;AAID,wBAAsB,WAAW,CAC/B,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,EAC/C,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,CAuBf"}
1
+ {"version":3,"file":"refactor.d.ts","sourceRoot":"","sources":["../src/refactor.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,KAAK,eAAe,GAAG;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAsC9C,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CA+B1D;AAID,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAuCf;AAID,wBAAsB,UAAU,CAC9B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAyGf;AAID,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBjG;AAID,wBAAsB,WAAW,CAC/B,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,EAC/C,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,CAuBf"}
package/dist/refactor.js CHANGED
@@ -1,11 +1,50 @@
1
1
  import path from 'node:path';
2
+ import fs from 'node:fs/promises';
2
3
  import chalk from 'chalk';
3
4
  import { Project, SyntaxKind } from 'ts-morph';
4
5
  import { runAgent } from './engine.js';
6
+ /** ESM relative specifier for a TypeScript source path, without awkward `./../` segments. */
7
+ function relativeModuleSpecifier(fromFile, toFile) {
8
+ const rel = path.relative(path.dirname(fromFile), toFile).replace(/\.ts$/, '.js');
9
+ return rel.startsWith('.') ? rel : `./${rel}`;
10
+ }
11
+ /** Native refactors are workspace operations; never let an escape or symlink edit a neighbor. */
12
+ async function workspacePath(cwd, target) {
13
+ const absolute = path.resolve(cwd, target);
14
+ const root = await fs.realpath(cwd).catch(() => path.resolve(cwd));
15
+ // Resolve the target when it exists; for a new destination, resolve its nearest existing parent
16
+ // and retain the missing tail. This catches `workspace/link -> /outside` before any write.
17
+ let probe = absolute;
18
+ const missingTail = [];
19
+ let resolved;
20
+ for (;;) {
21
+ try {
22
+ resolved = await fs.realpath(probe);
23
+ break;
24
+ }
25
+ catch {
26
+ const parent = path.dirname(probe);
27
+ if (parent === probe) {
28
+ resolved = absolute;
29
+ break;
30
+ }
31
+ missingTail.unshift(path.basename(probe));
32
+ probe = parent;
33
+ }
34
+ }
35
+ const effective = path.join(resolved, ...missingTail);
36
+ const relative = path.relative(root, effective);
37
+ if (relative.startsWith('..') || path.isAbsolute(relative)) {
38
+ throw new Error(`Refactor path must stay inside the workspace: ${target}`);
39
+ }
40
+ return absolute;
41
+ }
5
42
  // ─── Rename Symbol ────────────────────────────────────────────────────────────
6
- export async function renameSymbol(symbolName, newName, cwd) {
43
+ export async function renameSymbol(symbolName, newName, cwd, options = {}) {
7
44
  const project = new Project({ tsConfigFilePath: path.join(cwd, 'tsconfig.json') });
8
- const changedFiles = new Set();
45
+ // ts-morph's rename can update imports and references in files other than the source where the
46
+ // symbol was found. Measure the final project text rather than reporting only that first file.
47
+ const before = new Map(project.getSourceFiles().map(source => [source.getFilePath(), source.getFullText()]));
9
48
  let occurrences = 0;
10
49
  try {
11
50
  for (const sourceFile of project.getSourceFiles()) {
@@ -16,22 +55,25 @@ export async function renameSymbol(symbolName, newName, cwd) {
16
55
  occurrences += identifiers.length;
17
56
  // rename all via the first node's rename (ts-morph propagates across project)
18
57
  identifiers[0].rename(newName);
19
- changedFiles.add(sourceFile.getFilePath());
20
58
  }
21
59
  await project.save();
22
60
  }
23
61
  catch (err) {
24
62
  throw new Error(`renameSymbol failed: ${err.message}`);
25
63
  }
26
- const filesChanged = Array.from(changedFiles);
27
- console.log(chalk.green('✔') +
28
- ` Renamed "${symbolName}" → "${newName}" in ${filesChanged.length} files (${occurrences} occurrences)`);
64
+ const filesChanged = project.getSourceFiles()
65
+ .filter(source => source.getFullText() !== before.get(source.getFilePath()))
66
+ .map(source => source.getFilePath());
67
+ if (options.announce !== false) {
68
+ console.log(chalk.green('✔') +
69
+ ` Renamed "${symbolName}" → "${newName}" in ${filesChanged.length} files (${occurrences} occurrences)`);
70
+ }
29
71
  return { filesChanged, occurrences };
30
72
  }
31
73
  // ─── Extract Interface ────────────────────────────────────────────────────────
32
- export async function extractInterface(filePath, className, cwd) {
74
+ export async function extractInterface(filePath, className, cwd, options = {}) {
33
75
  const project = new Project({ tsConfigFilePath: path.join(cwd, 'tsconfig.json') });
34
- const absPath = path.isAbsolute(filePath) ? filePath : path.join(cwd, filePath);
76
+ const absPath = await workspacePath(cwd, filePath);
35
77
  try {
36
78
  const sourceFile = project.getSourceFileOrThrow(absPath);
37
79
  const classDecl = sourceFile.getClassOrThrow(className);
@@ -45,85 +87,130 @@ export async function extractInterface(filePath, className, cwd) {
45
87
  const interfaceContent = `export interface ${interfaceName} {\n${signatures.join('\n')}\n}\n`;
46
88
  const dir = path.dirname(absPath);
47
89
  const outPath = path.join(dir, `${interfaceName}.ts`);
48
- const newFile = project.createSourceFile(outPath, interfaceContent, { overwrite: true });
49
- await newFile.save();
90
+ const exists = await fs.access(outPath).then(() => true).catch(() => false);
91
+ if (exists) {
92
+ throw new Error(`Refusing to overwrite existing interface file ${path.relative(cwd, outPath)}`);
93
+ }
94
+ project.createSourceFile(outPath, interfaceContent, { overwrite: false });
50
95
  // Add implements clause to the class
51
96
  const relImport = `./${interfaceName}.js`;
52
97
  sourceFile.addImportDeclaration({ namedImports: [interfaceName], moduleSpecifier: relImport });
53
98
  classDecl.addImplements(interfaceName);
54
- await sourceFile.save();
99
+ // Commit the generated interface and the class update together rather than leaving a new
100
+ // file behind if preparing the source change fails.
101
+ await project.save();
55
102
  }
56
103
  catch (err) {
57
104
  throw new Error(`extractInterface failed: ${err.message}`);
58
105
  }
59
106
  const relOut = path.relative(cwd, path.join(path.dirname(absPath), `${className}Interface.ts`));
60
- console.log(chalk.green('✔') + ` Interface extracted: ${relOut}`);
107
+ if (options.announce !== false)
108
+ console.log(chalk.green('✔') + ` Interface extracted: ${relOut}`);
61
109
  }
62
110
  // ─── Move Symbol ──────────────────────────────────────────────────────────────
63
- export async function moveSymbol(symbolName, fromFile, toFile, cwd) {
111
+ export async function moveSymbol(symbolName, fromFile, toFile, cwd, options = {}) {
64
112
  const project = new Project({ tsConfigFilePath: path.join(cwd, 'tsconfig.json') });
65
- const absFrom = path.isAbsolute(fromFile) ? fromFile : path.join(cwd, fromFile);
66
- const absTo = path.isAbsolute(toFile) ? toFile : path.join(cwd, toFile);
113
+ const absFrom = await workspacePath(cwd, fromFile);
114
+ const absTo = await workspacePath(cwd, toFile);
115
+ if (path.resolve(absFrom) === path.resolve(absTo)) {
116
+ throw new Error('moveSymbol requires different source and destination files');
117
+ }
67
118
  try {
68
119
  const src = project.getSourceFileOrThrow(absFrom);
69
- // Locate the declaration (function, class, or variable statement)
120
+ // Locate a supported top-level declaration. Interfaces, types and enums are just as useful
121
+ // to move as runtime symbols; variables are moved one declaration at a time so siblings in
122
+ // `const a = 1, b = 2` are never discarded.
123
+ const variable = src.getVariableDeclaration(symbolName);
70
124
  const decl = src.getFunction(symbolName) ??
71
125
  src.getClass(symbolName) ??
72
- src.getVariableDeclaration(symbolName);
126
+ src.getInterface(symbolName) ??
127
+ src.getTypeAlias(symbolName) ??
128
+ src.getEnum(symbolName) ??
129
+ variable;
73
130
  if (!decl)
74
131
  throw new Error(`Symbol "${symbolName}" not found in ${fromFile}`);
132
+ const existingDestination = project.getSourceFile(absTo);
133
+ if (existingDestination && (existingDestination.getFunction(symbolName) ||
134
+ existingDestination.getClass(symbolName) ||
135
+ existingDestination.getInterface(symbolName) ||
136
+ existingDestination.getTypeAlias(symbolName) ||
137
+ existingDestination.getEnum(symbolName) ||
138
+ existingDestination.getVariableDeclaration(symbolName))) {
139
+ throw new Error(`Destination ${toFile} already declares "${symbolName}"`);
140
+ }
75
141
  const declText = decl.getText();
76
- const isVariable = src.getVariableDeclaration(symbolName) !== undefined;
142
+ const declarationKind = decl.getKind();
143
+ const isVariable = variable !== undefined;
144
+ const variableKind = variable?.getVariableStatementOrThrow().getDeclarationKind();
77
145
  const exportedText = isVariable
78
- ? `export const ${declText};\n`
146
+ ? `export ${variableKind} ${declText};\n`
79
147
  : declText.startsWith('export') ? `${declText}\n` : `export ${declText}\n`;
80
148
  // Write to destination (create or append)
81
- let dest = project.getSourceFile(absTo);
149
+ let dest = existingDestination;
82
150
  if (!dest) {
83
151
  dest = project.createSourceFile(absTo, exportedText, { overwrite: false });
84
152
  }
85
153
  else {
86
154
  dest.addStatements(exportedText);
87
155
  }
88
- await dest.save();
89
156
  // Remove original, add re-export
90
- if (isVariable) {
91
- src.getVariableStatement(symbolName)?.remove();
157
+ // Every supported declaration has its own remove operation. In particular, removing the
158
+ // VariableDeclaration retains other declarations from the same variable statement.
159
+ decl.remove();
160
+ const relToFrom = relativeModuleSpecifier(absFrom, absTo);
161
+ // `export { symbol } from` preserves the public API but deliberately does not create a local
162
+ // binding. If sibling declarations in this source module still call or reference the symbol,
163
+ // import it back before saving or the move leaves the original file uncompilable.
164
+ const needsLocalBinding = src.getDescendantsOfKind(SyntaxKind.Identifier)
165
+ .some(identifier => identifier.getText() === symbolName);
166
+ if (needsLocalBinding) {
167
+ const typeOnly = declarationKind === SyntaxKind.InterfaceDeclaration || declarationKind === SyntaxKind.TypeAliasDeclaration;
168
+ src.addImportDeclaration({ isTypeOnly: typeOnly, namedImports: [symbolName], moduleSpecifier: relToFrom });
92
169
  }
93
- else {
94
- (src.getFunction(symbolName) ?? src.getClass(symbolName))?.remove();
95
- }
96
- const relToFrom = `./${path.relative(path.dirname(absFrom), absTo).replace(/\.ts$/, '.js')}`;
97
170
  src.addExportDeclaration({ namedExports: [symbolName], moduleSpecifier: relToFrom });
98
- await src.save();
99
171
  // Update other files importing from fromFile
100
- const relFromBase = `./${path.basename(absFrom, '.ts')}.js`;
101
172
  for (const sf of project.getSourceFiles()) {
102
173
  if (sf.getFilePath() === absFrom || sf.getFilePath() === absTo)
103
174
  continue;
104
175
  for (const imp of sf.getImportDeclarations()) {
105
- if (imp.getModuleSpecifierValue().endsWith(relFromBase)) {
176
+ if (imp.getModuleSpecifierSourceFile()?.getFilePath() === absFrom) {
106
177
  const named = imp.getNamedImports().find(n => n.getName() === symbolName);
107
178
  if (!named)
108
179
  continue;
180
+ // A local alias and a type-only import are part of the consumer's API contract. Moving
181
+ // a symbol must not turn `import type { Shape as S }` into a runtime `Shape` import.
182
+ const alias = named.getAliasNode()?.getText();
183
+ const isTypeOnly = imp.isTypeOnly() || named.isTypeOnly();
109
184
  named.remove();
110
- const relToSf = `./${path.relative(path.dirname(sf.getFilePath()), absTo).replace(/\.ts$/, '.js')}`;
111
- sf.addImportDeclaration({ namedImports: [symbolName], moduleSpecifier: relToSf });
185
+ if (imp.getNamedImports().length === 0 && !imp.getDefaultImport() && !imp.getNamespaceImport()) {
186
+ imp.remove();
187
+ }
188
+ const relToSf = relativeModuleSpecifier(sf.getFilePath(), absTo);
189
+ sf.addImportDeclaration({
190
+ isTypeOnly,
191
+ namedImports: [{ name: symbolName, ...(alias ? { alias } : {}) }],
192
+ moduleSpecifier: relToSf,
193
+ });
112
194
  }
113
195
  }
114
- await sf.save();
115
196
  }
197
+ // The destination, compatibility re-export, and import rewrites form one refactor. Stage all
198
+ // edits in the project and save together instead of publishing a half-move on an intermediate
199
+ // filesystem error.
200
+ await project.save();
116
201
  }
117
202
  catch (err) {
118
203
  throw new Error(`moveSymbol failed: ${err.message}`);
119
204
  }
120
205
  const relFrom = path.relative(cwd, absFrom);
121
206
  const relTo = path.relative(cwd, absTo);
122
- console.log(chalk.green('✔') + ` Moved "${symbolName}" from ${relFrom} → ${relTo}`);
207
+ if (options.announce !== false) {
208
+ console.log(chalk.green('✔') + ` Moved "${symbolName}" from ${relFrom} → ${relTo}`);
209
+ }
123
210
  }
124
211
  // ─── Split File ───────────────────────────────────────────────────────────────
125
212
  export async function splitFile(filePath, cwd, config) {
126
- const absPath = path.isAbsolute(filePath) ? filePath : path.join(cwd, filePath);
213
+ const absPath = await workspacePath(cwd, filePath);
127
214
  const { createReadStream } = await import('node:fs');
128
215
  const { createInterface } = await import('node:readline');
129
216
  let lineCount = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"refactor.js","sourceRoot":"","sources":["../src/refactor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"refactor.js","sourceRoot":"","sources":["../src/refactor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * The optional turn budget for an agent run.
3
+ *
4
+ * A turn count is a deliberately blunt guard. Koneck also watches the failure modes that actually
5
+ * indicate a runaway (repeated calls, empty responses, timeouts and a silent stream), so an
6
+ * absent, zero, or negative value means "do not impose this additional cap".
7
+ */
8
+ export declare function resolveMaxTurns(value: number | undefined): number | null;
9
+ //# sourceMappingURL=run-limits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-limits.d.ts","sourceRoot":"","sources":["../src/run-limits.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAGxE"}