persona-harness 0.8.29 → 0.8.30

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.
package/CHANGELOG.md CHANGED
@@ -8,6 +8,13 @@ preparation alone does not establish stable support or channel state.
8
8
 
9
9
  ## Unreleased
10
10
 
11
+ - Add `ph feedback dogfood <code>` for bounded, append-only owner dogfooding
12
+ events. It records only a fixed diagnostic code and timestamp in a private
13
+ user-state JSONL file; invalid or unsafe state fails closed and the event has
14
+ no workflow, release, or authority effect.
15
+
16
+ ## [0.8.29] - 2026-08-24
17
+
11
18
  - Add safe ready-project philosophy guidance to OpenCode without enabling the
12
19
  broader runtime injection rail, and register the bundled Persona skill
13
20
  catalog with OpenCode's native skill loader.
package/README.md CHANGED
@@ -217,12 +217,23 @@ npx ph workflow split README.md && npx ph workflow next # multi-ticket
217
217
  npx ph bearshell --shell 'gradle test' # bounded execution
218
218
  npx ph evidence summary | metrics --json | ab-report --json | pminus-report --json
219
219
  npx ph authority status | enroll github <owner/repository> --workflow <path> | fetch github [owner/repository]
220
+ npx ph feedback # project-local tester feedback template
221
+ npx ph feedback dogfood source-read-runtime-unavailable # private bounded owner dogfooding event
220
222
  npx ph observe src/main/java # Java/Spring observer findings
221
223
  npx ph review backend-shape
222
224
  ```
223
225
 
224
226
  Run `npx ph --help` for the full list. The workflow ledger lives under `.persona/workflow/` (`work/`, `history/`, `requirements/`).
225
227
 
228
+ `ph feedback dogfood <code>` is intentionally separate from the project
229
+ feedback template. It records only a fixed diagnostic code and timestamp in
230
+ `events.jsonl` inside the private owner state directory
231
+ `~/.local/state/persona-harness/owner-dogfood-feedback`. Set
232
+ `PH_OWNER_DOGFOOD_FEEDBACK_ROOT` only to an absolute replacement state
233
+ directory; the command appends `events.jsonl` inside it. It does not capture
234
+ project files or conversation text, and it cannot grant workflow, release,
235
+ authority, or external-observation permission.
236
+
226
237
  ## Advanced surfaces
227
238
 
228
239
  Preview integrations, shared-skill source material, Role Checklist Relay, and
@@ -11,6 +11,7 @@ function englishUsage(invocationName) {
11
11
  " update Control opt-in project-local automatic Persona Harness updates.",
12
12
  " observe <path> Report Java/Spring observer findings for a file or directory.",
13
13
  " authority Inspect or enroll bounded external consumer authority.",
14
+ " feedback Write a project feedback template or capture a bounded owner dogfood event.",
14
15
  " philosophy Inspect and resolve the local personalization profile.",
15
16
  "",
16
17
  "Examples:",
@@ -24,6 +25,7 @@ function englishUsage(invocationName) {
24
25
  ` ${invocationName} update enable --yes`,
25
26
  ` ${invocationName} observe src/main/java`,
26
27
  ` ${invocationName} authority status`,
28
+ ` ${invocationName} feedback dogfood source-read-runtime-unavailable`,
27
29
  ` ${invocationName} philosophy status`,
28
30
  ].join("\n");
29
31
  }
@@ -40,6 +42,7 @@ function koreanUsage(invocationName) {
40
42
  " update 프로젝트별 자동 Persona Harness 업데이트를 제어합니다.",
41
43
  " observe <path> 파일 또는 디렉터리의 Java/Spring observer 관측 결과를 보고합니다.",
42
44
  " authority 제한된 외부 consumer authority 상태를 확인하거나 등록합니다.",
45
+ " feedback 프로젝트 feedback 템플릿 또는 제한된 owner dogfood event를 기록합니다.",
43
46
  " philosophy 개인화 profile을 확인하고 결정을 append-only로 관리합니다.",
44
47
  "",
45
48
  "도움말 언어 선택: --lang en 또는 --lang ko",
@@ -55,6 +58,7 @@ function koreanUsage(invocationName) {
55
58
  ` ${invocationName} update enable --yes`,
56
59
  ` ${invocationName} observe src/main/java`,
57
60
  ` ${invocationName} authority status`,
61
+ ` ${invocationName} feedback dogfood source-read-runtime-unavailable`,
58
62
  ` ${invocationName} philosophy status`,
59
63
  ].join("\n");
60
64
  }
@@ -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,kBAAkB;QAClB,4EAA4E;QAC5E,2FAA2F;QAC3F,iGAAiG;QACjG,+HAA+H;QAC/H,gGAAgG;QAChG,gGAAgG;QAChG,8FAA8F;QAC9F,uFAAuF;QACvF,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,wBAAwB;QAC3C,KAAK,cAAc,mBAAmB;QACtC,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,gEAAgE;QAChE,6EAA6E;QAC7E,6EAA6E;QAC7E,8EAA8E;QAC9E,4EAA4E;QAC5E,sEAAsE;QACtE,+EAA+E;QAC/E,2EAA2E;QAC3E,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,wBAAwB;QAC3C,KAAK,cAAc,mBAAmB;QACtC,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,kBAAkB;QAClB,4EAA4E;QAC5E,2FAA2F;QAC3F,iGAAiG;QACjG,+HAA+H;QAC/H,gGAAgG;QAChG,gGAAgG;QAChG,8FAA8F;QAC9F,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,wBAAwB;QAC3C,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,gEAAgE;QAChE,6EAA6E;QAC7E,6EAA6E;QAC7E,8EAA8E;QAC9E,4EAA4E;QAC5E,sEAAsE;QACtE,+EAA+E;QAC/E,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,wBAAwB;QAC3C,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,5 +1,6 @@
1
1
  import type { CliRunResult } from "./bearshell.js";
2
- type FeedbackOptions = {
2
+ import { type OwnerDogfoodFeedbackOptions } from "./owner-dogfood-feedback.js";
3
+ type FeedbackOptions = OwnerDogfoodFeedbackOptions & {
3
4
  readonly projectDir?: string;
4
5
  };
5
6
  export declare function runFeedbackCommand(args: readonly string[], options?: FeedbackOptions, invocationName?: string): CliRunResult;
@@ -2,11 +2,13 @@ import { mkdirSync } from "node:fs";
2
2
  import { dirname, join, resolve } from "node:path";
3
3
  import process from "node:process";
4
4
  import { writeFileAtomic } from "../io/atomic-file.js";
5
+ import { runOwnerDogfoodFeedbackCommand } from "./owner-dogfood-feedback.js";
5
6
  import { readWorkflowStatus } from "./workflow-status.js";
6
7
  const FEEDBACK_REPORT_PATH = ".persona/workflow/feedback-report.md";
7
8
  function feedbackUsage(invocationName) {
8
9
  return [
9
10
  `Usage: ${invocationName} feedback`,
11
+ ` ${invocationName} feedback dogfood <code>`,
10
12
  "",
11
13
  "Write a tester feedback template to .persona/workflow/feedback-report.md.",
12
14
  "",
@@ -17,6 +19,7 @@ function feedbackUsage(invocationName) {
17
19
  "",
18
20
  "Scope:",
19
21
  "- report-only tester feedback template",
22
+ "- bounded diagnostic-only owner dogfooding event capture",
20
23
  "- not generated app product-quality certification",
21
24
  ].join("\n");
22
25
  }
@@ -62,6 +65,9 @@ function createFeedbackTemplate(projectDir) {
62
65
  ].join("\n");
63
66
  }
64
67
  export function runFeedbackCommand(args, options = {}, invocationName = "ph") {
68
+ if (args[0] === "dogfood") {
69
+ return runOwnerDogfoodFeedbackCommand(args.slice(1), options, invocationName);
70
+ }
65
71
  if (args.length === 1 && (args[0] === "--help" || args[0] === "-h" || args[0] === "help")) {
66
72
  return { status: 0, stdout: `${feedbackUsage(invocationName)}\n`, stderr: "" };
67
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/cli/feedback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,OAAO,MAAM,cAAc,CAAA;AAElC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAMzD,MAAM,oBAAoB,GAAG,sCAAsC,CAAA;AAEnE,SAAS,aAAa,CAAC,cAAsB;IAC3C,OAAO;QACL,UAAU,cAAc,WAAW;QACnC,EAAE;QACF,2EAA2E;QAC3E,EAAE;QACF,sBAAsB;QACtB,iBAAiB;QACjB,yBAAyB;QACzB,gBAAgB;QAChB,EAAE;QACF,QAAQ;QACR,wCAAwC;QACxC,mDAAmD;KACpD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,SAAS,sBAAsB,CAAC,UAAkB;IAChD,MAAM,MAAM,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAA;IAC7C,OAAO;QACL,mCAAmC;QACnC,EAAE;QACF,cAAc,UAAU,IAAI;QAC5B,oBAAoB,MAAM,CAAC,OAAO,EAAE;QACpC,EAAE;QACF,UAAU;QACV,EAAE;QACF,OAAO;QACP,aAAa;QACb,aAAa;QACb,2BAA2B;QAC3B,EAAE;QACF,aAAa;QACb,EAAE;QACF,gBAAgB;QAChB,4BAA4B;QAC5B,2CAA2C;QAC3C,oBAAoB;QACpB,iBAAiB;QACjB,EAAE;QACF,OAAO;QACP,EAAE;QACF,oCAAoC;QACpC,qCAAqC;QACrC,qDAAqD;QACrD,6BAA6B;QAC7B,EAAE;QACF,YAAY;QACZ,EAAE;QACF,IAAI;QACJ,EAAE;QACF,qBAAqB;QACrB,EAAE;QACF,WAAW;QACX,WAAW;QACX,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAuB,EAAE,UAA2B,EAAE,EAAE,cAAc,GAAG,IAAI;IAC9G,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,CAAC;QAC1F,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;IAChF,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,0CAA0C,aAAa,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;IACvH,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAA;IACzD,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACnD,eAAe,CAAC,UAAU,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAA;IAC/D,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,8BAA8B,UAAU,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;AACxF,CAAC"}
1
+ {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/cli/feedback.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -141,7 +141,7 @@ export function runPersonaCli(args, options = {}) {
141
141
  return runSmokeCommand(args.slice(1), { projectDir: options.cwd }, invocationName);
142
142
  }
143
143
  if (command === "feedback") {
144
- return runFeedbackCommand(args.slice(1), { projectDir: options.cwd }, invocationName);
144
+ return runFeedbackCommand(args.slice(1), { env: options.env, projectDir: options.cwd }, invocationName);
145
145
  }
146
146
  if (command === "philosophy") {
147
147
  return runPhilosophyCommand(args.slice(1), {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AACrD,OAAO,EAAqB,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAA;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAsB,MAAM,aAAa,CAAA;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,YAAY,EAAe,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAA;AACtE,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAC7E,OAAO,EAAE,0BAA0B,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAA;AAChG,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AAE5G,MAAM,mCAAmC,GAAG,MAAM,CAAA;AAwBlD,MAAM,UAAU,aAAa,CAAC,IAAuB,EAAE,UAA6B,EAAE;IACpF,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;IACvB,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,IAAI,CAAA;IAErD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACzE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,qBAAqB,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;IAC1E,CAAC;IAED,IACE,yBAAyB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW;WACpE,OAAO,KAAK,SAAS;WACrB,OAAO,KAAK,MAAM;WAClB,OAAO,KAAK,QAAQ;WACpB,OAAO,KAAK,IAAI;WAChB,OAAO,KAAK,QAAQ,EACvB,CAAC;QACD,OAAO;YACL,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,8DAA8D,0BAA0B,6CAA6C;SAC9I,CAAA;IACH,CAAC;IAED,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;YACnE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;QAC5E,CAAC;QACD,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACnC,iBAAiB,EAAE,OAAO,CAAC,qBAAqB;YAChD,cAAc,EAAE,OAAO,CAAC,kBAAkB;YAC1C,UAAU,EAAE,OAAO,CAAC,GAAG;YACvB,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,YAAY,CACjB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACb;YACE,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;YAChD,wBAAwB,EAAE,OAAO,CAAC,wBAAwB;YAC1D,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,uBAAuB,EAAE,OAAO,CAAC,uBAAuB;YACxD,0BAA0B,EAAE,OAAO,CAAC,0BAA0B;YAC9D,UAAU,EAAE,OAAO,CAAC,GAAG;YACvB,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,EACD,cAAc,CACf,CAAA;IACH,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,gBAAgB,CACrB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACb;YACE,iBAAiB,EAAE,OAAO,CAAC,uBAAuB;YAClD,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,UAAU,EAAE,OAAO,CAAC,GAAG;SACxB,EACD,cAAc,CACf,CAAA;IACH,CAAC;IAED,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QAC5B,OAAO,mBAAmB,CACxB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACb,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,EAC/E,cAAc,CACf,CAAA;IACH,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAA;IACrF,CAAC;IAED,IAAI,OAAO,KAAK,cAAc,EAAE,CAAC;QAC/B,OAAO,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAA;IAC3F,CAAC;IAED,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,cAAc,CAAC,CAAA;IACzG,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAA;IACrF,CAAC;IAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAA;IACtF,CAAC;IAED,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;IAC1D,CAAC;IAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAA;IACtF,CAAC;IAED,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QAC5B,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IAC5E,CAAC;IAED,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,cAAc,CAAC,CAAA;IAC7G,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACrC,UAAU,EAAE,OAAO,CAAC,GAAG;YACvB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,sBAAsB,EAAE,OAAO,CAAC,4BAA4B;SAC7D,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YAChD,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,UAAU,EAAE,OAAO,CAAC,GAAG;SACxB,EAAE,cAAc,CAAC,CAAA;IACpB,CAAC;IAED,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QAC5B,OAAO,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACxC,WAAW,EAAE,0BAA0B,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;YACnE,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,UAAU,EAAE,OAAO,CAAC,GAAG;SACxB,EAAE,cAAc,CAAC,CAAA;IACpB,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACtB,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAA;IACpG,CAAC;IAED,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAA;IACzG,CAAC;IAED,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAA;IACpF,CAAC;IAED,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAA;IACvF,CAAC;IAED,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;QAC7B,OAAO,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACzC,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,OAAO,EAAE,OAAO,CAAC,sBAAsB;YACvC,SAAS,EAAE,OAAO,CAAC,wBAAwB;YAC3C,GAAG,EAAE,OAAO,CAAC,kBAAkB;YAC/B,QAAQ,EAAE,OAAO,CAAC,uBAAuB;YACzC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,SAAS,EAAE,OAAO,CAAC,wBAAwB;SAC5C,EAAE,cAAc,CAAC,CAAA;IACpB,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAA;IACrF,CAAC;IAED,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QAC5F,MAAM,aAAa,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAA;QAClD,IAAI,aAAa,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACrC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,OAAO,OAAO,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;QAC9G,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,cAAc,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;IACxG,CAAC;IAED,OAAO;QACL,MAAM,EAAE,CAAC;QACT,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,oBAAoB,OAAO,OAAO,eAAe,CAAC,cAAc,CAAC,IAAI;KAC9E,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,MAAoB;IACvC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACrC,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACrC,CAAC;IACD,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAA;AAClC,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAClC,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAA;IAC/F,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;IAE7E,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;QACvB,WAAW,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC,CAAA;QACvG,OAAM;IACR,CAAC;IAED,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;QAClF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAC9C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACb;gBACE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE;gBACzB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI;gBACnC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;oBACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBAC5B,CAAC;gBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;aAChD,EACD,cAAc,CACf,CAAA;YACD,WAAW,CAAC,MAAM,CAAC,CAAA;QACrB,CAAC;gBAAS,CAAC;YACT,QAAQ,CAAC,KAAK,EAAE,CAAA;QAClB,CAAC;QACD,OAAM;IACR,CAAC;IAED,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACpF,MAAM,WAAW,GAAG,0BAA0B,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3D,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;gBAC7C,WAAW;gBACX,WAAW;gBACX,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE;aAC1B,EAAE,cAAc,CAAC,CAAC,CAAA;YACnB,OAAM;QACR,CAAC;QACD,MAAM,QAAQ,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;QAClF,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,sDAAsD,CAAC,CAAA;YACpG,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;gBAC7C,iBAAiB,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG;gBAC5D,WAAW;gBACX,WAAW;gBACX,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE;aAC1B,EAAE,cAAc,CAAC,CAAC,CAAA;QACrB,CAAC;gBAAS,CAAC;YACT,QAAQ,CAAC,KAAK,EAAE,CAAA;QAClB,CAAC;QACD,OAAM;IACR,CAAC;IAED,WAAW,CACT,aAAa,CAAC,IAAI,EAAE;QAClB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,cAAc;QACd,WAAW;QACX,KAAK,EAAE,MAAM,QAAQ,CAAC,IAAI,CAAC;KAC5B,CAAC,CACH,CAAA;AACH,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,IAAuB;IAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAA;IAC9E,MAAM,SAAS,GACb,IAAI,CAAC,MAAM,KAAK,CAAC;WACd,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM;WAClB,IAAI,CAAC,CAAC,CAAC,KAAK,iBAAiB;WAC7B,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;WACtD,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAA;IAC1B,MAAM,aAAa,GACjB,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU;WACnB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC;WAC9C,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAA;IAC1B,MAAM,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,YAAY;WAC3C,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;WAC/C,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IAC7B,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,aAAa,IAAI,CAAC,eAAe,EAAE,CAAC;QACjE,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACjC,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,KAAK,GAAG,MAAM,uBAAuB,CAAC,OAAO,CAAC,KAAK,EAAE,0BAA0B,CAAC,CAAA;QACtF,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,+BAA+B,EAAE,CAAC,CAAA;QACpD,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAA;IACnB,CAAC;IACD,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,MAAM,uBAAuB,CAAC,OAAO,CAAC,KAAK,EAAE,mCAAmC,CAAC,CAAA;QAC/F,OAAO,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAA;IAC1D,CAAC;IACD,OAAO,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;AAC5C,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,aAAiC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAChD,aAAqB,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IAEnD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,UAAU,CAAC,KAAK,YAAY,CAAC,UAAU,CAAC,CAAA;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,IAAI,eAAe,EAAE,EAAE,CAAC;IACtB,gBAAgB,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QAC1C,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,CAAA;YAC1C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;YACpB,OAAM;QACR,CAAC;QACD,MAAM,KAAK,CAAA;IACb,CAAC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const OWNER_DOGFOOD_FEEDBACK_CODES: readonly ["bootstrap-workspace-intake-failed", "interview-repeated-question", "project-philosophy-not-injected", "shared-skill-routing-unavailable", "source-read-runtime-unavailable", "unnecessary-interview", "workflow-history-missing"];
2
+ export type OwnerDogfoodFeedbackCode = typeof OWNER_DOGFOOD_FEEDBACK_CODES[number];
3
+ export declare function parseOwnerDogfoodFeedbackCode(value: string | undefined): OwnerDogfoodFeedbackCode | undefined;
4
+ export declare function recordOwnerDogfoodFeedback(root: string, code: OwnerDogfoodFeedbackCode, recordedAt: Date): boolean;
@@ -0,0 +1,234 @@
1
+ import { closeSync, constants, fchmodSync, fstatSync, fsyncSync, lstatSync, openSync, unlinkSync, writeSync, } from "node:fs";
2
+ import { captureNoFollowDirectory, noFollowPathIdentityFromStat, readNoFollowRegularFile, sameNoFollowPathIdentity, sameNoFollowPathLocation, } from "../io/no-follow-file.js";
3
+ import { withNoFollowDirectoryChain } from "../io/no-follow-directory-chain.js";
4
+ const EVENT_FILE_NAME = "events.jsonl";
5
+ const EVENT_LOCK_NAME = ".events.lock";
6
+ const EVENT_SCHEMA_VERSION = "owner-dogfood-feedback.1";
7
+ const MAX_EVENT_BYTES = 512;
8
+ const MAX_STORE_BYTES = 256 * 1024;
9
+ const MAX_STORED_EVENTS = 512;
10
+ export const OWNER_DOGFOOD_FEEDBACK_CODES = [
11
+ "bootstrap-workspace-intake-failed",
12
+ "interview-repeated-question",
13
+ "project-philosophy-not-injected",
14
+ "shared-skill-routing-unavailable",
15
+ "source-read-runtime-unavailable",
16
+ "unnecessary-interview",
17
+ "workflow-history-missing",
18
+ ];
19
+ export function parseOwnerDogfoodFeedbackCode(value) {
20
+ for (const code of OWNER_DOGFOOD_FEEDBACK_CODES) {
21
+ if (value === code)
22
+ return code;
23
+ }
24
+ return undefined;
25
+ }
26
+ export function recordOwnerDogfoodFeedback(root, code, recordedAt) {
27
+ const event = createEvent(code, recordedAt);
28
+ if (event === undefined)
29
+ return false;
30
+ const payload = `${JSON.stringify(event)}\n`;
31
+ if (Buffer.byteLength(payload, "utf8") > MAX_EVENT_BYTES)
32
+ return false;
33
+ return withNoFollowDirectoryChain(root, 0o700, () => recordAtCurrentRoot(payload)) === true;
34
+ }
35
+ function createEvent(code, recordedAt) {
36
+ try {
37
+ return { code, recordedAt: recordedAt.toISOString(), schemaVersion: EVENT_SCHEMA_VERSION };
38
+ }
39
+ catch {
40
+ return undefined;
41
+ }
42
+ }
43
+ function recordAtCurrentRoot(payload) {
44
+ if (!hasPrivateCurrentRoot())
45
+ return false;
46
+ const lock = acquireEventLock();
47
+ if (lock === undefined)
48
+ return false;
49
+ try {
50
+ const existing = readExistingEvents();
51
+ if (existing.kind === "blocked" || (existing.kind === "ready" && existing.count >= MAX_STORED_EVENTS)) {
52
+ return false;
53
+ }
54
+ return appendEvent(existing, payload);
55
+ }
56
+ finally {
57
+ releaseEventLock(lock);
58
+ }
59
+ }
60
+ function readExistingEvents() {
61
+ const source = readNoFollowRegularFile(EVENT_FILE_NAME, MAX_STORE_BYTES, ".");
62
+ if (source.kind === "absent")
63
+ return { kind: "absent" };
64
+ if (source.kind !== "ready")
65
+ return { kind: "blocked" };
66
+ const count = countEventLines(source.value.bytes.toString("utf8"));
67
+ if (!hasPrivateCurrentRoot() || !isPrivateMode(source.value.identity.mode, "0600") || count === undefined) {
68
+ return { kind: "blocked" };
69
+ }
70
+ return { count, identity: source.value.identity, kind: "ready" };
71
+ }
72
+ function countEventLines(text) {
73
+ if (text.length === 0 || !text.endsWith("\n"))
74
+ return undefined;
75
+ const lines = text.slice(0, -1).split("\n");
76
+ if (lines.length > MAX_STORED_EVENTS || lines.some((line) => line.length === 0))
77
+ return undefined;
78
+ return lines.every((line) => isOwnerDogfoodFeedbackEventJson(line)) ? lines.length : undefined;
79
+ }
80
+ function isOwnerDogfoodFeedbackEventJson(line) {
81
+ try {
82
+ return isOwnerDogfoodFeedbackEvent(JSON.parse(line));
83
+ }
84
+ catch {
85
+ return false;
86
+ }
87
+ }
88
+ function isOwnerDogfoodFeedbackEvent(value) {
89
+ if (!isRecord(value))
90
+ return false;
91
+ const record = value;
92
+ return Object.keys(record).length === 3
93
+ && parseOwnerDogfoodFeedbackCode(typeof record.code === "string" ? record.code : undefined) !== undefined
94
+ && typeof record.recordedAt === "string"
95
+ && Number.isFinite(Date.parse(record.recordedAt))
96
+ && record.schemaVersion === EVENT_SCHEMA_VERSION;
97
+ }
98
+ function isRecord(value) {
99
+ return value !== null && typeof value === "object" && !Array.isArray(value);
100
+ }
101
+ function appendEvent(existing, payload) {
102
+ let descriptor;
103
+ try {
104
+ const flags = existing.kind === "absent"
105
+ ? constants.O_CREAT | constants.O_EXCL | constants.O_NOFOLLOW | constants.O_WRONLY
106
+ : constants.O_APPEND | constants.O_NOFOLLOW | constants.O_WRONLY;
107
+ descriptor = openSync(EVENT_FILE_NAME, flags, 0o600);
108
+ const before = fstatSync(descriptor, { bigint: true });
109
+ if (!before.isFile())
110
+ return false;
111
+ const beforeIdentity = noFollowPathIdentityFromStat(before);
112
+ if (existing.kind === "ready" && !sameNoFollowPathIdentity(existing.identity, beforeIdentity))
113
+ return false;
114
+ fchmodSync(descriptor, 0o600);
115
+ const afterMode = fstatSync(descriptor, { bigint: true });
116
+ if (!afterMode.isFile() || !isPrivateMode(noFollowPathIdentityFromStat(afterMode).mode, "0600"))
117
+ return false;
118
+ if (!writeAll(descriptor, payload))
119
+ return false;
120
+ fsyncSync(descriptor);
121
+ const after = fstatSync(descriptor, { bigint: true });
122
+ const current = lstatSync(EVENT_FILE_NAME, { bigint: true });
123
+ return after.isFile()
124
+ && current.isFile()
125
+ && !current.isSymbolicLink()
126
+ && hasPrivateCurrentRoot()
127
+ && sameNoFollowPathLocation(noFollowPathIdentityFromStat(after), noFollowPathIdentityFromStat(current))
128
+ && isPrivateMode(noFollowPathIdentityFromStat(after).mode, "0600");
129
+ }
130
+ catch {
131
+ return false;
132
+ }
133
+ finally {
134
+ if (descriptor !== undefined)
135
+ closeDescriptor(descriptor);
136
+ }
137
+ }
138
+ function acquireEventLock() {
139
+ let descriptor;
140
+ let identity;
141
+ try {
142
+ descriptor = openSync(EVENT_LOCK_NAME, constants.O_CREAT | constants.O_EXCL | constants.O_NOFOLLOW | constants.O_WRONLY, 0o600);
143
+ const before = fstatSync(descriptor, { bigint: true });
144
+ if (!before.isFile())
145
+ return undefined;
146
+ identity = noFollowPathIdentityFromStat(before);
147
+ const current = lstatSync(EVENT_LOCK_NAME, { bigint: true });
148
+ if (!current.isFile() || current.isSymbolicLink() || !sameNoFollowPathIdentity(identity, noFollowPathIdentityFromStat(current))) {
149
+ return undefined;
150
+ }
151
+ fchmodSync(descriptor, 0o600);
152
+ const after = fstatSync(descriptor, { bigint: true });
153
+ if (!after.isFile() || !isPrivateMode(noFollowPathIdentityFromStat(after).mode, "0600"))
154
+ return undefined;
155
+ identity = noFollowPathIdentityFromStat(after);
156
+ const updated = lstatSync(EVENT_LOCK_NAME, { bigint: true });
157
+ if (!updated.isFile() || updated.isSymbolicLink() || !sameNoFollowPathIdentity(identity, noFollowPathIdentityFromStat(updated))) {
158
+ return undefined;
159
+ }
160
+ const lock = { descriptor, identity };
161
+ descriptor = undefined;
162
+ identity = undefined;
163
+ return lock;
164
+ }
165
+ catch {
166
+ return undefined;
167
+ }
168
+ finally {
169
+ if (descriptor !== undefined)
170
+ closeDescriptor(descriptor);
171
+ if (identity !== undefined)
172
+ removeOwnedEventLock(identity);
173
+ }
174
+ }
175
+ function releaseEventLock(lock) {
176
+ const current = currentOwnedEventLock(lock);
177
+ closeDescriptor(lock.descriptor);
178
+ if (current)
179
+ removeOwnedEventLock(lock.identity);
180
+ }
181
+ function currentOwnedEventLock(lock) {
182
+ try {
183
+ const descriptorStat = fstatSync(lock.descriptor, { bigint: true });
184
+ if (!descriptorStat.isFile())
185
+ return false;
186
+ const descriptor = noFollowPathIdentityFromStat(descriptorStat);
187
+ const current = lstatSync(EVENT_LOCK_NAME, { bigint: true });
188
+ return current.isFile()
189
+ && !current.isSymbolicLink()
190
+ && sameNoFollowPathIdentity(lock.identity, descriptor)
191
+ && sameNoFollowPathIdentity(descriptor, noFollowPathIdentityFromStat(current));
192
+ }
193
+ catch {
194
+ return false;
195
+ }
196
+ }
197
+ function removeOwnedEventLock(identity) {
198
+ try {
199
+ const current = lstatSync(EVENT_LOCK_NAME, { bigint: true });
200
+ if (current.isFile() && !current.isSymbolicLink() && sameNoFollowPathIdentity(identity, noFollowPathIdentityFromStat(current))) {
201
+ unlinkSync(EVENT_LOCK_NAME);
202
+ }
203
+ }
204
+ catch {
205
+ // A changed lock remains in place and blocks later writes rather than removing an unknown file.
206
+ }
207
+ }
208
+ function writeAll(descriptor, payload) {
209
+ const bytes = Buffer.from(payload, "utf8");
210
+ let offset = 0;
211
+ while (offset < bytes.byteLength) {
212
+ const written = writeSync(descriptor, bytes, offset, bytes.byteLength - offset);
213
+ if (written <= 0)
214
+ return false;
215
+ offset += written;
216
+ }
217
+ return true;
218
+ }
219
+ function hasPrivateCurrentRoot() {
220
+ const current = captureNoFollowDirectory(".");
221
+ return current.kind === "ready" && isPrivateMode(current.value.mode, "0700");
222
+ }
223
+ function isPrivateMode(mode, expected) {
224
+ return process.platform === "win32" || mode === expected;
225
+ }
226
+ function closeDescriptor(descriptor) {
227
+ try {
228
+ closeSync(descriptor);
229
+ }
230
+ catch {
231
+ // Cleanup must not turn a failed diagnostic recording into a process failure.
232
+ }
233
+ }
234
+ //# sourceMappingURL=owner-dogfood-feedback-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"owner-dogfood-feedback-store.js","sourceRoot":"","sources":["../../src/cli/owner-dogfood-feedback-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { CliRunResult } from "./bearshell.js";
2
+ export type OwnerDogfoodFeedbackOptions = Readonly<{
3
+ readonly env?: Readonly<Record<string, string | undefined>>;
4
+ readonly homeDir?: string;
5
+ readonly now?: Date;
6
+ }>;
7
+ export declare function ownerDogfoodFeedbackUsage(invocationName: string): string;
8
+ export declare function runOwnerDogfoodFeedbackCommand(args: readonly string[], options?: OwnerDogfoodFeedbackOptions, invocationName?: string): CliRunResult;
@@ -0,0 +1,58 @@
1
+ import { homedir } from "node:os";
2
+ import { isAbsolute, join, resolve } from "node:path";
3
+ import { OWNER_DOGFOOD_FEEDBACK_CODES, parseOwnerDogfoodFeedbackCode, recordOwnerDogfoodFeedback, } from "./owner-dogfood-feedback-store.js";
4
+ export function ownerDogfoodFeedbackUsage(invocationName) {
5
+ return [
6
+ `Usage: ${invocationName} feedback dogfood <code>`,
7
+ "",
8
+ "Append one bounded, diagnostic-only owner dogfooding observation.",
9
+ "No project files, workflow authority, release authority, or external authority changes.",
10
+ "",
11
+ "Codes:",
12
+ ...OWNER_DOGFOOD_FEEDBACK_CODES.map((code) => ` ${code}`),
13
+ "",
14
+ "State directory:",
15
+ " default: ~/.local/state/persona-harness/owner-dogfood-feedback",
16
+ " events.jsonl is appended inside that directory.",
17
+ " Override root only with an absolute PH_OWNER_DOGFOOD_FEEDBACK_ROOT directory.",
18
+ ].join("\n");
19
+ }
20
+ export function runOwnerDogfoodFeedbackCommand(args, options = {}, invocationName = "ph") {
21
+ if (args.length === 1 && (args[0] === "--help" || args[0] === "-h" || args[0] === "help")) {
22
+ return { status: 0, stdout: `${ownerDogfoodFeedbackUsage(invocationName)}\n`, stderr: "" };
23
+ }
24
+ const code = args.length === 1 ? parseOwnerDogfoodFeedbackCode(args[0]) : undefined;
25
+ if (code === undefined) {
26
+ return blockedResult("invalid-observation", invocationName);
27
+ }
28
+ const root = resolveRoot(options);
29
+ if (root === undefined || !recordOwnerDogfoodFeedback(root, code, options.now ?? new Date())) {
30
+ return blockedResult("state-unavailable", invocationName);
31
+ }
32
+ return { status: 0, stdout: "Owner dogfooding feedback recorded. Diagnostic-only.\n", stderr: "" };
33
+ }
34
+ function resolveRoot(options) {
35
+ const env = options.env ?? process.env;
36
+ const override = env.PH_OWNER_DOGFOOD_FEEDBACK_ROOT;
37
+ if (override !== undefined) {
38
+ return isSafeAbsolutePath(override) ? resolve(override) : undefined;
39
+ }
40
+ const home = firstNonEmpty(env.HOME) ?? firstNonEmpty(env.USERPROFILE) ?? options.homeDir ?? homedir();
41
+ if (!isSafeAbsolutePath(home))
42
+ return undefined;
43
+ return join(resolve(home), ".local", "state", "persona-harness", "owner-dogfood-feedback");
44
+ }
45
+ function firstNonEmpty(value) {
46
+ return value !== undefined && value.trim().length > 0 ? value : undefined;
47
+ }
48
+ function isSafeAbsolutePath(path) {
49
+ return isAbsolute(path) && path.trim() === path && path.length > 0 && !path.includes("\0");
50
+ }
51
+ function blockedResult(reason, invocationName) {
52
+ return {
53
+ status: 1,
54
+ stdout: "",
55
+ stderr: `Owner dogfooding feedback was not recorded (${reason}).\n\n${ownerDogfoodFeedbackUsage(invocationName)}\n`,
56
+ };
57
+ }
58
+ //# sourceMappingURL=owner-dogfood-feedback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"owner-dogfood-feedback.js","sourceRoot":"","sources":["../../src/cli/owner-dogfood-feedback.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function withNoFollowDirectoryChain<T>(requestedPath: string, mode: number, operation: () => T): T | undefined;