aicodeman 1.18.0 → 1.18.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 (91) hide show
  1. package/README.md +4 -3
  2. package/README.zh-CN.md +3 -3
  3. package/dist/web/http-range.d.ts +44 -0
  4. package/dist/web/http-range.d.ts.map +1 -0
  5. package/dist/web/http-range.js +76 -0
  6. package/dist/web/http-range.js.map +1 -0
  7. package/dist/web/public/admin-ui.js.gz +0 -0
  8. package/dist/web/public/api-client.c9b1cddc.js.gz +0 -0
  9. package/dist/web/public/{app.a13ac13b.js → app.445f1584.js} +4 -6
  10. package/dist/web/public/app.445f1584.js.br +0 -0
  11. package/dist/web/public/app.445f1584.js.gz +0 -0
  12. package/dist/web/public/approvals-ui.js.gz +0 -0
  13. package/dist/web/public/{constants.42b8bbc9.js → constants.822a486d.js} +132 -35
  14. package/dist/web/public/constants.822a486d.js.br +0 -0
  15. package/dist/web/public/constants.822a486d.js.gz +0 -0
  16. package/dist/web/public/cron-ui.js.gz +0 -0
  17. package/dist/web/public/entrance-animations.js.gz +0 -0
  18. package/dist/web/public/home-sessions.js.gz +0 -0
  19. package/dist/web/public/i18n.86757605.js.gz +0 -0
  20. package/dist/web/public/image-input.ee16ad88.js.gz +0 -0
  21. package/dist/web/public/index.html +13 -8
  22. package/dist/web/public/index.html.br +0 -0
  23. package/dist/web/public/index.html.gz +0 -0
  24. package/dist/web/public/input-cjk.63794d0b.js.gz +0 -0
  25. package/dist/web/public/keyboard-accessory.0454a3e9.js.gz +0 -0
  26. package/dist/web/public/{mobile-handlers.32fdd57f.js → mobile-handlers.bc45f976.js} +55 -9
  27. package/dist/web/public/mobile-handlers.bc45f976.js.br +0 -0
  28. package/dist/web/public/mobile-handlers.bc45f976.js.gz +0 -0
  29. package/dist/web/public/mobile-overview.js.gz +0 -0
  30. package/dist/web/public/mobile.1eef31fe.css.gz +0 -0
  31. package/dist/web/public/notification-manager.5d229063.js.gz +0 -0
  32. package/dist/web/public/orchestrator-panel.js.gz +0 -0
  33. package/dist/web/public/{panels-ui.4255e1bc.js → panels-ui.1e4cb4b2.js} +1 -1
  34. package/dist/web/public/panels-ui.1e4cb4b2.js.br +0 -0
  35. package/dist/web/public/panels-ui.1e4cb4b2.js.gz +0 -0
  36. package/dist/web/public/ralph-panel.6de2d0f8.js.gz +0 -0
  37. package/dist/web/public/ralph-wizard.13a1831e.js.gz +0 -0
  38. package/dist/web/public/readmymind-ui.js.gz +0 -0
  39. package/dist/web/public/respawn-ui.ff0dae4c.js.gz +0 -0
  40. package/dist/web/public/sanitize-html.bc7078d6.js.gz +0 -0
  41. package/dist/web/public/session-lineage.js +3 -1
  42. package/dist/web/public/session-lineage.js.br +0 -0
  43. package/dist/web/public/session-lineage.js.gz +0 -0
  44. package/dist/web/public/session-ui.20be58fa.js.gz +0 -0
  45. package/dist/web/public/settings-ui.eacb4f92.js.gz +0 -0
  46. package/dist/web/public/styles.70bf9c2a.css +1 -0
  47. package/dist/web/public/styles.70bf9c2a.css.br +0 -0
  48. package/dist/web/public/styles.70bf9c2a.css.gz +0 -0
  49. package/dist/web/public/subagent-windows.2a192c3e.js.gz +0 -0
  50. package/dist/web/public/sw.js.gz +0 -0
  51. package/dist/web/public/{terminal-ui.5046620b.js → terminal-ui.c182a68d.js} +1 -1
  52. package/dist/web/public/{terminal-ui.5046620b.js.br → terminal-ui.c182a68d.js.br} +0 -0
  53. package/dist/web/public/{terminal-ui.5046620b.js.gz → terminal-ui.c182a68d.js.gz} +0 -0
  54. package/dist/web/public/ultracode-panel.js.gz +0 -0
  55. package/dist/web/public/ultracode-windows.js.gz +0 -0
  56. package/dist/web/public/upload.html.gz +0 -0
  57. package/dist/web/public/vendor/dompurify.min.js.gz +0 -0
  58. package/dist/web/public/vendor/marked.min.js.gz +0 -0
  59. package/dist/web/public/vendor/xterm-addon-fit.min.js.gz +0 -0
  60. package/dist/web/public/vendor/xterm-addon-serialize.min.js.gz +0 -0
  61. package/dist/web/public/vendor/xterm-addon-unicode11.min.js.gz +0 -0
  62. package/dist/web/public/vendor/xterm-addon-webgl.min.js.gz +0 -0
  63. package/dist/web/public/vendor/xterm-predictive-echo.6cec0fba.js.gz +0 -0
  64. package/dist/web/public/vendor/xterm-zerolag-input.137ad9f0.js.gz +0 -0
  65. package/dist/web/public/vendor/xterm.css.gz +0 -0
  66. package/dist/web/public/vendor/xterm.min.js.gz +0 -0
  67. package/dist/web/public/voice-input.4ec670b0.js.gz +0 -0
  68. package/dist/web/public/voice-pcm-worklet.js.gz +0 -0
  69. package/dist/web/public/webview-tabs.js.gz +0 -0
  70. package/dist/web/routes/file-routes.d.ts.map +1 -1
  71. package/dist/web/routes/file-routes.js +51 -18
  72. package/dist/web/routes/file-routes.js.map +1 -1
  73. package/dist/web/routes/session-routes.d.ts.map +1 -1
  74. package/dist/web/routes/session-routes.js +16 -0
  75. package/dist/web/routes/session-routes.js.map +1 -1
  76. package/package.json +1 -1
  77. package/skills/codeman/SKILL.md +251 -717
  78. package/skills/codeman/reference/endpoints.md +1 -1
  79. package/skills/codeman/reference/recipes.md +24 -11
  80. package/skills/codeman/reference/verbs.md +665 -0
  81. package/dist/web/public/app.a13ac13b.js.br +0 -0
  82. package/dist/web/public/app.a13ac13b.js.gz +0 -0
  83. package/dist/web/public/constants.42b8bbc9.js.br +0 -0
  84. package/dist/web/public/constants.42b8bbc9.js.gz +0 -0
  85. package/dist/web/public/mobile-handlers.32fdd57f.js.br +0 -0
  86. package/dist/web/public/mobile-handlers.32fdd57f.js.gz +0 -0
  87. package/dist/web/public/panels-ui.4255e1bc.js.br +0 -0
  88. package/dist/web/public/panels-ui.4255e1bc.js.gz +0 -0
  89. package/dist/web/public/styles.b6e8b4ae.css +0 -1
  90. package/dist/web/public/styles.b6e8b4ae.css.br +0 -0
  91. package/dist/web/public/styles.b6e8b4ae.css.gz +0 -0
@@ -666,7 +666,7 @@ whose turn already ended just times out, with or without `fresh`, verified live)
666
666
  Register the waiter before the event can happen: send-and-wait does exactly that,
667
667
  and `wait-output` markers with `from=buffer` are latched by construction. Never
668
668
  fire-and-forget N prompts and then gather signal-waits worker by worker; every
669
- worker that finishes before its gather is unobservable (see recipes.md Flow 3b).
669
+ worker that finishes before its gather is unobservable (see recipes.md Flow 4).
670
670
 
671
671
  #### `GET /api/v1/sessions/:id/wait`
672
672
 
@@ -1,16 +1,27 @@
1
1
  # Worked orchestration flows
2
2
 
3
3
  Loaded on demand from the `codeman` skill. Every flow assumes the SKILL.md preamble is
4
- in scope (`$API`, `$SELF`, `$CID`, `"${CURL[@]}"`, `delete_session`); see
4
+ in scope (`$API`, `$SELF`, `$CID`, `"${CURL[@]}"`, `delete_session`, plus the fast-path
5
+ verbs `spawn_worker` / `spawn_workers` / `sendwait` / `last_text`); see
5
6
  [SKILL.md §0](../SKILL.md#0-guard-and-bootstrap) for it and
6
7
  [the safety rules](../SKILL.md#4-safety-rules) for what you may call unprompted.
7
8
 
9
+ ⚠️ **These flows are the long way round, and most jobs do not need them.** If the job is
10
+ "spawn N claude workers, task them, collect the answers", [SKILL.md
11
+ §1](../SKILL.md#1-the-fast-path-n-workers-one-bash-call) already is that job in one Bash
12
+ call, measured at about 10 s for two cold workers end to end. Come here when you need a
13
+ mechanism §1 does not cover: shell or otherwise hook-less workers (Flows 2, 3), a worker
14
+ stuck on a permission dialog (Flow 5), messaging (Flow 6), or real work in git worktrees
15
+ (Flow 7). The flows below spell each step out because they are teaching the mechanism;
16
+ spelling them out again when §1 would have done is the most common way an agent turns a
17
+ ten-second run into a multi-minute one.
18
+
8
19
  ⚠️ **Shell state does not survive between tool calls**, so every Bash call below opens
9
20
  by sourcing the preamble file the §0 bootstrap wrote, and checking its version stamp:
10
21
 
11
22
  ```bash
12
23
  . "${XDG_CACHE_HOME:-$HOME/.cache}/codeman-agent-$CODEMAN_SESSION_ID.sh" 2>/dev/null
13
- [ "${CODEMAN_PREAMBLE:-}" = 1.17.0 ] || { echo "preamble missing or stale; re-run the §0 bootstrap"; exit 1; }
24
+ [ "${CODEMAN_PREAMBLE:-}" = 1.18.2 ] || { echo "preamble missing or stale; re-run the §0 bootstrap"; exit 1; }
14
25
  ```
15
26
 
16
27
  Do **not** re-paste the preamble body into each call. Sourcing it is what retires the
@@ -272,16 +283,18 @@ live (and one anti-pattern, measured failing, replaced by B):
272
283
  **A. Background the send-and-waits** (simplest; each resolved on `stop` while the
273
284
  other was still running). Each send costs its worker one billed turn:
274
285
 
286
+ `sendwait <sid> <prompt> [seq]` is a preamble function ([SKILL.md
287
+ §0](../SKILL.md#0-guard-and-bootstrap)); it applies the `\r` and a per-worker `clientId`,
288
+ and picks a fresh `seq` (the current epoch second) per call, so do not redefine it here
289
+ and pass `seq` yourself only to resend an identical frame as a deliberate duplicate.
290
+ Background one call per worker and `wait`:
291
+
275
292
  ```bash
276
- sendwait() { # $1=sid $2=prompt $3=seq, assumes the worker passed Flow 1's readiness
277
- local body; body=$(jq -n --arg p "$2" --argjson s "$3" --arg c "codeman-fan-$1" \
278
- '{input:($p+"\r"),useMux:true,clientId:$c,seq:$s,wait:true,waitTimeout:600000}')
279
- "${CURL[@]}" -X POST "$API/api/v1/sessions/$1/input" \
280
- -H 'Content-Type: application/json' --data-binary "$body" > "/tmp/fan-$1.json"
281
- }
282
- ( sendwait "$SID1" 'refactor module A and reply DONE' 2 & \
283
- sendwait "$SID2" 'write tests for module B and reply DONE' 2 & wait )
284
- jq -c '.data.wait | {signal, waitedMs}' /tmp/fan-"$SID1".json /tmp/fan-"$SID2".json
293
+ D=$(mktemp -d) # a function's stdout is per-worker, so collect it in files, not a var
294
+ sendwait "$SID1" 'refactor module A and reply DONE' > "$D/1" &
295
+ sendwait "$SID2" 'write tests for module B and reply DONE' > "$D/2" &
296
+ wait
297
+ jq -c '.data.wait | {signal, waitedMs}' "$D/1" "$D/2"; rm -rf "$D"
285
298
  ```
286
299
 
287
300
  One in-flight wait per worker keeps you far from the 16-per-session waiter cap.