halfcycle 0.4.12 → 0.4.14

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 (54) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/bin/bin.bundle.mjs +9366 -567
  3. package/bin/pre-tool-use-filter.sh +470 -0
  4. package/dist/bin.d.ts +1 -0
  5. package/dist/bin.d.ts.map +1 -1
  6. package/dist/build-record/pair-io.d.ts +49 -0
  7. package/dist/build-record/pair-io.d.ts.map +1 -0
  8. package/dist/build-record/render-change.d.ts +25 -0
  9. package/dist/build-record/render-change.d.ts.map +1 -0
  10. package/dist/build-record/render-v2.d.ts +10 -5
  11. package/dist/build-record/render-v2.d.ts.map +1 -1
  12. package/dist/build-record/write-change.d.ts +63 -0
  13. package/dist/build-record/write-change.d.ts.map +1 -0
  14. package/dist/build-record/write.d.ts +5 -15
  15. package/dist/build-record/write.d.ts.map +1 -1
  16. package/dist/change.d.ts +136 -0
  17. package/dist/change.d.ts.map +1 -0
  18. package/dist/check-tasks.d.ts +71 -0
  19. package/dist/check-tasks.d.ts.map +1 -0
  20. package/dist/claude-plan.d.ts +114 -0
  21. package/dist/claude-plan.d.ts.map +1 -0
  22. package/dist/cli-contract.d.ts +12 -1
  23. package/dist/cli-contract.d.ts.map +1 -1
  24. package/dist/cli.js +9017 -5228
  25. package/dist/cli.js.map +3 -3
  26. package/dist/close-phase.d.ts +113 -10
  27. package/dist/close-phase.d.ts.map +1 -1
  28. package/dist/halfcycle-monorepo.d.ts +26 -0
  29. package/dist/halfcycle-monorepo.d.ts.map +1 -0
  30. package/dist/index.js +1617 -845
  31. package/dist/index.js.map +3 -3
  32. package/dist/install-manifest.d.ts +18 -1
  33. package/dist/install-manifest.d.ts.map +1 -1
  34. package/dist/install.d.ts +225 -3
  35. package/dist/install.d.ts.map +1 -1
  36. package/dist/merge-settings.d.ts +25 -2
  37. package/dist/merge-settings.d.ts.map +1 -1
  38. package/dist/open-phase.d.ts +1 -1
  39. package/dist/open-phase.d.ts.map +1 -1
  40. package/dist/pace.d.ts +138 -0
  41. package/dist/pace.d.ts.map +1 -0
  42. package/dist/phase-work.d.ts +37 -0
  43. package/dist/phase-work.d.ts.map +1 -0
  44. package/dist/plan.d.ts +5 -2
  45. package/dist/plan.d.ts.map +1 -1
  46. package/dist/prove.d.ts +77 -0
  47. package/dist/prove.d.ts.map +1 -0
  48. package/dist/review.d.ts +19 -1
  49. package/dist/review.d.ts.map +1 -1
  50. package/dist/system-report.d.ts +4 -4
  51. package/dist/system-report.d.ts.map +1 -1
  52. package/dist/uninstall.d.ts +4 -1
  53. package/dist/uninstall.d.ts.map +1 -1
  54. package/package.json +1 -1
@@ -40,7 +40,13 @@ export type ManifestFile = {
40
40
  * What the installer did to `.claude/settings.json`. `schemaBefore` is present only
41
41
  * when an install changed `$schema`, holding the earlier value, or `null` when there
42
42
  * was none. The three `*Created` flags say whether an install created the `hooks`,
43
- * `permissions` and `permissions.deny` keys.
43
+ * `permissions` and `permissions.deny` keys. `statusLineSha256` is the canonical
44
+ * hash (`canonicalSha256`) of the `statusLine` setting as an install last wrote it,
45
+ * or found it still holding what it writes; absent when no run has written one
46
+ * (`builds-paced-to-plan` AC7). Uninstall takes a `statusLine` out only while its
47
+ * hash is still this one, so a status line the person edited, or set themselves,
48
+ * stays. OPTIONAL, like `mcp.entrySha256`: a record an earlier version wrote has no
49
+ * such key, and it must still parse.
44
50
  */
45
51
  export interface SettingsRecord {
46
52
  readonly created: boolean;
@@ -52,6 +58,7 @@ export interface SettingsRecord {
52
58
  readonly hooksCreated: boolean;
53
59
  readonly permissionsCreated: boolean;
54
60
  readonly denyCreated: boolean;
61
+ readonly statusLineSha256?: string;
55
62
  }
56
63
  /** What the installer did to `.mcp.json`. `entrySha256` is the canonical hash of the
57
64
  * `halfcycle` server entry as last written; absent when no run has written one. */
@@ -196,8 +203,18 @@ export declare function recordCreatedDir(draft: ManifestDraft, path: string): vo
196
203
  * What this run observed about `.claude/settings.json`, merged into the record by the
197
204
  * carry-forward rules: the three lists are unions, and `created`, `adopted`,
198
205
  * `schemaBefore` and each keys-created flag keep the first value recorded.
206
+ * `statusLineSha256` is replaced by a run that wrote the status line (or found its
207
+ * own there), and kept by one that did not, the rule `recordMcp` applies to
208
+ * `entrySha256`.
199
209
  */
200
210
  export declare function recordSettings(draft: ManifestDraft, observed: SettingsRecord): void;
211
+ /**
212
+ * This run took the retired deny rules with these hashes out of the settings file
213
+ * (`risky-action-check` AC2): the record stops naming them as added, so no later
214
+ * run or uninstall removes an identical rule the developer adds afterwards. Call it
215
+ * after `recordSettings`, whose union would otherwise carry them forward.
216
+ */
217
+ export declare function recordDenyRetired(draft: ManifestDraft, hashes: readonly string[]): void;
201
218
  /**
202
219
  * What this run observed about `.mcp.json`. The flags keep their first value;
203
220
  * `entrySha256` is replaced by every run that writes the entry, and kept by one that
@@ -1 +1 @@
1
- {"version":3,"file":"install-manifest.d.ts","sourceRoot":"","sources":["../src/install-manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install-manifest.d.ts","sourceRoot":"","sources":["../src/install-manifest.ts"],"names":[],"mappings":"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"}
package/dist/install.d.ts CHANGED
@@ -23,7 +23,7 @@
23
23
  */
24
24
  import { BUNDLE_PIN_REL, MCP_REGISTRATION_REL, MCP_SERVER_KEY, SETTINGS_REL, WRITE_CAPABLE_TOOLS } from '@halfcycle/core';
25
25
  import { lineKey, type ManifestFile } from './install-manifest.js';
26
- import { type ClaudeSettings } from './merge-settings.js';
26
+ import { type ClaudeSettings, type StatusLineSetting } from './merge-settings.js';
27
27
  export type EngagementType = 'self-build' | 'client';
28
28
  export interface BundlePin {
29
29
  version: string;
@@ -209,6 +209,13 @@ export interface InstallOptions {
209
209
  * for the same reason.
210
210
  */
211
211
  home?: string;
212
+ /**
213
+ * The environment the installer runs in, read for `CLAUDE_CONFIG_DIR` alone: the
214
+ * fourth place a person's own status line may be set (`statusLineSetElsewhere`).
215
+ * Defaults to `process.env`; a test names its own so the machine running it does
216
+ * not decide what the test sees.
217
+ */
218
+ env?: NodeJS.ProcessEnv;
212
219
  /**
213
220
  * The account that created the project, for the pin (W-8, #812; E1, #1598). `bin.ts`
214
221
  * supplies it on the CREATE arm only, from `confirmActingIdentity`'s answer; every
@@ -352,9 +359,23 @@ export declare const BUNDLE_ROOT: string;
352
359
  * self-contained `.bundle.mjs` is a valid vendoring source (T-10 AC1).
353
360
  */
354
361
  export declare function resolveVendoredBinary(): string;
362
+ /**
363
+ * The text of the runner's cheap pass before a tool runs
364
+ * (`PRE_FILTER_SHELL_FILENAME`), which the generated wrapper carries.
365
+ *
366
+ * Resolved exactly as the binary is (`resolveVendoredBinary`): beside it in a
367
+ * published package, else in the sibling runner's build. The runner's build
368
+ * writes the two together from the same recogniser, so the pass and the check
369
+ * it stands in front of come from one build. INV-001: this reads the runner's
370
+ * build output as text, as the binary is read; it imports nothing from it.
371
+ */
372
+ export declare function resolvePreFilterShell(): string;
355
373
  export declare const WRITE_ALLOWLIST: readonly string[];
356
374
  /** The committed pin. Its one home is `@halfcycle/core`; re-exported for the uninstaller. */
357
375
  export { BUNDLE_PIN_REL };
376
+ /** The crew roster. Exported for the monorepo uninstall (`self-build-install` AC8),
377
+ * which must name this one path to check its bytes rather than remove it by path. */
378
+ export declare const CREW_ROSTER_REL = ".halfcycle/crew.json";
358
379
  /**
359
380
  * The three files the installer merges into rather than owns. `SETTINGS_REL` lives
360
381
  * with the hook table in `@halfcycle/core` and is re-exported here, as is
@@ -385,7 +406,36 @@ export interface ClosedWriteSet {
385
406
  readonly gitattributesLines: ReadonlySet<string>;
386
407
  /** Path to the SHA-256 of the bytes this version writes there, for every member outside `.halfcycle/` whose bytes do not depend on the project. */
387
408
  readonly generatedSha256: ReadonlyMap<string, string>;
409
+ /** The canonical hash of every `statusLine` setting the installer writes (`HALFCYCLE_STATUS_LINE`). */
410
+ readonly statusLineSha256: ReadonlySet<string>;
388
411
  }
412
+ /**
413
+ * Deny rules an earlier version generated and this one no longer does. Retiring
414
+ * one means moving it here from `DENY_PATTERNS`, never deleting it, for the same
415
+ * reason as `RETIRED_WRITE_SET_FILES` — so uninstall can still take out what an
416
+ * older version put in. The hook commands' counterpart, `RETIRED_HOOK_COMMANDS`,
417
+ * lives with the hook table in `@halfcycle/core`, because the runner reads it too.
418
+ *
419
+ * **THE SIX HARD REFUSALS, RETIRED WITH THE CHECK THAT REPLACES THEM**
420
+ * (`risky-action-check` AC2, decision 1). Deleting a folder, forcing history, a
421
+ * hard reset and publishing used to be refused outright, so they could never be
422
+ * allowed once. The before-tool check (`PreToolUse`, `HALFCYCLE_HOOK_WIRING`) now
423
+ * asks about each when something is at stake, and refuses it where it cannot ask.
424
+ * The two lists move in one change and ship in one release, so no client gets the
425
+ * retirement without the check; `test/risky-retirement-binding.test.ts` asks the
426
+ * vendored runner about every rule here and fails if any goes unasked.
427
+ *
428
+ * **Three readers, one list.** A re-install takes a rule here out of the settings
429
+ * file only when this install's own record names its hash as added
430
+ * (`retiredRulesThisInstallAdded`, `mergeSettings`); uninstall's closed set
431
+ * recognises it (`closedWriteSet`); and the hook wrapper's fallback for a machine
432
+ * whose Node cannot start the check refuses the same six spellings itself
433
+ * (`generateGuardRunnerWrapper`), written from this list when the wrapper is
434
+ * generated.
435
+ *
436
+ * TYPED OUT, as the bytes earlier versions wrote into client settings files.
437
+ */
438
+ export declare const RETIRED_DENY_PATTERNS: readonly string[];
389
439
  /**
390
440
  * THE CLOSED WRITE SET, derived from the same constants the installer writes with
391
441
  * (`client-uninstall.md`, INV-023's two-key removal).
@@ -474,8 +524,14 @@ export declare function writeOwned(targetAbsPath: string, targetRepoRoot: string
474
524
  * exists because someone assumed a safety net instead of checking one, so this was
475
525
  * checked.
476
526
  *
527
+ * **Three, since the before-tool check** (`risky-action-check` AC2, decision 1).
528
+ * Skipping the project's own checks on a commit or a push, and deleting the shared
529
+ * copy, stay refused outright: nothing Halfcycle can tell the person would make
530
+ * either a good idea to allow once. The other six this list used to hold moved to
531
+ * `RETIRED_DENY_PATTERNS`, where the check asks about them instead.
532
+ *
477
533
  * **What it is NOT.** Matching is a literal prefix on the command string, so these
478
- * nine cover the plain spellings and nothing more: `git -c k=v commit --no-verify`
534
+ * three cover the plain spellings and nothing more: `git -c k=v commit --no-verify`
479
535
  * does not match `Bash(git commit --no-verify:*)` — measured, same probe. This is a
480
536
  * guard against the obvious form of a destructive command, not a semantic block on
481
537
  * the action, and no prose anywhere may promise otherwise.
@@ -535,6 +591,54 @@ export declare function settingsParseRefusal(targetRepo: string, err: unknown):
535
591
  * the developer set after install is theirs and stays.
536
592
  */
537
593
  export declare const SETTINGS_SCHEMA = "https://json.schemastore.org/claude-code-settings.json";
594
+ /**
595
+ * THE STATUS LINE THE INSTALLER WRITES (`builds-paced-to-plan` AC7): the runner's
596
+ * `statusline` verb, through the same wrapper and in the same
597
+ * `bash "$CLAUDE_PROJECT_DIR"/<script> <verb>` form as every hook command
598
+ * (`@halfcycle/core`'s `hookCommand`). The verb saves the share of the usage
599
+ * window Claude Code reports to it, and prints the person's own status line in
600
+ * place of Halfcycle's when their settings name one.
601
+ *
602
+ * `"$CLAUDE_PROJECT_DIR"` AND NOT `${CLAUDE_PROJECT_DIR:-.}`: the spec's fallback
603
+ * form was for a status line command run without that variable, and the capture
604
+ * shows it set for one on both machines (`G-11`, premise 1;
605
+ * `packages/runner/test/fixtures/usage-limit/premises.md`).
606
+ *
607
+ * WRITTEN ONLY WHERE NONE IS SET (`statusLineSetElsewhere`, `mergeSettings`), and
608
+ * recorded by its canonical hash, so uninstall takes it out only while it is still
609
+ * exactly this (`uninstall.ts`, `unmergeSettings`). Changing this value is a
610
+ * retirement: the old value's hash stays in `closedWriteSet`'s `statusLineSha256`.
611
+ */
612
+ export declare const HALFCYCLE_STATUS_LINE: StatusLineSetting;
613
+ /**
614
+ * WHETHER THE PERSON ALREADY HAS A STATUS LINE SOMEWHERE THE INSTALLER DOES NOT WRITE
615
+ * (`builds-paced-to-plan` AC7). Three of the four places the spec names; the fourth,
616
+ * the project's own `.claude/settings.json`, is the file the merge is given, and
617
+ * `mergeSettings` checks it itself:
618
+ *
619
+ * 1. the project's `.claude/settings.local.json`;
620
+ * 2. `~/.claude/settings.json` (`home` stands in for `~`);
621
+ * 3. `$CLAUDE_CONFIG_DIR/settings.json`, only when that variable is set where the
622
+ * installer runs. A leading `~` is the home folder and a relative value is
623
+ * taken from the working folder; symbolic links are followed as the file read
624
+ * follows them, which reads the same file Claude Code would.
625
+ *
626
+ * "SET" IS A `statusLine` KEY, WHATEVER ITS VALUE. And A FILE THAT EXISTS BUT CANNOT
627
+ * BE READ AS A JSON OBJECT COUNTS AS SET: the installer cannot tell whether it names
628
+ * a status line, and writing one over a line the person may have is the direction
629
+ * that hides their own. A missing file is not set.
630
+ *
631
+ * READ ONLY. Nothing here writes, creates or touches any of these files; the
632
+ * installer's only settings write is the project's `.claude/settings.json`.
633
+ *
634
+ * WHAT IT CANNOT SEE: a status line set after install in any of these places, and a
635
+ * `CLAUDE_CONFIG_DIR` folder used only inside Claude Code. The runner's verb covers
636
+ * those at every render by running the person's own line in place of Halfcycle's
637
+ * (AC7, *A person's own status line is never hidden*), except one set later in the
638
+ * project's `settings.local.json`, which Claude Code reads first, so Halfcycle's
639
+ * verb never runs there.
640
+ */
641
+ export declare function statusLineSetElsewhere(targetRepo: string, home?: string, env?: NodeJS.ProcessEnv): boolean;
538
642
  /**
539
643
  * Generate the .claude/settings.json hook entries + permissions for the target
540
644
  * repo.
@@ -559,9 +663,27 @@ export declare const SETTINGS_SCHEMA = "https://json.schemastore.org/claude-code
559
663
  * step that broadens permissions told the operator to keep "the existing deny list"
560
664
  * — which did not exist. Writing it makes the list the step refers to REAL. It does
561
665
  * not make the step's reassurance true, and nothing here may be described as
562
- * protecting anyone: see DENY_PATTERNS for what these nine do and do not cover.
666
+ * protecting anyone: see DENY_PATTERNS for what these three do and do not cover.
563
667
  */
564
668
  export declare function generateSettingsJson(): string;
669
+ /**
670
+ * What the wrapper's fallback says when it stops a command (`risky-action-check`,
671
+ * *User-facing behaviour*, decision 7): why the check is not running and the one
672
+ * thing to do. It ends "Nothing was changed." rather than with the
673
+ * turn-questions-on line, because turning questions on would not let the command
674
+ * through either. The floor is `NODE_FLOOR_MAJOR`, the number the floor check
675
+ * enforces, so the two cannot name different versions.
676
+ */
677
+ export declare const PRE_TOOL_USE_FALLBACK_SENTENCE: string;
678
+ /**
679
+ * The command prefixes the fallback refuses: each `RETIRED_DENY_PATTERNS` rule
680
+ * with its `Bash(` and `:*)` taken off. Derived, so the fallback and the retired
681
+ * list are one list (`risky-action-check` AC2, *The two lists cannot differ*).
682
+ * A rule of any other shape throws: the fallback could not refuse it as written,
683
+ * and generating a wrapper that silently skips one would be the drift this exists
684
+ * to stop.
685
+ */
686
+ export declare function retiredDenyPrefixes(): string[];
565
687
  /**
566
688
  * What a retired generated file's removal found on disk and did about it
567
689
  * (`removeLegacyCiStanza`, `removeRetiredMcpHeadersHelper`).
@@ -786,6 +908,44 @@ export declare const GITATTRIBUTES_HEADER = "# Halfcycle \u2014 generated script
786
908
  * place.
787
909
  */
788
910
  export declare function updatePinnedMethodVersion(repoRoot: string, engagementId: string, version: string): void;
911
+ /**
912
+ * Write `.halfcycle/crew.json` — a serialisation of `CREW_ROSTER` with no
913
+ * transformation (feature `crew-roster-and-dispatch`, phase decision 18). The
914
+ * coordinator reads names from this file rather than from method prose, so the
915
+ * method's dispatch text carries the four dispatch rules and never the names,
916
+ * and a rename is one const in `@halfcycle/events` plus a republish.
917
+ *
918
+ * `crew` holds the roster verbatim, in the roster's declared order — the same
919
+ * envelope shape `scripts/crew-roster-json.mjs` writes for THIS repo's own
920
+ * `docs/phases/crew.json` (T-02), which solves the identical serialisation
921
+ * problem for the tree the graph validator walks. The two files are not one
922
+ * generator: this repo has no `.halfcycle/` directory to write into (it is a
923
+ * client-install artefact), and the mirrored method kit script cannot import a
924
+ * TypeScript const, so each side writes its own copy of the roster into the
925
+ * tree it actually has — but they agree on shape on purpose, so two readers of
926
+ * "a crew.json" learn one convention rather than two.
927
+ *
928
+ * WRITTEN AS AN OWNED PATH, NOT A COLLISION-SAFE ONE — same reasoning as the
929
+ * vendored guard binary above (`writeOwned`'s doc comment). This is OUR
930
+ * artefact under OUR directory: a differing file already at this path is
931
+ * ALMOST CERTAINLY a stale roster from an earlier install, and refusing to replace
932
+ * it would pin a client to whichever crew shipped first — defeating "a rename is
933
+ * one const plus a republish".
934
+ *
935
+ * **It said that differing file IS a stale roster, NOT a developer's own content,
936
+ * and that was asserted as fact when it is a probability.** Walked: a developer's
937
+ * own file seeded at this name is destroyed. The claim is now what the evidence
938
+ * supports — likely ours, not provably ours — and the replacement is REPORTED, so
939
+ * the case the probability misses is visible rather than silent.
940
+ */
941
+ /**
942
+ * The exact bytes `writeCrewRoster` writes: `CREW_ROSTER`, serialised with no
943
+ * transformation under the generated-content banner. ONE HOME for the rendering, so
944
+ * the installer and the monorepo uninstall (`self-build-install` AC8, which must tell
945
+ * the shipped roster apart from an edited one) cannot disagree about what "the shipped
946
+ * roster" is.
947
+ */
948
+ export declare function renderCrewRoster(): string;
789
949
  /**
790
950
  * Read the pinned bundle.json from a target repo and compare its version
791
951
  * against the current bundle version. Returns the installed pin if present.
@@ -936,4 +1096,66 @@ export declare function checkDrift(targetRepoRoot: string): {
936
1096
  * 11. Whether git ignores any of it — read, never changed (`setup-travel-warning`)
937
1097
  */
938
1098
  export declare function install(options: InstallOptions): Promise<InstallResult>;
1099
+ /** The one ignore line `.halfcycle/.gitignore` holds: the runner copy stays out of git.
1100
+ * Exported: the monorepo uninstall (`self-build-install` AC8) removes this path by
1101
+ * name from the same constant. */
1102
+ export declare const SELF_BUILD_GITIGNORE_REL = ".halfcycle/.gitignore";
1103
+ /**
1104
+ * The repo paths the self-build install may write, and the only ones (`self-build-install`
1105
+ * AC4). ONE HOME: the install mode below writes exactly these, and the monorepo
1106
+ * uninstall takes back exactly these, so the two cannot disagree. Every entry sits under
1107
+ * a `WRITE_ALLOWLIST` prefix. The credential is not here because it is not in the repo.
1108
+ */
1109
+ export declare const SELF_BUILD_WRITE_SET: readonly string[];
1110
+ export interface SelfBuildInstallOptions {
1111
+ targetRepo: string;
1112
+ engagementId: string;
1113
+ /** The project credential this run holds. */
1114
+ credential: DeviceCredential;
1115
+ /**
1116
+ * True when the credential was minted by this run's join, so it goes to the store.
1117
+ * False when it was read from the store, which then stays as it is.
1118
+ */
1119
+ freshlyMinted: boolean;
1120
+ /** Overrides the home folder the store lives under. Tests only. */
1121
+ home?: string;
1122
+ }
1123
+ export interface SelfBuildInstallResult {
1124
+ /** Repo paths written by this run, in the order they were written. */
1125
+ writtenPaths: string[];
1126
+ /** True when this run wrote the credential store. */
1127
+ credentialWritten: boolean;
1128
+ }
1129
+ /**
1130
+ * Connect Halfcycle's own source tree to its existing project (`self-build-install`
1131
+ * AC4–AC6). A SEPARATE FUNCTION, not a mode flag on `install()`, so no ordinary install
1132
+ * can drift into this narrow set and no self-build can drift into the wide one.
1133
+ *
1134
+ * WRITES ONLY WHAT IS MISSING, AND ONLY `SELF_BUILD_WRITE_SET`. Each repo path is
1135
+ * written only when it is absent (for `.mcp.json`: absent, or present without the
1136
+ * Halfcycle entry, which is then added beside the repo's own servers). A file already
1137
+ * there is never replaced, including a `crew.json` whose bytes differ from the shipped
1138
+ * roster and a runner copy from an older release.
1139
+ *
1140
+ * THE CREDENTIAL FIRST, THE PIN LAST. A run stopped part-way leaves no pin, so the next
1141
+ * run joins again and completes; a second mint for the owner is additive. The store is
1142
+ * written only for a credential this run's join minted. One read from the store is
1143
+ * left as it is. Writing it only "when missing" would be wrong here: a join runs only
1144
+ * when the store's credential was absent or refused, and keeping a refused credential
1145
+ * over a fresh one would leave the tree unable to connect, with re-running unable to
1146
+ * repair it.
1147
+ *
1148
+ * WHAT IT NEVER CALLS, by the symbol `install()` calls: `copyManifestCommands`;
1149
+ * `mergeSettings` or any write of `.claude/settings.json`; the loop over
1150
+ * `hookScriptsThisVersionWrites`; `removeLegacyCiStanza`; `removeRetiredMcpHeadersHelper`;
1151
+ * `reconcileGitignore`; `reconcileGitattributes`; `writeProjectIdentity`;
1152
+ * `migrateLegacyEnvLocal` (it would strip this repo's own keys from `.env.local`);
1153
+ * `runBootstrapScan`; and the install manifest (`finishManifest`). Each of those writes
1154
+ * a file this repo owns, or a record an ordinary uninstall would act on.
1155
+ *
1156
+ * Every repo write goes through `writeAllowlisted` or `recordOwned`, so the allowlist
1157
+ * holds here as it does for `install()`. The `.mcp.json` text is composed before the
1158
+ * first write, so an unreadable one stops the run with nothing written.
1159
+ */
1160
+ export declare function installSelfBuild(options: SelfBuildInstallOptions): SelfBuildInstallResult;
939
1161
  //# sourceMappingURL=install.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
@@ -65,6 +65,16 @@ export interface ClaudePermissions {
65
65
  ask?: string[];
66
66
  [key: string]: unknown;
67
67
  }
68
+ /**
69
+ * A `statusLine` setting as Claude Code's settings schema records it: a command
70
+ * whose output is the line shown under the prompt. The installer writes one only
71
+ * where the person has none (`builds-paced-to-plan` AC7, `install.ts`'s
72
+ * `HALFCYCLE_STATUS_LINE`).
73
+ */
74
+ export interface StatusLineSetting {
75
+ type: 'command';
76
+ command: string;
77
+ }
68
78
  /** The subset of `.claude/settings.json` this merge reasons about. */
69
79
  export interface ClaudeSettings {
70
80
  $schema?: string;
@@ -101,7 +111,8 @@ export declare function withoutHalfcycleCommands<E extends {
101
111
  hooks: readonly unknown[];
102
112
  }>(entry: E, halfcycleCommands: ReadonlySet<string>): E | null;
103
113
  /**
104
- * Merge Halfcycle's generated hook entries into an existing settings object.
114
+ * Merge Halfcycle's generated hook entries into an existing settings object, and
115
+ * add Halfcycle's status line where the person has none.
105
116
  *
106
117
  * @param existing the developer's parsed `.claude/settings.json` (may be `{}`).
107
118
  * @param generated Halfcycle's fresh settings object (from `generateSettingsJson`).
@@ -110,6 +121,18 @@ export declare function withoutHalfcycleCommands<E extends {
110
121
  * entries followed by exactly the Halfcycle entries `generated` carries
111
122
  * for it — one for most events, two for `SessionStart` since T-10, and
112
123
  * whatever a later change makes it without this function changing.
124
+ * @param retiredOurs the retired deny rules this install's own record names as
125
+ * added by Halfcycle (`retiredRulesThisInstallAdded`, install.ts). Each is
126
+ * taken out of the developer's deny list once; see `mergePermissions`.
127
+ * Required, so no caller can forget the retirement by leaving it out.
128
+ * @param statusLine the status line to add (`builds-paced-to-plan` AC7), given
129
+ * only when the caller found none set in any of the person's OTHER
130
+ * settings files (`install.ts`, `statusLineSetElsewhere`). It is added
131
+ * only when `existing` has no `statusLine` key either; a `statusLine` the
132
+ * file already holds, ours or the person's, is kept exactly as it is, by
133
+ * the same shallow copy that keeps every other key of theirs. Leaving it
134
+ * out writes none, which is the safe direction: this merge never adds a
135
+ * status line nobody asked it to.
113
136
  */
114
- export declare function mergeSettings(existing: ClaudeSettings, generated: ClaudeSettings): ClaudeSettings;
137
+ export declare function mergeSettings(existing: ClaudeSettings, generated: ClaudeSettings, retiredOurs: readonly string[], statusLine?: StatusLineSetting): ClaudeSettings;
115
138
  //# sourceMappingURL=merge-settings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"merge-settings.d.ts","sourceRoot":"","sources":["../src/merge-settings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAIH,yEAAyE;AACzE,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,6DAA6D;AAC7D,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,sEAAsE;AACtE,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACpC,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO,CAIjG;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,SAAS,OAAO,EAAE,CAAA;CAAE,EAAE,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO,CAEtH;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,SAAS,OAAO,EAAE,CAAA;CAAE,EAC9E,KAAK,EAAE,CAAC,EACR,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,GACrC,CAAC,GAAG,IAAI,CAIV;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,GAAG,cAAc,CA0CjG"}
1
+ {"version":3,"file":"merge-settings.d.ts","sourceRoot":"","sources":["../src/merge-settings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAIH,yEAAyE;AACzE,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,6DAA6D;AAC7D,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,sEAAsE;AACtE,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACpC,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO,CAIjG;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,SAAS,OAAO,EAAE,CAAA;CAAE,EAAE,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO,CAEtH;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,SAAS,OAAO,EAAE,CAAA;CAAE,EAC9E,KAAK,EAAE,CAAC,EACR,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,GACrC,CAAC,GAAG,IAAI,CAIV;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,cAAc,EACzB,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,UAAU,CAAC,EAAE,iBAAiB,GAC7B,cAAc,CAgDhB"}
@@ -213,5 +213,5 @@ export declare function writePhaseStamp(engagementId: string, phase: string | nu
213
213
  * warns without being able to say why.
214
214
  * @throws Error on transport failure or a body that is not the expected shape.
215
215
  */
216
- export declare function openPhase(credential: RepoCredential, phase: string | null, entry: PhaseEntryDecision, home?: string, repoRoot?: string): Promise<OpenedPhase>;
216
+ export declare function openPhase(credential: RepoCredential, phase: string | null, entry: PhaseEntryDecision, home?: string, repoRoot?: string, sortingId?: string): Promise<OpenedPhase>;
217
217
  //# sourceMappingURL=open-phase.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"open-phase.d.ts","sourceRoot":"","sources":["../src/open-phase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"open-phase.d.ts","sourceRoot":"","sources":["../src/open-phase.ts"],"names":[],"mappings":"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"}
package/dist/pace.d.ts ADDED
@@ -0,0 +1,138 @@
1
+ /**
2
+ * `npx halfcycle@latest pace [--start <phase> [--agents <n>]] [--repo <root>]`
3
+ * (Safe, lean, fast · E2, feature `builds-paced-to-plan` AC3).
4
+ *
5
+ * A THIN VERB OVER THE RUNNER'S ONE-LINE ANSWER. Every rule about plans, windows,
6
+ * ceilings and the suggested number lives in `packages/runner/src/pace-verb.ts`
7
+ * (`builds-paced-to-plan` AC3, AC4), which this package may not import (INV-001).
8
+ * This file's one job is: spawn `halfcycle-runner pace […]` as a child process, the
9
+ * way `close-phase` spawns `observe` (`runRunnerChild`, `close-phase.ts`), read its
10
+ * one JSON line (`paceRunResultSchema`), and print the sentences
11
+ * `@halfcycle/events`' `pacing.ts` composes from it — never a sentence of its own,
12
+ * because that is the one home every reader of a pace answer shares.
13
+ *
14
+ * ONE DIFFERENCE FROM `runRunnerChild`. That helper captures the child's standard
15
+ * error and discards it, which is right for `observe` and `time` — a send with
16
+ * nothing for a person to read while it runs. `pace --start` is not: the runner
17
+ * writes its first-read notice (`PACE_FIRST_READ`) to standard error the MOMENT a
18
+ * read of this computer's usage records is due, before that read — which can take
19
+ * minutes on a large records folder — completes. A captured-then-replayed line
20
+ * would print "Reading…" only once the reading was already done. So
21
+ * `runPaceChild` pipes the child's standard error too, but FORWARDS each chunk
22
+ * to this process's own the moment it arrives (`prove.ts`'s own command spawn
23
+ * forwards a person's command output the same way), rather than buffering it
24
+ * for a reply built once the child exits. The same live forwarding carries the
25
+ * runner's own usage line or `PACE_AGENTS_TOO_MANY` line straight to the person
26
+ * when the child exits 2 — this file adds nothing on top of either.
27
+ *
28
+ * NOT-PACED IS NOT A FAILURE (`best-effort-not-guarantees`, the owner 2026-10-28):
29
+ * the runner itself answers `not-paced` with exit 0, and this verb keeps that —
30
+ * one plain line naming why pacing is not shown right now, exit 0, never a
31
+ * developer-facing stack of internal words.
32
+ *
33
+ * `pace` ALONE HAS NO "AGENTS ALREADY WORKING" FIGURE TO READ. The runner's
34
+ * one-line answer for a bare `pace` carries `allowedNow` (the pace's allowance
35
+ * less the agents this computer has already seen start, clamped to zero) and
36
+ * `number` (the build's stored target, unadjusted by the pace). Neither is the
37
+ * raw ceiling S1 and S2 are written for (`decision.allowance`, internal to the
38
+ * runner and never serialised). `allowedNow` equals that ceiling exactly when no
39
+ * agent is yet running — the common case, checking before a start — and
40
+ * understates it otherwise; this file uses it as S1's `k` rather than invent a
41
+ * second figure the schema does not carry, and S2's `paceS2Of` already omits its
42
+ * second sentence at `k === 0` rather than assert a wrong count of agents
43
+ * "already working" — so this never prints something false, only sometimes less
44
+ * than the whole truth. `pace --start`'s P1–P7 carry no such gap: `suggestion`
45
+ * is built for exactly that answer and this file reads it whole.
46
+ *
47
+ * SHIPS TO CLIENT DISK inside the CLI (INV-001: Node builtins, `@halfcycle/core`,
48
+ * `@halfcycle/events` only — no network of its own; the one request pacing makes
49
+ * is the runner's, over the credential this verb reads and hands the child's
50
+ * environment). Every string here is a sentence a person reads in their own
51
+ * terminal, so none names an internal register, route or setting; no comment
52
+ * sits beside an object member.
53
+ */
54
+ import type { RepoCredential } from './open-phase.js';
55
+ /** The usage line, printed for an extra argument or an unknown flag. */
56
+ export declare const PACE_USAGE = "npx halfcycle@latest pace [--start <phase> [--agents <n>]] [--repo <root>]";
57
+ /** What `--start <phase> [--agents <n>]` asked for, or `null` for a bare `pace`. */
58
+ export interface PaceStart {
59
+ readonly phase: string;
60
+ /** The raw token after `--agents`, forwarded to the runner unparsed; it alone
61
+ * owns the rule for what a valid count is (`builds-paced-to-plan` AC6). */
62
+ readonly agents: string | null;
63
+ }
64
+ /**
65
+ * What the arguments after `pace` came to. At most one `--start <phase>`, at most
66
+ * one `--agents <n>` (only alongside `--start`), and at most one `--repo <root>`;
67
+ * anything else is usage.
68
+ */
69
+ export type PaceArgs = {
70
+ ok: true;
71
+ start: PaceStart | null;
72
+ repoRoot: string | undefined;
73
+ } | {
74
+ ok: false;
75
+ };
76
+ export declare function parsePaceArgs(argv: readonly string[]): PaceArgs;
77
+ /**
78
+ * The pace child's own deadline. The runner's first read of this computer's usage
79
+ * records can wait up to ten minutes for a scan already running
80
+ * (`pace-verb.ts`'s `PACE_FIRST_READ_WAIT_MS`, which this package cannot import,
81
+ * INV-001) before it answers either way, and a first scan it runs itself can take
82
+ * about as long on a large records folder — so this spawn's own deadline is set
83
+ * well past that, unlike `close-phase.ts`'s `OBSERVE_CHILD_DEADLINE_MS`, which
84
+ * times a send with no such wait.
85
+ */
86
+ export declare const PACE_CHILD_DEADLINE_MS: number;
87
+ /** What the pace child printed and how it exited. */
88
+ export interface PaceChildOutput {
89
+ readonly code: number;
90
+ readonly stdout: string;
91
+ }
92
+ /** The pieces `runPaceChild` reaches outside itself through; replaced in tests. */
93
+ export interface PaceChildDeps {
94
+ /** Where the child's standard error is forwarded, live, as it arrives. */
95
+ readonly stderr?: {
96
+ write: (chunk: Buffer) => void;
97
+ };
98
+ }
99
+ /**
100
+ * Spawn `halfcycle-runner pace […]`, the way `close-phase` spawns `observe`
101
+ * (same credential environment, same working directory), reading standard output
102
+ * whole (it carries exactly the one line this file parses) while forwarding
103
+ * standard error LIVE, chunk by chunk, as the child writes it — the way
104
+ * `packages/runner/src/prove.ts`'s own command spawn forwards a person's command
105
+ * output, and for the same reason: the module docblock's first-read notice is
106
+ * written before a read that can take minutes, and a captured-then-replayed line
107
+ * would arrive only once the child had already exited. Never throws: a binary
108
+ * that cannot be found, or a child that cannot start, reads as exit 1 with no
109
+ * output — the same shape an answer with no parsable line reads as.
110
+ */
111
+ export declare function runPaceChild(binary: string | Error, credential: RepoCredential, repoRoot: string, args: readonly string[], deps?: PaceChildDeps): Promise<PaceChildOutput>;
112
+ /** This project is not signed in on this machine — the one line every such refusal prints. */
113
+ export declare const PACE_NOT_CONNECTED_LINE = "halfcycle pace: this project is not signed in on this computer. Run \"npx halfcycle\" in the project folder to sign in.";
114
+ /** The pieces `runPace` reaches outside itself through; replaced in tests. */
115
+ export interface PaceDeps {
116
+ readonly readCredential: (repoRoot: string) => RepoCredential;
117
+ readonly spawnPace: (credential: RepoCredential, repoRoot: string, args: readonly string[]) => Promise<PaceChildOutput>;
118
+ readonly now: () => Date;
119
+ }
120
+ /** What `pace` prints and the exit code it ends with. */
121
+ export interface PaceRun {
122
+ readonly stdout: string;
123
+ readonly stderr: string;
124
+ readonly exitCode: number;
125
+ }
126
+ /**
127
+ * The whole verb. A phase that is not a phase name is usage and exit 1, before
128
+ * anything is read. This machine's credential is read once, handed to the
129
+ * spawned child's environment, and never read twice; a project not signed in on
130
+ * this machine prints `PACE_NOT_CONNECTED_LINE` and exits 1, nothing spawned. The
131
+ * runner's own usage or too-many-agents refusal (exit 2, its line already on the
132
+ * inherited stream) is passed on as-is. A `not-paced` answer, or one with no
133
+ * line this file can parse, is this build's best effort failing softly: one line,
134
+ * exit 0. Otherwise: P1–P7 (`--start`) or the allowed-now line, plus S1 or S2
135
+ * when the answer is slowing or holding (module docblock on their one gap).
136
+ */
137
+ export declare function runPace(repoRoot: string, start: PaceStart | null, deps: PaceDeps): Promise<PaceRun>;
138
+ //# sourceMappingURL=pace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pace.d.ts","sourceRoot":"","sources":["../src/pace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAgBH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,wEAAwE;AACxE,eAAO,MAAM,UAAU,+EAA+E,CAAC;AAEvG,oFAAoF;AACpF,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;gFAC4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAA;CAAE,CAAC;AAE3G,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,QAAQ,CAwC/D;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,QAAiB,CAAC;AAErD,qDAAqD;AACrD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,mFAAmF;AACnF,MAAM,WAAW,aAAa;IAC5B,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;CACtD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,GAAG,KAAK,EACtB,UAAU,EAAE,cAAc,EAC1B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,eAAe,CAAC,CA+B1B;AAkBD,8FAA8F;AAC9F,eAAO,MAAM,uBAAuB,4HAAmF,CAAC;AASxH,8EAA8E;AAC9E,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,CAAC;IAC9D,QAAQ,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IACxH,QAAQ,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,yDAAyD;AACzD,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAoCzG"}