openplanr 2.2641.1 → 2.2641.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 (245) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +1 -1
  3. package/dist/cli/commands/artifact.js +1 -1
  4. package/dist/cli/commands/artifact.js.map +1 -1
  5. package/dist/cli/commands/github.d.ts.map +1 -1
  6. package/dist/cli/commands/github.js +7 -10
  7. package/dist/cli/commands/github.js.map +1 -1
  8. package/dist/cli/commands/linear.js +1 -1
  9. package/dist/cli/commands/linear.js.map +1 -1
  10. package/dist/cli/commands/report.d.ts.map +1 -1
  11. package/dist/cli/commands/report.js +28 -32
  12. package/dist/cli/commands/report.js.map +1 -1
  13. package/dist/dashboard/.vite/manifest.json +1 -1
  14. package/dist/dashboard/assets/{index-DGyC7RDz.js → index-DI_TKz9J.js} +2 -2
  15. package/dist/dashboard/assets/{index-DGyC7RDz.js.map → index-DI_TKz9J.js.map} +1 -1
  16. package/dist/dashboard/dashboard-manifest.json +8 -8
  17. package/dist/dashboard/index.html +1 -1
  18. package/dist/models/schema.d.ts +0 -4
  19. package/dist/models/schema.d.ts.map +1 -1
  20. package/dist/models/schema.js +0 -2
  21. package/dist/models/schema.js.map +1 -1
  22. package/dist/models/types.d.ts +1 -4
  23. package/dist/models/types.d.ts.map +1 -1
  24. package/dist/services/credentials-service.js +1 -1
  25. package/dist/services/credentials-service.js.map +1 -1
  26. package/dist/services/distribution-service.d.ts +1 -4
  27. package/dist/services/distribution-service.d.ts.map +1 -1
  28. package/dist/services/distribution-service.js +1 -60
  29. package/dist/services/distribution-service.js.map +1 -1
  30. package/dist/services/github-service.d.ts +7 -4
  31. package/dist/services/github-service.d.ts.map +1 -1
  32. package/dist/services/github-service.js +16 -15
  33. package/dist/services/github-service.js.map +1 -1
  34. package/dist/services/linear-push-service.d.ts +3 -4
  35. package/dist/services/linear-push-service.d.ts.map +1 -1
  36. package/dist/services/linear-push-service.js +5 -6
  37. package/dist/services/linear-push-service.js.map +1 -1
  38. package/dist/services/spec-service.d.ts.map +1 -1
  39. package/dist/services/spec-service.js +34 -69
  40. package/dist/services/spec-service.js.map +1 -1
  41. package/dist/templates/rules/shared/capability-map.md.hbs +1 -1
  42. package/docs/CLI.md +10 -14
  43. package/lib/host-packages/adapter-registry.json +5 -5
  44. package/lib/host-packages/capability-map.json +8 -8
  45. package/lib/host-packages/claude/.claude-plugin/marketplace.json +2 -2
  46. package/lib/host-packages/claude/openplanr/.claude-plugin/plugin.json +1 -1
  47. package/lib/host-packages/claude/openplanr/.openplanr-content.json +80 -64
  48. package/lib/host-packages/claude/openplanr/README.md +8 -12
  49. package/lib/host-packages/claude/openplanr/agents/planr-backend.md +49 -55
  50. package/lib/host-packages/claude/openplanr/agents/planr-database.md +56 -92
  51. package/lib/host-packages/claude/openplanr/agents/planr-designer.md +35 -51
  52. package/lib/host-packages/claude/openplanr/agents/planr-devops.md +37 -51
  53. package/lib/host-packages/claude/openplanr/agents/planr-documentation.md +29 -52
  54. package/lib/host-packages/claude/openplanr/agents/planr-entity-scaffold.md +24 -23
  55. package/lib/host-packages/claude/openplanr/agents/planr-frontend.md +46 -58
  56. package/lib/host-packages/claude/openplanr/agents/planr-qa.md +4 -2
  57. package/lib/host-packages/claude/openplanr/agents/planr-specification.md +54 -51
  58. package/lib/host-packages/claude/openplanr/references/agents/shared/modes/default/backend.md +21 -65
  59. package/lib/host-packages/claude/openplanr/references/agents/shared/modes/default/designer.md +5 -6
  60. package/lib/host-packages/claude/openplanr/references/agents/shared/modes/default/devops.md +2 -3
  61. package/lib/host-packages/claude/openplanr/references/agents/shared/modes/default/doc-gen.md +3 -4
  62. package/lib/host-packages/claude/openplanr/references/agents/shared/modes/default/frontend.md +19 -64
  63. package/lib/host-packages/claude/openplanr/references/agents/shared/modes/default/specification.md +10 -12
  64. package/lib/host-packages/claude/openplanr/references/agents/shared/modes/spec-driven/backend.md +19 -62
  65. package/lib/host-packages/claude/openplanr/references/agents/shared/modes/spec-driven/designer.md +3 -4
  66. package/lib/host-packages/claude/openplanr/references/agents/shared/modes/spec-driven/devops.md +2 -3
  67. package/lib/host-packages/claude/openplanr/references/agents/shared/modes/spec-driven/doc-gen.md +2 -3
  68. package/lib/host-packages/claude/openplanr/references/agents/shared/modes/spec-driven/frontend.md +16 -59
  69. package/lib/host-packages/claude/openplanr/references/agents/shared/modes/spec-driven/specification.md +9 -11
  70. package/lib/host-packages/claude/openplanr/references/pipeline/stacks/database/mongodb.md +4 -4
  71. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-review.mjs +24 -9
  72. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-share.mjs +3 -3
  73. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/package.json +3 -3
  74. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/share.js +1 -1
  75. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +1 -1
  76. package/lib/host-packages/claude/openplanr/runtime/plan/scripts/design.mjs +1 -1
  77. package/lib/host-packages/claude/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +1 -1
  78. package/lib/host-packages/claude/openplanr/skills/artifact/SKILL.md +2 -2
  79. package/lib/host-packages/claude/openplanr/skills/artifact/references/diagram-sharing.md +1 -1
  80. package/lib/host-packages/claude/openplanr/skills/ceo-review/SKILL.md +0 -1
  81. package/lib/host-packages/claude/openplanr/skills/ceo-review/references/operate-advisor-contract.md +25 -4
  82. package/lib/host-packages/claude/openplanr/skills/chair-review/SKILL.md +6 -2
  83. package/lib/host-packages/claude/openplanr/skills/challenger-review/SKILL.md +6 -2
  84. package/lib/host-packages/claude/openplanr/skills/cmo-review/SKILL.md +0 -1
  85. package/lib/host-packages/claude/openplanr/skills/cmo-review/references/operate-advisor-contract.md +25 -4
  86. package/lib/host-packages/claude/openplanr/skills/coo-review/SKILL.md +0 -1
  87. package/lib/host-packages/claude/openplanr/skills/coo-review/references/operate-advisor-contract.md +25 -4
  88. package/lib/host-packages/claude/openplanr/skills/cpo-review/SKILL.md +0 -1
  89. package/lib/host-packages/claude/openplanr/skills/cpo-review/references/operate-advisor-contract.md +25 -4
  90. package/lib/host-packages/claude/openplanr/skills/cto-review/SKILL.md +0 -1
  91. package/lib/host-packages/claude/openplanr/skills/cto-review/references/operate-advisor-contract.md +25 -4
  92. package/lib/host-packages/claude/openplanr/skills/delegate/SKILL.md +7 -0
  93. package/lib/host-packages/claude/openplanr/skills/delegate/references/capsule-contract.md +16 -1
  94. package/lib/host-packages/claude/openplanr/skills/delegate/references/operator-guide.md +7 -5
  95. package/lib/host-packages/claude/openplanr/skills/delegate/scripts/adapters/claude.mjs +11 -4
  96. package/lib/host-packages/claude/openplanr/skills/delegate/scripts/adapters/native.mjs +1 -1
  97. package/lib/host-packages/claude/openplanr/skills/delegate/scripts/backend-diagnostics.mjs +14 -48
  98. package/lib/host-packages/claude/openplanr/skills/delegate/scripts/context.mjs +84 -22
  99. package/lib/host-packages/claude/openplanr/skills/delegate/scripts/credentials.mjs +167 -0
  100. package/lib/host-packages/claude/openplanr/skills/delegate/scripts/presentation.mjs +3 -2
  101. package/lib/host-packages/claude/openplanr/skills/delegate/scripts/run-contract.mjs +5 -7
  102. package/lib/host-packages/claude/openplanr/skills/delegate/scripts/run-preparation.mjs +2 -0
  103. package/lib/host-packages/claude/openplanr/skills/delegate/scripts/run-record.mjs +2 -3
  104. package/lib/host-packages/claude/openplanr/skills/diagram/references/diagram-sharing.md +1 -1
  105. package/lib/host-packages/claude/openplanr/skills/operate/SKILL.md +5 -3
  106. package/lib/host-packages/claude/openplanr/skills/plan/SKILL.md +8 -2
  107. package/lib/host-packages/claude/openplanr/skills/sprint/SKILL.md +5 -4
  108. package/lib/host-packages/claude/openplanr/skills/sprint/references/tracker-connections.md +70 -0
  109. package/lib/host-packages/claude/openplanr/skills/status/SKILL.md +4 -3
  110. package/lib/host-packages/claude/openplanr/skills/status/references/tracker-connections.md +70 -0
  111. package/lib/host-packages/claude/openplanr/skills/sync/SKILL.md +11 -20
  112. package/lib/host-packages/claude/openplanr/skills/sync/references/tracker-connections.md +70 -0
  113. package/lib/host-packages/claude/openplanr/skills/sync/scripts/sync.mjs +2 -2
  114. package/lib/host-packages/cursor/openplanr/.openplanr-content.json +52 -36
  115. package/lib/host-packages/cursor/openplanr/manifest.json +1 -1
  116. package/lib/host-packages/cursor/openplanr/rules/planr-artifact/references/diagram-sharing.md +1 -1
  117. package/lib/host-packages/cursor/openplanr/rules/planr-artifact.mdc +2 -2
  118. package/lib/host-packages/cursor/openplanr/rules/planr-ceo-review/references/operate-advisor-contract.md +25 -4
  119. package/lib/host-packages/cursor/openplanr/rules/planr-chair-review.mdc +6 -1
  120. package/lib/host-packages/cursor/openplanr/rules/planr-challenger-review.mdc +6 -1
  121. package/lib/host-packages/cursor/openplanr/rules/planr-cmo-review/references/operate-advisor-contract.md +25 -4
  122. package/lib/host-packages/cursor/openplanr/rules/planr-coo-review/references/operate-advisor-contract.md +25 -4
  123. package/lib/host-packages/cursor/openplanr/rules/planr-cpo-review/references/operate-advisor-contract.md +25 -4
  124. package/lib/host-packages/cursor/openplanr/rules/planr-cto-review/references/operate-advisor-contract.md +25 -4
  125. package/lib/host-packages/cursor/openplanr/rules/planr-delegate/references/capsule-contract.md +16 -1
  126. package/lib/host-packages/cursor/openplanr/rules/planr-delegate/references/operator-guide.md +7 -5
  127. package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/adapters/claude.mjs +11 -4
  128. package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/adapters/native.mjs +1 -1
  129. package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/backend-diagnostics.mjs +14 -48
  130. package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/context.mjs +84 -22
  131. package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/credentials.mjs +167 -0
  132. package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/presentation.mjs +3 -2
  133. package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/run-contract.mjs +5 -7
  134. package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/run-preparation.mjs +2 -0
  135. package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/run-record.mjs +2 -3
  136. package/lib/host-packages/cursor/openplanr/rules/planr-delegate.mdc +7 -0
  137. package/lib/host-packages/cursor/openplanr/rules/planr-diagram/references/diagram-sharing.md +1 -1
  138. package/lib/host-packages/cursor/openplanr/rules/planr-operate.mdc +5 -3
  139. package/lib/host-packages/cursor/openplanr/rules/planr-plan.mdc +8 -2
  140. package/lib/host-packages/cursor/openplanr/rules/planr-sprint/references/tracker-connections.md +70 -0
  141. package/lib/host-packages/cursor/openplanr/rules/planr-sprint.mdc +5 -4
  142. package/lib/host-packages/cursor/openplanr/rules/planr-status/references/tracker-connections.md +70 -0
  143. package/lib/host-packages/cursor/openplanr/rules/planr-status.mdc +4 -3
  144. package/lib/host-packages/cursor/openplanr/rules/planr-sync/references/tracker-connections.md +70 -0
  145. package/lib/host-packages/cursor/openplanr/rules/planr-sync/scripts/sync.mjs +2 -2
  146. package/lib/host-packages/cursor/openplanr/rules/planr-sync.mdc +11 -20
  147. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-review.mjs +24 -9
  148. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-share.mjs +3 -3
  149. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/package.json +3 -3
  150. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/share.js +1 -1
  151. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +1 -1
  152. package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/design.mjs +1 -1
  153. package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +1 -1
  154. package/lib/host-packages/openai/.claude-plugin/marketplace.json +2 -2
  155. package/lib/host-packages/openai/openplanr/.codex-plugin/plugin.json +1 -1
  156. package/lib/host-packages/openai/openplanr/.openplanr-content.json +61 -45
  157. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-review.mjs +24 -9
  158. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-share.mjs +3 -3
  159. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/package.json +3 -3
  160. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/share.js +1 -1
  161. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +1 -1
  162. package/lib/host-packages/openai/openplanr/runtime/plan/scripts/design.mjs +1 -1
  163. package/lib/host-packages/openai/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +1 -1
  164. package/lib/host-packages/openai/openplanr/skills/artifact/SKILL.md +2 -2
  165. package/lib/host-packages/openai/openplanr/skills/artifact/references/diagram-sharing.md +1 -1
  166. package/lib/host-packages/openai/openplanr/skills/ceo-review/SKILL.md +0 -1
  167. package/lib/host-packages/openai/openplanr/skills/ceo-review/references/operate-advisor-contract.md +25 -4
  168. package/lib/host-packages/openai/openplanr/skills/chair-review/SKILL.md +6 -2
  169. package/lib/host-packages/openai/openplanr/skills/challenger-review/SKILL.md +6 -2
  170. package/lib/host-packages/openai/openplanr/skills/cmo-review/SKILL.md +0 -1
  171. package/lib/host-packages/openai/openplanr/skills/cmo-review/references/operate-advisor-contract.md +25 -4
  172. package/lib/host-packages/openai/openplanr/skills/coo-review/SKILL.md +0 -1
  173. package/lib/host-packages/openai/openplanr/skills/coo-review/references/operate-advisor-contract.md +25 -4
  174. package/lib/host-packages/openai/openplanr/skills/cpo-review/SKILL.md +0 -1
  175. package/lib/host-packages/openai/openplanr/skills/cpo-review/references/operate-advisor-contract.md +25 -4
  176. package/lib/host-packages/openai/openplanr/skills/cto-review/SKILL.md +0 -1
  177. package/lib/host-packages/openai/openplanr/skills/cto-review/references/operate-advisor-contract.md +25 -4
  178. package/lib/host-packages/openai/openplanr/skills/delegate/SKILL.md +7 -0
  179. package/lib/host-packages/openai/openplanr/skills/delegate/openplanr.skill.json +11 -0
  180. package/lib/host-packages/openai/openplanr/skills/delegate/references/capsule-contract.md +16 -1
  181. package/lib/host-packages/openai/openplanr/skills/delegate/references/operator-guide.md +7 -5
  182. package/lib/host-packages/openai/openplanr/skills/delegate/scripts/adapters/claude.mjs +11 -4
  183. package/lib/host-packages/openai/openplanr/skills/delegate/scripts/adapters/native.mjs +1 -1
  184. package/lib/host-packages/openai/openplanr/skills/delegate/scripts/backend-diagnostics.mjs +14 -48
  185. package/lib/host-packages/openai/openplanr/skills/delegate/scripts/context.mjs +84 -22
  186. package/lib/host-packages/openai/openplanr/skills/delegate/scripts/credentials.mjs +167 -0
  187. package/lib/host-packages/openai/openplanr/skills/delegate/scripts/presentation.mjs +3 -2
  188. package/lib/host-packages/openai/openplanr/skills/delegate/scripts/run-contract.mjs +5 -7
  189. package/lib/host-packages/openai/openplanr/skills/delegate/scripts/run-preparation.mjs +2 -0
  190. package/lib/host-packages/openai/openplanr/skills/delegate/scripts/run-record.mjs +2 -3
  191. package/lib/host-packages/openai/openplanr/skills/diagram/references/diagram-sharing.md +1 -1
  192. package/lib/host-packages/openai/openplanr/skills/operate/SKILL.md +5 -3
  193. package/lib/host-packages/openai/openplanr/skills/plan/SKILL.md +8 -2
  194. package/lib/host-packages/openai/openplanr/skills/sprint/SKILL.md +5 -4
  195. package/lib/host-packages/openai/openplanr/skills/sprint/openplanr.skill.json +11 -0
  196. package/lib/host-packages/openai/openplanr/skills/sprint/references/tracker-connections.md +70 -0
  197. package/lib/host-packages/openai/openplanr/skills/status/SKILL.md +4 -3
  198. package/lib/host-packages/openai/openplanr/skills/status/openplanr.skill.json +11 -0
  199. package/lib/host-packages/openai/openplanr/skills/status/references/tracker-connections.md +70 -0
  200. package/lib/host-packages/openai/openplanr/skills/sync/SKILL.md +11 -20
  201. package/lib/host-packages/openai/openplanr/skills/sync/openplanr.skill.json +11 -0
  202. package/lib/host-packages/openai/openplanr/skills/sync/references/tracker-connections.md +70 -0
  203. package/lib/host-packages/openai/openplanr/skills/sync/scripts/sync.mjs +2 -2
  204. package/lib/integrations.mjs +2 -2
  205. package/package.json +2 -2
  206. package/dist/services/connectors/adapters/business-metrics.d.ts +0 -5
  207. package/dist/services/connectors/adapters/business-metrics.d.ts.map +0 -1
  208. package/dist/services/connectors/adapters/business-metrics.js +0 -41
  209. package/dist/services/connectors/adapters/business-metrics.js.map +0 -1
  210. package/dist/services/connectors/adapters/deployment-health.d.ts +0 -18
  211. package/dist/services/connectors/adapters/deployment-health.d.ts.map +0 -1
  212. package/dist/services/connectors/adapters/deployment-health.js +0 -67
  213. package/dist/services/connectors/adapters/deployment-health.js.map +0 -1
  214. package/dist/services/connectors/adapters/github.d.ts +0 -5
  215. package/dist/services/connectors/adapters/github.d.ts.map +0 -1
  216. package/dist/services/connectors/adapters/github.js +0 -31
  217. package/dist/services/connectors/adapters/github.js.map +0 -1
  218. package/dist/services/connectors/adapters/linear-jira.d.ts +0 -5
  219. package/dist/services/connectors/adapters/linear-jira.d.ts.map +0 -1
  220. package/dist/services/connectors/adapters/linear-jira.js +0 -26
  221. package/dist/services/connectors/adapters/linear-jira.js.map +0 -1
  222. package/dist/services/connectors/adapters/posthog.d.ts +0 -5
  223. package/dist/services/connectors/adapters/posthog.d.ts.map +0 -1
  224. package/dist/services/connectors/adapters/posthog.js +0 -31
  225. package/dist/services/connectors/adapters/posthog.js.map +0 -1
  226. package/dist/services/connectors/adapters/sentry.d.ts +0 -5
  227. package/dist/services/connectors/adapters/sentry.d.ts.map +0 -1
  228. package/dist/services/connectors/adapters/sentry.js +0 -31
  229. package/dist/services/connectors/adapters/sentry.js.map +0 -1
  230. package/dist/services/connectors/checkpoint-custody.d.ts +0 -45
  231. package/dist/services/connectors/checkpoint-custody.d.ts.map +0 -1
  232. package/dist/services/connectors/checkpoint-custody.js +0 -499
  233. package/dist/services/connectors/checkpoint-custody.js.map +0 -1
  234. package/dist/services/connectors/connector-registry.d.ts +0 -144
  235. package/dist/services/connectors/connector-registry.d.ts.map +0 -1
  236. package/dist/services/connectors/connector-registry.js +0 -423
  237. package/dist/services/connectors/connector-registry.js.map +0 -1
  238. package/dist/services/connectors/connector-runtime.d.ts +0 -208
  239. package/dist/services/connectors/connector-runtime.d.ts.map +0 -1
  240. package/dist/services/connectors/connector-runtime.js +0 -1305
  241. package/dist/services/connectors/connector-runtime.js.map +0 -1
  242. package/dist/services/connectors/credential-custody.d.ts +0 -96
  243. package/dist/services/connectors/credential-custody.d.ts.map +0 -1
  244. package/dist/services/connectors/credential-custody.js +0 -390
  245. package/dist/services/connectors/credential-custody.js.map +0 -1
@@ -8,7 +8,7 @@
8
8
  "files": [
9
9
  {
10
10
  "path": ".codex-plugin/plugin.json",
11
- "digest": "sha256:95d8820c818f4c9b969a8fe8f143e13a57056c7200a8fc662977f1699b78361a"
11
+ "digest": "sha256:10f28fc04cc1d302086cde8f7f8d1b897a216754f98f6cc6c5b0e28889792287"
12
12
  },
13
13
  {
14
14
  "path": "LICENSE",
@@ -64,7 +64,7 @@
64
64
  },
65
65
  {
66
66
  "path": "runtime/design/scripts/design-review.mjs",
67
- "digest": "sha256:3085283fb94cc2df9bd2630ba9bc0704523efdfda2e0dddb20c1dc5025941140"
67
+ "digest": "sha256:943d2fc37557f50df80ee00036e3ca844b022b7db373158578a2b3d72373b7a0"
68
68
  },
69
69
  {
70
70
  "path": "runtime/design/scripts/design-runtime-home.mjs",
@@ -80,7 +80,7 @@
80
80
  },
81
81
  {
82
82
  "path": "runtime/design/scripts/design-share.mjs",
83
- "digest": "sha256:aaf6ff42d68340a27ded2afff52c65a88e524aa66dc06ec52190fb0b94edec29"
83
+ "digest": "sha256:76a313211315e67b1fc9a216ce5b4ae415f472a34216a059fdbb4c9870ae9db7"
84
84
  },
85
85
  {
86
86
  "path": "runtime/design/scripts/design-shared-artifact-support-dependencies-design-support-protocol-contracts-3d9b1a86.mjs",
@@ -152,7 +152,7 @@
152
152
  },
153
153
  {
154
154
  "path": "runtime/design/scripts/runtime/packages/design/package.json",
155
- "digest": "sha256:4aff80438f5003c8ee683bb690d2499d3212631741c3cd4d5d519253603b12af"
155
+ "digest": "sha256:b3d397b4bb27c37799f143ee6a83c7000f3d1a38aba3e321778ed6cc8916d702"
156
156
  },
157
157
  {
158
158
  "path": "runtime/design/scripts/runtime/packages/design/templates/studio/enhancements.css",
@@ -168,7 +168,7 @@
168
168
  },
169
169
  {
170
170
  "path": "runtime/design/scripts/runtime/packages/design/templates/studio/share.js",
171
- "digest": "sha256:3be9bf9b8810a1eed5b22f05af33721e6a50d2a814d3d4309d1592b386f80c4f"
171
+ "digest": "sha256:b388471dccec997c49ce9638ff9a312037d311d63cbe980dceeb9c3c02ca037b"
172
172
  },
173
173
  {
174
174
  "path": "runtime/design/scripts/runtime/packages/design/templates/studio/studio.css",
@@ -248,7 +248,7 @@
248
248
  },
249
249
  {
250
250
  "path": "runtime/design/scripts/runtime/packages/protocol/package.json",
251
- "digest": "sha256:ee9f53eadd37089605b4b94c927f3743334cbf147e295eb563aa84fb9b3134af"
251
+ "digest": "sha256:037b4f8f4fd2f1db03d5106ec974e250502d1a4ce39a018e668ab7e07d93de43"
252
252
  },
253
253
  {
254
254
  "path": "runtime/design/scripts/runtime/packages/protocol/registries/artifact-theme.json",
@@ -360,7 +360,7 @@
360
360
  },
361
361
  {
362
362
  "path": "runtime/plan/scripts/design.mjs",
363
- "digest": "sha256:0a56528539c52e60bef50970bbfb8ccd761d66668ace739bd72b4c95e13cbe4a"
363
+ "digest": "sha256:d56e399ebb6a522e1b3a1aa82548334fd9137fc6573edfa2989d0dc5d3e3e4ab"
364
364
  },
365
365
  {
366
366
  "path": "runtime/plan/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt",
@@ -368,7 +368,7 @@
368
368
  },
369
369
  {
370
370
  "path": "runtime/plan/scripts/runtime/packages/protocol/package.json",
371
- "digest": "sha256:ee9f53eadd37089605b4b94c927f3743334cbf147e295eb563aa84fb9b3134af"
371
+ "digest": "sha256:037b4f8f4fd2f1db03d5106ec974e250502d1a4ce39a018e668ab7e07d93de43"
372
372
  },
373
373
  {
374
374
  "path": "runtime/plan/scripts/runtime/packages/protocol/schemas/v1.1.0/artifact-review.schema.json",
@@ -392,11 +392,11 @@
392
392
  },
393
393
  {
394
394
  "path": "skills/artifact/references/diagram-sharing.md",
395
- "digest": "sha256:b0cdad978a5ce2a8be27f072361e40cba10eac64d1bed8f224545dd5810c87ea"
395
+ "digest": "sha256:84c9ba89680dcbacc4f1ad8b871980e7e6ed73fae8d086c0d148c8ce84510f84"
396
396
  },
397
397
  {
398
398
  "path": "skills/artifact/SKILL.md",
399
- "digest": "sha256:2896fed09f4dbbbd741dabf03cec471f5aeae5ed24a66dc294ba3f83b2c5bdd9"
399
+ "digest": "sha256:6a8571ad87989bab350d1a9b54b54a9903c51e4f88b5d5bad0519bc65048016d"
400
400
  },
401
401
  {
402
402
  "path": "skills/browser-qa/agents/openai.yaml",
@@ -420,7 +420,7 @@
420
420
  },
421
421
  {
422
422
  "path": "skills/ceo-review/references/operate-advisor-contract.md",
423
- "digest": "sha256:467c4437430f656d37827c9035b7e3dec324735e1c7ac080776141a2e305e534"
423
+ "digest": "sha256:3153403563d422f395add6a2afd6d249737b8807e4ab31db5b830d82d7814fc5"
424
424
  },
425
425
  {
426
426
  "path": "skills/ceo-review/scripts/validate-note.mjs",
@@ -428,7 +428,7 @@
428
428
  },
429
429
  {
430
430
  "path": "skills/ceo-review/SKILL.md",
431
- "digest": "sha256:0ea3e5ea1b661ba365d20ba606773705eb38462b675822c5848c21f886924689"
431
+ "digest": "sha256:7187af962fbe765ead56b8acab4a77373333102d715a8d24c46e652fadf204c6"
432
432
  },
433
433
  {
434
434
  "path": "skills/chair-review/agents/openai.yaml",
@@ -444,7 +444,7 @@
444
444
  },
445
445
  {
446
446
  "path": "skills/chair-review/SKILL.md",
447
- "digest": "sha256:59fd6195a073ec018aa0c9663e8b963eea55c936bae11a86861fe56989038423"
447
+ "digest": "sha256:07077d1c317495fcaa5b1a278eec9f466f94c62f9c0ce1a7e04759a46d1cac71"
448
448
  },
449
449
  {
450
450
  "path": "skills/challenger-review/agents/openai.yaml",
@@ -460,7 +460,7 @@
460
460
  },
461
461
  {
462
462
  "path": "skills/challenger-review/SKILL.md",
463
- "digest": "sha256:1abe1b52a94de5bf2fd63cfd6f6392234a26b6d2e0dbe16eafe805b3772ff085"
463
+ "digest": "sha256:c614fc0a921cf061bfdd543d2d14b6dec0921c3d3eb87a8f98209524ca6cc2d7"
464
464
  },
465
465
  {
466
466
  "path": "skills/cmo-review/agents/openai.yaml",
@@ -472,7 +472,7 @@
472
472
  },
473
473
  {
474
474
  "path": "skills/cmo-review/references/operate-advisor-contract.md",
475
- "digest": "sha256:467c4437430f656d37827c9035b7e3dec324735e1c7ac080776141a2e305e534"
475
+ "digest": "sha256:3153403563d422f395add6a2afd6d249737b8807e4ab31db5b830d82d7814fc5"
476
476
  },
477
477
  {
478
478
  "path": "skills/cmo-review/scripts/validate-note.mjs",
@@ -480,7 +480,7 @@
480
480
  },
481
481
  {
482
482
  "path": "skills/cmo-review/SKILL.md",
483
- "digest": "sha256:742bb945c072ebd46ecc435412a68bc2af225d46e747b8164ff5e5c058901f4e"
483
+ "digest": "sha256:1a85d556992ea20c11046fb67535276fd6472c939f46f7920c26a5fae8fee217"
484
484
  },
485
485
  {
486
486
  "path": "skills/coo-review/agents/openai.yaml",
@@ -492,7 +492,7 @@
492
492
  },
493
493
  {
494
494
  "path": "skills/coo-review/references/operate-advisor-contract.md",
495
- "digest": "sha256:467c4437430f656d37827c9035b7e3dec324735e1c7ac080776141a2e305e534"
495
+ "digest": "sha256:3153403563d422f395add6a2afd6d249737b8807e4ab31db5b830d82d7814fc5"
496
496
  },
497
497
  {
498
498
  "path": "skills/coo-review/scripts/validate-note.mjs",
@@ -500,7 +500,7 @@
500
500
  },
501
501
  {
502
502
  "path": "skills/coo-review/SKILL.md",
503
- "digest": "sha256:6a85746e9f5219198a472c97490cee7349bca28a7840a8893ed6ebaf4459a700"
503
+ "digest": "sha256:e7e830fb1e976c510a9100d1f44b247a578408c96069915e02a3af32daabbb56"
504
504
  },
505
505
  {
506
506
  "path": "skills/cpo-review/agents/openai.yaml",
@@ -512,7 +512,7 @@
512
512
  },
513
513
  {
514
514
  "path": "skills/cpo-review/references/operate-advisor-contract.md",
515
- "digest": "sha256:467c4437430f656d37827c9035b7e3dec324735e1c7ac080776141a2e305e534"
515
+ "digest": "sha256:3153403563d422f395add6a2afd6d249737b8807e4ab31db5b830d82d7814fc5"
516
516
  },
517
517
  {
518
518
  "path": "skills/cpo-review/scripts/validate-note.mjs",
@@ -520,7 +520,7 @@
520
520
  },
521
521
  {
522
522
  "path": "skills/cpo-review/SKILL.md",
523
- "digest": "sha256:8eeed1e05392af615933843faff24b9a5463f1ccd66ca7e08216b2df428678af"
523
+ "digest": "sha256:115b3a3ef5eb6f75ab3f3cb36ee7c7aece8a84c5fc641e9465d6b13633cacc28"
524
524
  },
525
525
  {
526
526
  "path": "skills/cto-review/agents/openai.yaml",
@@ -532,7 +532,7 @@
532
532
  },
533
533
  {
534
534
  "path": "skills/cto-review/references/operate-advisor-contract.md",
535
- "digest": "sha256:467c4437430f656d37827c9035b7e3dec324735e1c7ac080776141a2e305e534"
535
+ "digest": "sha256:3153403563d422f395add6a2afd6d249737b8807e4ab31db5b830d82d7814fc5"
536
536
  },
537
537
  {
538
538
  "path": "skills/cto-review/scripts/validate-note.mjs",
@@ -540,7 +540,7 @@
540
540
  },
541
541
  {
542
542
  "path": "skills/cto-review/SKILL.md",
543
- "digest": "sha256:c48ae8d349792f664d737ccc282f4b5c11d9cec5940867f8ea0b9d049b1ee08e"
543
+ "digest": "sha256:d64399ec90c0052cf1222a394c65f74723a74305c8af9a41784efc19d45baf35"
544
544
  },
545
545
  {
546
546
  "path": "skills/dashboard/agents/openai.yaml",
@@ -560,7 +560,7 @@
560
560
  },
561
561
  {
562
562
  "path": "skills/delegate/openplanr.skill.json",
563
- "digest": "sha256:10489d6f04acd360db631f4f7b2adf59cf6b34df8fe1985552166802d47e8d47"
563
+ "digest": "sha256:01c074a24328c5eeba8571f75bea5d51e1b6f27a702e390c680055684a105717"
564
564
  },
565
565
  {
566
566
  "path": "skills/delegate/references/adapter-protocol.md",
@@ -568,7 +568,7 @@
568
568
  },
569
569
  {
570
570
  "path": "skills/delegate/references/capsule-contract.md",
571
- "digest": "sha256:12e0f01caa24a22f7c03ae1174d221b259a2fd4763539963db6c8654d63d8b28"
571
+ "digest": "sha256:9bd80db920018a43cecc02f4996d65d5eb54a121fce6caa3c9198cb0ca01bf6a"
572
572
  },
573
573
  {
574
574
  "path": "skills/delegate/references/integration-review.md",
@@ -576,7 +576,7 @@
576
576
  },
577
577
  {
578
578
  "path": "skills/delegate/references/operator-guide.md",
579
- "digest": "sha256:026655594840b990ba5c840e58056bfc5be35d719d0b7b6f2c5a629d8eda044d"
579
+ "digest": "sha256:436c12e8ff06e67a529df1aaeb736407d85a63c636260f4a193f458c94fd2ec4"
580
580
  },
581
581
  {
582
582
  "path": "skills/delegate/references/run-handoff.md",
@@ -592,7 +592,7 @@
592
592
  },
593
593
  {
594
594
  "path": "skills/delegate/scripts/adapters/claude.mjs",
595
- "digest": "sha256:7f864c25d0d50c6e31d23be4ccbd6f9edb2a601b529a3652abdde28b4c7c6066"
595
+ "digest": "sha256:98dae19b18c18b372edc77985a889303e595b0fc4556f1f42dcfd69d5f037acc"
596
596
  },
597
597
  {
598
598
  "path": "skills/delegate/scripts/adapters/codex.mjs",
@@ -608,15 +608,19 @@
608
608
  },
609
609
  {
610
610
  "path": "skills/delegate/scripts/adapters/native.mjs",
611
- "digest": "sha256:cf4af84cdfcc05d906a51878dfd82e5a0b5e4acd6644bf93ebf708a6dd2f0130"
611
+ "digest": "sha256:ff2a8c9365264c4065b8be742ba98ba7b5c8269779c66f217140e9fbf6609727"
612
612
  },
613
613
  {
614
614
  "path": "skills/delegate/scripts/backend-diagnostics.mjs",
615
- "digest": "sha256:74b327c6de0e581e2b238ea1e7d5f8ddaa15a7091f717b9a4c66192e60e9ef9c"
615
+ "digest": "sha256:989c307c6a42c19f799b17bbe7067211b5d9435a6ebabd2609d15d312d3d2715"
616
616
  },
617
617
  {
618
618
  "path": "skills/delegate/scripts/context.mjs",
619
- "digest": "sha256:a611af4a3542a5cd1c928b2a3a07a80f51598482a3beb5aede3e66ee3a13fb3f"
619
+ "digest": "sha256:632a59c12d8fc4b6b738279cbee5f8d001e76d9ef379fc065f62031647462d42"
620
+ },
621
+ {
622
+ "path": "skills/delegate/scripts/credentials.mjs",
623
+ "digest": "sha256:a7b55c9598a8a5301c4e0ff79f3471a587a5f26686c9a7d97fe662ee0babb49d"
620
624
  },
621
625
  {
622
626
  "path": "skills/delegate/scripts/custody.mjs",
@@ -644,7 +648,7 @@
644
648
  },
645
649
  {
646
650
  "path": "skills/delegate/scripts/presentation.mjs",
647
- "digest": "sha256:a3aca29d53b365c16dee25df7094f79c93425690b694ef5c2af9586becd60a03"
651
+ "digest": "sha256:32ca0c561e99bb02dc8f88e0823a0b826a24cd61404b165fe306bbbce9ee99b9"
648
652
  },
649
653
  {
650
654
  "path": "skills/delegate/scripts/profiles.mjs",
@@ -652,7 +656,7 @@
652
656
  },
653
657
  {
654
658
  "path": "skills/delegate/scripts/run-contract.mjs",
655
- "digest": "sha256:9118f4701e0e61ab186cba4da2cb97804310c6c314d96066ee9457e35f526252"
659
+ "digest": "sha256:f87f0bd16249266ef6f044a37db608d852a5d893628de26ab9844dc92df57c46"
656
660
  },
657
661
  {
658
662
  "path": "skills/delegate/scripts/run-execution.mjs",
@@ -668,11 +672,11 @@
668
672
  },
669
673
  {
670
674
  "path": "skills/delegate/scripts/run-preparation.mjs",
671
- "digest": "sha256:59a0207b35590c00c7e9906fa9fded89c85b8e8ed28431d07741f874c10e1176"
675
+ "digest": "sha256:dbc03621c77946ad77e97db84d826714d2fe75eccd15963756791b1439b46589"
672
676
  },
673
677
  {
674
678
  "path": "skills/delegate/scripts/run-record.mjs",
675
- "digest": "sha256:73eb79f4a2da7d1016356cc7098f36388934a66f4d14e0d8007349d624bb2abf"
679
+ "digest": "sha256:cbceec29880e4af92fc2dbd692edd10dcd6cb24ab87108b3a492f94797d93473"
676
680
  },
677
681
  {
678
682
  "path": "skills/delegate/scripts/runner.mjs",
@@ -680,7 +684,7 @@
680
684
  },
681
685
  {
682
686
  "path": "skills/delegate/SKILL.md",
683
- "digest": "sha256:68815c5caed2a8828042afb46f9ef49ab9629c868cc82e9cd199256eaed3466e"
687
+ "digest": "sha256:e3bc67ad5506a9d360344a4071e9cad1667e0481603789c5fb7b45ae0e39f826"
684
688
  },
685
689
  {
686
690
  "path": "skills/design-loop/agents/openai.yaml",
@@ -896,7 +900,7 @@
896
900
  },
897
901
  {
898
902
  "path": "skills/diagram/references/diagram-sharing.md",
899
- "digest": "sha256:b0cdad978a5ce2a8be27f072361e40cba10eac64d1bed8f224545dd5810c87ea"
903
+ "digest": "sha256:84c9ba89680dcbacc4f1ad8b871980e7e6ed73fae8d086c0d148c8ce84510f84"
900
904
  },
901
905
  {
902
906
  "path": "skills/diagram/SKILL.md",
@@ -968,7 +972,7 @@
968
972
  },
969
973
  {
970
974
  "path": "skills/operate/SKILL.md",
971
- "digest": "sha256:fcb015e0dd4bd7db0ef4e8fb772a0ae8308f71b989312307c1b49f573d3e84f3"
975
+ "digest": "sha256:6bc1de840850496637881024c6aa0c45156486a660bf6a40672dbbb75be94507"
972
976
  },
973
977
  {
974
978
  "path": "skills/plan-review/agents/openai.yaml",
@@ -1020,7 +1024,7 @@
1020
1024
  },
1021
1025
  {
1022
1026
  "path": "skills/plan/SKILL.md",
1023
- "digest": "sha256:b4b43572038ec5b0c8b845f51f29de5340f0c71d0b8e85fe6ca954b9ff31bdf1"
1027
+ "digest": "sha256:6cfa23c318f29fbd5c6f34541c43a84bf7681376563170cfd241d99b49951f16"
1024
1028
  },
1025
1029
  {
1026
1030
  "path": "skills/release/agents/openai.yaml",
@@ -1104,7 +1108,7 @@
1104
1108
  },
1105
1109
  {
1106
1110
  "path": "skills/sprint/openplanr.skill.json",
1107
- "digest": "sha256:1b891f3ccb84357f37f17e7214b85a440cd0945a5e2f759ca6839ad5af46b705"
1111
+ "digest": "sha256:62a62e58bc27242c36c06e170bd875d38ceb1457e467556839e1a80e26a459c9"
1108
1112
  },
1109
1113
  {
1110
1114
  "path": "skills/sprint/references/refinement-contract.md",
@@ -1114,13 +1118,17 @@
1114
1118
  "path": "skills/sprint/references/sprint-formats.md",
1115
1119
  "digest": "sha256:547bda354869f1aef26398e77e956f43116305f8dcc0d827dd5fb061ec98504a"
1116
1120
  },
1121
+ {
1122
+ "path": "skills/sprint/references/tracker-connections.md",
1123
+ "digest": "sha256:5f7d7126ca0db062c2b14c8ac35ca9758e44433329da610d7e75ad83b9417707"
1124
+ },
1117
1125
  {
1118
1126
  "path": "skills/sprint/schemas/refinement.schema.json",
1119
1127
  "digest": "sha256:31494ba4a83f9b7b3aeffc8423135404026ba07c02106be3ba99d6fc75852b12"
1120
1128
  },
1121
1129
  {
1122
1130
  "path": "skills/sprint/SKILL.md",
1123
- "digest": "sha256:575da099d52420caa8d8494058dc8caa2e0dcaa307bd59d7c6043fd59e031e3c"
1131
+ "digest": "sha256:5c3b89308fb01454db92d7a93d166443054b645e223097649d1f52ad18dcb8c9"
1124
1132
  },
1125
1133
  {
1126
1134
  "path": "skills/status/agents/openai.yaml",
@@ -1128,11 +1136,15 @@
1128
1136
  },
1129
1137
  {
1130
1138
  "path": "skills/status/openplanr.skill.json",
1131
- "digest": "sha256:a9eabf20675b8a13692cc0f8e826b2e58c3a92626b3cbb5cf1431e9f0debf029"
1139
+ "digest": "sha256:414afb2187111d04a1c3030f28c7b20a58ad7b4eb3e0e724852a34e152ecceae"
1140
+ },
1141
+ {
1142
+ "path": "skills/status/references/tracker-connections.md",
1143
+ "digest": "sha256:5f7d7126ca0db062c2b14c8ac35ca9758e44433329da610d7e75ad83b9417707"
1132
1144
  },
1133
1145
  {
1134
1146
  "path": "skills/status/SKILL.md",
1135
- "digest": "sha256:8d0d04b47ca922cf192610f7443228bd64420d0b3da86d2a8a214c7452f22da9"
1147
+ "digest": "sha256:35cc24a74739ae90e2a9f07c99a0f14652fe71c0827d2b4aa336966dbb8823e8"
1136
1148
  },
1137
1149
  {
1138
1150
  "path": "skills/sync/agents/openai.yaml",
@@ -1140,7 +1152,11 @@
1140
1152
  },
1141
1153
  {
1142
1154
  "path": "skills/sync/openplanr.skill.json",
1143
- "digest": "sha256:e0578f02e6ec23d948101392972cb373f3601de3d4a53f9fe526b527f0d8147d"
1155
+ "digest": "sha256:e45162758f758bae447c126d121ec1a220b40e03bd09a14b9b4fc2e6643f53da"
1156
+ },
1157
+ {
1158
+ "path": "skills/sync/references/tracker-connections.md",
1159
+ "digest": "sha256:5f7d7126ca0db062c2b14c8ac35ca9758e44433329da610d7e75ad83b9417707"
1144
1160
  },
1145
1161
  {
1146
1162
  "path": "skills/sync/scripts/names.mjs",
@@ -1148,12 +1164,12 @@
1148
1164
  },
1149
1165
  {
1150
1166
  "path": "skills/sync/scripts/sync.mjs",
1151
- "digest": "sha256:37c7caaea892e296aa9329a52f75144355555120d6254e8dd8019d1366907376"
1167
+ "digest": "sha256:7ef90127444f270dc30d119c88a41c898fe7e0b82b1d72d95b1bffc9393a1492"
1152
1168
  },
1153
1169
  {
1154
1170
  "path": "skills/sync/SKILL.md",
1155
- "digest": "sha256:9268c5c738cf969e89eb6af980bbe65c2d8eab892f9e64454052681cd09a90ec"
1171
+ "digest": "sha256:a90f713ac4cda7fc0df0c2b40256ddba3cfa1ee8ea809705f1cf735324952022"
1156
1172
  }
1157
1173
  ],
1158
- "contentDigest": "sha256:bf9d32f95831a1ece0e038caa4d9c8e112ad5cd2e83fd56523176459ab701560"
1174
+ "contentDigest": "sha256:13d8e15bcaf9a2e643db0c2b5b9c6c08da6565f5419ea7c6021756c5bdfce5fb"
1159
1175
  }
@@ -424,8 +424,12 @@ import { dirname, isAbsolute, join, resolve } from "node:path";
424
424
  import { fileURLToPath } from "node:url";
425
425
  var here = dirname(fileURLToPath(new URL("./runtime/packages/artifact/lib/artifact/review-server.mjs", import.meta.url).href));
426
426
  var STAGE_RUNTIME_PATH = join(here, "..", "..", "templates", "artifact-review-stage.js");
427
- var ARTIFACT_REVIEW_SERVER_VERSION = 2;
427
+ var ARTIFACT_REVIEW_SERVER_VERSION = 3;
428
428
  var ARTIFACT_REVIEW_SERVER_KIND = "artifact-review";
429
+ var CONTROL_HEADER = "x-openplanr-control";
430
+ var CONTROLLABLE_SERVER_VERSIONS = /* @__PURE__ */ new Set([2, ARTIFACT_REVIEW_SERVER_VERSION]);
431
+ var EXPORT_ONLY_SERVER_VERSIONS = /* @__PURE__ */ new Set([1]);
432
+ var AUTHORIZATION_CONTROL_VERSIONS = /* @__PURE__ */ new Set([1, 2]);
429
433
  var CONTROL_WINDOW_BYTES = 64 * 1024 * 1024;
430
434
  var ARTIFACT_REVIEW_MAX_CONTROL_BYTES = Math.ceil((MAX_ARTIFACT_HTML_BYTES * 2 + ARTIFACT_REVIEW_MAX_STATE_BYTES) / CONTROL_WINDOW_BYTES) * CONTROL_WINDOW_BYTES;
431
435
  var ARTIFACT_REVIEW_MAX_STATE_BYTES2 = ARTIFACT_REVIEW_MAX_STATE_BYTES;
@@ -481,6 +485,12 @@ var PERMISSIONS_POLICY = [
481
485
  function artifactError(code, message, fix = "", details) {
482
486
  return new PipelineError(code, message, fix, details);
483
487
  }
488
+ function artifactReviewControlHeaders(controlToken) {
489
+ return { [CONTROL_HEADER]: controlToken };
490
+ }
491
+ function stateControlHeaders(state) {
492
+ return AUTHORIZATION_CONTROL_VERSIONS.has(state.serverVersion) ? { authorization: `Bearer ${state.controlToken}` } : artifactReviewControlHeaders(state.controlToken);
493
+ }
484
494
  function reviewStateDir(env = process.env) {
485
495
  return join(planrHome(env), "artifact-daemon");
486
496
  }
@@ -563,9 +573,9 @@ function parseRequestPath(rawUrl) {
563
573
  });
564
574
  return { segments, trailingSlash };
565
575
  }
566
- function bearerToken(req) {
567
- const value = req.headers?.authorization;
568
- return typeof value === "string" && value.startsWith("Bearer ") ? value.slice(7) : "";
576
+ function presentedControlToken(req) {
577
+ const value = req.headers?.[CONTROL_HEADER];
578
+ return typeof value === "string" ? value : "";
569
579
  }
570
580
  function cloneAndValidateEnvelope(envelope) {
571
581
  let cloned;
@@ -875,7 +885,7 @@ function createArtifactReviewServer({
875
885
  return;
876
886
  }
877
887
  if (internal) {
878
- if (!timingSafeTokenEqual(bearerToken(req), controlToken)) {
888
+ if (!timingSafeTokenEqual(presentedControlToken(req), controlToken)) {
879
889
  sendJson(res, 403, { ok: false, error: "forbidden" });
880
890
  return;
881
891
  }
@@ -1449,7 +1459,7 @@ function createArtifactReviewServer({
1449
1459
  return controller;
1450
1460
  }
1451
1461
  function validState(value, requestedPort, { allowLegacy = false } = {}) {
1452
- return value?.schemaVersion === "1.0.0" && value.kind === ARTIFACT_REVIEW_SERVER_KIND && (value.serverVersion === ARTIFACT_REVIEW_SERVER_VERSION || allowLegacy && value.serverVersion === 1) && Number.isInteger(value.pid) && value.pid > 0 && Number.isInteger(value.port) && value.port > 0 && value.port <= 65535 && (requestedPort === 0 || value.port === requestedPort) && isCapabilityToken(value.instanceId, { bytes: SESSION_ID_BYTES }) && isCapabilityToken(value.controlToken, { bytes: CONTROL_TOKEN_BYTES });
1462
+ return value?.schemaVersion === "1.0.0" && value.kind === ARTIFACT_REVIEW_SERVER_KIND && (CONTROLLABLE_SERVER_VERSIONS.has(value.serverVersion) || allowLegacy && EXPORT_ONLY_SERVER_VERSIONS.has(value.serverVersion)) && Number.isInteger(value.pid) && value.pid > 0 && Number.isInteger(value.port) && value.port > 0 && value.port <= 65535 && (requestedPort === 0 || value.port === requestedPort) && isCapabilityToken(value.instanceId, { bytes: SESSION_ID_BYTES }) && isCapabilityToken(value.controlToken, { bytes: CONTROL_TOKEN_BYTES });
1453
1463
  }
1454
1464
  function readReviewServerState(path) {
1455
1465
  try {
@@ -1473,7 +1483,7 @@ async function controlRequest(descriptor, path, { method, body, fetchImpl } = {}
1473
1483
  const response = await fetchImpl(`http://${LOOPBACK_HOST}:${descriptor.state.port}${path}`, {
1474
1484
  method,
1475
1485
  headers: {
1476
- authorization: `Bearer ${descriptor.state.controlToken}`,
1486
+ ...stateControlHeaders(descriptor.state),
1477
1487
  ...body === void 0 ? {} : { "content-type": "application/json" }
1478
1488
  },
1479
1489
  ...body === void 0 ? {} : { body: JSON.stringify(body) },
@@ -2852,7 +2862,12 @@ async function startDesignReviewUnlocked(file, {
2852
2862
  server = createArtifactReviewServer({
2853
2863
  env,
2854
2864
  serverMetadata: { kind: "design", projectRoot: current.root },
2855
- prepareSource: (options) => prepareArtifactDocument({ ...options, allowLocalForms: true }),
2865
+ prepareSource: (options) => prepareArtifactDocument({
2866
+ ...options,
2867
+ allowLocalForms: true,
2868
+ prototypeState: true,
2869
+ screenId: current.entries.find((entry) => entry.artifactId === options.artifactId)?.screenId ?? options.artifactId
2870
+ }),
2856
2871
  async refreshSession(session) {
2857
2872
  current = currentDesign(file);
2858
2873
  if (session.designRevision === current.revision) return;
@@ -3214,7 +3229,7 @@ ${renderArtifactParentRuntime({ ...options, adapterRuntimeUrl: `${base}api/desig
3214
3229
  const registered = await fetchImpl(`${origin}/internal/v1/sessions`, {
3215
3230
  method: "POST",
3216
3231
  headers: {
3217
- authorization: `Bearer ${server.controlToken}`,
3232
+ ...artifactReviewControlHeaders(server.controlToken),
3218
3233
  "content-type": "application/json"
3219
3234
  },
3220
3235
  body: JSON.stringify({
@@ -92,7 +92,7 @@ ${current.document.id}`);
92
92
  const within = relative(project, root);
93
93
  if ((!allowMissing || existsSync(path)) && (within === "" || !within.startsWith(`..${process.platform === "win32" ? "\\" : "/"}`) && within !== ".." && !isAbsolute(within)))
94
94
  throw new Error(
95
- "Design owner credentials must be stored outside the project. Set PLANR_HOME to a private user-level directory."
95
+ "Design owner keys must be stored outside the project. Set PLANR_HOME to a private user-level directory."
96
96
  );
97
97
  const legacyPath = !options.custodyRoot && !configuredPlanrHome(env) ? join(realpathSync(env.HOME || homedir()), ".openplanr", "design-shares", `${key}.json`) : null;
98
98
  return { root, path, current, legacyPath };
@@ -1785,10 +1785,10 @@ async function importDesignShareRecovery(file, { input, ...options } = {}) {
1785
1785
  throw new Error("Recovery belongs to a different design.");
1786
1786
  if (record && (record.custody.id !== custody.id || JSON.stringify(record.custody.ownerPublicKey) !== JSON.stringify(custody.ownerPublicKey)))
1787
1787
  throw new Error(
1788
- "This design already has different owner credentials. Recovery will not overwrite them."
1788
+ "This design already has different owner keys. Recovery will not overwrite them."
1789
1789
  );
1790
1790
  if (record && record.custody.version > custody.version)
1791
- throw new Error("This recovery file is older than the locally saved owner credentials.");
1791
+ throw new Error("This recovery file is older than the locally saved owner keys.");
1792
1792
  if (!custody.pendingCreate && !recovered.deleted && !recovered.revoked) {
1793
1793
  await getWorkspace(custody, { fetchImpl: options.fetchImpl });
1794
1794
  const bundle = await decryptWorkspaceRevision(custody, custody.currentRevision, {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openplanr/design",
3
- "version": "0.4.4",
3
+ "version": "0.4.5",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "Canonical OpenPlanr design helpers and design-loop engine",
@@ -46,8 +46,8 @@
46
46
  "node": ">=20.19.0"
47
47
  },
48
48
  "dependencies": {
49
- "@openplanr/artifact": "0.6.4",
50
- "@openplanr/protocol": "0.10.2"
49
+ "@openplanr/artifact": "0.6.5",
50
+ "@openplanr/protocol": "0.10.3"
51
51
  },
52
52
  "scripts": {
53
53
  "test": "node --test --test-concurrency=2 tests/*.test.mjs",
@@ -1,4 +1,4 @@
1
- /* Trusted local adapter. Owner credentials never enter this runtime. */
1
+ /* Trusted local adapter. Owner keys never enter this runtime. */
2
2
  (() => {
3
3
  'use strict';
4
4
  const options = globalThis.__OPENPLANR_DESIGN_STUDIO_OPTIONS__ || {};
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openplanr/protocol",
3
- "version": "0.10.2",
3
+ "version": "0.10.3",
4
4
  "type": "module",
5
5
  "description": "Canonical OpenPlanr schemas, registries, typed errors, and portable contract validation",
6
6
  "license": "MIT",
@@ -2551,7 +2551,7 @@ ${current.document.id}`);
2551
2551
  const within = relative3(project, root);
2552
2552
  if ((!allowMissing || existsSync4(path)) && (within === "" || !within.startsWith(`..${process.platform === "win32" ? "\\" : "/"}`) && within !== ".." && !isAbsolute3(within)))
2553
2553
  throw new Error(
2554
- "Design owner credentials must be stored outside the project. Set PLANR_HOME to a private user-level directory."
2554
+ "Design owner keys must be stored outside the project. Set PLANR_HOME to a private user-level directory."
2555
2555
  );
2556
2556
  const legacyPath = !options.custodyRoot && !configuredPlanrHome(env) ? join7(realpathSync4(env.HOME || homedir3()), ".openplanr", "design-shares", `${key}.json`) : null;
2557
2557
  return { root, path, current, legacyPath };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openplanr/protocol",
3
- "version": "0.10.2",
3
+ "version": "0.10.3",
4
4
  "type": "module",
5
5
  "description": "Canonical OpenPlanr schemas, registries, typed errors, and portable contract validation",
6
6
  "license": "MIT",
@@ -30,7 +30,7 @@ relaunch the active coding agent from inside this skill.
30
30
  preserve existing guidance and never invent requirements. Render and inspect
31
31
  the updated context before sharing. For a design document this creates a permanent encrypted
32
32
  design review with a stable URL and a separately entered generated access
33
- token. Owner credentials save privately outside the project; copy the reviewer
33
+ token. Owner keys save privately outside the project; copy the reviewer
34
34
  token through the studio's Share dialog, never put it in a URL or ordinary
35
35
  command output. Publish an explicitly requested update with
36
36
  `openplanr artifact publish <design-document.json>`; synchronize reviewer feedback
@@ -67,7 +67,7 @@ separate permissions and storage from encrypted token shares.
67
67
 
68
68
  Lead with what was opened, shared, imported or exported and the confirmed revision
69
69
  or session. Link the actual review URL or exported file; never print capability
70
- tokens or private owner credentials. Distinguish successful service operations
70
+ tokens or private owner keys. Distinguish successful service operations
71
71
  from preparation and browser verification from validation alone. For partial or
72
72
  blocked work, name the remaining step and exact retry or recovery action, retaining
73
73
  the useful local result. Keep detailed diagnostics in their existing records;
@@ -13,7 +13,7 @@ review. Preview the exact diagram title, source revision, elements, connections,
13
13
  destination and retention before creating it. Use `--yes` only when the user has
14
14
  already authorized that publication. The stable URL and generated access token
15
15
  are separate; copy the token through the local studio's **Share diagram** dialog,
16
- never into a URL, prompt, ordinary output or repository file. Owner credentials
16
+ never into a URL, prompt, ordinary output or repository file. Owner keys
17
17
  are saved privately outside the project. The review remains available until the
18
18
  owner revokes or deletes it and works while the local studio is stopped.
19
19
 
@@ -2,7 +2,6 @@
2
2
  name: ceo-review
3
3
  description: "Produce a grounded strategy and finance review for an Operate cycle. Use when direction, runway, margin, investment, or cost of delay needs a CEO lens."
4
4
  license: MIT
5
- allowed-tools: "Read, Grep, Glob, Edit(./.planr/operate/**)"
6
5
  ---
7
6
 
8
7
  # OpenPlanr CEO Review
@@ -1,8 +1,8 @@
1
1
  # Shared Operate advisor contract
2
2
 
3
- This contract supplies the common context method and output shape for the five executive advisor
4
- skills. The invoking skill supplies the lens, review questions, useful sources, and decision
5
- standard. Follow both.
3
+ This contract supplies the common context method and output shape for the executive advisor
4
+ skills (CEO, CTO, CPO, CMO, and COO). The invoking skill supplies the lens, review questions,
5
+ useful sources, and decision standard. Follow both.
6
6
 
7
7
  ## Outcome
8
8
 
@@ -21,7 +21,28 @@ not the whole context boundary. Inspect relevant original repository and Git sou
21
21
  drawing conclusions. If an input is unavailable, report the exact problem and continue when the
22
22
  remaining context still supports a useful note.
23
23
 
24
- Write the review only to `<output-path>`.
24
+ Write the review only to `<output-path>`. Writes follow the host's normal permission rules; this
25
+ skill pre-approves nothing.
26
+
27
+ ### Running without `planr-operate`
28
+
29
+ When no `<output-path>` was supplied, this lens creates the cycle itself, in the layout
30
+ `planr-operate` uses, under the repository root:
31
+
32
+ ```text
33
+ .planr/operate/<YYYY-MM-DD>-<subject-slug>/
34
+ cycle.md the request wording, the effective scope, and a one-lens roster
35
+ brief.md compact orientation for this lens only, including what was searched for and not found
36
+ <lens>.md this note: ceo.md, cto.md, cpo.md, cmo.md, or coo.md
37
+ board-report.md an unsynthesized lens summary
38
+ ```
39
+
40
+ Take the subject, window, and requested decision from the request. Use the first unused directory
41
+ name; append `-02`, `-03`, and so on when the base name exists. In `board-report.md`, use the
42
+ `planr-operate` report sections, mark this lens `reported` and every other lens `omitted by scope`
43
+ under Review coverage, and write `No decision-ready proposal was established.` and
44
+ `No proposed actions.` unless this note states a directly supported proposal. Write nothing outside
45
+ that cycle directory. The dashboard lists a cycle only when `board-report.md` exists.
25
46
 
26
47
  ## Grounding
27
48