persona-harness 0.12.0 → 0.13.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 (107) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +12 -3
  3. package/dist/cli/cli-usage.js +4 -0
  4. package/dist/cli/cli-usage.js.map +1 -1
  5. package/dist/cli/index.js +15 -1
  6. package/dist/cli/index.js.map +1 -1
  7. package/dist/cli/socratic-interview-command.d.ts +8 -0
  8. package/dist/cli/socratic-interview-command.js +198 -0
  9. package/dist/cli/socratic-interview-command.js.map +1 -0
  10. package/dist/cli/socratic-interview-input.d.ts +26 -0
  11. package/dist/cli/socratic-interview-input.js +51 -0
  12. package/dist/cli/socratic-interview-input.js.map +1 -0
  13. package/dist/cli/socratic-interview-project-store.d.ts +36 -0
  14. package/dist/cli/socratic-interview-project-store.js +119 -0
  15. package/dist/cli/socratic-interview-project-store.js.map +1 -0
  16. package/dist/interview/socratic-interview-contract.d.ts +124 -0
  17. package/dist/interview/socratic-interview-contract.js +67 -0
  18. package/dist/interview/socratic-interview-contract.js.map +1 -0
  19. package/dist/interview/socratic-interview-control.d.ts +4 -0
  20. package/dist/interview/socratic-interview-control.js +48 -0
  21. package/dist/interview/socratic-interview-control.js.map +1 -0
  22. package/dist/interview/socratic-interview-core.d.ts +22 -0
  23. package/dist/interview/socratic-interview-core.js +109 -0
  24. package/dist/interview/socratic-interview-core.js.map +1 -0
  25. package/dist/interview/socratic-interview-schema.d.ts +9 -0
  26. package/dist/interview/socratic-interview-schema.js +102 -0
  27. package/dist/interview/socratic-interview-schema.js.map +1 -0
  28. package/dist/io/bootstrap-write-boundary.d.ts +10 -1
  29. package/dist/io/bootstrap-write-boundary.js +424 -42
  30. package/dist/io/bootstrap-write-boundary.js.map +1 -1
  31. package/dist/io/no-follow-file.d.ts +1 -0
  32. package/dist/io/no-follow-file.js +31 -7
  33. package/dist/io/no-follow-file.js.map +1 -1
  34. package/dist/runtime/hooks.js +1 -0
  35. package/dist/runtime/hooks.js.map +1 -1
  36. package/dist/runtime/intent-workflow.js +7 -0
  37. package/dist/runtime/intent-workflow.js.map +1 -1
  38. package/dist/runtime/product-deep-interview.d.ts +20 -54
  39. package/dist/runtime/product-deep-interview.js +104 -126
  40. package/dist/runtime/product-deep-interview.js.map +1 -1
  41. package/dist/runtime/product-interview-control.d.ts +0 -2
  42. package/dist/runtime/product-interview-control.js +0 -42
  43. package/dist/runtime/product-interview-control.js.map +1 -1
  44. package/docs/START-HERE.md +1 -1
  45. package/docs/current/persona-shared-skills-core.md +35 -0
  46. package/docs/current/portable-host-adapters.md +8 -0
  47. package/docs/current/release/consumer-authority-current-acceptance.json +1 -1
  48. package/docs/current/release/v0.13.0-release-notes.md +51 -0
  49. package/docs/releases/package-index.md +40 -2
  50. package/package.json +4 -4
  51. package/packages/host-plugins/antigravity/skills/ast-grep/SKILL.md +1 -1
  52. package/packages/host-plugins/antigravity/skills/debug/SKILL.md +1 -1
  53. package/packages/host-plugins/antigravity/skills/deep-interview/SKILL.md +33 -10
  54. package/packages/host-plugins/antigravity/skills/frontend/SKILL.md +1 -1
  55. package/packages/host-plugins/antigravity/skills/git/SKILL.md +1 -1
  56. package/packages/host-plugins/antigravity/skills/grill-me/SKILL.md +1 -1
  57. package/packages/host-plugins/antigravity/skills/implementation/SKILL.md +1 -1
  58. package/packages/host-plugins/antigravity/skills/lsp-setup/SKILL.md +1 -1
  59. package/packages/host-plugins/antigravity/skills/philosophy-refinement/SKILL.md +1 -1
  60. package/packages/host-plugins/antigravity/skills/plan/SKILL.md +1 -1
  61. package/packages/host-plugins/antigravity/skills/programming/SKILL.md +1 -1
  62. package/packages/host-plugins/antigravity/skills/ralplan/SKILL.md +1 -1
  63. package/packages/host-plugins/antigravity/skills/refactor/SKILL.md +1 -1
  64. package/packages/host-plugins/antigravity/skills/review/SKILL.md +1 -1
  65. package/packages/host-plugins/antigravity/skills/tdd/SKILL.md +1 -1
  66. package/packages/host-plugins/antigravity/skills/technical-intake/SKILL.md +1 -1
  67. package/packages/host-plugins/antigravity/skills/visual-qa/SKILL.md +1 -1
  68. package/packages/host-plugins/claude/.claude-plugin/plugin.json +1 -1
  69. package/packages/host-plugins/claude/skills/ast-grep/SKILL.md +1 -1
  70. package/packages/host-plugins/claude/skills/debug/SKILL.md +1 -1
  71. package/packages/host-plugins/claude/skills/deep-interview/SKILL.md +33 -10
  72. package/packages/host-plugins/claude/skills/frontend/SKILL.md +1 -1
  73. package/packages/host-plugins/claude/skills/git/SKILL.md +1 -1
  74. package/packages/host-plugins/claude/skills/grill-me/SKILL.md +1 -1
  75. package/packages/host-plugins/claude/skills/implementation/SKILL.md +1 -1
  76. package/packages/host-plugins/claude/skills/lsp-setup/SKILL.md +1 -1
  77. package/packages/host-plugins/claude/skills/philosophy-refinement/SKILL.md +1 -1
  78. package/packages/host-plugins/claude/skills/plan/SKILL.md +1 -1
  79. package/packages/host-plugins/claude/skills/programming/SKILL.md +1 -1
  80. package/packages/host-plugins/claude/skills/ralplan/SKILL.md +1 -1
  81. package/packages/host-plugins/claude/skills/refactor/SKILL.md +1 -1
  82. package/packages/host-plugins/claude/skills/review/SKILL.md +1 -1
  83. package/packages/host-plugins/claude/skills/tdd/SKILL.md +1 -1
  84. package/packages/host-plugins/claude/skills/technical-intake/SKILL.md +1 -1
  85. package/packages/host-plugins/claude/skills/visual-qa/SKILL.md +1 -1
  86. package/packages/host-plugins/codex/plugins/persona-harness/.codex-plugin/plugin.json +1 -1
  87. package/packages/host-plugins/codex/plugins/persona-harness/skills/ast-grep/SKILL.md +1 -1
  88. package/packages/host-plugins/codex/plugins/persona-harness/skills/debug/SKILL.md +1 -1
  89. package/packages/host-plugins/codex/plugins/persona-harness/skills/deep-interview/SKILL.md +33 -10
  90. package/packages/host-plugins/codex/plugins/persona-harness/skills/frontend/SKILL.md +1 -1
  91. package/packages/host-plugins/codex/plugins/persona-harness/skills/git/SKILL.md +1 -1
  92. package/packages/host-plugins/codex/plugins/persona-harness/skills/grill-me/SKILL.md +1 -1
  93. package/packages/host-plugins/codex/plugins/persona-harness/skills/implementation/SKILL.md +1 -1
  94. package/packages/host-plugins/codex/plugins/persona-harness/skills/lsp-setup/SKILL.md +1 -1
  95. package/packages/host-plugins/codex/plugins/persona-harness/skills/philosophy-refinement/SKILL.md +1 -1
  96. package/packages/host-plugins/codex/plugins/persona-harness/skills/plan/SKILL.md +1 -1
  97. package/packages/host-plugins/codex/plugins/persona-harness/skills/programming/SKILL.md +1 -1
  98. package/packages/host-plugins/codex/plugins/persona-harness/skills/ralplan/SKILL.md +1 -1
  99. package/packages/host-plugins/codex/plugins/persona-harness/skills/refactor/SKILL.md +1 -1
  100. package/packages/host-plugins/codex/plugins/persona-harness/skills/review/SKILL.md +1 -1
  101. package/packages/host-plugins/codex/plugins/persona-harness/skills/tdd/SKILL.md +1 -1
  102. package/packages/host-plugins/codex/plugins/persona-harness/skills/technical-intake/SKILL.md +1 -1
  103. package/packages/host-plugins/codex/plugins/persona-harness/skills/visual-qa/SKILL.md +1 -1
  104. package/packages/shared-skills/README.md +5 -2
  105. package/packages/shared-skills/catalog.json +2 -2
  106. package/packages/shared-skills/package.json +1 -1
  107. package/packages/shared-skills/skills/deep-interview/SKILL.md +33 -10
package/CHANGELOG.md CHANGED
@@ -8,6 +8,19 @@ preparation alone does not establish stable support or channel state.
8
8
 
9
9
  ## Unreleased
10
10
 
11
+ ## [0.13.0] - 2026-09-03
12
+
13
+ - Add a portable Socratic product-discovery core and the explicit `ph interview`
14
+ CLI for bounded, one-question-at-a-time decision capture with visible
15
+ ten-percent progress and explicit approval.
16
+ - Keep active interview state project-bound and transient while allowing only
17
+ approved, structured decisions to be committed as portable Git content.
18
+ Oversized, malformed, stale, foreign, symlinked, and version-mismatched input
19
+ fails closed before a decision write.
20
+ - Generate the same canonical `deep-interview` guidance for Codex, Claude Code,
21
+ OpenCode, and Antigravity. Host routing can select it automatically when its
22
+ own predicates allow; direct durable CLI invocation remains explicit.
23
+
11
24
  ## [0.12.0] - 2026-09-03
12
25
 
13
26
  - Ship the canonical shared-skill catalog as a package-contained Antigravity
package/README.md CHANGED
@@ -39,6 +39,13 @@ npx ph go "Add a task creation endpoint."
39
39
  npx ph workflow finish implement
40
40
  ```
41
41
 
42
+ For an explicitly selected product-discovery conversation that can carry only
43
+ approved decisions across Codex, Claude Code, OpenCode, and Antigravity:
44
+
45
+ ```bash
46
+ npx ph interview start --json
47
+ ```
48
+
42
49
  **What has actually been observed:** a simple forged-evidence fixture is
43
50
  ignored and `finish` exits `1`; the opt-in TDD rail blocked green-only
44
51
  completion in 5/5 measured runs. Runtime injection did not improve the paired
@@ -210,9 +217,11 @@ evidence, or authority records. The adapter's actual behavior in a live
210
217
  OpenCode release remains a separate host-observation boundary.
211
218
 
212
219
  `ph init` materializes the bundled Persona-owned shared-skill catalog at each
213
- host's project-local discovery path. Product ideas start with a one-question
214
- interview and explicit brief approval; adapters advise only and never create
215
- workflow state or invoke host agents automatically. When an installed host
220
+ host's project-local discovery path. An enabled host routing layer can select
221
+ the product interview for an ambiguous product idea; the direct portable
222
+ `ph interview` CLI remains explicit/default-off. The interview asks one question
223
+ at a time and requires explicit brief approval; adapters never create workflow
224
+ state or invoke host agents automatically. When an installed host
216
225
  integration sees a relevant request in a new project, it may first show a
217
226
  single `(PH) Setup` recommendation instead of starting a skill. The proposal
218
227
  does not write files or run commands; only a later explicit acceptance permits
@@ -14,6 +14,7 @@ function englishUsage(invocationName) {
14
14
  " doctor Diagnose local OpenCode and Persona Harness installation state.",
15
15
  " update Control opt-in project-local automatic Persona Harness updates.",
16
16
  " plugin path <host> Print a verified Antigravity, Codex, or Claude plugin path.",
17
+ " interview Run a portable, explicit Socratic product interview.",
17
18
  " observe <path> Report Java/Spring observer findings for a file or directory.",
18
19
  " context Inspect the experimental default-off Context track.",
19
20
  " authority Inspect or enroll bounded external consumer authority.",
@@ -31,6 +32,7 @@ function englishUsage(invocationName) {
31
32
  ` ${invocationName} update enable --yes`,
32
33
  ` ${invocationName} update repair --yes`,
33
34
  ` ${invocationName} plugin path codex`,
35
+ ` ${invocationName} interview start --json`,
34
36
  ` ${invocationName} observe src/main/java`,
35
37
  ` ${invocationName} context status`,
36
38
  ` ${invocationName} authority status`,
@@ -54,6 +56,7 @@ function koreanUsage(invocationName) {
54
56
  " doctor 로컬 OpenCode 및 Persona Harness 설치 상태를 진단합니다.",
55
57
  " update 프로젝트별 자동 Persona Harness 업데이트를 제어합니다.",
56
58
  " plugin path <host> 검증된 Antigravity, Codex 또는 Claude 플러그인 경로를 출력합니다.",
59
+ " interview 이식 가능한 명시적 Socratic 제품 인터뷰를 실행합니다.",
57
60
  " observe <path> 파일 또는 디렉터리의 Java/Spring observer 관측 결과를 보고합니다.",
58
61
  " context 실험적 기본 비활성 Context 트랙을 확인합니다.",
59
62
  " authority 제한된 외부 consumer authority 상태를 확인하거나 등록합니다.",
@@ -73,6 +76,7 @@ function koreanUsage(invocationName) {
73
76
  ` ${invocationName} update enable --yes`,
74
77
  ` ${invocationName} update repair --yes`,
75
78
  ` ${invocationName} plugin path codex`,
79
+ ` ${invocationName} interview start --json`,
76
80
  ` ${invocationName} observe src/main/java`,
77
81
  ` ${invocationName} context status`,
78
82
  ` ${invocationName} authority status`,
@@ -1 +1 @@
1
- {"version":3,"file":"cli-usage.js","sourceRoot":"","sources":["../../src/cli/cli-usage.ts"],"names":[],"mappings":"AAEA,SAAS,YAAY,CAAC,cAAsB;IAC1C,OAAO;QACL,UAAU,cAAc,sBAAsB;QAC9C,EAAE;QACF,iBAAiB;QACjB,qEAAqE;QACrE,gFAAgF;QAChF,EAAE;QACF,kBAAkB;QAClB,4EAA4E;QAC5E,2FAA2F;QAC3F,iGAAiG;QACjG,+HAA+H;QAC/H,gGAAgG;QAChG,gGAAgG;QAChG,4FAA4F;QAC5F,8FAA8F;QAC9F,oFAAoF;QACpF,uFAAuF;QACvF,4GAA4G;QAC5G,uFAAuF;QACvF,EAAE;QACF,WAAW;QACX,KAAK,cAAc,UAAU;QAC7B,KAAK,cAAc,YAAY;QAC/B,KAAK,cAAc,OAAO;QAC1B,KAAK,cAAc,eAAe;QAClC,KAAK,cAAc,qCAAqC;QACxD,mCAAmC,cAAc,aAAa;QAC9D,KAAK,cAAc,SAAS;QAC5B,KAAK,cAAc,sBAAsB;QACzC,KAAK,cAAc,sBAAsB;QACzC,KAAK,cAAc,oBAAoB;QACvC,KAAK,cAAc,wBAAwB;QAC3C,KAAK,cAAc,iBAAiB;QACpC,KAAK,cAAc,mBAAmB;QACtC,KAAK,cAAc,mDAAmD;QACtE,KAAK,cAAc,oBAAoB;KACxC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,SAAS,WAAW,CAAC,cAAsB;IACzC,OAAO;QACL,QAAQ,cAAc,eAAe;QACrC,EAAE;QACF,QAAQ;QACR,qDAAqD;QACrD,oEAAoE;QACpE,EAAE;QACF,QAAQ;QACR,gEAAgE;QAChE,6EAA6E;QAC7E,6EAA6E;QAC7E,8EAA8E;QAC9E,4EAA4E;QAC5E,sEAAsE;QACtE,iFAAiF;QACjF,+EAA+E;QAC/E,8DAA8D;QAC9D,2EAA2E;QAC3E,qFAAqF;QACrF,0EAA0E;QAC1E,EAAE;QACF,mCAAmC;QACnC,EAAE;QACF,KAAK;QACL,KAAK,cAAc,UAAU;QAC7B,KAAK,cAAc,YAAY;QAC/B,KAAK,cAAc,OAAO;QAC1B,KAAK,cAAc,eAAe;QAClC,KAAK,cAAc,6BAA6B;QAChD,sCAAsC,cAAc,aAAa;QACjE,KAAK,cAAc,SAAS;QAC5B,KAAK,cAAc,sBAAsB;QACzC,KAAK,cAAc,sBAAsB;QACzC,KAAK,cAAc,oBAAoB;QACvC,KAAK,cAAc,wBAAwB;QAC3C,KAAK,cAAc,iBAAiB;QACpC,KAAK,cAAc,mBAAmB;QACtC,KAAK,cAAc,mDAAmD;QACtE,KAAK,cAAc,oBAAoB;KACxC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,cAAsB,EAAE,SAAwB,IAAI;IAClF,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC,CAAA;AACrF,CAAC"}
1
+ {"version":3,"file":"cli-usage.js","sourceRoot":"","sources":["../../src/cli/cli-usage.ts"],"names":[],"mappings":"AAEA,SAAS,YAAY,CAAC,cAAsB;IAC1C,OAAO;QACL,UAAU,cAAc,sBAAsB;QAC9C,EAAE;QACF,iBAAiB;QACjB,qEAAqE;QACrE,gFAAgF;QAChF,EAAE;QACF,kBAAkB;QAClB,4EAA4E;QAC5E,2FAA2F;QAC3F,iGAAiG;QACjG,+HAA+H;QAC/H,gGAAgG;QAChG,gGAAgG;QAChG,4FAA4F;QAC5F,qFAAqF;QACrF,8FAA8F;QAC9F,oFAAoF;QACpF,uFAAuF;QACvF,4GAA4G;QAC5G,uFAAuF;QACvF,EAAE;QACF,WAAW;QACX,KAAK,cAAc,UAAU;QAC7B,KAAK,cAAc,YAAY;QAC/B,KAAK,cAAc,OAAO;QAC1B,KAAK,cAAc,eAAe;QAClC,KAAK,cAAc,qCAAqC;QACxD,mCAAmC,cAAc,aAAa;QAC9D,KAAK,cAAc,SAAS;QAC5B,KAAK,cAAc,sBAAsB;QACzC,KAAK,cAAc,sBAAsB;QACzC,KAAK,cAAc,oBAAoB;QACvC,KAAK,cAAc,yBAAyB;QAC5C,KAAK,cAAc,wBAAwB;QAC3C,KAAK,cAAc,iBAAiB;QACpC,KAAK,cAAc,mBAAmB;QACtC,KAAK,cAAc,mDAAmD;QACtE,KAAK,cAAc,oBAAoB;KACxC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,SAAS,WAAW,CAAC,cAAsB;IACzC,OAAO;QACL,QAAQ,cAAc,eAAe;QACrC,EAAE;QACF,QAAQ;QACR,qDAAqD;QACrD,oEAAoE;QACpE,EAAE;QACF,QAAQ;QACR,gEAAgE;QAChE,6EAA6E;QAC7E,6EAA6E;QAC7E,8EAA8E;QAC9E,4EAA4E;QAC5E,sEAAsE;QACtE,iFAAiF;QACjF,mEAAmE;QACnE,+EAA+E;QAC/E,8DAA8D;QAC9D,2EAA2E;QAC3E,qFAAqF;QACrF,0EAA0E;QAC1E,EAAE;QACF,mCAAmC;QACnC,EAAE;QACF,KAAK;QACL,KAAK,cAAc,UAAU;QAC7B,KAAK,cAAc,YAAY;QAC/B,KAAK,cAAc,OAAO;QAC1B,KAAK,cAAc,eAAe;QAClC,KAAK,cAAc,6BAA6B;QAChD,sCAAsC,cAAc,aAAa;QACjE,KAAK,cAAc,SAAS;QAC5B,KAAK,cAAc,sBAAsB;QACzC,KAAK,cAAc,sBAAsB;QACzC,KAAK,cAAc,oBAAoB;QACvC,KAAK,cAAc,yBAAyB;QAC5C,KAAK,cAAc,wBAAwB;QAC3C,KAAK,cAAc,iBAAiB;QACpC,KAAK,cAAc,mBAAmB;QACtC,KAAK,cAAc,mDAAmD;QACtE,KAAK,cAAc,oBAAoB;KACxC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,cAAsB,EAAE,SAAwB,IAAI;IAClF,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC,CAAA;AACrF,CAAC"}
package/dist/cli/index.js CHANGED
@@ -30,6 +30,7 @@ import { runReviewCommand } from "./review.js";
30
30
  import { runSmokeCommand } from "./smoke.js";
31
31
  import { runProjectAutoUpdateCommand } from "./project-auto-update.js";
32
32
  import { runHostPluginCommand } from "./host-plugin-command.js";
33
+ import { MAX_SOCRATIC_INTERVIEW_INPUT_BYTES, runSocraticInterviewCommand, } from "./socratic-interview-command.js";
33
34
  import { decodeCliStdinText, readBoundedCliStdinText } from "./stdin-text.js";
34
35
  import { MAX_SUBMITTED_REPORT_BYTES, workflowReportStdinLimitMessage } from "./report-status.js";
35
36
  import { personaHarnessVersion } from "./version.js";
@@ -140,6 +141,12 @@ export function runPersonaCli(args, options = {}) {
140
141
  if (command === "plugin") {
141
142
  return runHostPluginCommand(args.slice(1), { packageRoot: options.packageRoot }, invocationName);
142
143
  }
144
+ if (command === "interview") {
145
+ return runSocraticInterviewCommand(args.slice(1), {
146
+ projectDir: options.cwd,
147
+ stdin: options.stdin,
148
+ }, invocationName);
149
+ }
143
150
  if (command === "authority") {
144
151
  return runAuthorityCommand(args.slice(1), {
145
152
  githubToken: selectAuthorityGithubToken(options.env ?? process.env),
@@ -268,7 +275,10 @@ async function cliStdin(args) {
268
275
  const philosophyStdin = args[0] === "philosophy"
269
276
  && (args[1] === "propose" || args[1] === "refine")
270
277
  && args.includes("--stdin");
271
- if (!goStdin && !planStdin && !workflowStdin && !philosophyStdin) {
278
+ const interviewStdin = args[0] === "interview"
279
+ && (args[1] === "advance" || args[1] === "approve" || args[1] === "cancel")
280
+ && args.includes("--stdin");
281
+ if (!goStdin && !planStdin && !workflowStdin && !philosophyStdin && !interviewStdin) {
272
282
  return undefined;
273
283
  }
274
284
  if (process.stdin.isTTY === true) {
@@ -285,6 +295,10 @@ async function cliStdin(args) {
285
295
  const stdin = await readBoundedCliStdinText(process.stdin, MAX_PERSONALIZATION_CANDIDATE_BYTES);
286
296
  return stdin.kind === "limit-exceeded" ? "" : stdin.text;
287
297
  }
298
+ if (interviewStdin) {
299
+ const stdin = await readBoundedCliStdinText(process.stdin, MAX_SOCRATIC_INTERVIEW_INPUT_BYTES);
300
+ return stdin.kind === "limit-exceeded" ? "" : stdin.text;
301
+ }
288
302
  return decodeCliStdinText(readFileSync(0));
289
303
  }
290
304
  export function isCliEntrypoint(entrypoint = process.argv[1], modulePath = fileURLToPath(import.meta.url)) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { CliRunResult } from "./bearshell.js";
2
+ export { MAX_SOCRATIC_INTERVIEW_INPUT_BYTES } from "./socratic-interview-input.js";
3
+ export type SocraticInterviewCommandOptions = {
4
+ readonly projectDir?: string;
5
+ readonly stdin?: string;
6
+ };
7
+ export declare function socraticInterviewUsage(invocationName?: string): string;
8
+ export declare function runSocraticInterviewCommand(args: readonly string[], options?: SocraticInterviewCommandOptions, invocationName?: string): CliRunResult;
@@ -0,0 +1,198 @@
1
+ import process from "node:process";
2
+ import { openSocraticInterviewProjectStore, SocraticInterviewProjectStateError, SocraticInterviewProjectStateStaleError, } from "./socratic-interview-project-store.js";
3
+ import { parseSocraticInterviewAdvanceInput, parseSocraticInterviewApprovalInput, parseSocraticInterviewCancelInput, socraticInterviewInputFailureCode, } from "./socratic-interview-input.js";
4
+ import { advanceSocraticInterview, createSocraticInterview, createSocraticInterviewDecisionRecord, replaySocraticInterviewDecisionRecord, } from "../interview/socratic-interview-core.js";
5
+ export { MAX_SOCRATIC_INTERVIEW_INPUT_BYTES } from "./socratic-interview-input.js";
6
+ export function socraticInterviewUsage(invocationName = "ph") {
7
+ return [
8
+ `Usage: ${invocationName} interview <start|advance|approve|cancel|status> --json`,
9
+ "",
10
+ "Commands:",
11
+ " start --json [--new] [--mode <new-product|brownfield-change-discovery>] Start or replay a portable interview.",
12
+ " advance --json --stdin Advance one active interview state from JSON stdin.",
13
+ " approve --json --stdin Persist only explicitly approved decision data from JSON stdin.",
14
+ " cancel --json --stdin End one active interview state without writing project data.",
15
+ " status --json Inspect the approved decision record without exposing its contents.",
16
+ ].join("\n");
17
+ }
18
+ export function runSocraticInterviewCommand(args, options = {}, invocationName = "ph") {
19
+ const command = args[0];
20
+ if (command === undefined || command === "help" || command === "--help" || command === "-h") {
21
+ return success(`${socraticInterviewUsage(invocationName)}\n`);
22
+ }
23
+ if (command === "start")
24
+ return runStart(args.slice(1), options);
25
+ if (command === "advance")
26
+ return runAdvance(args.slice(1), options);
27
+ if (command === "approve")
28
+ return runApprove(args.slice(1), options);
29
+ if (command === "cancel")
30
+ return runCancel(args.slice(1), options);
31
+ if (command === "status")
32
+ return runStatus(args.slice(1), options);
33
+ return failure("socratic-interview-command-invalid");
34
+ }
35
+ function runStart(args, options) {
36
+ const parsed = parseStartArgs(args);
37
+ if (parsed === undefined)
38
+ return failure("socratic-interview-command-invalid");
39
+ return withStore(options.projectDir, (store) => {
40
+ const stored = store.readRecord();
41
+ if (!isUsableStoredRecord(stored))
42
+ return storedFailure(stored);
43
+ if (stored.kind === "valid" && !parsed.startNew) {
44
+ const replay = replaySocraticInterviewDecisionRecord(stored.value);
45
+ if (replay.kind !== "approved")
46
+ return failure(replay.code);
47
+ return successJson({
48
+ decisionCount: replay.decisions.length,
49
+ kind: "approved-decision-replay",
50
+ progress: 100,
51
+ recordRevision: stored.revision,
52
+ });
53
+ }
54
+ const started = createSocraticInterview({
55
+ mode: parsed.mode,
56
+ projectBinding: store.projectBinding,
57
+ recordRevision: stored.revision,
58
+ });
59
+ return started.kind === "blocked" ? failure(started.code) : successJson(started);
60
+ });
61
+ }
62
+ function runAdvance(args, options) {
63
+ if (!hasExactArgs(args, ["--json", "--stdin"]))
64
+ return failure("socratic-interview-command-invalid");
65
+ const input = parseSocraticInterviewAdvanceInput(options.stdin);
66
+ if (input.kind !== "valid")
67
+ return failure(socraticInterviewInputFailureCode(input));
68
+ return withCurrentState(options.projectDir, input.value.state, (store) => {
69
+ const result = advanceSocraticInterview(input.value.state, input.value.response);
70
+ if (result.kind === "blocked")
71
+ return failure(result.code);
72
+ if (result.kind === "approved")
73
+ return failure("socratic-interview-approval-command-required");
74
+ return successJson(result);
75
+ });
76
+ }
77
+ function runApprove(args, options) {
78
+ if (!hasExactArgs(args, ["--json", "--stdin"]))
79
+ return failure("socratic-interview-command-invalid");
80
+ const input = parseSocraticInterviewApprovalInput(options.stdin);
81
+ if (input.kind !== "valid")
82
+ return failure(socraticInterviewInputFailureCode(input));
83
+ return withCurrentState(options.projectDir, input.value.state, (store, stored) => {
84
+ const result = advanceSocraticInterview(input.value.state, input.value.confirmation);
85
+ if (result.kind === "blocked")
86
+ return failure(result.code);
87
+ if (result.kind !== "approved")
88
+ return successJson(result);
89
+ const record = createSocraticInterviewDecisionRecord(result.decisions, stored.revision + 1);
90
+ if (record === undefined)
91
+ return failure("socratic-interview-state-malformed");
92
+ store.writeRecordIfUnchanged(record, stored);
93
+ return successJson({ kind: "approved", progress: 100, recordRevision: record.revision });
94
+ });
95
+ }
96
+ function runCancel(args, options) {
97
+ if (!hasExactArgs(args, ["--json", "--stdin"]))
98
+ return failure("socratic-interview-command-invalid");
99
+ const input = parseSocraticInterviewCancelInput(options.stdin);
100
+ if (input.kind !== "valid")
101
+ return failure(socraticInterviewInputFailureCode(input));
102
+ return withCurrentState(options.projectDir, input.value, () => {
103
+ const result = advanceSocraticInterview(input.value, "cancel");
104
+ return result.kind === "stopped" ? successJson(result) : failure("socratic-interview-state-malformed");
105
+ });
106
+ }
107
+ function runStatus(args, options) {
108
+ if (!hasExactArgs(args, ["--json"]))
109
+ return failure("socratic-interview-command-invalid");
110
+ return withStore(options.projectDir, (store) => {
111
+ const stored = store.readRecord();
112
+ if (!isUsableStoredRecord(stored))
113
+ return storedFailure(stored);
114
+ return successJson(stored.kind === "absent"
115
+ ? { kind: "status", record: "missing", recordRevision: 0 }
116
+ : { kind: "status", record: "approved", recordRevision: stored.revision });
117
+ });
118
+ }
119
+ function withCurrentState(projectDir, state, operation) {
120
+ return withStore(projectDir, (store) => {
121
+ if (state.projectBinding !== store.projectBinding)
122
+ return failure("socratic-interview-state-foreign");
123
+ const stored = store.readRecord();
124
+ if (!isUsableStoredRecord(stored))
125
+ return storedFailure(stored);
126
+ if (state.recordRevision !== stored.revision)
127
+ return failure("socratic-interview-state-stale");
128
+ return operation(store, stored);
129
+ });
130
+ }
131
+ function withStore(projectDir, operation) {
132
+ let store;
133
+ try {
134
+ store = openSocraticInterviewProjectStore(projectDir ?? process.cwd());
135
+ return operation(store);
136
+ }
137
+ catch (error) {
138
+ if (error instanceof SocraticInterviewProjectStateStaleError)
139
+ return failure("socratic-interview-state-stale");
140
+ if (error instanceof SocraticInterviewProjectStateError)
141
+ return failure("socratic-interview-state-unsafe");
142
+ return failure("socratic-interview-state-unsafe");
143
+ }
144
+ finally {
145
+ store?.close();
146
+ }
147
+ }
148
+ function isUsableStoredRecord(stored) {
149
+ return stored.kind === "absent" || stored.kind === "valid";
150
+ }
151
+ function storedFailure(stored) {
152
+ return stored.kind === "version-mismatch"
153
+ ? failure("socratic-interview-record-version-mismatch")
154
+ : failure("socratic-interview-record-malformed");
155
+ }
156
+ function parseStartArgs(args) {
157
+ let mode = "new-product";
158
+ let modeSeen = false;
159
+ let json = false;
160
+ let startNew = false;
161
+ for (let index = 0; index < args.length; index += 1) {
162
+ const argument = args[index];
163
+ if (argument === "--json" && !json) {
164
+ json = true;
165
+ continue;
166
+ }
167
+ if (argument === "--new" && !startNew) {
168
+ startNew = true;
169
+ continue;
170
+ }
171
+ if (argument === "--mode" && !modeSeen) {
172
+ const candidate = args[index + 1];
173
+ if (candidate !== "new-product" && candidate !== "brownfield-change-discovery")
174
+ return undefined;
175
+ mode = candidate;
176
+ modeSeen = true;
177
+ index += 1;
178
+ continue;
179
+ }
180
+ return undefined;
181
+ }
182
+ return json ? { mode, startNew } : undefined;
183
+ }
184
+ function hasExactArgs(args, expected) {
185
+ const actual = [...args].sort();
186
+ const normalizedExpected = [...expected].sort();
187
+ return actual.length === normalizedExpected.length && actual.every((arg, index) => arg === normalizedExpected[index]);
188
+ }
189
+ function successJson(value) {
190
+ return success(`${JSON.stringify(value)}\n`);
191
+ }
192
+ function success(stdout) {
193
+ return { status: 0, stdout, stderr: "" };
194
+ }
195
+ function failure(code) {
196
+ return { status: 1, stdout: "", stderr: `${code}\n` };
197
+ }
198
+ //# sourceMappingURL=socratic-interview-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socratic-interview-command.js","sourceRoot":"","sources":["../../src/cli/socratic-interview-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { type SocraticInterviewState } from "../interview/socratic-interview-core.js";
2
+ export declare const MAX_SOCRATIC_INTERVIEW_INPUT_BYTES = 16384;
3
+ export type ParsedAdvanceInput = {
4
+ readonly response: string;
5
+ readonly state: SocraticInterviewState;
6
+ };
7
+ export type ParsedApprovalInput = {
8
+ readonly confirmation: string;
9
+ readonly state: SocraticInterviewState;
10
+ };
11
+ export type ParsedInterviewInput<T> = {
12
+ readonly kind: "valid";
13
+ readonly value: T;
14
+ } | {
15
+ readonly kind: "input-invalid";
16
+ } | {
17
+ readonly kind: "state-malformed";
18
+ } | {
19
+ readonly kind: "state-version-mismatch";
20
+ };
21
+ export declare function parseSocraticInterviewAdvanceInput(stdin: string | undefined): ParsedInterviewInput<ParsedAdvanceInput>;
22
+ export declare function parseSocraticInterviewApprovalInput(stdin: string | undefined): ParsedInterviewInput<ParsedApprovalInput>;
23
+ export declare function parseSocraticInterviewCancelInput(stdin: string | undefined): ParsedInterviewInput<SocraticInterviewState>;
24
+ export declare function socraticInterviewInputFailureCode(input: Exclude<ParsedInterviewInput<unknown>, {
25
+ readonly kind: "valid";
26
+ }>): string;
@@ -0,0 +1,51 @@
1
+ import { isBoundedSocraticInterviewText, parseSocraticInterviewState, } from "../interview/socratic-interview-core.js";
2
+ export const MAX_SOCRATIC_INTERVIEW_INPUT_BYTES = 16_384;
3
+ export function parseSocraticInterviewAdvanceInput(stdin) {
4
+ const input = parseJsonObject(stdin, ["response", "state"]);
5
+ if (input === undefined || !isBoundedSocraticInterviewText(input.response))
6
+ return { kind: "input-invalid" };
7
+ const response = input.response;
8
+ return parsedState(input.state, (state) => ({ response, state }));
9
+ }
10
+ export function parseSocraticInterviewApprovalInput(stdin) {
11
+ const input = parseJsonObject(stdin, ["confirmation", "state"]);
12
+ if (input === undefined || !isBoundedSocraticInterviewText(input.confirmation))
13
+ return { kind: "input-invalid" };
14
+ const confirmation = input.confirmation;
15
+ return parsedState(input.state, (state) => ({ confirmation, state }));
16
+ }
17
+ export function parseSocraticInterviewCancelInput(stdin) {
18
+ const input = parseJsonObject(stdin, ["state"]);
19
+ return input === undefined ? { kind: "input-invalid" } : parsedState(input.state, (state) => state);
20
+ }
21
+ export function socraticInterviewInputFailureCode(input) {
22
+ return input.kind === "input-invalid" ? "socratic-interview-input-invalid" : `socratic-interview-${input.kind}`;
23
+ }
24
+ function parsedState(value, map) {
25
+ const parsed = parseSocraticInterviewState(value);
26
+ if (parsed.kind === "version-mismatch")
27
+ return { kind: "state-version-mismatch" };
28
+ if (parsed.kind === "malformed")
29
+ return { kind: "state-malformed" };
30
+ return { kind: "valid", value: map(parsed.value) };
31
+ }
32
+ function parseJsonObject(stdin, expectedKeys) {
33
+ if (stdin === undefined || stdin.trim() === "" || Buffer.byteLength(stdin, "utf8") > MAX_SOCRATIC_INTERVIEW_INPUT_BYTES)
34
+ return undefined;
35
+ try {
36
+ const parsed = JSON.parse(stdin);
37
+ return isRecord(parsed) && hasExactKeys(Object.keys(parsed), expectedKeys) ? parsed : undefined;
38
+ }
39
+ catch {
40
+ return undefined;
41
+ }
42
+ }
43
+ function hasExactKeys(args, expected) {
44
+ const actual = [...args].sort();
45
+ const normalizedExpected = [...expected].sort();
46
+ return actual.length === normalizedExpected.length && actual.every((arg, index) => arg === normalizedExpected[index]);
47
+ }
48
+ function isRecord(value) {
49
+ return value !== null && typeof value === "object" && !Array.isArray(value);
50
+ }
51
+ //# sourceMappingURL=socratic-interview-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socratic-interview-input.js","sourceRoot":"","sources":["../../src/cli/socratic-interview-input.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { type BootstrapWriteBoundary, type ProjectFileSnapshot } from "../io/bootstrap-write-boundary.js";
2
+ import { type SocraticInterviewDecisionRecord } from "../interview/socratic-interview-core.js";
3
+ export declare const SOCRATIC_INTERVIEW_DECISION_RECORD_PATH = ".persona/decisions/socratic-interview.json";
4
+ export declare const MAX_SOCRATIC_INTERVIEW_RECORD_BYTES: number;
5
+ export type SocraticInterviewStoredRecord = {
6
+ readonly kind: "absent";
7
+ readonly revision: 0;
8
+ readonly snapshot: undefined;
9
+ } | {
10
+ readonly kind: "valid";
11
+ readonly revision: number;
12
+ readonly snapshot: ProjectFileSnapshot;
13
+ readonly value: SocraticInterviewDecisionRecord;
14
+ } | {
15
+ readonly kind: "version-mismatch";
16
+ } | {
17
+ readonly kind: "malformed";
18
+ };
19
+ export declare class SocraticInterviewProjectStateError extends Error {
20
+ constructor();
21
+ }
22
+ export declare class SocraticInterviewProjectStateStaleError extends Error {
23
+ constructor();
24
+ }
25
+ export declare class SocraticInterviewProjectStore {
26
+ #private;
27
+ readonly projectBinding: string;
28
+ constructor(boundary: BootstrapWriteBoundary, projectBinding: string);
29
+ close(): void;
30
+ readRecord(): SocraticInterviewStoredRecord;
31
+ writeRecord(record: SocraticInterviewDecisionRecord): void;
32
+ writeRecordIfUnchanged(record: SocraticInterviewDecisionRecord, expected: Extract<SocraticInterviewStoredRecord, {
33
+ readonly kind: "absent" | "valid";
34
+ }>): void;
35
+ }
36
+ export declare function openSocraticInterviewProjectStore(projectDir?: string): SocraticInterviewProjectStore;