create-egregore 0.19.8 → 0.19.11

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/lib/local.js +11 -1
  2. package/lib/setup.js +33 -0
  3. package/package.json +1 -1
  4. package/runtime/codex/.codex/hooks/branch-guard.js +242 -34
  5. package/runtime/codex/.codex/skills/activity/SKILL.md +18 -6
  6. package/runtime/codex/.codex/skills/deep-reflect/SKILL.md +90 -55
  7. package/runtime/codex/.codex/skills/deploy-bridge/SKILL.md +25 -0
  8. package/runtime/codex/.codex/skills/handoff/SKILL.md +6 -2
  9. package/runtime/codex/.codex/skills/save/SKILL.md +21 -3
  10. package/runtime/codex/.codex/skills/scroll/SKILL.md +54 -3
  11. package/runtime/codex/.codex/skills/task/SKILL.md +25 -0
  12. package/runtime/codex/.codex/skills/tui-design/SKILL.md +1 -1
  13. package/runtime/codex/.codex/skills/wrap/SKILL.md +4 -1
  14. package/runtime/codex/.codex/spec-manifest.json +15 -3
  15. package/runtime/codex/AGENTS.md +45 -9
  16. package/runtime/codex/bin/activity-data.sh +1 -1
  17. package/runtime/codex/bin/agent.sh +66 -23
  18. package/runtime/codex/bin/attendant.sh +525 -0
  19. package/runtime/codex/bin/capture-reconcile.sh +67 -0
  20. package/runtime/codex/bin/capture-run.sh +341 -0
  21. package/runtime/codex/bin/codex-render-spec.mjs +15 -4
  22. package/runtime/codex/bin/codex-session-start.sh +45 -3
  23. package/runtime/codex/bin/codex-skill-render.mjs +23 -4
  24. package/runtime/codex/bin/graph-op.sh +719 -49
  25. package/runtime/codex/bin/graph-wal.sh +3 -2
  26. package/runtime/codex/bin/handoff-run.sh +72 -0
  27. package/runtime/codex/bin/handoff-save-egregore.sh +51 -11
  28. package/runtime/codex/bin/index-handoff.sh +26 -17
  29. package/runtime/codex/bin/ingest-graph.sh +80 -0
  30. package/runtime/codex/bin/ingest-surface.html +429 -0
  31. package/runtime/codex/bin/ingest.py +614 -0
  32. package/runtime/codex/bin/ingest.sh +231 -0
  33. package/runtime/codex/bin/ingest_graph.py +776 -0
  34. package/runtime/codex/bin/ingest_surface.py +464 -0
  35. package/runtime/codex/bin/lib/git-sync.sh +2 -6
  36. package/runtime/codex/bin/lib/greeting.sh +157 -22
  37. package/runtime/codex/bin/lib/identity.sh +50 -29
  38. package/runtime/codex/bin/lib/noncode.sh +31 -0
  39. package/runtime/codex/bin/person.py +610 -0
  40. package/runtime/codex/bin/person.sh +448 -0
  41. package/runtime/codex/bin/session-autosave.sh +184 -0
  42. package/runtime/codex/bin/session-log.sh +199 -0
  43. package/runtime/codex/bin/settings.sh +1 -1
  44. package/runtime/codex/manifest.json +19 -1
  45. package/runtime/pi/.codex/hooks/branch-guard.js +242 -34
  46. package/runtime/pi/.codex/skills/activity/SKILL.md +18 -6
  47. package/runtime/pi/.codex/skills/deep-reflect/SKILL.md +90 -55
  48. package/runtime/pi/.codex/skills/deploy-bridge/SKILL.md +25 -0
  49. package/runtime/pi/.codex/skills/handoff/SKILL.md +6 -2
  50. package/runtime/pi/.codex/skills/save/SKILL.md +21 -3
  51. package/runtime/pi/.codex/skills/scroll/SKILL.md +54 -3
  52. package/runtime/pi/.codex/skills/task/SKILL.md +25 -0
  53. package/runtime/pi/.codex/skills/tui-design/SKILL.md +1 -1
  54. package/runtime/pi/.codex/skills/wrap/SKILL.md +4 -1
  55. package/runtime/pi/.codex/spec-manifest.json +15 -3
  56. package/runtime/pi/.pi/APPEND_SYSTEM.md +41 -5
  57. package/runtime/pi/.pi/extensions/egregore.ts +98 -8
  58. package/runtime/pi/.pi/spec-manifest.json +2 -2
  59. package/runtime/pi/AGENTS.md +45 -9
  60. package/runtime/pi/bin/activity-data.sh +1 -1
  61. package/runtime/pi/bin/agent.sh +66 -23
  62. package/runtime/pi/bin/attendant.sh +525 -0
  63. package/runtime/pi/bin/capture-reconcile.sh +67 -0
  64. package/runtime/pi/bin/capture-run.sh +341 -0
  65. package/runtime/pi/bin/codex-render-spec.mjs +15 -4
  66. package/runtime/pi/bin/codex-session-start.sh +45 -3
  67. package/runtime/pi/bin/codex-skill-render.mjs +23 -4
  68. package/runtime/pi/bin/graph-op.sh +719 -49
  69. package/runtime/pi/bin/graph-wal.sh +3 -2
  70. package/runtime/pi/bin/handoff-run.sh +72 -0
  71. package/runtime/pi/bin/handoff-save-egregore.sh +51 -11
  72. package/runtime/pi/bin/index-handoff.sh +26 -17
  73. package/runtime/pi/bin/ingest-graph.sh +80 -0
  74. package/runtime/pi/bin/ingest-surface.html +429 -0
  75. package/runtime/pi/bin/ingest.py +614 -0
  76. package/runtime/pi/bin/ingest.sh +231 -0
  77. package/runtime/pi/bin/ingest_graph.py +776 -0
  78. package/runtime/pi/bin/ingest_surface.py +464 -0
  79. package/runtime/pi/bin/lib/git-sync.sh +2 -6
  80. package/runtime/pi/bin/lib/greeting.sh +157 -22
  81. package/runtime/pi/bin/lib/identity.sh +50 -29
  82. package/runtime/pi/bin/lib/noncode.sh +31 -0
  83. package/runtime/pi/bin/person.py +610 -0
  84. package/runtime/pi/bin/person.sh +448 -0
  85. package/runtime/pi/bin/pi-branch-policy.mjs +164 -4
  86. package/runtime/pi/bin/pi-product-workflows.mjs +31 -2
  87. package/runtime/pi/bin/publish-artifact.sh +14 -0
  88. package/runtime/pi/bin/session-autosave.sh +184 -0
  89. package/runtime/pi/bin/session-log.sh +199 -0
  90. package/runtime/pi/bin/settings.sh +274 -0
  91. package/runtime/pi/manifest.json +20 -1
@@ -34,7 +34,8 @@ Runtime-neutral commands:
34
34
  branch --topic TEXT Create or reuse a task branch/worktree
35
35
  save [--message TEXT] Commit and push current repo + memory changes
36
36
  wrap --topic T --summary TEXT Write a session wrap to memory/wraps
37
- handoff --from A --to B --topic T [--body TEXT|--body-file PATH] [--no-push] [--no-publish] [--no-notify] [--json]
37
+ handoff --from A --to B --topic T [--intent action|feedback|fyi]
38
+ [--body TEXT|--body-file PATH] [--no-push] [--no-publish] [--no-notify] [--json]
38
39
  ask --from A --to B --topic T --question TEXT [--no-push]
39
40
  [--harvest-id ID --harvest-session-id ID --turn N
40
41
  --question-intent TEXT --context-mode blind|disclosed|comparative]
@@ -332,7 +333,7 @@ ensure_working_branch() {
332
333
  }
333
334
 
334
335
  cmd_save() {
335
- local message="" topic="" no_pr=0 branch pushed="false" committed="false" pr_url="" existing_pr=""
336
+ local message="" topic="" no_pr=0 branch pushed="false" committed="false" pr_url="" existing_pr="" pr_number="" non_md="" merged="false"
336
337
 
337
338
  while [ $# -gt 0 ]; do
338
339
  case "$1" in
@@ -379,10 +380,31 @@ cmd_save() {
379
380
  fi
380
381
  fi
381
382
 
383
+ # Non-coding saves auto-merge to develop (same rule as /save and the
384
+ # handoff helper; policy in bin/lib/noncode.sh). `--auto` needs repo
385
+ # auto-merge + pending required checks; without branch protection it always
386
+ # errors, so fall back to a direct merge.
387
+ if [ -n "$pr_url" ]; then
388
+ # shellcheck source=bin/lib/noncode.sh
389
+ . "$SCRIPT_DIR/bin/lib/noncode.sh" 2>/dev/null || true
390
+ type noncode_blockers >/dev/null 2>&1 || noncode_blockers() {
391
+ git -C "${2:-.}" diff "${1:-origin/develop}...HEAD" --name-only 2>/dev/null | grep -v '\.md$' | head -1 || true
392
+ }
393
+ pr_number="${pr_url##*/}"
394
+ non_code="$(noncode_blockers origin/develop "$SCRIPT_DIR")"
395
+ if [ -z "$non_code" ] && [ -n "$pr_number" ]; then
396
+ if gh pr merge "$pr_number" --auto --merge >/dev/null 2>&1 \
397
+ || gh pr merge "$pr_number" --merge >/dev/null 2>&1; then
398
+ merged="true"
399
+ fi
400
+ fi
401
+ fi
402
+
382
403
  echo "branch: ${branch:-none}"
383
404
  echo "commit: $committed"
384
405
  echo "push: $pushed"
385
406
  [ -n "$pr_url" ] && echo "pr: $pr_url"
407
+ [ "$merged" = "true" ] && echo "merge: non-coding, merged to develop"
386
408
  return 0
387
409
  }
388
410
 
@@ -413,31 +435,38 @@ cmd_wrap() {
413
435
  fi
414
436
  [ -n "$body" ] || body="$summary"
415
437
 
416
- local month rel abs slug now
417
- month="$(date +%Y-%m)"
418
- slug="$(slugify "$topic")"
419
- [ -n "$slug" ] || slug="session"
420
- rel="wraps/$month/$(date +%d)-${from}-${slug}.md"
421
- abs="$MEMORY_DIR/$rel"
422
- now="$(date -u +%Y-%m-%dT%H:%M:%SZ)"
423
- mkdir -p "$(dirname "$abs")"
424
-
425
- {
426
- printf '# Wrap: %s\n\n' "$topic"
427
- printf '**Date**: %s\n' "$(date +%Y-%m-%d)"
428
- printf '**Author**: %s\n' "$from"
429
- printf '**Wrapped At**: %s\n\n' "$now"
430
- printf '## Summary\n\n%s\n\n' "$summary"
431
- printf '## Notes\n\n%s\n' "$body"
432
- } > "$abs"
433
-
434
- NO_PUSH="$no_push" save_memory "Wrap: $topic" "$rel"
438
+ local tmpd result rel session_id branch
439
+ local capture_args=(--mode personal)
440
+ tmpd="$(mktemp -d -t egregore-agent-wrap-XXXXXX)"
441
+ trap 'rm -rf "$tmpd"' RETURN
442
+ session_id="$(cat "$SCRIPT_DIR/.egregore-session-id" 2>/dev/null || true)"
443
+ branch="$(git -C "$SCRIPT_DIR" branch --show-current 2>/dev/null || true)"
444
+ [ "$no_push" = "1" ] && capture_args+=(--no-push)
445
+
446
+ printf '%s\n' "$body" |
447
+ TMPDIR="$tmpd" bash "$SCRIPT_DIR/bin/capture-run.sh" \
448
+ "${capture_args[@]}" \
449
+ --author "$from" \
450
+ --topic "$topic" \
451
+ --summary "$summary" \
452
+ --session-id "$session_id" \
453
+ --branch "$branch" >/dev/null
454
+
455
+ result="$tmpd/capture-run-result.json"
456
+ rel="$(jq -r '.file // empty' "$result" 2>/dev/null || true)"
457
+ [ -n "$rel" ] || die "wrap was not created"
435
458
  echo "wrap: memory/$rel"
459
+
460
+ # Session close: non-coding core-repo changes save + merge themselves
461
+ # (gated inside session-autosave.sh — code is never auto-committed).
462
+ if [ "$no_push" = "0" ]; then
463
+ ( bash "$SCRIPT_DIR/bin/session-autosave.sh" --dir "$SCRIPT_DIR" >/dev/null 2>&1 & ) >/dev/null 2>&1
464
+ fi
436
465
  }
437
466
 
438
467
  cmd_handoff() {
439
468
  ensure_memory
440
- local from="" to="" topic="" body="" body_file="" project=""
469
+ local from="" to="" topic="" body="" body_file="" project="" intent="action"
441
470
  local no_publish=0 no_notify=0 json=0
442
471
  NO_PUSH=0
443
472
 
@@ -449,6 +478,7 @@ cmd_handoff() {
449
478
  --body) body="${2:-}"; shift 2 ;;
450
479
  --body-file) body_file="${2:-}"; shift 2 ;;
451
480
  --project) project="${2:-}"; shift 2 ;;
481
+ --intent) intent="${2:-}"; shift 2 ;;
452
482
  --no-push) NO_PUSH=1; shift ;;
453
483
  --no-publish) no_publish=1; shift ;;
454
484
  --no-notify) no_notify=1; shift ;;
@@ -460,6 +490,10 @@ cmd_handoff() {
460
490
  [ -z "$from" ] && from="$(person_from_state)"
461
491
  [ -n "$from" ] || die "handoff requires --from"
462
492
  [ -n "$topic" ] || die "handoff requires --topic"
493
+ case "$intent" in
494
+ action|feedback|fyi) ;;
495
+ *) die "invalid --intent: $intent (action|feedback|fyi)" ;;
496
+ esac
463
497
  if [ -n "$body_file" ]; then
464
498
  [ -f "$body_file" ] || die "body file not found: $body_file"
465
499
  body="$(cat "$body_file")"
@@ -480,6 +514,7 @@ cmd_handoff() {
480
514
  [ -n "$project" ] && project_line="**Project**: $project"
481
515
  [ -n "$to" ] && handoff_args+=(--recipient "$to")
482
516
  [ -n "$project" ] && handoff_args+=(--project "$project")
517
+ handoff_args+=(--intent "$intent")
483
518
  [ "$NO_PUSH" = "1" ] && handoff_args+=(--no-push)
484
519
  [ "$no_publish" = "1" ] && handoff_args+=(--no-publish)
485
520
  [ "$no_notify" = "1" ] && handoff_args+=(--no-notify)
@@ -489,10 +524,12 @@ cmd_handoff() {
489
524
  printf '**Date**: %s\n' "$today"
490
525
  printf '**Author**: %s\n' "$from"
491
526
  [ -n "$to" ] && printf '**To**: %s\n' "$to"
527
+ printf '**Intent**: %s\n' "$intent"
492
528
  [ -n "$project_line" ] && printf '%s\n' "$project_line"
493
529
  printf '\n## Briefing\n\n%s\n\n' "$body"
494
530
  printf '## Next Steps\n\n- Continue from this handoff using the shared Egregore memory protocol.\n'
495
- } | TMPDIR="$tmpd" bash "$SCRIPT_DIR/bin/handoff-run.sh" \
531
+ } | TMPDIR="$tmpd" bash "$SCRIPT_DIR/bin/capture-run.sh" \
532
+ --mode addressed \
496
533
  --author "$from" \
497
534
  --topic "$topic" \
498
535
  "${handoff_args[@]}" \
@@ -509,6 +546,12 @@ cmd_handoff() {
509
546
  [ -s "$stdout_file" ] && sed 's/^/status: /' "$stdout_file"
510
547
  echo "handoff: memory/$rel"
511
548
  echo "result: $result_out"
549
+
550
+ # Parity with the Claude /handoff skill: save core-repo session work in the
551
+ # background (non-coding diffs auto-merge to develop, code stays in a PR).
552
+ if [ "$NO_PUSH" = "0" ]; then
553
+ ( bash "$SCRIPT_DIR/bin/handoff-save-egregore.sh" "$from" "$topic" --repo-dir "$SCRIPT_DIR" >/dev/null 2>&1 & ) >/dev/null 2>&1
554
+ fi
512
555
  }
513
556
 
514
557
  cmd_ask() {