@promptbook/color 0.114.0-47 → 0.114.0-49

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 (44) hide show
  1. package/README.md +44 -25
  2. package/esm/index.es.js +1 -1
  3. package/esm/src/cli/cli-commands/coder/agentCliOptions.d.ts +5 -0
  4. package/esm/src/cli/cli-commands/coder/coderAgentRole.d.ts +5 -0
  5. package/esm/src/cli/cli-commands/coder/coderReferencedArtifacts.d.ts +2 -2
  6. package/esm/src/cli/cli-commands/coder/ensureCoderPackageJsonFile.d.ts +3 -2
  7. package/esm/src/cli/cli-commands/coder/ensureCoderPackageJsonFile.test.d.ts +1 -0
  8. package/esm/src/cli/cli-commands/coder/findLegacyCoderCheckCallers.d.ts +5 -0
  9. package/esm/src/cli/cli-commands/coder/initializeCoderProjectConfiguration.d.ts +6 -0
  10. package/esm/src/cli/cli-commands/coder/mergeStringRecordJsonFile.d.ts +5 -3
  11. package/esm/src/cli/cli-commands/coder/planning/runPlanningSession.d.ts +3 -0
  12. package/esm/src/cli/cli-commands/coder/prepareCoderPackageJsonScripts.d.ts +12 -0
  13. package/esm/src/cli/cli-commands/coder.d.ts +1 -1
  14. package/esm/src/cli/cli-commands/common/coderCheckCliOptions.d.ts +21 -0
  15. package/esm/src/cli/cli-commands/common/coderCheckCliOptions.test.d.ts +1 -0
  16. package/esm/src/cli/cli-commands/common/projectCliOptions.d.ts +30 -0
  17. package/esm/src/cli/cli-commands/common/projectCliOptions.test.d.ts +1 -0
  18. package/esm/src/cli/cli-commands/common/promptbook-cli/$checkPromptbookCliInstallations.d.ts +1 -1
  19. package/esm/src/cli/cli-commands/common/promptbook-cli/$ensurePromptbookCliInstallations.d.ts +1 -1
  20. package/esm/src/cli/cli-commands/common/promptbook-cli/$resolvePromptbookCliInstallations.d.ts +1 -1
  21. package/esm/src/cli/cli-commands/common/promptbook-cli/$updatePromptbookCliInstallation.d.ts +1 -1
  22. package/esm/src/version.d.ts +1 -1
  23. package/package.json +2 -2
  24. package/umd/index.umd.js +1 -1
  25. package/umd/src/cli/cli-commands/coder/agentCliOptions.d.ts +5 -0
  26. package/umd/src/cli/cli-commands/coder/coderAgentRole.d.ts +5 -0
  27. package/umd/src/cli/cli-commands/coder/coderReferencedArtifacts.d.ts +2 -2
  28. package/umd/src/cli/cli-commands/coder/ensureCoderPackageJsonFile.d.ts +3 -2
  29. package/umd/src/cli/cli-commands/coder/ensureCoderPackageJsonFile.test.d.ts +1 -0
  30. package/umd/src/cli/cli-commands/coder/findLegacyCoderCheckCallers.d.ts +5 -0
  31. package/umd/src/cli/cli-commands/coder/initializeCoderProjectConfiguration.d.ts +6 -0
  32. package/umd/src/cli/cli-commands/coder/mergeStringRecordJsonFile.d.ts +5 -3
  33. package/umd/src/cli/cli-commands/coder/planning/runPlanningSession.d.ts +3 -0
  34. package/umd/src/cli/cli-commands/coder/prepareCoderPackageJsonScripts.d.ts +12 -0
  35. package/umd/src/cli/cli-commands/coder.d.ts +1 -1
  36. package/umd/src/cli/cli-commands/common/coderCheckCliOptions.d.ts +21 -0
  37. package/umd/src/cli/cli-commands/common/coderCheckCliOptions.test.d.ts +1 -0
  38. package/umd/src/cli/cli-commands/common/projectCliOptions.d.ts +30 -0
  39. package/umd/src/cli/cli-commands/common/projectCliOptions.test.d.ts +1 -0
  40. package/umd/src/cli/cli-commands/common/promptbook-cli/$checkPromptbookCliInstallations.d.ts +1 -1
  41. package/umd/src/cli/cli-commands/common/promptbook-cli/$ensurePromptbookCliInstallations.d.ts +1 -1
  42. package/umd/src/cli/cli-commands/common/promptbook-cli/$resolvePromptbookCliInstallations.d.ts +1 -1
  43. package/umd/src/cli/cli-commands/common/promptbook-cli/$updatePromptbookCliInstallation.d.ts +1 -1
  44. package/umd/src/version.d.ts +1 -1
package/README.md CHANGED
@@ -597,7 +597,7 @@ Promptbook Coder is **not another standalone coding model**. It is an orchestrat
597
597
 
598
598
  - prompt files with explicit statuses like `[ ]`, `[^]`, `[x]`, and `[-]`
599
599
  - automatic selection of the next runnable task, including priority support
600
- - optional shared repo context loaded from a file such as `AGENTS.md`
600
+ - shared project context loaded from `AGENTS.md` by default
601
601
  - automatic `git add`, commit, and push after each successful prompt
602
602
  - dedicated coding-agent Git identity and optional GPG signing
603
603
  - verification and repair flow for work that is done, partial, or broken
@@ -619,7 +619,7 @@ Prompts marked with `[-]` are not ready yet, prompts containing `@@@` are treate
619
619
  #### Features
620
620
 
621
621
  - **Multi-runner execution:** `openai-codex`, `github-copilot`, `cline`, `claude-code`, `opencode`, `gemini`, `qwen-code`
622
- - **Context injection:** `--agent agents/coding/developer.book --context AGENTS.md` or inline extra instructions
622
+ - **Project defaults:** Developer, invocation cwd, and project `AGENTS.md`; `--agent`, `--path`, and `--context` independently override them
623
623
  - **Reasoning control:** `--thinking-level low|medium|high|xhigh` for supported runners
624
624
  - **Unattended or interactive runs:** default auto mode, or `--no-auto` to wait for user confirmation before each prompt
625
625
  - **Git safety:** clean working tree check by default, or `--git-changes ignore` to keep the changes and `--git-changes continue` to resume an interrupted prompt
@@ -639,11 +639,11 @@ npx ts-node ./src/cli/test/ptbk.ts coder generate-boilerplates --template prompt
639
639
 
640
640
  npx ts-node ./src/cli/test/ptbk.ts coder generate-boilerplates --template prompts/templates/agents-server.md
641
641
 
642
- npx ts-node ./src/cli/test/ptbk.ts coder run --harness github-copilot --model gpt-5.4 --thinking-level xhigh --agent agents/coding/developer.book --context AGENTS.md
642
+ npx ts-node ./src/cli/test/ptbk.ts coder run --harness github-copilot --model gpt-5.4 --thinking-level xhigh --agent agents/coding/developer.book
643
643
 
644
- npx ts-node ./src/cli/test/ptbk.ts coder run --harness github-copilot --model gpt-5.4 --thinking-level xhigh --agent agents/coding/developer.book --context AGENTS.md --auto-push
644
+ npx ts-node ./src/cli/test/ptbk.ts coder run --harness github-copilot --model gpt-5.4 --thinking-level xhigh --agent agents/coding/developer.book --auto-push
645
645
 
646
- npx ts-node ./src/cli/test/ptbk.ts coder run --harness github-copilot --model gpt-5.4 --thinking-level xhigh --agent agents/coding/developer.book --context AGENTS.md --git-changes ignore
646
+ npx ts-node ./src/cli/test/ptbk.ts coder run --harness github-copilot --model gpt-5.4 --thinking-level xhigh --agent agents/coding/developer.book --git-changes ignore
647
647
 
648
648
  npx ts-node ./src/cli/test/ptbk.ts coder find-refactor-candidates
649
649
 
@@ -665,11 +665,11 @@ ptbk coder generate-boilerplates
665
665
 
666
666
  ptbk coder generate-boilerplates --template prompts/templates/common.md
667
667
 
668
- ptbk coder run --harness github-copilot --model gpt-5.4 --thinking-level xhigh --agent agents/coding/developer.book --context AGENTS.md --test npm run test
668
+ ptbk coder run --harness github-copilot --model gpt-5.4 --thinking-level xhigh --agent agents/coding/developer.book --check "npm run check"
669
669
 
670
- ptbk coder run --harness github-copilot --model gpt-5.4 --thinking-level xhigh --agent agents/coding/developer.book --context AGENTS.md --auto-push
670
+ ptbk coder run --harness github-copilot --model gpt-5.4 --thinking-level xhigh --agent agents/coding/developer.book --auto-push
671
671
 
672
- ptbk coder run --harness github-copilot --model gpt-5.4 --thinking-level xhigh --agent agents/coding/developer.book --context AGENTS.md --test npm run test --git-changes ignore
672
+ ptbk coder run --harness github-copilot --model gpt-5.4 --thinking-level xhigh --agent agents/coding/developer.book --check "npm run check" --git-changes ignore
673
673
 
674
674
  ptbk coder find-refactor-candidates
675
675
 
@@ -686,33 +686,52 @@ ptbk coder verify
686
686
  | ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | ------ | ---- | ----- | ------------------------------------------------------------------------ |
687
687
  | `ptbk coder init` | Creates `prompts/`, `prompts/done/`, the project-generic template files materialized in `prompts/templates/` (currently `common.md`), and a starter `AGENTS.md`; ensures `.env` contains `CODING_AGENT_GIT_NAME`, `CODING_AGENT_GIT_EMAIL`, and `CODING_AGENT_GIT_SIGNING_KEY`; adds helper coder scripts to `package.json`; ensures `.gitignore` contains `/.promptbook`; and configures `.vscode/settings.json` to save pasted prompt images into `prompts/screenshots/`. |
688
688
  | `ptbk coder generate-boilerplates` | Creates new prompt markdown files with fresh emoji tags so you can quickly fill in coding tasks; `--template` accepts either a built-in alias or a markdown file path relative to the project root. |
689
- | `ptbk coder run` | Picks the next ready prompt, can run tests before coding to stop or repair pre-existing failures, appends optional context, runs it through the selected coding agent, can optionally verify each attempt with a shell test command and feed failing output back for retries, then marks success or failure, commits the result, and pushes only when `--auto-push` is enabled. |
689
+ | `ptbk coder run` | Picks the next ready prompt, can run project checks before coding to stop or repair pre-existing failures, appends optional context, runs it through the selected coding agent, can optionally check each attempt with the project command and feed failing output back for retries, then marks success or failure, commits the result, and pushes only when `--auto-push` is enabled. |
690
690
  | `ptbk coder find-refactor-candidates` | Scans the repository for oversized or overpacked files and writes prompt files for likely refactors; `--level <xlow | low | medium | high | xhigh | extreme>` ranges from a very benevolent scan to a very aggressive sweep. |
691
691
  | `ptbk coder verify` | Walks through completed prompts, archives truly finished work, and adds follow-up repair prompts for unfinished results. |
692
692
 
693
693
  #### Most useful `ptbk coder run` flags
694
694
 
695
- | Flag | Purpose |
696
- | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
697
- | `--harness <name>` | Selects the coding harness. |
698
- | `--model <model>` | Chooses the runner model; required for `openai-codex`, `gemini` and `qwen-code`, optional for `github-copilot`. |
699
- | `--context <text-or-file>` | Appends extra instructions inline or from a file like `AGENTS.md`. |
700
- | `--test <command>` | Runs a verification command after each prompt attempt and feeds failing output back for retries. |
701
- | `--test-before <mode>` | Runs tests before coding: `no` (default), `yes-and-fail` (stop with results), or `yes-and-fix` (create one repair prompt first); defaults to `npm test` when enabled without `--test`. |
702
- | `--thinking-level <level>` | Sets reasoning effort for supported runners. |
703
- | `--no-auto` | Waits for user confirmation before each prompt instead of running automatically through the queue. |
704
- | `--git-changes <mode>` | Decides what happens with a dirty working tree: `fail` (default), `ignore` to keep the changes, or `continue` to resume the single interrupted `[^]` prompt with them. |
705
- | `--priority <n>` | Runs only prompts at or above the given priority. |
706
- | `--dry-run` | Prints which prompts are ready instead of executing them. |
707
- | `--allow-credits` | Lets OpenAI Codex spend credits when required. |
708
- | `--auto-push` | Pushes each successful coding-agent commit to the configured remote. |
709
- | `--auto-migrate` | Runs testing-server database migrations after each successful prompt. |
695
+ A **check** is the project's aggregate validation: tests, linting, typechecking, builds, generated-code consistency,
696
+ and other quality checks. `ptbk init` and `ptbk coder init` preserve an existing `scripts.check`, or compose available
697
+ validation scripts and report their scope. Configure the failing setup placeholder if the project has none.
698
+
699
+ ```bash
700
+ ptbk coder run --harness openai-codex --check "npm run check" --check-before yes-and-fix
701
+ ptbk coder run --harness openai-codex --check "npm run lint && npm run build && npm test"
702
+ ```
703
+
704
+ The default preflight mode remains `no`. Enabled preflight uses `npm run check` when no command is supplied;
705
+ post-prompt verification remains opt-in. Initial checks and repairs use the same command and actual process result.
706
+ Replace retired `--test` and `--test-before` with `--check` and `--check-before`. Init migrates recognized generated
707
+ scripts while preserving custom validation. For conflicts or custom callers, it reports the exact entries/files to
708
+ review: preserve the required validation in `check`, update references, then remove the unused legacy entry.
709
+ Automation that invokes `npm run test-for-ptbk-coder` must switch to `npm run check`. Restart an already-running
710
+ Coder invocation with the new flags to release its captured legacy command; initialization creates no compatibility alias.
711
+
712
+ | Flag | Purpose |
713
+ | -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
714
+ | `--harness <name>` | Selects the coding harness. |
715
+ | `--agent <book>` | Selects the primary Book; defaults to the selected project's `agents/developer.book`. |
716
+ | `--path <directory>` | Selects the project; defaults to invocation cwd. Relative paths start there, not at the CLI installation or enclosing Git root. |
717
+ | `--model <model>` | Chooses the runner model; required for `openai-codex`, `gemini` and `qwen-code`, optional for `github-copilot`. |
718
+ | `--context <text-or-file>` | Replaces the default project `AGENTS.md` with inline instructions or a project-relative file; an empty value disables context. |
719
+ | `--check <command>` | Runs a verification command after each prompt attempt and feeds failing output back for retries. |
720
+ | `--check-before <mode>` | Runs project checks before coding: `no` (default), `yes-and-fail` (stop with results), or `yes-and-fix` (create one repair prompt first); defaults to `npm run check` when enabled without `--check`. |
721
+ | `--thinking-level <level>` | Sets reasoning effort for supported runners. |
722
+ | `--no-auto` | Waits for user confirmation before each prompt instead of running automatically through the queue. |
723
+ | `--git-changes <mode>` | Decides what happens with a dirty working tree: `fail` (default), `ignore` to keep the changes, or `continue` to resume the single interrupted `[^]` prompt with them. |
724
+ | `--priority <n>` | Runs only prompts at or above the given priority. |
725
+ | `--dry-run` | Prints which prompts are ready instead of executing them. |
726
+ | `--allow-credits` | Lets OpenAI Codex spend credits when required. |
727
+ | `--auto-push` | Pushes each successful coding-agent commit to the configured remote. |
728
+ | `--auto-migrate` | Runs testing-server database migrations after each successful prompt. |
710
729
 
711
730
  #### Typical usage pattern
712
731
 
713
732
  1. Initialize once with `ptbk coder init`.
714
733
  2. Customize `prompts/templates/*.md` if needed, then create or write prompt files in `prompts/`.
715
- 3. Customize the starter `AGENTS.md` with repository-specific instructions, then pass `--agent agents/coding/developer.book --context AGENTS.md`.
734
+ 3. Customize `agents/developer.book` and `AGENTS.md`; the runner selects both automatically. Use `--path` for another project or `--agent` and `--context` for explicit overrides.
716
735
  4. Run unattended batches by default, or pass `--no-auto` to confirm each prompt interactively.
717
736
  5. Finish with `ptbk coder verify` so resolved prompts are archived and broken ones get explicit repair follow-ups.
718
737
 
package/esm/index.es.js CHANGED
@@ -14,7 +14,7 @@ const BOOK_LANGUAGE_VERSION = '2.0.0';
14
14
  * @generated
15
15
  * @see https://github.com/webgptorg/promptbook
16
16
  */
17
- const PROMPTBOOK_ENGINE_VERSION = '0.114.0-47';
17
+ const PROMPTBOOK_ENGINE_VERSION = '0.114.0-49';
18
18
  /**
19
19
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
20
20
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -20,3 +20,8 @@ export declare const CODER_AGENT_OPTION_DESCRIPTION = "Book agent providing pers
20
20
  * @private internal utility of `ptbk coder`
21
21
  */
22
22
  export declare function addCoderAgentOption(command: Program, defaultRole?: CoderAgentRole): void;
23
+ /**
24
+ * Registers the shared optional persona and context for single-agent execution or authoring.
25
+ * @private internal CLI registration helper
26
+ */
27
+ export declare function addCoderExecutionOptions(command: Program): void;
@@ -14,3 +14,8 @@ export declare const CODER_DEFAULT_AGENT_BOOK_PATHS: {
14
14
  * @private internal type of `ptbk coder`
15
15
  */
16
16
  export type CoderAgentRole = keyof typeof CODER_DEFAULT_AGENT_BOOK_PATHS;
17
+ /**
18
+ * Shared persona for optional single-agent execution and authoring; capabilities belong to the command.
19
+ * @private internal constant of project CLI commands
20
+ */
21
+ export declare const DEFAULT_CODER_AGENT_ROLE: CoderAgentRole;
@@ -25,9 +25,9 @@ export type EnsuredCoderReferencedArtifact = {
25
25
  readonly diagnostic?: string;
26
26
  };
27
27
  /**
28
- * Initializes artifacts referenced by freshly added scripts. Default Books are ensured separately.
28
+ * Initializes essential context and artifacts referenced by freshly added scripts. Books are ensured separately.
29
29
  *
30
- * For artifacts other than role Books, an existing project script does not cause default files to be created.
30
+ * AGENTS.md is essential even when every script already exists or uses implicit defaults.
31
31
  *
32
32
  * @private function of `initializeCoderProjectConfiguration`
33
33
  */
@@ -1,9 +1,10 @@
1
1
  import type { MergedStringRecordJsonFile } from './mergeStringRecordJsonFile';
2
+ import { type PreparedCoderPackageJsonScripts } from './prepareCoderPackageJsonScripts';
2
3
  /**
3
4
  * Ensures `package.json` contains the standalone Promptbook coder helper scripts.
4
5
  *
5
- * Scripts which the project already defines are kept as they are, only missing ones are added.
6
+ * Project definitions are preserved; missing scripts and narrowly recognized generated migrations are applied.
6
7
  *
7
8
  * @private function of `initializeCoderProjectConfiguration`
8
9
  */
9
- export declare function ensureCoderPackageJsonFile(projectPath: string): Promise<MergedStringRecordJsonFile>;
10
+ export declare function ensureCoderPackageJsonFile(projectPath: string): Promise<MergedStringRecordJsonFile & Omit<PreparedCoderPackageJsonScripts, 'scripts'>>;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Finds external project callers conservatively; it never rewrites their shell expressions.
3
+ * @private migration safety check for the Coder initializer
4
+ */
5
+ export declare function findLegacyCoderCheckCallers(projectPath: string, legacyNames: ReadonlyArray<string>): Promise<Readonly<Record<string, ReadonlyArray<string>>>>;
@@ -20,6 +20,12 @@ export type CoderInitializationSummary = {
20
20
  readonly addedPackageJsonScriptNames: ReadonlyArray<string>;
21
21
  readonly referencedArtifactStatuses: ReadonlyArray<EnsuredCoderReferencedArtifact>;
22
22
  readonly initializedEnvVariableNames: ReadonlyArray<string>;
23
+ /** Actual preserved or generated scope of the project check. */
24
+ readonly checkScriptSummary: string;
25
+ /** Manual steps needed for custom or conflicting legacy entries. */
26
+ readonly migrationInstructions: ReadonlyArray<string>;
27
+ /** Whether validation is configured rather than still requiring setup. */
28
+ readonly isCheckConfigured: boolean;
23
29
  };
24
30
  /**
25
31
  * Creates or updates all coder configuration artifacts required in the current project.
@@ -8,6 +8,8 @@ type MergeStringRecordJsonFileOptions = {
8
8
  readonly fieldPath: string;
9
9
  readonly nextEntries: Readonly<Record<string, string>>;
10
10
  readonly ensureParentDirectoryPath?: string;
11
+ /** Optional narrowly scoped migration of existing entries before missing defaults are added. */
12
+ readonly transformExistingEntries?: (entries: Readonly<Record<string, string>>) => Readonly<Record<string, string>> | Promise<Readonly<Record<string, string>>>;
11
13
  };
12
14
  /**
13
15
  * Result of one additive string-record merge into a JSON file.
@@ -27,10 +29,10 @@ export type MergedStringRecordJsonFile = {
27
29
  /**
28
30
  * Ensures one JSON object field contains the provided string-record entries.
29
31
  *
30
- * Entries which the project already defines are **never** overridden - only missing keys are added,
31
- * so hand-tuned scripts and settings survive every repeated `ptbk coder init`.
32
+ * Entries are additive unless a caller explicitly supplies a scoped migration callback.
33
+ * Hand-tuned scripts and settings survive repeated `ptbk coder init`; migrations recognize generated entries only.
32
34
  *
33
35
  * @private function of `initializeCoderProjectConfiguration`
34
36
  */
35
- export declare function mergeStringRecordJsonFile({ projectPath, relativeFilePath, fieldPath, nextEntries, ensureParentDirectoryPath, }: MergeStringRecordJsonFileOptions): Promise<MergedStringRecordJsonFile>;
37
+ export declare function mergeStringRecordJsonFile({ projectPath, relativeFilePath, fieldPath, nextEntries, ensureParentDirectoryPath, transformExistingEntries, }: MergeStringRecordJsonFileOptions): Promise<MergedStringRecordJsonFile>;
36
38
  export {};
@@ -1,3 +1,4 @@
1
+ import { type ResolvedCoderProjectContext } from '../../../../../scripts/run-codex-prompts/common/resolveCoderProjectContext';
1
2
  import type { NormalizedPromptRunnerSelectionCliOptions } from '../../common/promptRunnerCliOptions';
2
3
  import { runPlanningHarness } from './runPlanningHarness';
3
4
  /**
@@ -16,6 +17,8 @@ export type PlanningSessionIo = {
16
17
  export declare function runPlanningSession(options: NormalizedPromptRunnerSelectionCliOptions & {
17
18
  readonly projectPath: string;
18
19
  readonly agent?: string;
20
+ readonly context?: string;
21
+ readonly projectContext?: ResolvedCoderProjectContext;
19
22
  readonly template?: string;
20
23
  readonly preexistingChangedPaths?: ReadonlySet<string>;
21
24
  }, io: PlanningSessionIo, harness?: typeof runPlanningHarness): Promise<ReadonlyMap<string, string>>;
@@ -0,0 +1,12 @@
1
+ /** Result of preparing project-owned checks and migrating recognized generated callers. @private internal initializer result */
2
+ export type PreparedCoderPackageJsonScripts = {
3
+ readonly scripts: Readonly<Record<string, string>>;
4
+ readonly checkScriptSummary: string;
5
+ readonly migrationInstructions: ReadonlyArray<string>;
6
+ readonly isCheckConfigured: boolean;
7
+ };
8
+ /**
9
+ * Preserves project scripts, creates one canonical check, and migrates only exact generated caller forms.
10
+ * @private shared package-script preparation for Coder initialization
11
+ */
12
+ export declare function prepareCoderPackageJsonScripts(existing: Readonly<Record<string, string>>, externalCallers?: Readonly<Record<string, ReadonlyArray<string>>>): PreparedCoderPackageJsonScripts;
@@ -6,7 +6,7 @@ import type { $side_effect } from '../../utils/organization/$side_effect';
6
6
  * The coder command provides utilities for automated coding:
7
7
  * - init: Initialize coder configuration in current project
8
8
  * - add: Add one ready-to-run prompt file to the queue
9
- * - plan: Discuss features with Planner and author reviewed PRDs
9
+ * - plan: Discuss features with Developer and author reviewed PRDs
10
10
  * - generate-boilerplates: Generate prompt boilerplate files
11
11
  * - find-refactor-candidates: Find files that need refactoring
12
12
  * - list: List ready prompts in priority order without running them
@@ -0,0 +1,21 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * Retired aggregate option spellings and their canonical replacements, used only for migration diagnostics.
4
+ * @private shared CLI migration definitions for Coder execution
5
+ */
6
+ export declare const LEGACY_CODER_CHECK_OPTIONS: readonly [readonly ["--test", "--check"], readonly ["--test-before", "--check-before"]];
7
+ /**
8
+ * Registers the shared project check command and rejects retired aggregate-test spellings.
9
+ * @private shared CLI registration for Coder execution
10
+ */
11
+ export declare function addCoderCheckOptions(command: Command, isCheckBeforeSupported: boolean): void;
12
+ /**
13
+ * Builds the same actionable migration diagnostic for registered and direct-script entrypoints.
14
+ * @private shared CLI diagnostic for Coder execution
15
+ */
16
+ export declare function formatLegacyCoderCheckOptionError(legacyFlag: string, replacementFlag: string): string;
17
+ /**
18
+ * Normalizes shell command tokens without parsing a quoted command again or losing spaced argument boundaries.
19
+ * @private shared command normalization for Coder execution
20
+ */
21
+ export declare function normalizeCheckCommandOption(value: string | ReadonlyArray<string> | undefined): string | undefined;
@@ -0,0 +1,30 @@
1
+ import type { Command } from 'commander';
2
+ /**
3
+ * Optional project selection shared by workspace actions, independently of Book and harness selection.
4
+ * @private internal CLI options
5
+ */
6
+ export type ProjectCliOptions = {
7
+ readonly path?: string;
8
+ };
9
+ /**
10
+ * Registers project selection without capturing a directory during command registration.
11
+ * @private internal CLI registration helper
12
+ */
13
+ export declare function addProjectPathOption(command: Command): void;
14
+ /**
15
+ * Registers additional context independently of primary-agent selection.
16
+ * @private internal CLI registration helper
17
+ */
18
+ export declare function addProjectContextOption(command: Command): void;
19
+ /**
20
+ * Captures an invocation's directory at action time. No process-global state is changed.
21
+ * @private internal CLI normalization helper
22
+ */
23
+ export declare function normalizeProjectCliOptions(options: ProjectCliOptions, invocationDirectory?: string): {
24
+ readonly projectDirectory: string;
25
+ };
26
+ /**
27
+ * Validates the selected directory before any setup writes, without selecting an enclosing Git root.
28
+ * @private shared project resolution for CLI services
29
+ */
30
+ export declare function resolveProjectDirectory(projectDirectory: string): Promise<string>;
@@ -6,4 +6,4 @@ import type { PromptbookCliInstallationStatus } from './PromptbookCliInstallatio
6
6
  *
7
7
  * @private internal utility of `promptbookCli`
8
8
  */
9
- export declare function $checkPromptbookCliInstallations(): Promise<ReadonlyArray<PromptbookCliInstallationStatus>>;
9
+ export declare function $checkPromptbookCliInstallations(projectPath?: string): Promise<ReadonlyArray<PromptbookCliInstallationStatus>>;
@@ -12,4 +12,4 @@ import type { NormalizedQuestionsCliOptions } from '../questionsCliOptions';
12
12
  * @returns `true` when at least one installation was updated and the current coder run should stop
13
13
  * @private internal utility of `promptbookCli`
14
14
  */
15
- export declare function $ensurePromptbookCliInstallations(questionsOptions: NormalizedQuestionsCliOptions): Promise<boolean>;
15
+ export declare function $ensurePromptbookCliInstallations(questionsOptions: NormalizedQuestionsCliOptions, projectPath?: string): Promise<boolean>;
@@ -9,4 +9,4 @@ import { type PromptbookCliInstallation } from './PromptbookCliInstallation';
9
9
  *
10
10
  * @private internal utility of `promptbookCli`
11
11
  */
12
- export declare function $resolvePromptbookCliInstallations(): Promise<ReadonlyArray<PromptbookCliInstallation>>;
12
+ export declare function $resolvePromptbookCliInstallations(projectPath?: string): Promise<ReadonlyArray<PromptbookCliInstallation>>;
@@ -7,4 +7,4 @@ import type { PromptbookCliInstallationStatus } from './PromptbookCliInstallatio
7
7
  * @returns `true` when the package update succeeds, `false` when it fails
8
8
  * @private internal utility of `promptbookCli`
9
9
  */
10
- export declare function $updatePromptbookCliInstallation(status: PromptbookCliInstallationStatus): Promise<boolean>;
10
+ export declare function $updatePromptbookCliInstallation(status: PromptbookCliInstallationStatus, projectPath?: string): Promise<boolean>;
@@ -15,7 +15,7 @@ export declare const BOOK_LANGUAGE_VERSION: string_semantic_version;
15
15
  export declare const PROMPTBOOK_ENGINE_VERSION: string_promptbook_version;
16
16
  /**
17
17
  * Represents the version string of the Promptbook engine.
18
- * It follows semantic versioning (e.g., `0.114.0-47`).
18
+ * It follows semantic versioning (e.g., `0.114.0-48`).
19
19
  *
20
20
  * @generated
21
21
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@promptbook/color",
3
- "version": "0.114.0-47",
3
+ "version": "0.114.0-49",
4
4
  "description": "Promptbook: Create persistent AI agents that turn your company's scattered knowledge into action",
5
5
  "private": false,
6
6
  "sideEffects": false,
@@ -92,7 +92,7 @@
92
92
  "types": "./esm/src/_packages/color.index.d.ts",
93
93
  "typings": "./esm/src/_packages/color.index.d.ts",
94
94
  "peerDependencies": {
95
- "@promptbook/core": "0.114.0-47"
95
+ "@promptbook/core": "0.114.0-49"
96
96
  },
97
97
  "dependencies": {
98
98
  "spacetrim": "0.11.60"
package/umd/index.umd.js CHANGED
@@ -18,7 +18,7 @@
18
18
  * @generated
19
19
  * @see https://github.com/webgptorg/promptbook
20
20
  */
21
- const PROMPTBOOK_ENGINE_VERSION = '0.114.0-47';
21
+ const PROMPTBOOK_ENGINE_VERSION = '0.114.0-49';
22
22
  /**
23
23
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
24
24
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -20,3 +20,8 @@ export declare const CODER_AGENT_OPTION_DESCRIPTION = "Book agent providing pers
20
20
  * @private internal utility of `ptbk coder`
21
21
  */
22
22
  export declare function addCoderAgentOption(command: Program, defaultRole?: CoderAgentRole): void;
23
+ /**
24
+ * Registers the shared optional persona and context for single-agent execution or authoring.
25
+ * @private internal CLI registration helper
26
+ */
27
+ export declare function addCoderExecutionOptions(command: Program): void;
@@ -14,3 +14,8 @@ export declare const CODER_DEFAULT_AGENT_BOOK_PATHS: {
14
14
  * @private internal type of `ptbk coder`
15
15
  */
16
16
  export type CoderAgentRole = keyof typeof CODER_DEFAULT_AGENT_BOOK_PATHS;
17
+ /**
18
+ * Shared persona for optional single-agent execution and authoring; capabilities belong to the command.
19
+ * @private internal constant of project CLI commands
20
+ */
21
+ export declare const DEFAULT_CODER_AGENT_ROLE: CoderAgentRole;
@@ -25,9 +25,9 @@ export type EnsuredCoderReferencedArtifact = {
25
25
  readonly diagnostic?: string;
26
26
  };
27
27
  /**
28
- * Initializes artifacts referenced by freshly added scripts. Default Books are ensured separately.
28
+ * Initializes essential context and artifacts referenced by freshly added scripts. Books are ensured separately.
29
29
  *
30
- * For artifacts other than role Books, an existing project script does not cause default files to be created.
30
+ * AGENTS.md is essential even when every script already exists or uses implicit defaults.
31
31
  *
32
32
  * @private function of `initializeCoderProjectConfiguration`
33
33
  */
@@ -1,9 +1,10 @@
1
1
  import type { MergedStringRecordJsonFile } from './mergeStringRecordJsonFile';
2
+ import { type PreparedCoderPackageJsonScripts } from './prepareCoderPackageJsonScripts';
2
3
  /**
3
4
  * Ensures `package.json` contains the standalone Promptbook coder helper scripts.
4
5
  *
5
- * Scripts which the project already defines are kept as they are, only missing ones are added.
6
+ * Project definitions are preserved; missing scripts and narrowly recognized generated migrations are applied.
6
7
  *
7
8
  * @private function of `initializeCoderProjectConfiguration`
8
9
  */
9
- export declare function ensureCoderPackageJsonFile(projectPath: string): Promise<MergedStringRecordJsonFile>;
10
+ export declare function ensureCoderPackageJsonFile(projectPath: string): Promise<MergedStringRecordJsonFile & Omit<PreparedCoderPackageJsonScripts, 'scripts'>>;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Finds external project callers conservatively; it never rewrites their shell expressions.
3
+ * @private migration safety check for the Coder initializer
4
+ */
5
+ export declare function findLegacyCoderCheckCallers(projectPath: string, legacyNames: ReadonlyArray<string>): Promise<Readonly<Record<string, ReadonlyArray<string>>>>;
@@ -20,6 +20,12 @@ export type CoderInitializationSummary = {
20
20
  readonly addedPackageJsonScriptNames: ReadonlyArray<string>;
21
21
  readonly referencedArtifactStatuses: ReadonlyArray<EnsuredCoderReferencedArtifact>;
22
22
  readonly initializedEnvVariableNames: ReadonlyArray<string>;
23
+ /** Actual preserved or generated scope of the project check. */
24
+ readonly checkScriptSummary: string;
25
+ /** Manual steps needed for custom or conflicting legacy entries. */
26
+ readonly migrationInstructions: ReadonlyArray<string>;
27
+ /** Whether validation is configured rather than still requiring setup. */
28
+ readonly isCheckConfigured: boolean;
23
29
  };
24
30
  /**
25
31
  * Creates or updates all coder configuration artifacts required in the current project.
@@ -8,6 +8,8 @@ type MergeStringRecordJsonFileOptions = {
8
8
  readonly fieldPath: string;
9
9
  readonly nextEntries: Readonly<Record<string, string>>;
10
10
  readonly ensureParentDirectoryPath?: string;
11
+ /** Optional narrowly scoped migration of existing entries before missing defaults are added. */
12
+ readonly transformExistingEntries?: (entries: Readonly<Record<string, string>>) => Readonly<Record<string, string>> | Promise<Readonly<Record<string, string>>>;
11
13
  };
12
14
  /**
13
15
  * Result of one additive string-record merge into a JSON file.
@@ -27,10 +29,10 @@ export type MergedStringRecordJsonFile = {
27
29
  /**
28
30
  * Ensures one JSON object field contains the provided string-record entries.
29
31
  *
30
- * Entries which the project already defines are **never** overridden - only missing keys are added,
31
- * so hand-tuned scripts and settings survive every repeated `ptbk coder init`.
32
+ * Entries are additive unless a caller explicitly supplies a scoped migration callback.
33
+ * Hand-tuned scripts and settings survive repeated `ptbk coder init`; migrations recognize generated entries only.
32
34
  *
33
35
  * @private function of `initializeCoderProjectConfiguration`
34
36
  */
35
- export declare function mergeStringRecordJsonFile({ projectPath, relativeFilePath, fieldPath, nextEntries, ensureParentDirectoryPath, }: MergeStringRecordJsonFileOptions): Promise<MergedStringRecordJsonFile>;
37
+ export declare function mergeStringRecordJsonFile({ projectPath, relativeFilePath, fieldPath, nextEntries, ensureParentDirectoryPath, transformExistingEntries, }: MergeStringRecordJsonFileOptions): Promise<MergedStringRecordJsonFile>;
36
38
  export {};
@@ -1,3 +1,4 @@
1
+ import { type ResolvedCoderProjectContext } from '../../../../../scripts/run-codex-prompts/common/resolveCoderProjectContext';
1
2
  import type { NormalizedPromptRunnerSelectionCliOptions } from '../../common/promptRunnerCliOptions';
2
3
  import { runPlanningHarness } from './runPlanningHarness';
3
4
  /**
@@ -16,6 +17,8 @@ export type PlanningSessionIo = {
16
17
  export declare function runPlanningSession(options: NormalizedPromptRunnerSelectionCliOptions & {
17
18
  readonly projectPath: string;
18
19
  readonly agent?: string;
20
+ readonly context?: string;
21
+ readonly projectContext?: ResolvedCoderProjectContext;
19
22
  readonly template?: string;
20
23
  readonly preexistingChangedPaths?: ReadonlySet<string>;
21
24
  }, io: PlanningSessionIo, harness?: typeof runPlanningHarness): Promise<ReadonlyMap<string, string>>;
@@ -0,0 +1,12 @@
1
+ /** Result of preparing project-owned checks and migrating recognized generated callers. @private internal initializer result */
2
+ export type PreparedCoderPackageJsonScripts = {
3
+ readonly scripts: Readonly<Record<string, string>>;
4
+ readonly checkScriptSummary: string;
5
+ readonly migrationInstructions: ReadonlyArray<string>;
6
+ readonly isCheckConfigured: boolean;
7
+ };
8
+ /**
9
+ * Preserves project scripts, creates one canonical check, and migrates only exact generated caller forms.
10
+ * @private shared package-script preparation for Coder initialization
11
+ */
12
+ export declare function prepareCoderPackageJsonScripts(existing: Readonly<Record<string, string>>, externalCallers?: Readonly<Record<string, ReadonlyArray<string>>>): PreparedCoderPackageJsonScripts;
@@ -6,7 +6,7 @@ import type { $side_effect } from '../../utils/organization/$side_effect';
6
6
  * The coder command provides utilities for automated coding:
7
7
  * - init: Initialize coder configuration in current project
8
8
  * - add: Add one ready-to-run prompt file to the queue
9
- * - plan: Discuss features with Planner and author reviewed PRDs
9
+ * - plan: Discuss features with Developer and author reviewed PRDs
10
10
  * - generate-boilerplates: Generate prompt boilerplate files
11
11
  * - find-refactor-candidates: Find files that need refactoring
12
12
  * - list: List ready prompts in priority order without running them
@@ -0,0 +1,21 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * Retired aggregate option spellings and their canonical replacements, used only for migration diagnostics.
4
+ * @private shared CLI migration definitions for Coder execution
5
+ */
6
+ export declare const LEGACY_CODER_CHECK_OPTIONS: readonly [readonly ["--test", "--check"], readonly ["--test-before", "--check-before"]];
7
+ /**
8
+ * Registers the shared project check command and rejects retired aggregate-test spellings.
9
+ * @private shared CLI registration for Coder execution
10
+ */
11
+ export declare function addCoderCheckOptions(command: Command, isCheckBeforeSupported: boolean): void;
12
+ /**
13
+ * Builds the same actionable migration diagnostic for registered and direct-script entrypoints.
14
+ * @private shared CLI diagnostic for Coder execution
15
+ */
16
+ export declare function formatLegacyCoderCheckOptionError(legacyFlag: string, replacementFlag: string): string;
17
+ /**
18
+ * Normalizes shell command tokens without parsing a quoted command again or losing spaced argument boundaries.
19
+ * @private shared command normalization for Coder execution
20
+ */
21
+ export declare function normalizeCheckCommandOption(value: string | ReadonlyArray<string> | undefined): string | undefined;
@@ -0,0 +1,30 @@
1
+ import type { Command } from 'commander';
2
+ /**
3
+ * Optional project selection shared by workspace actions, independently of Book and harness selection.
4
+ * @private internal CLI options
5
+ */
6
+ export type ProjectCliOptions = {
7
+ readonly path?: string;
8
+ };
9
+ /**
10
+ * Registers project selection without capturing a directory during command registration.
11
+ * @private internal CLI registration helper
12
+ */
13
+ export declare function addProjectPathOption(command: Command): void;
14
+ /**
15
+ * Registers additional context independently of primary-agent selection.
16
+ * @private internal CLI registration helper
17
+ */
18
+ export declare function addProjectContextOption(command: Command): void;
19
+ /**
20
+ * Captures an invocation's directory at action time. No process-global state is changed.
21
+ * @private internal CLI normalization helper
22
+ */
23
+ export declare function normalizeProjectCliOptions(options: ProjectCliOptions, invocationDirectory?: string): {
24
+ readonly projectDirectory: string;
25
+ };
26
+ /**
27
+ * Validates the selected directory before any setup writes, without selecting an enclosing Git root.
28
+ * @private shared project resolution for CLI services
29
+ */
30
+ export declare function resolveProjectDirectory(projectDirectory: string): Promise<string>;
@@ -6,4 +6,4 @@ import type { PromptbookCliInstallationStatus } from './PromptbookCliInstallatio
6
6
  *
7
7
  * @private internal utility of `promptbookCli`
8
8
  */
9
- export declare function $checkPromptbookCliInstallations(): Promise<ReadonlyArray<PromptbookCliInstallationStatus>>;
9
+ export declare function $checkPromptbookCliInstallations(projectPath?: string): Promise<ReadonlyArray<PromptbookCliInstallationStatus>>;
@@ -12,4 +12,4 @@ import type { NormalizedQuestionsCliOptions } from '../questionsCliOptions';
12
12
  * @returns `true` when at least one installation was updated and the current coder run should stop
13
13
  * @private internal utility of `promptbookCli`
14
14
  */
15
- export declare function $ensurePromptbookCliInstallations(questionsOptions: NormalizedQuestionsCliOptions): Promise<boolean>;
15
+ export declare function $ensurePromptbookCliInstallations(questionsOptions: NormalizedQuestionsCliOptions, projectPath?: string): Promise<boolean>;
@@ -9,4 +9,4 @@ import { type PromptbookCliInstallation } from './PromptbookCliInstallation';
9
9
  *
10
10
  * @private internal utility of `promptbookCli`
11
11
  */
12
- export declare function $resolvePromptbookCliInstallations(): Promise<ReadonlyArray<PromptbookCliInstallation>>;
12
+ export declare function $resolvePromptbookCliInstallations(projectPath?: string): Promise<ReadonlyArray<PromptbookCliInstallation>>;
@@ -7,4 +7,4 @@ import type { PromptbookCliInstallationStatus } from './PromptbookCliInstallatio
7
7
  * @returns `true` when the package update succeeds, `false` when it fails
8
8
  * @private internal utility of `promptbookCli`
9
9
  */
10
- export declare function $updatePromptbookCliInstallation(status: PromptbookCliInstallationStatus): Promise<boolean>;
10
+ export declare function $updatePromptbookCliInstallation(status: PromptbookCliInstallationStatus, projectPath?: string): Promise<boolean>;
@@ -15,7 +15,7 @@ export declare const BOOK_LANGUAGE_VERSION: string_semantic_version;
15
15
  export declare const PROMPTBOOK_ENGINE_VERSION: string_promptbook_version;
16
16
  /**
17
17
  * Represents the version string of the Promptbook engine.
18
- * It follows semantic versioning (e.g., `0.114.0-47`).
18
+ * It follows semantic versioning (e.g., `0.114.0-48`).
19
19
  *
20
20
  * @generated
21
21
  */