@joshuafolkken/kit 1.1136.0 → 1.1166.0

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 (165) hide show
  1. package/.claude/settings.json +4 -4
  2. package/.claude/skills/epic-commands/SKILL.md +27 -239
  3. package/.claude/skills/epic-commands/epic-bundle.md +115 -0
  4. package/.claude/skills/epic-commands/execution-waves.md +126 -0
  5. package/.claude/skills/workflow-commands/SKILL.md +48 -194
  6. package/.claude/skills/workflow-commands/background-commands.md +1 -1
  7. package/.claude/skills/workflow-commands/backlogrun-child.md +12 -123
  8. package/.claude/skills/workflow-commands/backlogrun-lanes.md +11 -60
  9. package/.claude/skills/workflow-commands/backlogrun-park.md +10 -8
  10. package/.claude/skills/workflow-commands/backlogrun-progress.md +17 -173
  11. package/.claude/skills/workflow-commands/backlogrun-recovery.md +155 -0
  12. package/.claude/skills/workflow-commands/backlogrun-steps.md +64 -144
  13. package/.claude/skills/workflow-commands/backlogrun.md +5 -4
  14. package/.claude/skills/workflow-commands/chain-rule.md +3 -2
  15. package/.claude/skills/workflow-commands/delegation.md +2 -2
  16. package/.claude/skills/workflow-commands/entry-sequence.md +62 -0
  17. package/.claude/skills/workflow-commands/followup.md +104 -181
  18. package/.claude/skills/workflow-commands/fullrun-steps.md +8 -9
  19. package/.claude/skills/workflow-commands/fullrun.md +16 -73
  20. package/.claude/skills/workflow-commands/halfrun.md +10 -36
  21. package/.claude/skills/workflow-commands/into-target.md +4 -4
  22. package/.claude/skills/workflow-commands/issue-comments.md +7 -8
  23. package/.claude/skills/workflow-commands/issue-scout.md +6 -6
  24. package/.claude/skills/workflow-commands/kickoff.md +6 -6
  25. package/.claude/skills/workflow-commands/needs-human-review.md +6 -6
  26. package/.claude/skills/workflow-commands/observation-filing.md +21 -172
  27. package/.claude/skills/workflow-commands/observation-ledger.md +150 -0
  28. package/.claude/skills/workflow-commands/pre-gate-cut.md +33 -93
  29. package/.claude/skills/workflow-commands/prerequisite.md +6 -6
  30. package/.claude/skills/workflow-commands/progress-watcher.md +90 -0
  31. package/.claude/skills/workflow-commands/prrun.md +5 -5
  32. package/.claude/skills/workflow-commands/retrospective.md +9 -9
  33. package/.claude/skills/workflow-commands/split-assessment.md +2 -2
  34. package/.claude/skills/workflow-commands/target-repository.md +2 -2
  35. package/.claude/skills/workflow-commands/working-tree-hold.md +7 -5
  36. package/.codex/hooks.json +4 -4
  37. package/AGENTS.md +1 -6
  38. package/CLAUDE.md +58 -120
  39. package/GEMINI.md +1 -6
  40. package/dist/CLAUDE.md +58 -120
  41. package/dist/hooks/batch-guard.js +4 -4
  42. package/dist/hooks/{chunk-NFZGFGOR.js → chunk-5KTCMCOT.js} +14 -1
  43. package/dist/hooks/{chunk-LJBLGHEH.js → chunk-A6P7PN7P.js} +4 -6
  44. package/dist/hooks/{chunk-FO2I7UT7.js → chunk-ANJ2WGFD.js} +1 -1
  45. package/dist/hooks/{chunk-GDU26K3J.js → chunk-DYAVAM6S.js} +563 -126
  46. package/dist/hooks/{chunk-RFWWUI5F.js → chunk-ENA7P5FB.js} +3 -3
  47. package/dist/hooks/{chunk-KBXZLMRH.js → chunk-GU5MATVE.js} +213 -65
  48. package/dist/hooks/chunk-GYNGP7HI.js +56 -0
  49. package/dist/hooks/{chunk-HBKZLITF.js → chunk-URJA6XY4.js} +4 -4
  50. package/dist/hooks/{chunk-KOKOAV6D.js → chunk-V2BTOZHT.js} +6 -4
  51. package/dist/hooks/{chunk-JKKTVDAG.js → chunk-ZDZ555YH.js} +100 -20
  52. package/dist/hooks/codex-hook-adapter.js +10 -10
  53. package/dist/hooks/duplicate-read-guard.js +5 -5
  54. package/dist/hooks/format-edited.js +2 -2
  55. package/dist/hooks/inputs.json +193 -192
  56. package/dist/hooks/investigation-guard.js +5 -5
  57. package/dist/hooks/pretool-guard.js +11 -10
  58. package/dist/hooks/stop-guard.js +5 -5
  59. package/dist/josh.js +25 -2
  60. package/dist/version/index.js +5 -1
  61. package/package.json +2 -1
  62. package/prompts/collaboration-workflow/file-edits.md +11 -10
  63. package/prompts/collaboration-workflow/gh-rest.md +2 -4
  64. package/prompts/collaboration-workflow/glossary.md +1 -1
  65. package/prompts/collaboration-workflow/issue-citation.md +5 -9
  66. package/prompts/collaboration-workflow/issue-template.md +40 -115
  67. package/prompts/collaboration-workflow/operating-rules.md +4 -5
  68. package/prompts/collaboration-workflow/output-bounds.md +12 -78
  69. package/prompts/collaboration-workflow/overview.md +7 -13
  70. package/prompts/collaboration-workflow/plan-comment.md +11 -39
  71. package/prompts/collaboration-workflow/principles.md +3 -4
  72. package/prompts/collaboration-workflow/report-format.md +28 -74
  73. package/prompts/collaboration-workflow/residency.md +12 -109
  74. package/prompts/collaboration-workflow/rule-delivery.md +98 -97
  75. package/prompts/collaboration-workflow/shell-body.md +3 -13
  76. package/prompts/collaboration-workflow/turn-batching.md +14 -88
  77. package/prompts/collaboration-workflow/upstream-interrupt.md +12 -14
  78. package/prompts/collaboration-workflow/wip-cap.md +6 -45
  79. package/prompts/collaboration-workflow.md +1 -13
  80. package/prompts/review-rubric.md +8 -71
  81. package/prompts/review.md +25 -55
  82. package/prompts/testing-guide.md +18 -67
  83. package/scripts/agent/agent-role-profile.ts +1 -1
  84. package/scripts/agent/codex-hooks.ts +3 -12
  85. package/scripts/backlog/backlog-budget.ts +1 -1
  86. package/scripts/backlog/backlog-drive-cli.ts +4 -3
  87. package/scripts/backlog/backlog-drive-offer-argv.ts +10 -1
  88. package/scripts/backlog/backlog-offer.ts +6 -6
  89. package/scripts/behavior/behavior-rules.ts +11 -4
  90. package/scripts/delegation/investigation-reads.ts +5 -5
  91. package/scripts/discovery/repo-discovery.ts +21 -7
  92. package/scripts/discovery/repo-origin.ts +26 -0
  93. package/scripts/discovery/repo-party.ts +42 -1
  94. package/scripts/document/backlogrun-parent-read-set.ts +14 -15
  95. package/scripts/document/document-byte-budget.ts +34 -20
  96. package/scripts/document/entry-read-budget.ts +21 -9
  97. package/scripts/document/lane-child-read-set.ts +12 -14
  98. package/scripts/document/read-set-cli.ts +4 -4
  99. package/scripts/document/read-set-point-of-use.ts +10 -2
  100. package/scripts/document/resident-budget.ts +47 -0
  101. package/scripts/epic/epic-shape.ts +10 -13
  102. package/scripts/epic/epic-solo.ts +1 -1
  103. package/scripts/exports/unused-members-cli.ts +7 -3
  104. package/scripts/gh/git-gh-api-path.ts +7 -0
  105. package/scripts/hooks/pretool-guard-cli.ts +2 -2
  106. package/scripts/hooks/pretool-guard.ts +45 -2
  107. package/scripts/hooks/run-hook.sh +41 -0
  108. package/scripts/init/hook-command-rewrite.ts +18 -35
  109. package/scripts/init/hook-launch.ts +21 -32
  110. package/scripts/issue/issue-auto-ok.ts +95 -0
  111. package/scripts/issue/issue-file-cli.ts +53 -7
  112. package/scripts/issue/issue-file.ts +28 -5
  113. package/scripts/issue/issue-labels.ts +12 -12
  114. package/scripts/issue/issue-rank.ts +1 -1
  115. package/scripts/issue/issue-read-cli.ts +3 -3
  116. package/scripts/issue/issue-read.ts +2 -2
  117. package/scripts/issue/issue-scout-cli.ts +2 -2
  118. package/scripts/issue/issue-state-cli.ts +1 -1
  119. package/scripts/issue/issue-state.ts +2 -2
  120. package/scripts/issue/issue-wip.ts +70 -0
  121. package/scripts/josh/hook-decision.ts +17 -0
  122. package/scripts/josh/josh-commands-development.ts +10 -0
  123. package/scripts/josh/josh-commands-issue.ts +2 -2
  124. package/scripts/lines/bytes-command.ts +29 -6
  125. package/scripts/observations/observation-ledger-line.ts +1 -1
  126. package/scripts/release/release-progress.ts +167 -0
  127. package/scripts/release/release-publish.ts +19 -8
  128. package/scripts/release/release-tag.ts +22 -8
  129. package/scripts/rules/decision-oracle-stage.ts +1 -1
  130. package/scripts/rules/decision-oracle.ts +6 -6
  131. package/scripts/rules/delivered-rules.ts +11 -11
  132. package/scripts/rules/direct-pr-create.ts +110 -0
  133. package/scripts/rules/file-body.ts +98 -42
  134. package/scripts/rules/filing-cap.ts +2 -2
  135. package/scripts/rules/filing-offer.ts +1 -1
  136. package/scripts/rules/gh-api.ts +18 -1
  137. package/scripts/rules/implementation-cut.ts +3 -1
  138. package/scripts/rules/lane-background.ts +67 -10
  139. package/scripts/rules/permission-guards.ts +10 -2
  140. package/scripts/rules/stop-rules.ts +4 -4
  141. package/scripts/rules/test-declared-commit.ts +1 -1
  142. package/scripts/rules/third-party-write.ts +56 -12
  143. package/scripts/run/run-cut-handoff.ts +21 -1
  144. package/scripts/run/run-entry-cli.ts +11 -3
  145. package/scripts/run/run-hold-cli.ts +16 -2
  146. package/scripts/run/run-label.ts +50 -0
  147. package/scripts/run/run-merge-steps.ts +8 -3
  148. package/scripts/run/run-merge.ts +1 -1
  149. package/scripts/run/run-prep-cli.ts +6 -2
  150. package/scripts/run/run-prep.ts +17 -0
  151. package/scripts/run/run-ship-preflight.ts +34 -3
  152. package/scripts/run/run-ship-review-steps.ts +1 -1
  153. package/scripts/run/run-ship-review.ts +26 -5
  154. package/scripts/run/run-step-cli.ts +20 -7
  155. package/scripts/run/run-wake-driver.ts +24 -1
  156. package/scripts/run/run-wake-session.ts +2 -1
  157. package/scripts/test/test-declared-logic.ts +1 -1
  158. package/scripts/time-runtime/time-batch-guard.ts +52 -16
  159. package/scripts/time-runtime/time-density-hook.ts +20 -2
  160. package/scripts/time-runtime/time-density.ts +4 -3
  161. package/scripts/time-runtime/time-markers.ts +15 -4
  162. package/scripts/version/npm-registry.ts +11 -1
  163. package/templates/workflows/ci.yml +9 -1
  164. package/.claude/skills/workflow-commands/followup-reference.md +0 -118
  165. package/dist/hooks/chunk-HANSKHES.js +0 -464
@@ -1,221 +1,232 @@
1
1
  {
2
- "digest": "2aa705da071bf2ccebf4540d62b8b4a97e6c0f8e1d9b75074461739e307936bd",
2
+ "digest": "21839bc6976455e7eedaca79fdd63c376c1462e848b7b24ce8a7bfe0a82e2407",
3
3
  "inputs": [
4
- "scripts/josh/session-language-cli.ts",
5
- "scripts/hooks/format-edited-cli.ts",
4
+ "scripts/hooks/stop-guard.ts",
5
+ "scripts/hooks/pretool-guard-cli.ts",
6
6
  "scripts/hooks/codex-hook-adapter.ts",
7
- "scripts/hooks/batch-guard.ts",
7
+ "scripts/hooks/format-edited-cli.ts",
8
+ "scripts/josh/session-language-cli.ts",
8
9
  "scripts/delegation/investigation-guard.ts",
9
10
  "scripts/delegation/duplicate-read-guard.ts",
10
- "scripts/hooks/pretool-guard-cli.ts",
11
- "scripts/hooks/stop-guard.ts",
12
- "scripts/hooks/format-edited-file.ts",
11
+ "scripts/hooks/batch-guard.ts",
12
+ "scripts/rules/last-prompt.ts",
13
+ "scripts/run/run-stranded-detect.ts",
14
+ "scripts/run/run-hold.ts",
15
+ "scripts/discovery/repo-party.ts",
16
+ "scripts/time-runtime/time-density-hook.ts",
17
+ "scripts/rules/stop-rules.ts",
18
+ "scripts/time-runtime/time-hook-transcript.ts",
19
+ "scripts/run/run-carry.ts",
20
+ "scripts/lane/lane-child-marker.ts",
21
+ "scripts/run/run-cut.ts",
22
+ "scripts/backlog/backlog-stalled-detect.ts",
23
+ "scripts/run/run-halfrun-resume.ts",
13
24
  "scripts/josh/session-language.ts",
14
- "scripts/josh/josh-environment-file.ts",
15
- "scripts/delegation/investigation-reads.ts",
25
+ "scripts/run/run-headless.ts",
16
26
  "scripts/josh/hook-decision.ts",
27
+ "scripts/rules/lane-background.ts",
28
+ "scripts/rules/filing-cap.ts",
29
+ "scripts/lane/lane-handoff.ts",
30
+ "scripts/rules/lane-park.ts",
17
31
  "scripts/lane/lane-guard-policy.ts",
18
- "ports/index.js",
19
32
  "scripts/time-runtime/time-batch-guard.ts",
33
+ "scripts/backlog/backlog-ready.ts",
20
34
  "scripts/hooks/pretool-guard.ts",
35
+ "scripts/josh/josh-environment-file.ts",
21
36
  "scripts/lib/bounded-pool.ts",
22
- "scripts/time-runtime/time-density-hook.ts",
23
- "scripts/time-runtime/time-hook-transcript.ts",
37
+ "scripts/hooks/format-edited-file.ts",
38
+ "scripts/delegation/investigation-reads.ts",
24
39
  "scripts/time-runtime/time-spans.ts",
25
- "scripts/time-runtime/time-transcript-line.ts",
26
- "scripts/hooks/step-zero-notice.ts",
27
- "scripts/backlog/backlog-ready.ts",
28
- "scripts/backlog/backlog-stalled-detect.ts",
29
- "scripts/discovery/repo-party.ts",
30
- "scripts/lane/lane-handoff.ts",
31
- "scripts/rules/filing-cap.ts",
32
- "scripts/run/run-stranded-detect.ts",
33
- "scripts/rules/lane-background.ts",
34
- "scripts/rules/lane-park.ts",
35
- "scripts/rules/last-prompt.ts",
36
- "scripts/rules/stop-rules.ts",
37
- "scripts/run/run-carry.ts",
38
- "scripts/run/run-cut.ts",
39
- "scripts/run/run-halfrun-resume.ts",
40
- "scripts/hooks/format-rewrite-notice.ts",
41
40
  "scripts/lib/json-value.ts",
42
- "scripts/run/run-headless.ts",
43
- "scripts/run/run-hold.ts",
44
- "scripts/josh/stamp-file.ts",
45
- "scripts/time-runtime/time-bundle-call.ts",
46
- "scripts/run/run-watcher-hook.ts",
47
- "scripts/run/run-parent-cut-hook.ts",
48
- "scripts/build/local-bin.ts",
49
- "scripts/time-runtime/time-bundles.ts",
50
- "scripts/josh/josh-command-types.ts",
51
- "scripts/time-runtime/time-call-identity.ts",
52
- "scripts/hooks/edited-cspell.ts",
53
- "scripts/rules/delivered-rules.ts",
54
- "scripts/delegation/delegation-policy.ts",
55
- "scripts/cost-runtime/cost-blocks.ts",
56
- "scripts/cost-runtime/cost-transcript.ts",
57
- "scripts/time-runtime/time-shell.ts",
58
- "scripts/time-runtime/time-density.ts",
59
- "scripts/lane/lane-child-marker.ts",
60
- "scripts/test/test-declared-logic.ts",
61
- "scripts/backlog/backlog-stalled.ts",
62
- "scripts/time-runtime/time-writes.ts",
63
- "scripts/run/run-event-stream-emit.ts",
64
- "scripts/run/run-wake.ts",
65
- "scripts/time-runtime/time-background.ts",
66
- "scripts/time-runtime/time-followup-stage.ts",
67
- "scripts/time-runtime/time-markers.ts",
68
- "scripts/run/run-ship-detach.ts",
69
- "scripts/git/git-common-directory.ts",
70
- "scripts/time-runtime/time-instant.ts",
71
- "scripts/gh/git-gh-command.ts",
72
- "scripts/lane/lane-registry.ts",
73
- "scripts/issue/issue-cite.ts",
74
- "scripts/notify/telegram-notify.ts",
75
- "scripts/time-runtime/time-reported-failure.ts",
76
- "scripts/josh/josh-run.ts",
41
+ "scripts/lane/lane-paths.ts",
77
42
  "scripts/discovery/repo-origin.ts",
78
- "scripts/run/run-stranded.ts",
79
- "scripts/run/run-event-stream.ts",
80
- "scripts/run/run-invocation.ts",
81
43
  "scripts/discovery/repo-discovery.ts",
82
- "scripts/time-runtime/time-single-check.ts",
83
- "scripts/rules/shell-segments.ts",
44
+ "scripts/time-runtime/time-density.ts",
45
+ "scripts/josh/stamp-file.ts",
46
+ "scripts/lane/lane-registry.ts",
47
+ "scripts/lane/lane-reap.ts",
84
48
  "scripts/rules/tail-commands.ts",
85
- "scripts/issue/issue-labels.ts",
49
+ "scripts/run/run-ship-detach.ts",
50
+ "scripts/time-runtime/time-shell.ts",
51
+ "scripts/time-runtime/time-transcript-line.ts",
86
52
  "scripts/rules/bash-triggers.ts",
87
53
  "scripts/rules/run-tail.ts",
88
- "scripts/rules/reply-language.ts",
54
+ "scripts/cost-runtime/cost-blocks.ts",
55
+ "scripts/git/git-common-directory.ts",
56
+ "scripts/rules/shell-segments.ts",
57
+ "scripts/issue/issue-labels.ts",
58
+ "scripts/backlog/backlog-stalled.ts",
89
59
  "scripts/run/run-cut-handoff.ts",
90
- "scripts/rules/filing-offer.ts",
91
- "scripts/agent/agent-role-profile.ts",
92
- "scripts/backlog/backlog-budget.ts",
60
+ "scripts/run/run-event-stream.ts",
61
+ "scripts/notify/telegram-notify.ts",
93
62
  "scripts/cost-runtime/context-cut-threshold.ts",
63
+ "scripts/time-runtime/time-call-identity.ts",
64
+ "scripts/agent/agent-role-profile.ts",
94
65
  "scripts/git/git-command.ts",
66
+ "scripts/backlog/backlog-budget.ts",
95
67
  "scripts/lane/lane-child-invocation.ts",
68
+ "scripts/cost-runtime/cost-transcript.ts",
69
+ "scripts/rules/reply-language.ts",
70
+ "scripts/rules/filing-offer.ts",
96
71
  "scripts/rules/issue-citation.ts",
97
- "scripts/josh/platform-temporary.ts",
72
+ "scripts/run/run-event-stream-emit.ts",
73
+ "scripts/time-runtime/time-bundles.ts",
74
+ "scripts/time-runtime/time-bundle-call.ts",
75
+ "scripts/run/run-invocation.ts",
76
+ "scripts/time-runtime/time-reported-failure.ts",
77
+ "scripts/hooks/step-zero-notice.ts",
78
+ "scripts/run/run-wake.ts",
79
+ "ports/index.js",
80
+ "scripts/run/run-issue-number.ts",
81
+ "scripts/run/run-stranded.ts",
82
+ "scripts/lib/error-message.ts",
83
+ "scripts/gh/git-gh-command.ts",
84
+ "scripts/delegation/delegation-policy.ts",
85
+ "scripts/issue/issue-cite.ts",
86
+ "scripts/josh/josh-run.ts",
98
87
  "scripts/lane/lane-capacity.ts",
88
+ "scripts/rules/delivered-rules.ts",
89
+ "scripts/run/run-parent-cut-hook.ts",
90
+ "scripts/run/run-watcher-hook.ts",
91
+ "scripts/hooks/format-rewrite-notice.ts",
92
+ "scripts/build/local-bin.ts",
93
+ "scripts/josh/josh-command-types.ts",
94
+ "scripts/hooks/edited-cspell.ts",
95
+ "scripts/cost-runtime/cost-usage.ts",
96
+ "scripts/run/detached-launch.ts",
97
+ "scripts/josh/platform-temporary.ts",
98
+ "scripts/run/run-ship-next.ts",
99
+ "scripts/epic/epic-triage.ts",
100
+ "scripts/time-runtime/time-writes.ts",
101
+ "scripts/josh/process-identity.ts",
99
102
  "scripts/init/init-paths.ts",
100
- "scripts/lane/lane-reap.ts",
101
- "scripts/rules/file-body.ts",
103
+ "scripts/time-runtime/time-background.ts",
104
+ "scripts/time-runtime/time-followup-stage.ts",
105
+ "scripts/time-runtime/time-markers.ts",
106
+ "scripts/time-runtime/time-single-check.ts",
107
+ "scripts/discovery/repo-map-logic.ts",
108
+ "scripts/test/test-declared-logic.ts",
109
+ "scripts/rules/implementation-cut-verdict.ts",
110
+ "scripts/time-runtime/time-instant.ts",
111
+ "scripts/josh/process-owner.ts",
112
+ "scripts/lib/read-file.ts",
113
+ "scripts/lane/lane-environment.ts",
114
+ "scripts/gh/git-gh-helpers.ts",
115
+ "scripts/run/run-carry-conversation.ts",
116
+ "scripts/time-runtime/time-round-trips.ts",
117
+ "scripts/git/git-worktree.ts",
118
+ "scripts/run/run-event-scope.ts",
119
+ "scripts/lane/lane-seed.ts",
120
+ "scripts/gh/git-gh-issue.ts",
121
+ "scripts/gh/git-gh-pr.ts",
122
+ "scripts/gh/git-gh-pr-auto-merge.ts",
123
+ "scripts/gh/git-gh-repo.ts",
124
+ "scripts/gh/git-pr-checks-watch.ts",
125
+ "scripts/run/run-carry-change.ts",
126
+ "scripts/cost-runtime/cost-format.ts",
127
+ "scripts/josh/josh-command-map.ts",
128
+ "scripts/cost-runtime/cost-cli.ts",
129
+ "scripts/backlog/backlog-budget-cli.ts",
130
+ "scripts/lib/status-icons.ts",
131
+ "scripts/lib/schemas.ts",
132
+ "scripts/josh/josh-verdict.ts",
133
+ "scripts/time-runtime/time-command-key.ts",
134
+ "scripts/lib/timed-fetch.ts",
135
+ "scripts/cost-runtime/context-cut-payback.ts",
136
+ "scripts/gh/gh-spawn.ts",
137
+ "scripts/josh/agent-session-environment.ts",
138
+ "scripts/agent/agent-launch-environment.ts",
139
+ "scripts/cost-runtime/cost-verdict.ts",
140
+ "scripts/run/run-watcher-guard.ts",
141
+ "scripts/run/run-progress-read.ts",
142
+ "scripts/time-runtime/time-agent-bundles.ts",
143
+ "scripts/time-runtime/time-format.ts",
144
+ "scripts/rules/worktree-guard.ts",
102
145
  "scripts/rules/direct-filing.ts",
103
146
  "scripts/rules/early-heartbeat.ts",
104
- "scripts/rules/git-force.ts",
147
+ "scripts/rules/file-body.ts",
105
148
  "scripts/rules/gh-api.ts",
149
+ "scripts/rules/git-force.ts",
106
150
  "scripts/rules/implementation-cut.ts",
107
151
  "scripts/rules/issue-fold.ts",
108
- "scripts/rules/permission-guards.ts",
109
152
  "scripts/rules/josh-git-bare.ts",
110
153
  "scripts/rules/lane-carry-conflict.ts",
111
154
  "scripts/rules/lane-interactive-ask.ts",
112
155
  "scripts/rules/lane-switch-main.ts",
113
156
  "scripts/rules/oracle-consulted.ts",
114
- "scripts/rules/pre-gate-cut.ts",
157
+ "scripts/rules/permission-guards.ts",
115
158
  "scripts/rules/piped-verification.ts",
116
159
  "scripts/rules/poll-loop.ts",
117
- "scripts/rules/raw-field-body.ts",
160
+ "scripts/rules/pre-gate-cut.ts",
118
161
  "scripts/rules/prior-comment-read.ts",
162
+ "scripts/rules/raw-field-body.ts",
119
163
  "scripts/rules/rule-body-guard.ts",
120
- "scripts/rules/shell-body-trigger.ts",
121
- "scripts/rules/test-declared-commit.ts",
122
- "scripts/josh/process-identity.ts",
123
- "scripts/run/run-carry-change.ts",
124
- "scripts/rules/third-party-write.ts",
125
- "scripts/run/run-carry-conversation.ts",
126
- "scripts/rules/worktree-guard.ts",
127
- "scripts/run/run-progress-read.ts",
128
- "scripts/lib/error-message.ts",
129
- "scripts/run/run-watcher-guard.ts",
130
- "scripts/lib/schemas.ts",
131
- "scripts/josh/josh-command-map.ts",
132
- "scripts/lane/lane-paths.ts",
133
- "scripts/lib/read-file.ts",
134
- "scripts/cost-runtime/cost-cli.ts",
135
- "scripts/time-runtime/time-round-trips.ts",
136
- "scripts/rules/implementation-cut-verdict.ts",
137
- "scripts/cost-runtime/cost-format.ts",
138
- "scripts/cost-runtime/cost-verdict.ts",
139
- "scripts/cost-runtime/cost-usage.ts",
140
- "scripts/cost-runtime/cost-attribute.ts",
141
- "scripts/run/detached-launch.ts",
142
164
  "scripts/git/git-location-environment.ts",
143
165
  "scripts/git/constants.ts",
144
- "scripts/run/run-issue-number.ts",
145
- "scripts/lane/lane-environment.ts",
146
- "scripts/rules/protected-files.ts",
147
- "scripts/git/git-worktree.ts",
148
- "scripts/lane/lane-seed.ts",
149
- "scripts/gh/git-gh-helpers.ts",
150
- "scripts/lib/timed-fetch.ts",
151
- "scripts/lib/status-icons.ts",
152
- "scripts/backlog/backlog-budget-cli.ts",
153
- "scripts/discovery/repo-map-logic.ts",
154
- "scripts/cost-runtime/context-cut-payback.ts",
155
- "scripts/gh/git-gh-issue.ts",
156
- "scripts/gh/git-gh-pr.ts",
157
- "scripts/gh/git-gh-pr-auto-merge.ts",
158
- "scripts/gh/git-gh-repo.ts",
159
- "scripts/rules/git-argv.ts",
160
- "scripts/gh/git-pr-checks-watch.ts",
161
- "scripts/gh/gh-spawn.ts",
162
- "scripts/josh/josh-verdict.ts",
163
- "scripts/josh/agent-session-environment.ts",
164
- "scripts/run/run-progress-config.ts",
165
- "scripts/run/run-progress.ts",
166
- "scripts/run/run-progress-clock.ts",
167
- "scripts/test/test-declared-changed.ts",
166
+ "scripts/rules/third-party-write.ts",
167
+ "scripts/run/run-ship-stage.ts",
168
+ "scripts/followup/git-followup-stages.ts",
169
+ "scripts/time-runtime/time-phase-names.ts",
170
+ "scripts/cost-runtime/cost-attribute.ts",
171
+ "scripts/gh/git-gh-exec.ts",
172
+ "scripts/cost-runtime/own-session.ts",
173
+ "scripts/rules/shell-body-trigger.ts",
174
+ "scripts/rules/test-declared-commit.ts",
175
+ "scripts/gh/git-gh-api-path.ts",
176
+ "scripts/git/repository-lock.ts",
177
+ "scripts/gh/git-gh-issue-write.ts",
178
+ "scripts/git/git-ls-remote.ts",
168
179
  "scripts/git/git-spawn-sync.ts",
169
- "scripts/run/run-ship-next.ts",
170
180
  "scripts/git/git-execa-error.ts",
171
181
  "scripts/git/git-push-transport.ts",
172
182
  "scripts/git/git-spawn.ts",
173
- "scripts/rules/oracle-firing.ts",
174
- "scripts/rules/decision-oracle.ts",
175
- "scripts/agent/interactive-ask.ts",
176
- "scripts/rules/destructive-command.ts",
177
- "scripts/rules/index-guard.ts",
178
- "scripts/git/repository-lock.ts",
179
- "scripts/git/git-ls-remote.ts",
180
- "scripts/gh/git-gh-exec.ts",
181
- "scripts/lib/timeouts.ts",
182
- "scripts/run/run-event-scope.ts",
183
- "scripts/followup/git-followup-stages.ts",
184
- "scripts/epic/epic-triage.ts",
185
- "scripts/lib/cli-flags.ts",
186
- "scripts/run/run-carry-streak.ts",
187
- "scripts/josh/path-decision.ts",
188
- "scripts/cost-runtime/cost-pricing.ts",
189
- "scripts/gh/git-gh-pr-rest.ts",
190
- "scripts/gh/git-gh-api-path.ts",
191
- "scripts/gh/git-gh-pr-read.ts",
192
- "scripts/gh/git-gh-issue-write.ts",
193
183
  "scripts/gh/git-gh-issue-list.ts",
194
184
  "scripts/gh/git-gh-issue-read.ts",
195
185
  "scripts/gh/git-gh-issue-rest.ts",
196
- "scripts/cost-runtime/own-session.ts",
197
- "scripts/cost-runtime/transcript-cwd.ts",
198
- "scripts/cost-runtime/cost-corpus.ts",
199
- "scripts/run/run-ship-stage.ts",
200
- "scripts/time-runtime/time-command-key.ts",
201
- "scripts/rules/decision-oracle-stage.ts",
202
- "scripts/agent/agent-launch-environment.ts",
203
- "scripts/time-runtime/time-format.ts",
204
- "scripts/josh/process-owner.ts",
186
+ "scripts/lib/timeouts.ts",
187
+ "scripts/cost-runtime/cost-pricing.ts",
188
+ "scripts/agent/codex-home-source.ts",
205
189
  "scripts/gh/git-gh-failure.ts",
206
- "scripts/git/changed-paths.ts",
207
- "scripts/gate/project-checks.ts",
208
- "scripts/gh/git-gh-check.ts",
190
+ "scripts/test/test-declared-changed.ts",
191
+ "scripts/rules/git-argv.ts",
209
192
  "scripts/gh/git-gh-pr-snapshot.ts",
210
- "scripts/lane/lane-report.ts",
193
+ "scripts/rules/oracle-firing.ts",
194
+ "scripts/gh/gh-cli-token.ts",
211
195
  "scripts/ci/pr-classification.ts",
212
196
  "scripts/lib/poll.ts",
197
+ "scripts/gh/git-gh-pr-read.ts",
198
+ "scripts/gh/git-gh-pr-rest.ts",
199
+ "scripts/gh/git-pr-checks-parse.ts",
200
+ "scripts/rules/decision-oracle.ts",
201
+ "scripts/run/run-carry-streak.ts",
202
+ "scripts/rules/protected-files.ts",
203
+ "scripts/gh/git-pr-checks.ts",
204
+ "scripts/gh/git-pr-checks-eval.ts",
205
+ "scripts/run/run-progress-config.ts",
206
+ "scripts/rules/destructive-command.ts",
207
+ "scripts/rules/direct-pr-create.ts",
208
+ "scripts/rules/index-guard.ts",
209
+ "scripts/run/run-progress.ts",
210
+ "scripts/run/run-progress-clock.ts",
211
+ "scripts/cost-runtime/transcript-cwd.ts",
212
+ "scripts/lib/cli-flags.ts",
213
213
  "scripts/cost-runtime/codex-usage.ts",
214
- "scripts/run/run-liveness.ts",
214
+ "scripts/cost-runtime/cost-corpus.ts",
215
+ "scripts/josh/path-decision.ts",
216
+ "scripts/git/git-ssh-keepalive.ts",
217
+ "scripts/lib/spawn-exit.ts",
218
+ "scripts/gh/git-gh-check.ts",
219
+ "scripts/agent/interactive-ask.ts",
215
220
  "scripts/run/run-preflight.ts",
216
- "scripts/josh/josh-commands-ai.ts",
217
- "scripts/josh/josh-commands-workflow.ts",
218
221
  "scripts/epic/epic-busy.ts",
222
+ "scripts/lane/lane-report.ts",
223
+ "scripts/run/run-liveness.ts",
224
+ "scripts/gh/git-gh-reachability.ts",
225
+ "scripts/gh/git-gh-rest-state.ts",
226
+ "scripts/git/parse-json-array.ts",
227
+ "scripts/git/schemas.ts",
228
+ "scripts/josh/josh-commands-workflow.ts",
229
+ "scripts/josh/josh-commands-ai.ts",
219
230
  "scripts/josh/josh-commands-clone.ts",
220
231
  "scripts/josh/josh-commands-development.ts",
221
232
  "scripts/josh/josh-commands-hooks.ts",
@@ -223,58 +234,48 @@
223
234
  "scripts/josh/josh-commands-maintenance.ts",
224
235
  "scripts/josh/josh-commands-project.ts",
225
236
  "scripts/josh/josh-commands-versioning.ts",
226
- "scripts/git/git-ssh-keepalive.ts",
227
- "scripts/gh/git-pr-checks.ts",
228
- "scripts/gh/git-pr-checks-eval.ts",
229
- "scripts/gh/git-pr-checks-parse.ts",
237
+ "scripts/gate/project-checks.ts",
238
+ "scripts/gh/git-gh-pr-rollup.ts",
239
+ "scripts/gh/git-gh-pr-review.ts",
230
240
  "scripts/doctor/doctor-consumer.ts",
231
- "scripts/time-runtime/time-agent-bundles.ts",
232
- "scripts/time-runtime/time-phase-names.ts",
233
- "scripts/lib/spawn-exit.ts",
234
- "scripts/run/run-stage.ts",
235
- "scripts/gh/git-gh-reachability.ts",
236
- "scripts/gh/git-gh-rest-state.ts",
237
- "scripts/git/parse-json-array.ts",
238
- "scripts/git/schemas.ts",
239
- "scripts/agent/codex-home-source.ts",
241
+ "scripts/rules/decision-oracle-stage.ts",
240
242
  "scripts/test/skip-marker.ts",
241
- "scripts/gh/git-gh-pr-rollup.ts",
242
- "scripts/version/kit-descriptor.ts",
243
+ "scripts/init/project-profile.ts",
244
+ "scripts/git/changed-paths.ts",
243
245
  "scripts/issue/issue-state.ts",
244
246
  "scripts/agent/agent-event.ts",
245
- "scripts/gh/gh-cli-token.ts",
246
- "scripts/init/project-profile.ts",
247
- "scripts/gh/git-gh-pr-review.ts",
247
+ "scripts/run/run-stage.ts",
248
+ "scripts/josh/josh-commands-split.ts",
249
+ "scripts/version/kit-descriptor.ts",
248
250
  "scripts/josh/josh-commands-backlog.ts",
249
251
  "scripts/josh/josh-commands-document.ts",
250
252
  "scripts/josh/josh-commands-guard.ts",
251
253
  "scripts/josh/josh-commands-issue.ts",
252
254
  "scripts/josh/josh-commands-lane.ts",
253
255
  "scripts/josh/josh-commands-run.ts",
254
- "scripts/josh/josh-commands-split.ts",
255
256
  "scripts/agent/claude-result-event.ts"
256
257
  ],
257
258
  "outputs": [
258
259
  "codex-hook-adapter.js",
259
260
  "pretool-guard.js",
260
- "chunk-KBXZLMRH.js",
261
+ "chunk-GU5MATVE.js",
261
262
  "stop-guard.js",
262
- "chunk-JKKTVDAG.js",
263
+ "chunk-ZDZ555YH.js",
263
264
  "format-edited.js",
264
- "chunk-FO2I7UT7.js",
265
+ "chunk-ANJ2WGFD.js",
265
266
  "chunk-3V37IID6.js",
266
267
  "session-lang.js",
267
268
  "chunk-6V5OPIUU.js",
268
269
  "batch-guard.js",
269
- "chunk-KOKOAV6D.js",
270
+ "chunk-V2BTOZHT.js",
270
271
  "investigation-guard.js",
271
- "chunk-RFWWUI5F.js",
272
+ "chunk-ENA7P5FB.js",
272
273
  "duplicate-read-guard.js",
273
- "chunk-HBKZLITF.js",
274
- "chunk-LJBLGHEH.js",
275
- "chunk-HANSKHES.js",
276
- "chunk-NFZGFGOR.js",
277
- "chunk-GDU26K3J.js",
274
+ "chunk-URJA6XY4.js",
275
+ "chunk-A6P7PN7P.js",
276
+ "chunk-GYNGP7HI.js",
277
+ "chunk-5KTCMCOT.js",
278
+ "chunk-DYAVAM6S.js",
278
279
  "chunk-WPALEIRX.js",
279
280
  "chunk-RKUAD3I6.js"
280
281
  ]
@@ -10,11 +10,11 @@ import {
10
10
  is_enabled,
11
11
  load_environment_file,
12
12
  refusal_path
13
- } from "./chunk-RFWWUI5F.js";
14
- import "./chunk-LJBLGHEH.js";
15
- import "./chunk-HANSKHES.js";
16
- import "./chunk-NFZGFGOR.js";
17
- import "./chunk-GDU26K3J.js";
13
+ } from "./chunk-ENA7P5FB.js";
14
+ import "./chunk-A6P7PN7P.js";
15
+ import "./chunk-GYNGP7HI.js";
16
+ import "./chunk-5KTCMCOT.js";
17
+ import "./chunk-DYAVAM6S.js";
18
18
  import "./chunk-WPALEIRX.js";
19
19
  import "./chunk-RKUAD3I6.js";
20
20
  export {
@@ -1,18 +1,19 @@
1
1
  #!/usr/bin/env tsx
2
2
  import {
3
+ pretool_guard,
3
4
  pretool_outcome_async
4
- } from "./chunk-KBXZLMRH.js";
5
- import "./chunk-JKKTVDAG.js";
5
+ } from "./chunk-GU5MATVE.js";
6
+ import "./chunk-ZDZ555YH.js";
6
7
  import "./chunk-3V37IID6.js";
7
- import "./chunk-KOKOAV6D.js";
8
- import "./chunk-RFWWUI5F.js";
9
- import "./chunk-HBKZLITF.js";
10
- import "./chunk-LJBLGHEH.js";
11
- import "./chunk-HANSKHES.js";
8
+ import "./chunk-V2BTOZHT.js";
9
+ import "./chunk-ENA7P5FB.js";
10
+ import "./chunk-URJA6XY4.js";
11
+ import "./chunk-A6P7PN7P.js";
12
+ import "./chunk-GYNGP7HI.js";
12
13
  import {
13
14
  hook_decision
14
- } from "./chunk-NFZGFGOR.js";
15
- import "./chunk-GDU26K3J.js";
15
+ } from "./chunk-5KTCMCOT.js";
16
+ import "./chunk-DYAVAM6S.js";
16
17
  import "./chunk-WPALEIRX.js";
17
18
  import "./chunk-RKUAD3I6.js";
18
19
 
@@ -24,6 +25,6 @@ if (process.argv[1] === fileURLToPath(import.meta.url)) {
24
25
  else {
25
26
  const raw_payload = await text(process.stdin);
26
27
  hook_decision.load_environment_file();
27
- hook_decision.emit_outcome(await pretool_outcome_async(raw_payload));
28
+ pretool_guard.emit(raw_payload, await pretool_outcome_async(raw_payload));
28
29
  }
29
30
  }
@@ -25,14 +25,14 @@ import {
25
25
  run_headless,
26
26
  run_hold,
27
27
  run_invocation
28
- } from "./chunk-JKKTVDAG.js";
28
+ } from "./chunk-ZDZ555YH.js";
29
29
  import {
30
30
  session_language
31
31
  } from "./chunk-6V5OPIUU.js";
32
32
  import {
33
33
  hook_decision,
34
34
  lane_child_marker
35
- } from "./chunk-NFZGFGOR.js";
35
+ } from "./chunk-5KTCMCOT.js";
36
36
  import {
37
37
  PROJECT_ROOT,
38
38
  json_value,
@@ -40,7 +40,7 @@ import {
40
40
  time_density_hook,
41
41
  time_hook_transcript,
42
42
  time_reported_failure
43
- } from "./chunk-GDU26K3J.js";
43
+ } from "./chunk-DYAVAM6S.js";
44
44
  import "./chunk-WPALEIRX.js";
45
45
  import "./chunk-RKUAD3I6.js";
46
46
 
@@ -835,14 +835,14 @@ var stop_payload_schema = z3.object({
835
835
  });
836
836
  var NO_OUTCOME = { reason: void 0 };
837
837
  var STOP_NOTIFY_REASON = '\u26D4 mid-workflow stop notification: this working tree is still held by a run and no `confirmation` Telegram was sent this turn, so a person is being left to wait off-screen without knowing the run paused. `CLAUDE.md` \u2192 "Mid-workflow stop notification" requires `pnpm josh notify --task-type confirmation --issue-url "<url>" --body=$\'<reason>\'` before any mid-workflow pause. Send it, then end with a one-line confirmation that it was sent \u2014 do not repeat your previous reply. This fires only while the hold is held and no notify is on the transcript, and `stop_hook_active` lets a second stop through so a run is never wedged.';
838
- var HOLD_RELEASE_REASON = "\u26D4 working-tree hold not released: this working tree is clean but its `run:hold` record is still in place, so the next run here runs `git switch main && git pull` believing the tree is free while you hold it. `.claude/skills/workflow-commands/SKILL.md` \u2192 \xA72f: a stop that leaves the tree clean releases the hold with `pnpm josh run:release <N>` (bare for a `new` entry). A `halfrun` pre-commit stop and a `needs-human-review` stop keep the hold because their tree is dirty, and a `prrun` stop keeps it by its stop mark \u2014 this row is silent there. Release it, then end with a one-line confirmation that it was released \u2014 do not repeat your previous reply.";
838
+ var HOLD_RELEASE_REASON = "\u26D4 working-tree hold not released: this working tree is clean but its `run:hold` record is still in place, so the next run here runs `git switch main && git pull` believing the tree is free while you hold it. The workflow-commands skill \u2192 `working-tree-hold.md`: a stop that leaves the tree clean releases the hold with `pnpm josh run:release <N>` (bare for a `new` entry). A `halfrun` pre-commit stop and a `needs-human-review` stop keep the hold because their tree is dirty, and a `prrun` stop keeps it by its stop mark \u2014 this row is silent there. Release it, then end with a one-line confirmation that it was released \u2014 do not repeat your previous reply.";
839
839
  var ISSUE_CITATION_REASON = "Session-facing output cites an Issue as a number-link so the reader can click through and see which repository it is (`CLAUDE.md`, `prompts/collaboration-workflow/issue-citation.md`).";
840
840
  function build_citation_reason(references) {
841
841
  const numbers = references.join(", ");
842
842
  const command = `pnpm josh issue:cite ${issue_citation.cite_arguments(references).join(" ")}`;
843
843
  return `\u26D4 issue citation: your reply names an Issue as a bare \`#N\` (${numbers}). Run \`${command}\` to print the paste-ready citation lines, then print the corrected citation lines alone \u2014 do not repeat your previous reply. ${ISSUE_CITATION_REASON}`;
844
844
  }
845
- var FILING_OFFER_REASON = '\u26D4 filing offer: your reply offers to file an Issue instead of filing it. Filing into a first-party repository is Tier A \u2014 the trigger is the judgement that it is worth filing, not the run\'s progress (`.claude/skills/workflow-commands/SKILL.md` \u2192 \xA72i, `observation-filing.md`). Run `pnpm josh issue:file "<title>" --body-file <path> --depth <0|1|2>` \u2014 it scouts, lints, labels and runs `epic:bundle` itself \u2014 then end with the one-line citation of what was filed; do not repeat your previous reply. If it is not worth filing after all, say so in one line instead.';
845
+ var FILING_OFFER_REASON = '\u26D4 filing offer: your reply offers to file an Issue instead of filing it. Filing into a first-party repository is Tier A \u2014 the trigger is the judgement that it is worth filing, not the run\'s progress (the workflow-commands skill \u2192 `observation-filing.md`). Run `pnpm josh issue:file "<title>" --body-file <path> --depth <0|1|2>` \u2014 it scouts, lints, labels and runs `epic:bundle` itself \u2014 then end with the one-line citation of what was filed; do not repeat your previous reply. If it is not worth filing after all, say so in one line instead.';
846
846
  var HEADLESS_WAIT_MARKER = "\u26D4 headless parent:";
847
847
  var HEADLESS_REFUSAL_CAP = 3;
848
848
  var HEADLESS_WAIT_CALLS = ['"command":"pnpm josh lane:await'];
package/dist/josh.js CHANGED
@@ -528,10 +528,10 @@ var ISSUE_COMMANDS = {
528
528
  },
529
529
  "issue:file": {
530
530
  script: "scripts/issue/issue-file-cli.ts",
531
- description: "File an Issue with every filing step: lint, Origin, duplicate scout, labels, then epic:bundle",
531
+ description: "File an Issue with every filing step: lint, Origin, WIP cap, duplicate scout, labels, then epic:bundle",
532
532
  category: "AI tools",
533
533
  reference: [
534
- "<title> --body-file <path> --depth <0|1|2> [--route <route>] [--label <name>] [--repo <owner/repo>] [--distinct <N,\u2026>]",
534
+ "<title> --body-file <path> --depth <0|1|2> [--route <route>] [--label <name>] [--repo <owner/repo>] [--distinct <N,\u2026>] [--over-cap] [--no-auto-ok]",
535
535
  "automation",
536
536
  ["network"]
537
537
  ]
@@ -1042,6 +1042,15 @@ var DEV_COMMANDS = {
1042
1042
  // `UserPromptSubmit`, so it must stay eligible for in-process dispatch rather than pay a second
1043
1043
  // tsx start each turn. It calls `process.loadEnvFile` itself through the shared loader.
1044
1044
  },
1045
+ "codex:hook-adapter": {
1046
+ script: "scripts/hooks/codex-hook-adapter.ts",
1047
+ description: "Codex hook: run the pretool or posttool guard on a Codex payload (reads the tool call on stdin)",
1048
+ category: "Development",
1049
+ reference: ["<pretool|posttool>", "automation", ["none"]]
1050
+ // The live-source fallback `scripts/hooks/run-hook.sh` derives from the `codex-hook-adapter`
1051
+ // bundle name (joshuafolkken/kit#3184). **No `tsx_arguments`**, the same as `pretool:guard`
1052
+ // above: it runs before every guarded Codex call.
1053
+ },
1045
1054
  "cspell:dot": {
1046
1055
  script: "scripts/lint/cspell-cached.ts",
1047
1056
  description: "Run spell check including dotfiles",
@@ -1688,6 +1697,7 @@ var REPO_PATH_SEGMENTS = 2;
1688
1697
  var NOT_FOUND = -1;
1689
1698
  var SECTION_PREFIX = "[";
1690
1699
  var ORIGIN_SECTION = /^\[remote\s+"origin"\]$/u;
1700
+ var REMOTE_SECTION = /^\[remote\s+"[^"]+"\]$/u;
1691
1701
  var URL_KEY = "url";
1692
1702
  function is_github_hostname(host) {
1693
1703
  return host.toLowerCase() === GITHUB_HOST;
@@ -1747,6 +1757,18 @@ function parse_origin_from_config(content) {
1747
1757
  const lines = content.split("\n").map((line) => line.trim());
1748
1758
  return origin_section_lines(lines).map((line) => entry_value(line, URL_KEY)).find((url) => url !== void 0);
1749
1759
  }
1760
+ function section_groups(lines) {
1761
+ const groups = [];
1762
+ for (const line of lines) {
1763
+ if (is_section_header(line)) groups.push([line]);
1764
+ else groups.at(-1)?.push(line);
1765
+ }
1766
+ return groups;
1767
+ }
1768
+ function parse_remote_urls_from_config(content) {
1769
+ const lines = content.split("\n").map((line) => line.trim());
1770
+ return section_groups(lines).filter((group) => REMOTE_SECTION.test(group[0] ?? "")).flatMap((group) => group.map((line) => entry_value(line, URL_KEY))).filter((url) => url !== void 0);
1771
+ }
1750
1772
  function format_identity(identity) {
1751
1773
  return `${identity.owner}${PATH_SEPARATOR2}${identity.repo}`.toLowerCase();
1752
1774
  }
@@ -1756,6 +1778,7 @@ var repo_origin = {
1756
1778
  is_github_ssh_host,
1757
1779
  parse_origin_from_config,
1758
1780
  parse_origin_url,
1781
+ parse_remote_urls_from_config,
1759
1782
  format_identity
1760
1783
  };
1761
1784