@ordewell/core 0.12.0 → 0.12.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 (49) hide show
  1. package/dist/{ModeResolver-CHsaoV7M.d.ts → ModeResolver-B64aUZXJ.d.ts} +1 -1
  2. package/dist/{ModeResolver-b_7bPlBS.d.mts → ModeResolver-CA2fUU9h.d.mts} +1 -1
  3. package/dist/{Task-BTEH-ztX.d.mts → Task-CxGgN6I0.d.mts} +503 -16
  4. package/dist/{Task-BTEH-ztX.d.ts → Task-CxGgN6I0.d.ts} +503 -16
  5. package/dist/{chunk-BKTDYGIP.mjs → chunk-2IFKPYPO.mjs} +441 -17
  6. package/dist/chunk-2IFKPYPO.mjs.map +1 -0
  7. package/dist/{chunk-BFLVOYNR.mjs → chunk-FX33UKAD.mjs} +8 -6
  8. package/dist/chunk-FX33UKAD.mjs.map +1 -0
  9. package/dist/{chunk-F6WS3JLQ.mjs → chunk-PKJTN2PD.mjs} +20 -11
  10. package/dist/chunk-PKJTN2PD.mjs.map +1 -0
  11. package/dist/{chunk-HP2LNKST.mjs → chunk-RZ23BMVR.mjs} +345 -134
  12. package/dist/chunk-RZ23BMVR.mjs.map +1 -0
  13. package/dist/chunk-UDUATSCJ.mjs +48 -0
  14. package/dist/chunk-UDUATSCJ.mjs.map +1 -0
  15. package/dist/{IRunner-BwzyUVIL.d.mts → eventStore-CTCSKS9E.d.ts} +916 -129
  16. package/dist/{IRunner-DjJkYwko.d.ts → eventStore-CcB8yELZ.d.mts} +916 -129
  17. package/dist/index.d.mts +677 -97
  18. package/dist/index.d.ts +677 -97
  19. package/dist/index.js +8233 -2450
  20. package/dist/index.js.map +1 -1
  21. package/dist/index.mjs +6951 -1772
  22. package/dist/index.mjs.map +1 -1
  23. package/dist/parsing.d.mts +2 -2
  24. package/dist/parsing.d.ts +2 -2
  25. package/dist/parsing.js +277 -21
  26. package/dist/parsing.js.map +1 -1
  27. package/dist/parsing.mjs +3 -3
  28. package/dist/plan-utils.d.mts +30 -5
  29. package/dist/plan-utils.d.ts +30 -5
  30. package/dist/plan-utils.js +163 -16
  31. package/dist/plan-utils.js.map +1 -1
  32. package/dist/plan-utils.mjs +49 -3
  33. package/dist/plan-utils.mjs.map +1 -1
  34. package/dist/{runSettingsText-x-YML2ay.d.mts → runSettingsText-DFVpe6aU.d.mts} +1142 -934
  35. package/dist/{runSettingsText-CvZ40IPv.d.ts → runSettingsText-lKLDsyli.d.ts} +1142 -934
  36. package/dist/testing.d.mts +83 -4
  37. package/dist/testing.d.ts +83 -4
  38. package/dist/testing.js +142 -1
  39. package/dist/testing.js.map +1 -1
  40. package/dist/testing.mjs +126 -2
  41. package/dist/testing.mjs.map +1 -1
  42. package/docker/task.Dockerfile +22 -0
  43. package/package.json +2 -1
  44. package/skills/diagnose/SKILL.md +2 -2
  45. package/skills/explore/SKILL.md +1 -1
  46. package/dist/chunk-BFLVOYNR.mjs.map +0 -1
  47. package/dist/chunk-BKTDYGIP.mjs.map +0 -1
  48. package/dist/chunk-F6WS3JLQ.mjs.map +0 -1
  49. package/dist/chunk-HP2LNKST.mjs.map +0 -1
@@ -13,6 +13,7 @@ import {
13
13
  REPORT_PREVIEW_LINES,
14
14
  SEVERITY_LABEL,
15
15
  STALLED_LABEL,
16
+ STOPPING_LABEL,
16
17
  SUPERVISOR_LEVEL_LABEL,
17
18
  WAITS_FOR_APPROVAL_LABEL,
18
19
  accountLimitPercentText,
@@ -51,6 +52,7 @@ import {
51
52
  contextMeterTitle,
52
53
  costText,
53
54
  countedSessionCost,
55
+ delegatedRowView,
54
56
  dependentsNotice,
55
57
  describeIsolationPreview,
56
58
  describeMergeResult,
@@ -75,6 +77,7 @@ import {
75
77
  hasAccountLimits,
76
78
  hasHiddenDetail,
77
79
  hasLongReport,
80
+ heldWords,
78
81
  holdLabel,
79
82
  holdPrompt,
80
83
  isFileEditTool,
@@ -95,6 +98,7 @@ import {
95
98
  markdownHtml,
96
99
  markdownTokens,
97
100
  mergeOutcome,
101
+ mergePastChecksConfirmation,
98
102
  modelCostTitle,
99
103
  namedRepos,
100
104
  newTaskFields,
@@ -134,9 +138,11 @@ import {
134
138
  savedPatchViews,
135
139
  severityLabel,
136
140
  skippedLabel,
141
+ spentTokens,
137
142
  startAttemptUsage,
138
143
  stopTurn,
139
144
  subagentCostTitle,
145
+ subtreeView,
140
146
  summarizeToolCall,
141
147
  takeAt,
142
148
  taskActionCommand,
@@ -159,16 +165,17 @@ import {
159
165
  usageText,
160
166
  wakeUpItems,
161
167
  worstSeverity
162
- } from "./chunk-HP2LNKST.mjs";
168
+ } from "./chunk-RZ23BMVR.mjs";
163
169
  import {
164
170
  betweenRounds,
165
171
  checkOf,
166
172
  clampThinkingEffort,
167
173
  loopRemovalRefusal,
168
174
  loopRoundOf,
175
+ onOneLine,
169
176
  outOfRounds,
170
177
  scriptTaskText
171
- } from "./chunk-BKTDYGIP.mjs";
178
+ } from "./chunk-2IFKPYPO.mjs";
172
179
  import {
173
180
  DEFAULT_RUNNERS,
174
181
  canSetDependencies,
@@ -187,9 +194,40 @@ import {
187
194
  titledTaskRef,
188
195
  titledTaskRefOf,
189
196
  walkPlan
190
- } from "./chunk-F6WS3JLQ.mjs";
197
+ } from "./chunk-PKJTN2PD.mjs";
198
+
199
+ // src/services/composerTips.ts
200
+ var COMPOSER_TIPS = [
201
+ // The per-runner model allowlist (ADR-0003) is the easiest command to miss.
202
+ { command: "allowlist", weight: 3, text: "Tip: Use /allowlist to limit which models the planner assigns per runner." },
203
+ { command: "planner", weight: 1, text: "Tip: Use /planner to pick the planner's harness, model and effort." },
204
+ { command: "runners", weight: 1, text: "Tip: Use /runners to turn runners on or off." },
205
+ { command: "settings", weight: 1, text: "Tip: Use /settings for autonomy, supervisor, merging, autorun and more." },
206
+ { command: "help", weight: 1, text: "Tip: Use /help to list every command." }
207
+ ];
208
+ function tipCycle(tips) {
209
+ const total = tips.reduce((sum, tip) => sum + Math.max(0, tip.weight), 0);
210
+ if (total === 0) return [];
211
+ const slots = new Array(total).fill(void 0);
212
+ const order = tips.map((tip, index) => ({ tip, index })).filter(({ tip }) => tip.weight > 0).sort((a, b) => b.tip.weight - a.tip.weight || a.index - b.index);
213
+ for (const { tip } of order) {
214
+ const free = slots.flatMap((slot, at) => slot === void 0 ? [at] : []);
215
+ for (let k = 0; k < tip.weight; k++) {
216
+ slots[free[Math.floor((k + 0.5) * free.length / tip.weight)]] = tip;
217
+ }
218
+ }
219
+ const cycle = slots.filter((tip) => tip !== void 0);
220
+ const start = cycle.indexOf(order[0].tip);
221
+ return [...cycle.slice(start), ...cycle.slice(0, start)];
222
+ }
223
+ function composerTip(seq, answers) {
224
+ const cycle = tipCycle(COMPOSER_TIPS.filter((tip) => answers.has(tip.command)));
225
+ if (cycle.length === 0) return null;
226
+ return cycle[(seq % cycle.length + cycle.length) % cycle.length].text;
227
+ }
191
228
  export {
192
229
  CHECKPOINT_TRUNCATE_LENGTH,
230
+ COMPOSER_TIPS,
193
231
  DEFAULT_RUNNERS,
194
232
  DELEGATION_OFFERED,
195
233
  EMPTY_CONVERSATION,
@@ -204,6 +242,7 @@ export {
204
242
  REPORT_PREVIEW_LINES,
205
243
  SEVERITY_LABEL,
206
244
  STALLED_LABEL,
245
+ STOPPING_LABEL,
207
246
  SUPERVISOR_LEVEL_LABEL,
208
247
  WAITS_FOR_APPROVAL_LABEL,
209
248
  accountLimitPercentText,
@@ -241,11 +280,13 @@ export {
241
280
  clampThinkingEffort,
242
281
  closeTurn,
243
282
  compactionText,
283
+ composerTip,
244
284
  confirmedOverride,
245
285
  contextMeterText,
246
286
  contextMeterTitle,
247
287
  costText,
248
288
  countedSessionCost,
289
+ delegatedRowView,
249
290
  dependencyCandidates,
250
291
  dependentsNotice,
251
292
  dependentsOf,
@@ -272,6 +313,7 @@ export {
272
313
  hasAccountLimits,
273
314
  hasHiddenDetail,
274
315
  hasLongReport,
316
+ heldWords,
275
317
  holdLabel,
276
318
  holdPrompt,
277
319
  isFileEditTool,
@@ -295,10 +337,12 @@ export {
295
337
  markdownHtml,
296
338
  markdownTokens,
297
339
  mergeOutcome,
340
+ mergePastChecksConfirmation,
298
341
  modelCostTitle,
299
342
  namedRepos,
300
343
  newTaskFields,
301
344
  noExecutorRefusal,
345
+ onOneLine,
302
346
  opsEditable,
303
347
  outOfRounds,
304
348
  outputLines,
@@ -340,10 +384,12 @@ export {
340
384
  severityLabel,
341
385
  skillTokens,
342
386
  skippedLabel,
387
+ spentTokens,
343
388
  startAttemptUsage,
344
389
  stopTurn,
345
390
  subagentCostTitle,
346
391
  subtreeIds,
392
+ subtreeView,
347
393
  summarizeToolCall,
348
394
  takeAt,
349
395
  taskActionCommand,
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"sources":["../src/services/composerTips.ts"],"sourcesContent":["/**\n * The tips an empty planner chat composer shows (#137), one table for every\n * surface so the TUI and the webview agree on the wording and how often each\n * comes round. A surface offers only the tips for the commands it answers.\n */\n\nexport interface ComposerTip {\n /** The built-in planner chat command the tip names, without its slash. */\n command: string;\n /** How many times per cycle the tip comes round. */\n weight: number;\n /** Short enough to fit after the prompt and caret on an 80-column terminal. */\n text: string;\n}\n\nexport const COMPOSER_TIPS: readonly ComposerTip[] = [\n // The per-runner model allowlist (ADR-0003) is the easiest command to miss.\n { command: 'allowlist', weight: 3, text: 'Tip: Use /allowlist to limit which models the planner assigns per runner.' },\n { command: 'planner', weight: 1, text: \"Tip: Use /planner to pick the planner's harness, model and effort.\" },\n { command: 'runners', weight: 1, text: 'Tip: Use /runners to turn runners on or off.' },\n { command: 'settings', weight: 1, text: 'Tip: Use /settings for autonomy, supervisor, merging, autorun and more.' },\n { command: 'help', weight: 1, text: 'Tip: Use /help to list every command.' },\n];\n\n/**\n * One cycle of `tips`, each appearing exactly its weight times. Heavier tips\n * take their slots first, at the midpoints of equal shares of the free slots, so\n * raising a weight spreads it out instead of leaving it to run together at the\n * end of the cycle; where a tip outnumbers all the others, the touches it\n * cannot avoid are spread as evenly as the counts allow. The cycle starts on\n * the heaviest tip, so the first seq is the one the table weights most.\n */\nexport function tipCycle(tips: readonly ComposerTip[]): ComposerTip[] {\n const total = tips.reduce((sum, tip) => sum + Math.max(0, tip.weight), 0);\n if (total === 0) return [];\n const slots = new Array<ComposerTip | undefined>(total).fill(undefined);\n const order = tips\n .map((tip, index) => ({ tip, index }))\n .filter(({ tip }) => tip.weight > 0)\n .sort((a, b) => b.tip.weight - a.tip.weight || a.index - b.index);\n for (const { tip } of order) {\n const free = slots.flatMap((slot, at) => (slot === undefined ? [at] : []));\n for (let k = 0; k < tip.weight; k++) {\n slots[free[Math.floor(((k + 0.5) * free.length) / tip.weight)]] = tip;\n }\n }\n const cycle = slots.filter((tip): tip is ComposerTip => tip !== undefined);\n const start = cycle.indexOf(order[0].tip);\n return [...cycle.slice(start), ...cycle.slice(0, start)];\n}\n\n/**\n * The tip for the `seq`-th time the composer has been empty, among those for\n * the commands the surface answers, or null when it answers none of them. The\n * same `seq` always gives the same tip, so the surface decides when a new one\n * shows by when it moves `seq` on, and its rendering stays a function of state.\n */\nexport function composerTip(seq: number, answers: ReadonlySet<string>): string | null {\n const cycle = tipCycle(COMPOSER_TIPS.filter((tip) => answers.has(tip.command)));\n if (cycle.length === 0) return null;\n return cycle[((seq % cycle.length) + cycle.length) % cycle.length].text;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeO,IAAM,gBAAwC;AAAA;AAAA,EAEnD,EAAE,SAAS,aAAa,QAAQ,GAAG,MAAM,4EAA4E;AAAA,EACrH,EAAE,SAAS,WAAW,QAAQ,GAAG,MAAM,qEAAqE;AAAA,EAC5G,EAAE,SAAS,WAAW,QAAQ,GAAG,MAAM,+CAA+C;AAAA,EACtF,EAAE,SAAS,YAAY,QAAQ,GAAG,MAAM,0EAA0E;AAAA,EAClH,EAAE,SAAS,QAAQ,QAAQ,GAAG,MAAM,wCAAwC;AAC9E;AAUO,SAAS,SAAS,MAA6C;AACpE,QAAM,QAAQ,KAAK,OAAO,CAAC,KAAK,QAAQ,MAAM,KAAK,IAAI,GAAG,IAAI,MAAM,GAAG,CAAC;AACxE,MAAI,UAAU,EAAG,QAAO,CAAC;AACzB,QAAM,QAAQ,IAAI,MAA+B,KAAK,EAAE,KAAK,MAAS;AACtE,QAAM,QAAQ,KACX,IAAI,CAAC,KAAK,WAAW,EAAE,KAAK,MAAM,EAAE,EACpC,OAAO,CAAC,EAAE,IAAI,MAAM,IAAI,SAAS,CAAC,EAClC,KAAK,CAAC,GAAG,MAAM,EAAE,IAAI,SAAS,EAAE,IAAI,UAAU,EAAE,QAAQ,EAAE,KAAK;AAClE,aAAW,EAAE,IAAI,KAAK,OAAO;AAC3B,UAAM,OAAO,MAAM,QAAQ,CAAC,MAAM,OAAQ,SAAS,SAAY,CAAC,EAAE,IAAI,CAAC,CAAE;AACzE,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACnC,YAAM,KAAK,KAAK,OAAQ,IAAI,OAAO,KAAK,SAAU,IAAI,MAAM,CAAC,CAAC,IAAI;AAAA,IACpE;AAAA,EACF;AACA,QAAM,QAAQ,MAAM,OAAO,CAAC,QAA4B,QAAQ,MAAS;AACzE,QAAM,QAAQ,MAAM,QAAQ,MAAM,CAAC,EAAE,GAAG;AACxC,SAAO,CAAC,GAAG,MAAM,MAAM,KAAK,GAAG,GAAG,MAAM,MAAM,GAAG,KAAK,CAAC;AACzD;AAQO,SAAS,YAAY,KAAa,SAA6C;AACpF,QAAM,QAAQ,SAAS,cAAc,OAAO,CAAC,QAAQ,QAAQ,IAAI,IAAI,OAAO,CAAC,CAAC;AAC9E,MAAI,MAAM,WAAW,EAAG,QAAO;AAC/B,SAAO,OAAQ,MAAM,MAAM,SAAU,MAAM,UAAU,MAAM,MAAM,EAAE;AACrE;","names":[]}