persona-harness 0.8.9 → 0.8.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/README.md +31 -2
  2. package/dist/cli/cli-usage.js +4 -0
  3. package/dist/cli/cli-usage.js.map +1 -1
  4. package/dist/cli/index.d.ts +5 -0
  5. package/dist/cli/index.js +21 -1
  6. package/dist/cli/index.js.map +1 -1
  7. package/dist/cli/personalization-profile-model.d.ts +77 -0
  8. package/dist/cli/personalization-profile-model.js +225 -0
  9. package/dist/cli/personalization-profile-model.js.map +1 -0
  10. package/dist/cli/personalization-profile-store.d.ts +27 -0
  11. package/dist/cli/personalization-profile-store.js +294 -0
  12. package/dist/cli/personalization-profile-store.js.map +1 -0
  13. package/dist/cli/philosophy-command.d.ts +7 -0
  14. package/dist/cli/philosophy-command.js +139 -0
  15. package/dist/cli/philosophy-command.js.map +1 -0
  16. package/dist/cli/philosophy-refinement.d.ts +34 -0
  17. package/dist/cli/philosophy-refinement.js +82 -0
  18. package/dist/cli/philosophy-refinement.js.map +1 -0
  19. package/dist/cli/workflow-safe-rendering.d.ts +8 -8
  20. package/dist/effective-profile.d.ts +2 -0
  21. package/dist/effective-profile.js +2 -0
  22. package/dist/effective-profile.js.map +1 -0
  23. package/dist/portable-skill.d.ts +4 -0
  24. package/dist/portable-skill.js +3 -0
  25. package/dist/portable-skill.js.map +1 -0
  26. package/dist/runtime/effective-profile.d.ts +55 -0
  27. package/dist/runtime/effective-profile.js +223 -0
  28. package/dist/runtime/effective-profile.js.map +1 -0
  29. package/dist/runtime/evidence.js +6 -0
  30. package/dist/runtime/evidence.js.map +1 -1
  31. package/dist/runtime/hooks.js +21 -1
  32. package/dist/runtime/hooks.js.map +1 -1
  33. package/dist/runtime/injection.d.ts +13 -2
  34. package/dist/runtime/injection.js +47 -0
  35. package/dist/runtime/injection.js.map +1 -1
  36. package/dist/runtime/opencode-skill-adapter.d.ts +3 -9
  37. package/dist/runtime/opencode-skill-adapter.js +10 -0
  38. package/dist/runtime/opencode-skill-adapter.js.map +1 -1
  39. package/dist/runtime/persona-shared-skill-catalog.d.ts +1 -1
  40. package/dist/runtime/persona-shared-skill-catalog.js +1 -0
  41. package/dist/runtime/persona-shared-skill-catalog.js.map +1 -1
  42. package/dist/runtime/portable-skill-adapters.d.ts +13 -0
  43. package/dist/runtime/portable-skill-adapters.js +24 -0
  44. package/dist/runtime/portable-skill-adapters.js.map +1 -0
  45. package/dist/runtime/portable-skill-contract.d.ts +55 -0
  46. package/dist/runtime/portable-skill-contract.js +96 -0
  47. package/dist/runtime/portable-skill-contract.js.map +1 -0
  48. package/dist/runtime/runtime-context.d.ts +3 -1
  49. package/dist/runtime/runtime-context.js +7 -2
  50. package/dist/runtime/runtime-context.js.map +1 -1
  51. package/dist/runtime/types.d.ts +4 -0
  52. package/docs/current/README.md +1 -0
  53. package/docs/current/canonical-docs-index.md +1 -0
  54. package/docs/current/measurement-scorecard.md +24 -0
  55. package/docs/current/persona-shared-skills-core.md +17 -0
  56. package/docs/current/personalization-profile-v1.md +91 -0
  57. package/docs/current/release/consumer-authority-v0810-acceptance.json +1080 -0
  58. package/docs/current/release/consumer-authority-v0811-acceptance.json +1085 -0
  59. package/docs/current/release/v0.8.10-release-notes.md +36 -0
  60. package/docs/current/release/v0.8.11-release-notes.md +26 -0
  61. package/img/persona-harness-social-preview.png +0 -0
  62. package/package.json +23 -8
  63. package/packages/shared-skills/README.md +17 -0
  64. package/packages/shared-skills/catalog.json +12 -0
  65. package/packages/shared-skills/package.json +2 -1
  66. package/packages/shared-skills/skills/philosophy-refinement/SKILL.md +30 -0
  67. package/scripts/consumer-authority-v0810-acceptance-schema.d.mts +26 -0
  68. package/scripts/consumer-authority-v0810-acceptance-schema.mjs +103 -0
  69. package/scripts/consumer-authority-v0811-acceptance-schema.d.mts +30 -0
  70. package/scripts/consumer-authority-v0811-acceptance-schema.mjs +108 -0
  71. package/scripts/opencode-interview-observation-contract.d.mts +95 -0
  72. package/scripts/opencode-interview-observation-contract.mjs +250 -0
  73. package/scripts/preflight-consumer-authority-external-artifact-transport.mjs +2 -2
  74. package/scripts/preflight-consumer-authority-external-attestation.mjs +2 -2
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Persona Harness
8
8
 
9
- **A gate-first workflow CLI for AI coding agents building Java/Spring backends.**
9
+ **Evidence-first completion gates for AI coding agents building Java/Spring backends.**
10
10
 
11
11
  [![npm version](https://img.shields.io/npm/v/persona-harness?color=369eff&labelColor=black&style=flat-square)](https://www.npmjs.com/package/persona-harness)
12
12
  [![npm downloads](https://img.shields.io/npm/dt/persona-harness?color=ff6b35&labelColor=black&style=flat-square)](https://www.npmjs.com/package/persona-harness)
@@ -21,7 +21,36 @@
21
21
 
22
22
  <!-- </CENTERED SECTION FOR GITHUB DISPLAY> -->
23
23
 
24
- > AI agents love to say "Done!" — Persona Harness makes them show their work. It is a local workflow gate that records and checks reports, evidence, and verification results for explicitly defined gates.
24
+ ## See it in 30 seconds
25
+
26
+ **The problem:** an AI coding agent says "Done!" after a Java/Spring change,
27
+ but the test, build, and review evidence behind that claim is missing or stale.
28
+
29
+ **Install from a project directory:**
30
+
31
+ ```bash
32
+ npm install -D persona-harness && npx ph init && npx ph bootstrap backend
33
+ ```
34
+
35
+ **Give the agent one concrete backend goal, then ask the gate to verify it:**
36
+
37
+ ```bash
38
+ npx ph go "Add a task creation endpoint."
39
+ npx ph workflow finish implement
40
+ ```
41
+
42
+ **What has actually been observed:** a simple forged-evidence fixture is
43
+ ignored and `finish` exits `1`; the opt-in TDD rail blocked green-only
44
+ completion in 5/5 measured runs. Runtime injection did not improve the paired
45
+ OpenCode measurements and added cost, so it remains default-off.
46
+
47
+ **Built for:** Java/Spring/Gradle projects using OpenCode, with explicit
48
+ workflow gates and evidence checks.
49
+
50
+ **Not a promise of:** automatic implementation, generated-app quality,
51
+ production readiness, token savings, or broad security guarantees.
52
+
53
+ **Start with:** [Quick Demo](docs/QUICK-DEMO.md) · [Measured Claims](docs/MEASURED-CLAIMS.md) · [Install guide](docs/START-HERE.md)
25
54
 
26
55
  > [!IMPORTANT]
27
56
  > **Alpha, gate-first, measured.** Live registry channels, tags, GitHub releases, and audit lifecycle facts are maintained in governed registry and audit records; source documentation records only its own preparation boundary. Runtime injection remains **default-off / opt-in**. See [`docs/current/p3-integrity-roadmap.md`](docs/current/p3-integrity-roadmap.md), [`docs/MEASURED-CLAIMS.md`](docs/MEASURED-CLAIMS.md), and [`injection-value-status.json`](docs/current/injection-value-status.json).
@@ -10,6 +10,7 @@ function englishUsage(invocationName) {
10
10
  " doctor Diagnose local OpenCode and Persona Harness installation state.",
11
11
  " observe <path> Report Java/Spring observer findings for a file or directory.",
12
12
  " authority Inspect or enroll bounded external consumer authority.",
13
+ " philosophy Inspect and resolve the local personalization profile.",
13
14
  "",
14
15
  "Examples:",
15
16
  ` ${invocationName} version`,
@@ -21,6 +22,7 @@ function englishUsage(invocationName) {
21
22
  ` ${invocationName} doctor`,
22
23
  ` ${invocationName} observe src/main/java`,
23
24
  ` ${invocationName} authority status`,
25
+ ` ${invocationName} philosophy status`,
24
26
  ].join("\n");
25
27
  }
26
28
  function koreanUsage(invocationName) {
@@ -35,6 +37,7 @@ function koreanUsage(invocationName) {
35
37
  " doctor 로컬 OpenCode 및 Persona Harness 설치 상태를 진단합니다.",
36
38
  " observe <path> 파일 또는 디렉터리의 Java/Spring observer 관측 결과를 보고합니다.",
37
39
  " authority 제한된 외부 consumer authority 상태를 확인하거나 등록합니다.",
40
+ " philosophy 개인화 profile을 확인하고 결정을 append-only로 관리합니다.",
38
41
  "",
39
42
  "도움말 언어 선택: --lang en 또는 --lang ko",
40
43
  "",
@@ -48,6 +51,7 @@ function koreanUsage(invocationName) {
48
51
  ` ${invocationName} doctor`,
49
52
  ` ${invocationName} observe src/main/java`,
50
53
  ` ${invocationName} authority status`,
54
+ ` ${invocationName} philosophy status`,
51
55
  ].join("\n");
52
56
  }
53
57
  export function personaCliUsage(invocationName, locale = "en") {
@@ -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,8FAA8F;QAC9F,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,wBAAwB;QAC3C,KAAK,cAAc,mBAAmB;KACvC,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,+EAA+E;QAC/E,2EAA2E;QAC3E,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,wBAAwB;QAC3C,KAAK,cAAc,mBAAmB;KACvC,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,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,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,+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,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"}
@@ -16,6 +16,11 @@ type PersonaCliOptions = {
16
16
  readonly onBeforeGoRecoveryClear?: () => void;
17
17
  readonly onBeforeGoTransactionStart?: () => void;
18
18
  readonly packageRoot?: string;
19
+ readonly personalizationHomeDir?: string;
20
+ readonly personalizationIdFactory?: () => string;
21
+ readonly personalizationNow?: () => Date;
22
+ readonly personalizationPlatform?: NodeJS.Platform;
23
+ readonly personalizationStoreRoot?: string;
19
24
  readonly stdin?: string;
20
25
  };
21
26
  export declare function runPersonaCli(args: readonly string[], options?: PersonaCliOptions): CliRunResult;
package/dist/cli/index.js CHANGED
@@ -23,6 +23,7 @@ import { runAuthorityCommand } from "./authority-command.js";
23
23
  import { selectAuthorityGithubToken } from "./authority-github-token.js";
24
24
  import { runFeedbackCommand } from "./feedback.js";
25
25
  import { runGoCommand } from "./go-command.js";
26
+ import { runPhilosophyCommand } from "./philosophy-command.js";
26
27
  import { runReviewCommand } from "./review.js";
27
28
  import { runSmokeCommand } from "./smoke.js";
28
29
  import { decodeCliStdinText, readBoundedCliStdinText } from "./stdin-text.js";
@@ -30,6 +31,7 @@ import { MAX_SUBMITTED_REPORT_BYTES, workflowReportStdinLimitMessage } from "./r
30
31
  import { personaHarnessVersion } from "./version.js";
31
32
  import { runWorkflowCommand } from "./workflow-command.js";
32
33
  import { SIGSTORE_NODE_ENGINE_RANGE, assessSigstoreNodeRuntime } from "../../scripts/node-runtime-floor.mjs";
34
+ const MAX_PERSONALIZATION_CANDIDATE_BYTES = 16_384;
33
35
  export function runPersonaCli(args, options = {}) {
34
36
  const command = args[0];
35
37
  const invocationName = options.invocationName ?? "ph";
@@ -132,6 +134,17 @@ export function runPersonaCli(args, options = {}) {
132
134
  if (command === "feedback") {
133
135
  return runFeedbackCommand(args.slice(1), { projectDir: options.cwd }, invocationName);
134
136
  }
137
+ if (command === "philosophy") {
138
+ return runPhilosophyCommand(args.slice(1), {
139
+ env: options.env,
140
+ homeDir: options.personalizationHomeDir,
141
+ idFactory: options.personalizationIdFactory,
142
+ now: options.personalizationNow,
143
+ platform: options.personalizationPlatform,
144
+ stdin: options.stdin,
145
+ storeRoot: options.personalizationStoreRoot,
146
+ }, invocationName);
147
+ }
135
148
  if (command === "review") {
136
149
  return runReviewCommand(args.slice(1), { projectDir: options.cwd }, invocationName);
137
150
  }
@@ -222,7 +235,10 @@ async function cliStdin(args) {
222
235
  const workflowStdin = args[0] === "workflow"
223
236
  && (args[1] === "capture" || args[1] === "draft")
224
237
  && args[2] === "--stdin";
225
- if (!goStdin && !planStdin && !workflowStdin) {
238
+ const philosophyStdin = args[0] === "philosophy"
239
+ && (args[1] === "propose" || args[1] === "refine")
240
+ && args.includes("--stdin");
241
+ if (!goStdin && !planStdin && !workflowStdin && !philosophyStdin) {
226
242
  return undefined;
227
243
  }
228
244
  if (process.stdin.isTTY === true) {
@@ -235,6 +251,10 @@ async function cliStdin(args) {
235
251
  }
236
252
  return stdin.text;
237
253
  }
254
+ if (philosophyStdin) {
255
+ const stdin = await readBoundedCliStdinText(process.stdin, MAX_PERSONALIZATION_CANDIDATE_BYTES);
256
+ return stdin.kind === "limit-exceeded" ? "" : stdin.text;
257
+ }
238
258
  return decodeCliStdinText(readFileSync(0));
239
259
  }
240
260
  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":";AACA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,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,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,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;AAmB5G,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,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,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,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;IAE/F,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,CAAC,CAAC,CAAA;QAC1F,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,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,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,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,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,aAAa,EAAE,CAAC;QAC7C,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,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":";AACA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,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,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,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,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;IAE/F,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,CAAC,CAAC,CAAA;QAC1F,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,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,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,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"}
@@ -0,0 +1,77 @@
1
+ export declare const PERSONALIZATION_CANDIDATE_SCHEMA: "personalization-candidate.v1";
2
+ export declare const PERSONALIZATION_RULE_SCHEMA: "personalization-rule.v1";
3
+ export declare const PERSONALIZATION_DECISION_SCHEMA: "personalization-decision.v1";
4
+ export declare const PERSONALIZATION_PROFILE_SCHEMA: "personalization-profile.v1";
5
+ export declare const PERSONALIZATION_HISTORY_SCHEMA: "personalization-history.v1";
6
+ export declare const PERSONALIZATION_STORE_SCHEMA: "personalization-store.v1";
7
+ export type PersonalizationScope = {
8
+ readonly kind: "personal" | "project" | "task";
9
+ readonly key: string;
10
+ };
11
+ export type PersonalizationProvenance = {
12
+ readonly kind: "user" | "review" | "workflow";
13
+ readonly reference: string;
14
+ };
15
+ export type PersonalizationCandidate = {
16
+ readonly schemaVersion: typeof PERSONALIZATION_CANDIDATE_SCHEMA;
17
+ readonly candidateId: string;
18
+ readonly topic: string;
19
+ readonly rule: string;
20
+ readonly rationale: string;
21
+ readonly outcome: string;
22
+ readonly scope: PersonalizationScope;
23
+ readonly counterexample: string;
24
+ readonly tradeoffs: string;
25
+ readonly provenance: PersonalizationProvenance;
26
+ };
27
+ export type PersonalizationRule = Omit<PersonalizationCandidate, "candidateId" | "schemaVersion"> & {
28
+ readonly schemaVersion: typeof PERSONALIZATION_RULE_SCHEMA;
29
+ readonly ruleId: string;
30
+ readonly activatedAt: string;
31
+ };
32
+ export type PersonalizationDecisionAction = "activate" | "retain" | "exception" | "supersede" | "pending" | "rollback";
33
+ export type PersonalizationDecision = {
34
+ readonly schemaVersion: typeof PERSONALIZATION_DECISION_SCHEMA;
35
+ readonly decisionId: string;
36
+ readonly action: PersonalizationDecisionAction;
37
+ readonly candidateId: string | null;
38
+ readonly ruleId: string | null;
39
+ readonly scope: PersonalizationScope | null;
40
+ readonly decidedAt: string;
41
+ };
42
+ export type PersonalizationProfile = {
43
+ readonly schemaVersion: typeof PERSONALIZATION_PROFILE_SCHEMA;
44
+ readonly activeRules: readonly PersonalizationRule[];
45
+ readonly pendingCandidates: readonly PersonalizationCandidate[];
46
+ readonly decisions: readonly PersonalizationDecision[];
47
+ };
48
+ export type PersonalizationHistoryEvent = {
49
+ readonly schemaVersion: typeof PERSONALIZATION_HISTORY_SCHEMA;
50
+ readonly eventId: string;
51
+ readonly event: "activated" | "conflict" | "pending" | "retained" | "exception" | "superseded" | "rollback";
52
+ readonly candidateId: string | null;
53
+ readonly ruleId: string | null;
54
+ readonly decisionId: string;
55
+ readonly occurredAt: string;
56
+ };
57
+ export type PersonalizationHistory = {
58
+ readonly schemaVersion: typeof PERSONALIZATION_HISTORY_SCHEMA;
59
+ readonly events: readonly PersonalizationHistoryEvent[];
60
+ };
61
+ export type PersonalizationStoreDocument = {
62
+ readonly schemaVersion: typeof PERSONALIZATION_STORE_SCHEMA;
63
+ readonly profile: PersonalizationProfile;
64
+ readonly history: PersonalizationHistory;
65
+ };
66
+ export declare class PersonalizationValidationError extends Error {
67
+ readonly code: "personalization-candidate-invalid" | "personalization-store-corrupt";
68
+ constructor(code: PersonalizationValidationError["code"]);
69
+ }
70
+ export declare function emptyPersonalizationStore(): PersonalizationStoreDocument;
71
+ export declare function parsePersonalizationCandidate(value: unknown): PersonalizationCandidate;
72
+ export declare function parsePersonalizationStore(value: unknown): PersonalizationStoreDocument;
73
+ export declare function scopesOverlap(left: PersonalizationScope, right: PersonalizationScope): boolean;
74
+ export declare function findConflictingRule(rules: readonly PersonalizationRule[], candidate: PersonalizationCandidate): PersonalizationRule | undefined;
75
+ export declare function ruleFromCandidate(candidate: PersonalizationCandidate, ruleId: string, activatedAt: string, scope?: PersonalizationScope): PersonalizationRule;
76
+ export declare function decisionRecord(decisionId: string, action: PersonalizationDecisionAction, decidedAt: string, candidateId: string | null, ruleId: string | null, scope: PersonalizationScope | null): PersonalizationDecision;
77
+ export declare function historyEvent(eventId: string, event: PersonalizationHistoryEvent["event"], occurredAt: string, decisionId: string, candidateId: string | null, ruleId: string | null): PersonalizationHistoryEvent;
@@ -0,0 +1,225 @@
1
+ export const PERSONALIZATION_CANDIDATE_SCHEMA = "personalization-candidate.v1";
2
+ export const PERSONALIZATION_RULE_SCHEMA = "personalization-rule.v1";
3
+ export const PERSONALIZATION_DECISION_SCHEMA = "personalization-decision.v1";
4
+ export const PERSONALIZATION_PROFILE_SCHEMA = "personalization-profile.v1";
5
+ export const PERSONALIZATION_HISTORY_SCHEMA = "personalization-history.v1";
6
+ export const PERSONALIZATION_STORE_SCHEMA = "personalization-store.v1";
7
+ export class PersonalizationValidationError extends Error {
8
+ code;
9
+ constructor(code) {
10
+ super(code);
11
+ this.name = "PersonalizationValidationError";
12
+ this.code = code;
13
+ }
14
+ }
15
+ const CANDIDATE_KEYS = ["candidateId", "counterexample", "outcome", "provenance", "rationale", "rule", "schemaVersion", "scope", "topic", "tradeoffs"];
16
+ const PROFILE_KEYS = ["activeRules", "decisions", "pendingCandidates", "schemaVersion"];
17
+ const STORE_KEYS = ["history", "profile", "schemaVersion"];
18
+ const DECISION_KEYS = ["action", "candidateId", "decidedAt", "decisionId", "ruleId", "schemaVersion", "scope"];
19
+ const RULE_KEYS = [...CANDIDATE_KEYS.filter((key) => key !== "candidateId" && key !== "schemaVersion"), "activatedAt", "ruleId", "schemaVersion"];
20
+ export function emptyPersonalizationStore() {
21
+ return {
22
+ history: { events: [], schemaVersion: PERSONALIZATION_HISTORY_SCHEMA },
23
+ profile: { activeRules: [], decisions: [], pendingCandidates: [], schemaVersion: PERSONALIZATION_PROFILE_SCHEMA },
24
+ schemaVersion: PERSONALIZATION_STORE_SCHEMA,
25
+ };
26
+ }
27
+ export function parsePersonalizationCandidate(value) {
28
+ if (!isRecord(value) || !hasExactKeys(value, CANDIDATE_KEYS))
29
+ throw new PersonalizationValidationError("personalization-candidate-invalid");
30
+ const candidate = parseCandidateFields(value);
31
+ if (candidate === undefined)
32
+ throw new PersonalizationValidationError("personalization-candidate-invalid");
33
+ return candidate;
34
+ }
35
+ export function parsePersonalizationStore(value) {
36
+ if (!isRecord(value) || !hasExactKeys(value, STORE_KEYS) || value.schemaVersion !== PERSONALIZATION_STORE_SCHEMA) {
37
+ throw new PersonalizationValidationError("personalization-store-corrupt");
38
+ }
39
+ const profile = parseProfile(value.profile);
40
+ const history = parseHistory(value.history);
41
+ if (profile === undefined || history === undefined) {
42
+ throw new PersonalizationValidationError("personalization-store-corrupt");
43
+ }
44
+ const decisionIds = new Set(profile.decisions.map((decision) => decision.decisionId));
45
+ if (history.events.some((event) => !decisionIds.has(event.decisionId))) {
46
+ throw new PersonalizationValidationError("personalization-store-corrupt");
47
+ }
48
+ return { history, profile, schemaVersion: PERSONALIZATION_STORE_SCHEMA };
49
+ }
50
+ export function scopesOverlap(left, right) {
51
+ return left.kind === "personal" && right.kind === "personal"
52
+ || left.kind !== "personal" && left.kind === right.kind && left.key === right.key;
53
+ }
54
+ export function findConflictingRule(rules, candidate) {
55
+ return rules.find((rule) => rule.topic === candidate.topic && scopesOverlap(rule.scope, candidate.scope));
56
+ }
57
+ export function ruleFromCandidate(candidate, ruleId, activatedAt, scope = candidate.scope) {
58
+ return {
59
+ activatedAt,
60
+ counterexample: candidate.counterexample,
61
+ outcome: candidate.outcome,
62
+ provenance: candidate.provenance,
63
+ rationale: candidate.rationale,
64
+ rule: candidate.rule,
65
+ ruleId,
66
+ schemaVersion: PERSONALIZATION_RULE_SCHEMA,
67
+ scope,
68
+ topic: candidate.topic,
69
+ tradeoffs: candidate.tradeoffs,
70
+ };
71
+ }
72
+ export function decisionRecord(decisionId, action, decidedAt, candidateId, ruleId, scope) {
73
+ return { action, candidateId, decidedAt, decisionId, ruleId, schemaVersion: PERSONALIZATION_DECISION_SCHEMA, scope };
74
+ }
75
+ export function historyEvent(eventId, event, occurredAt, decisionId, candidateId, ruleId) {
76
+ return { candidateId, decisionId, event, eventId, occurredAt, ruleId, schemaVersion: PERSONALIZATION_HISTORY_SCHEMA };
77
+ }
78
+ function parseCandidateFields(value) {
79
+ const scope = parseScope(value.scope);
80
+ const provenance = parseProvenance(value.provenance);
81
+ if (value.schemaVersion !== PERSONALIZATION_CANDIDATE_SCHEMA || scope === undefined || provenance === undefined)
82
+ return undefined;
83
+ const candidateId = value.candidateId;
84
+ const topic = value.topic;
85
+ const rule = value.rule;
86
+ const rationale = value.rationale;
87
+ const outcome = value.outcome;
88
+ const counterexample = value.counterexample;
89
+ const tradeoffs = value.tradeoffs;
90
+ if (!isSafeText(candidateId, 80) || !isSafeText(topic, 80) || !isSafeText(rule, 600)
91
+ || !isSafeText(rationale, 600) || !isSafeText(outcome, 600)
92
+ || !isSafeText(counterexample, 600) || !isSafeText(tradeoffs, 600))
93
+ return undefined;
94
+ if (!isSafeIdentifier(candidateId) || !isSafeTopic(topic))
95
+ return undefined;
96
+ return {
97
+ candidateId,
98
+ counterexample,
99
+ outcome,
100
+ provenance,
101
+ rationale,
102
+ rule,
103
+ schemaVersion: PERSONALIZATION_CANDIDATE_SCHEMA,
104
+ scope,
105
+ topic,
106
+ tradeoffs,
107
+ };
108
+ }
109
+ function parseProfile(value) {
110
+ if (!isRecord(value) || !hasExactKeys(value, PROFILE_KEYS) || value.schemaVersion !== PERSONALIZATION_PROFILE_SCHEMA)
111
+ return undefined;
112
+ if (!Array.isArray(value.activeRules) || !Array.isArray(value.pendingCandidates) || !Array.isArray(value.decisions))
113
+ return undefined;
114
+ const activeRules = value.activeRules.map(parseRule);
115
+ const pendingCandidates = value.pendingCandidates.map((candidate) => {
116
+ try {
117
+ return parsePersonalizationCandidate(candidate);
118
+ }
119
+ catch {
120
+ return undefined;
121
+ }
122
+ });
123
+ const decisions = value.decisions.map(parseDecision);
124
+ if (activeRules.some((rule) => rule === undefined) || pendingCandidates.some((candidate) => candidate === undefined) || decisions.some((decision) => decision === undefined))
125
+ return undefined;
126
+ const rules = activeRules;
127
+ const pending = pendingCandidates;
128
+ const parsedDecisions = decisions;
129
+ if (new Set(rules.map((rule) => rule.ruleId)).size !== rules.length
130
+ || new Set(pending.map((candidate) => candidate.candidateId)).size !== pending.length
131
+ || new Set(parsedDecisions.map((decision) => decision.decisionId)).size !== parsedDecisions.length)
132
+ return undefined;
133
+ if (rules.some((rule, index) => rules.slice(index + 1).some((other) => rule.topic === other.topic && scopesOverlap(rule.scope, other.scope))))
134
+ return undefined;
135
+ return { activeRules: rules, decisions: parsedDecisions, pendingCandidates: pending, schemaVersion: PERSONALIZATION_PROFILE_SCHEMA };
136
+ }
137
+ function parseHistory(value) {
138
+ if (!isRecord(value) || Object.keys(value).sort().join("|") !== "events|schemaVersion" || value.schemaVersion !== PERSONALIZATION_HISTORY_SCHEMA || !Array.isArray(value.events))
139
+ return undefined;
140
+ const events = value.events.map((event) => parseHistoryEvent(event));
141
+ if (events.some((event) => event === undefined))
142
+ return undefined;
143
+ const parsedEvents = events;
144
+ if (new Set(parsedEvents.map((event) => event.eventId)).size !== parsedEvents.length
145
+ || new Set(parsedEvents.map((event) => event.decisionId)).size !== parsedEvents.length)
146
+ return undefined;
147
+ return { events: parsedEvents, schemaVersion: PERSONALIZATION_HISTORY_SCHEMA };
148
+ }
149
+ function parseRule(value) {
150
+ if (!isRecord(value) || !hasExactKeys(value, RULE_KEYS))
151
+ return undefined;
152
+ if (!isSafeIdentifier(value.ruleId) || !isSafeTimestamp(value.activatedAt))
153
+ return undefined;
154
+ const candidate = parseCandidateFields({ ...value, candidateId: value.ruleId, schemaVersion: PERSONALIZATION_CANDIDATE_SCHEMA });
155
+ return candidate !== undefined
156
+ ? ruleFromCandidate(candidate, value.ruleId, value.activatedAt)
157
+ : undefined;
158
+ }
159
+ function parseDecision(value) {
160
+ if (!isRecord(value) || !hasExactKeys(value, DECISION_KEYS) || !isSafeIdentifier(value.decisionId) || !isSafeTimestamp(value.decidedAt))
161
+ return undefined;
162
+ if (!["activate", "retain", "exception", "supersede", "pending", "rollback"].includes(String(value.action)))
163
+ return undefined;
164
+ if (value.candidateId !== null && !isSafeIdentifier(value.candidateId))
165
+ return undefined;
166
+ if (value.ruleId !== null && !isSafeIdentifier(value.ruleId))
167
+ return undefined;
168
+ const scope = value.scope === null ? null : parseScope(value.scope);
169
+ return scope === undefined ? undefined : { action: value.action, candidateId: value.candidateId, decidedAt: value.decidedAt, decisionId: value.decisionId, ruleId: value.ruleId, schemaVersion: PERSONALIZATION_DECISION_SCHEMA, scope };
170
+ }
171
+ function parseHistoryEvent(value) {
172
+ if (!isRecord(value) || Object.keys(value).sort().join("|") !== "candidateId|decisionId|event|eventId|occurredAt|ruleId|schemaVersion")
173
+ return undefined;
174
+ if (value.schemaVersion !== PERSONALIZATION_HISTORY_SCHEMA || value.event === "" || !isSafeIdentifier(value.eventId) || !isSafeIdentifier(value.decisionId) || !isSafeTimestamp(value.occurredAt))
175
+ return undefined;
176
+ if (value.candidateId !== null && !isSafeIdentifier(value.candidateId))
177
+ return undefined;
178
+ if (value.ruleId !== null && !isSafeIdentifier(value.ruleId))
179
+ return undefined;
180
+ const events = ["activated", "conflict", "pending", "retained", "exception", "superseded", "rollback"];
181
+ if (!events.includes(value.event))
182
+ return undefined;
183
+ return { candidateId: value.candidateId, decisionId: value.decisionId, event: value.event, eventId: value.eventId, occurredAt: value.occurredAt, ruleId: value.ruleId, schemaVersion: PERSONALIZATION_HISTORY_SCHEMA };
184
+ }
185
+ function parseScope(value) {
186
+ if (!isRecord(value) || Object.keys(value).sort().join("|") !== "key|kind" || !isSafeIdentifier(value.key))
187
+ return undefined;
188
+ if (value.kind === "personal" && value.key === "personal")
189
+ return { key: value.key, kind: value.kind };
190
+ return value.kind === "project" || value.kind === "task" ? { key: value.key, kind: value.kind } : undefined;
191
+ }
192
+ function parseProvenance(value) {
193
+ if (!isRecord(value) || Object.keys(value).sort().join("|") !== "kind|reference" || !isSafeIdentifier(value.reference))
194
+ return undefined;
195
+ return value.kind === "user" || value.kind === "review" || value.kind === "workflow" ? { kind: value.kind, reference: value.reference } : undefined;
196
+ }
197
+ function hasExactKeys(value, keys) {
198
+ const actual = Object.keys(value).sort();
199
+ return actual.length === keys.length && actual.every((key, index) => key === [...keys].sort()[index]);
200
+ }
201
+ function isSafeText(value, maxLength) {
202
+ return typeof value === "string"
203
+ && value.length > 0
204
+ && value.length <= maxLength
205
+ && !/[\u0000-\u0008\u000B\u000C\u000E-\u001F\r\n]/u.test(value)
206
+ && !/```|(?:^|[\s("'])~[\\/]|(?:^|[\s("'])[A-Za-z]:[\\/]|(?:^|[\s("'])\/(?:[^/]|$)/u.test(value)
207
+ && !/(?:^|[\s("'`])(?:sk-[A-Za-z0-9]|gh[pousr]_[A-Za-z0-9]|xox[baprs]-|AKIA[A-Z0-9]{12,})/u.test(value)
208
+ && !/\b(?:password|passwd|api[ _-]?key|access[ _-]?token|token|secret)\s*[:=]/iu.test(value)
209
+ && !/(?:https?|file):\/\//iu.test(value)
210
+ && !/\b(?:function|class|interface|import|export|const|let|var)\s+[A-Za-z_$]/u.test(value)
211
+ && !/[{};]|=>/u.test(value);
212
+ }
213
+ function isSafeIdentifier(value) {
214
+ return typeof value === "string" && /^[A-Za-z0-9][A-Za-z0-9._-]{0,79}$/u.test(value);
215
+ }
216
+ function isSafeTopic(value) {
217
+ return typeof value === "string" && /^[a-z][a-z0-9._-]{1,63}$/u.test(value);
218
+ }
219
+ function isSafeTimestamp(value) {
220
+ return typeof value === "string" && Number.isFinite(Date.parse(value)) && value.length <= 40;
221
+ }
222
+ function isRecord(value) {
223
+ return typeof value === "object" && value !== null && !Array.isArray(value);
224
+ }
225
+ //# sourceMappingURL=personalization-profile-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"personalization-profile-model.js","sourceRoot":"","sources":["../../src/cli/personalization-profile-model.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gCAAgC,GAAG,8BAAuC,CAAA;AACvF,MAAM,CAAC,MAAM,2BAA2B,GAAG,yBAAkC,CAAA;AAC7E,MAAM,CAAC,MAAM,+BAA+B,GAAG,6BAAsC,CAAA;AACrF,MAAM,CAAC,MAAM,8BAA8B,GAAG,4BAAqC,CAAA;AACnF,MAAM,CAAC,MAAM,8BAA8B,GAAG,4BAAqC,CAAA;AACnF,MAAM,CAAC,MAAM,4BAA4B,GAAG,0BAAmC,CAAA;AAuE/E,MAAM,OAAO,8BAA+B,SAAQ,KAAK;IAC9C,IAAI,CAAuE;IAEpF,YAAY,IAA4C;QACtD,KAAK,CAAC,IAAI,CAAC,CAAA;QACX,IAAI,CAAC,IAAI,GAAG,gCAAgC,CAAA;QAC5C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;CACF;AAED,MAAM,cAAc,GAAG,CAAC,aAAa,EAAE,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAU,CAAA;AAC/J,MAAM,YAAY,GAAG,CAAC,aAAa,EAAE,WAAW,EAAE,mBAAmB,EAAE,eAAe,CAAU,CAAA;AAChG,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,CAAU,CAAA;AACnE,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,CAAU,CAAA;AACvH,MAAM,SAAS,GAAG,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,aAAa,IAAI,GAAG,KAAK,eAAe,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,CAAU,CAAA;AAE1J,MAAM,UAAU,yBAAyB;IACvC,OAAO;QACL,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,8BAA8B,EAAE;QACtE,OAAO,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,aAAa,EAAE,8BAA8B,EAAE;QACjH,aAAa,EAAE,4BAA4B;KAC5C,CAAA;AACH,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,KAAc;IAC1D,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,cAAc,CAAC;QAAE,MAAM,IAAI,8BAA8B,CAAC,mCAAmC,CAAC,CAAA;IAC3I,MAAM,SAAS,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAA;IAC7C,IAAI,SAAS,KAAK,SAAS;QAAE,MAAM,IAAI,8BAA8B,CAAC,mCAAmC,CAAC,CAAA;IAC1G,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAc;IACtD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,KAAK,CAAC,aAAa,KAAK,4BAA4B,EAAE,CAAC;QACjH,MAAM,IAAI,8BAA8B,CAAC,+BAA+B,CAAC,CAAA;IAC3E,CAAC;IACD,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC3C,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC3C,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACnD,MAAM,IAAI,8BAA8B,CAAC,+BAA+B,CAAC,CAAA;IAC3E,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAA;IACrF,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,8BAA8B,CAAC,+BAA+B,CAAC,CAAA;IAC3E,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,4BAA4B,EAAE,CAAA;AAC1E,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAA0B,EAAE,KAA2B;IACnF,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;WACvD,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,CAAA;AACrF,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,KAAqC,EACrC,SAAmC;IAEnC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;AAC3G,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,SAAmC,EAAE,MAAc,EAAE,WAAmB,EAAE,KAAK,GAAG,SAAS,CAAC,KAAK;IACjI,OAAO;QACL,WAAW;QACX,cAAc,EAAE,SAAS,CAAC,cAAc;QACxC,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,UAAU,EAAE,SAAS,CAAC,UAAU;QAChC,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,MAAM;QACN,aAAa,EAAE,2BAA2B;QAC1C,KAAK;QACL,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,SAAS,EAAE,SAAS,CAAC,SAAS;KAC/B,CAAA;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,UAAkB,EAClB,MAAqC,EACrC,SAAiB,EACjB,WAA0B,EAC1B,MAAqB,EACrB,KAAkC;IAElC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,+BAA+B,EAAE,KAAK,EAAE,CAAA;AACtH,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,OAAe,EACf,KAA2C,EAC3C,UAAkB,EAClB,UAAkB,EAClB,WAA0B,EAC1B,MAAqB;IAErB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,8BAA8B,EAAE,CAAA;AACvH,CAAC;AAED,SAAS,oBAAoB,CAAC,KAA8B;IAC1D,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACrC,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IACpD,IAAI,KAAK,CAAC,aAAa,KAAK,gCAAgC,IAAI,KAAK,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACjI,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAA;IACrC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;IACzB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IACvB,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;IACjC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;IAC7B,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,CAAA;IAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;IACjC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC;WAC/E,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC;WACxD,CAAC,UAAU,CAAC,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC;QAAE,OAAO,SAAS,CAAA;IACtF,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAC3E,OAAO;QACL,WAAW;QACX,cAAc;QACd,OAAO;QACP,UAAU;QACV,SAAS;QACT,IAAI;QACJ,aAAa,EAAE,gCAAgC;QAC/C,KAAK;QACL,KAAK;QACL,SAAS;KACV,CAAA;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,KAAK,CAAC,aAAa,KAAK,8BAA8B;QAAE,OAAO,SAAS,CAAA;IACtI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAA;IACrI,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACpD,MAAM,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QAClE,IAAI,CAAC;YAAC,OAAO,6BAA6B,CAAC,SAAS,CAAC,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,SAAS,CAAA;QAAC,CAAC;IACpF,CAAC,CAAC,CAAA;IACF,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IACpD,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC;QAAE,OAAO,SAAS,CAAA;IAC9L,MAAM,KAAK,GAAG,WAAoC,CAAA;IAClD,MAAM,OAAO,GAAG,iBAA+C,CAAA;IAC/D,MAAM,eAAe,GAAG,SAAsC,CAAA;IAC9D,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM;WAC9D,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM;WAClF,IAAI,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,MAAM;QAAE,OAAO,SAAS,CAAA;IACtH,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,SAAS,CAAA;IAC/J,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAE,OAAO,EAAE,aAAa,EAAE,8BAA8B,EAAE,CAAA;AACtI,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,sBAAsB,IAAI,KAAK,CAAC,aAAa,KAAK,8BAA8B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAA;IAClM,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAA;IACpE,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC;QAAE,OAAO,SAAS,CAAA;IACjE,MAAM,YAAY,GAAG,MAAuC,CAAA;IAC5D,IAAI,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,MAAM;WAC/E,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,MAAM;QAAE,OAAO,SAAS,CAAA;IAC1G,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,8BAA8B,EAAE,CAAA;AAChF,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;QAAE,OAAO,SAAS,CAAA;IACzE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC;QAAE,OAAO,SAAS,CAAA;IAC5F,MAAM,SAAS,GAAG,oBAAoB,CAAC,EAAE,GAAG,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,gCAAgC,EAAE,CAAC,CAAA;IAChI,OAAO,SAAS,KAAK,SAAS;QAC5B,CAAC,CAAC,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC;QAC/D,CAAC,CAAC,SAAS,CAAA;AACf,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAA;IACzJ,IAAI,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAAE,OAAO,SAAS,CAAA;IAC7H,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC;QAAE,OAAO,SAAS,CAAA;IACxF,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAA;IAC9E,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACnE,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAuC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,+BAA+B,EAAE,KAAK,EAAE,CAAA;AAC3Q,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,sEAAsE;QAAE,OAAO,SAAS,CAAA;IACxJ,IAAI,KAAK,CAAC,aAAa,KAAK,8BAA8B,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC;QAAE,OAAO,SAAS,CAAA;IACnN,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC;QAAE,OAAO,SAAS,CAAA;IACxF,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAA;IAC9E,MAAM,MAAM,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,CAAU,CAAA;IAC/G,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAA8B,CAAC;QAAE,OAAO,SAAS,CAAA;IAC5E,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,KAA8B,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,8BAA8B,EAAE,CAAA;AACjP,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,UAAU,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAA;IAC5H,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,GAAG,KAAK,UAAU;QAAE,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;IACtG,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;AAC7G,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAA;IACxI,OAAO,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;AACrJ,CAAC;AAED,SAAS,YAAY,CAAC,KAA8B,EAAE,IAAuB;IAC3E,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAA;IACxC,OAAO,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;AACvG,CAAC;AAED,SAAS,UAAU,CAAC,KAAc,EAAE,SAAiB;IACnD,OAAO,OAAO,KAAK,KAAK,QAAQ;WAC3B,KAAK,CAAC,MAAM,GAAG,CAAC;WAChB,KAAK,CAAC,MAAM,IAAI,SAAS;WACzB,CAAC,+CAA+C,CAAC,IAAI,CAAC,KAAK,CAAC;WAC5D,CAAC,gFAAgF,CAAC,IAAI,CAAC,KAAK,CAAC;WAC7F,CAAC,uFAAuF,CAAC,IAAI,CAAC,KAAK,CAAC;WACpG,CAAC,4EAA4E,CAAC,IAAI,CAAC,KAAK,CAAC;WACzF,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC;WACrC,CAAC,0EAA0E,CAAC,IAAI,CAAC,KAAK,CAAC;WACvF,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC/B,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,oCAAoC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACtF,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC7E,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,EAAE,CAAA;AAC9F,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC7E,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { type PersonalizationDecisionAction, type PersonalizationHistoryEvent, type PersonalizationScope, type PersonalizationStoreDocument } from "./personalization-profile-model.js";
2
+ export * from "./personalization-profile-model.js";
3
+ export type PersonalizationStoreOptions = {
4
+ readonly env?: Readonly<Record<string, string | undefined>>;
5
+ readonly homeDir?: string;
6
+ readonly idFactory?: () => string;
7
+ readonly now?: () => Date;
8
+ readonly platform?: NodeJS.Platform;
9
+ readonly storeRoot?: string;
10
+ };
11
+ export declare class PersonalizationStoreError extends Error {
12
+ readonly code: "personalization-store-unsafe" | "personalization-store-corrupt" | "personalization-candidate-invalid" | "personalization-candidate-conflict" | "personalization-candidate-missing" | "personalization-resolution-invalid" | "personalization-rule-missing";
13
+ constructor(code: PersonalizationStoreError["code"]);
14
+ }
15
+ export declare const STARTER_PROFILE: readonly string[];
16
+ export declare function resolvePersonalizationStoreRoot(options?: Pick<PersonalizationStoreOptions, "env" | "homeDir" | "platform">): string;
17
+ export declare function personalizationStorePath(options?: PersonalizationStoreOptions): string;
18
+ export declare function readPersonalizationStore(options?: PersonalizationStoreOptions): PersonalizationStoreDocument;
19
+ export declare function writePersonalizationStore(document: PersonalizationStoreDocument, options?: PersonalizationStoreOptions): void;
20
+ export type PersonalizationMutationResult = {
21
+ readonly document: PersonalizationStoreDocument;
22
+ readonly event: PersonalizationHistoryEvent;
23
+ readonly status: "activated" | "conflict" | "pending" | "retained" | "exception" | "superseded" | "rollback";
24
+ };
25
+ export declare function proposePersonalizationCandidate(value: unknown, options?: PersonalizationStoreOptions, explicitPending?: boolean): PersonalizationMutationResult;
26
+ export declare function resolvePersonalizationCandidate(candidateId: string, action: Exclude<PersonalizationDecisionAction, "activate" | "rollback">, options?: PersonalizationStoreOptions, exceptionScope?: PersonalizationScope): PersonalizationMutationResult;
27
+ export declare function rollbackPersonalizationRule(ruleId: string, options?: PersonalizationStoreOptions): PersonalizationMutationResult;