@promptbook/core 0.114.0-48 → 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 +1 -1
  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
@@ -671,7 +671,7 @@ Promptbook Coder is **not another standalone coding model**. It is an orchestrat
671
671
 
672
672
  - prompt files with explicit statuses like `[ ]`, `[^]`, `[x]`, and `[-]`
673
673
  - automatic selection of the next runnable task, including priority support
674
- - optional shared repo context loaded from a file such as `AGENTS.md`
674
+ - shared project context loaded from `AGENTS.md` by default
675
675
  - automatic `git add`, commit, and push after each successful prompt
676
676
  - dedicated coding-agent Git identity and optional GPG signing
677
677
  - verification and repair flow for work that is done, partial, or broken
@@ -693,7 +693,7 @@ Prompts marked with `[-]` are not ready yet, prompts containing `@@@` are treate
693
693
  #### Features
694
694
 
695
695
  - **Multi-runner execution:** `openai-codex`, `github-copilot`, `cline`, `claude-code`, `opencode`, `gemini`, `qwen-code`
696
- - **Context injection:** `--agent agents/coding/developer.book --context AGENTS.md` or inline extra instructions
696
+ - **Project defaults:** Developer, invocation cwd, and project `AGENTS.md`; `--agent`, `--path`, and `--context` independently override them
697
697
  - **Reasoning control:** `--thinking-level low|medium|high|xhigh` for supported runners
698
698
  - **Unattended or interactive runs:** default auto mode, or `--no-auto` to wait for user confirmation before each prompt
699
699
  - **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
@@ -713,11 +713,11 @@ npx ts-node ./src/cli/test/ptbk.ts coder generate-boilerplates --template prompt
713
713
 
714
714
  npx ts-node ./src/cli/test/ptbk.ts coder generate-boilerplates --template prompts/templates/agents-server.md
715
715
 
716
- 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
716
+ 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
717
717
 
718
- 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
718
+ 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
719
719
 
720
- 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
720
+ 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
721
721
 
722
722
  npx ts-node ./src/cli/test/ptbk.ts coder find-refactor-candidates
723
723
 
@@ -739,11 +739,11 @@ ptbk coder generate-boilerplates
739
739
 
740
740
  ptbk coder generate-boilerplates --template prompts/templates/common.md
741
741
 
742
- 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
742
+ ptbk coder run --harness github-copilot --model gpt-5.4 --thinking-level xhigh --agent agents/coding/developer.book --check "npm run check"
743
743
 
744
- ptbk coder run --harness github-copilot --model gpt-5.4 --thinking-level xhigh --agent agents/coding/developer.book --context AGENTS.md --auto-push
744
+ ptbk coder run --harness github-copilot --model gpt-5.4 --thinking-level xhigh --agent agents/coding/developer.book --auto-push
745
745
 
746
- 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
746
+ 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
747
747
 
748
748
  ptbk coder find-refactor-candidates
749
749
 
@@ -760,33 +760,52 @@ ptbk coder verify
760
760
  | ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | ------ | ---- | ----- | ------------------------------------------------------------------------ |
761
761
  | `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/`. |
762
762
  | `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. |
763
- | `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. |
763
+ | `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. |
764
764
  | `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. |
765
765
  | `ptbk coder verify` | Walks through completed prompts, archives truly finished work, and adds follow-up repair prompts for unfinished results. |
766
766
 
767
767
  #### Most useful `ptbk coder run` flags
768
768
 
769
- | Flag | Purpose |
770
- | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
771
- | `--harness <name>` | Selects the coding harness. |
772
- | `--model <model>` | Chooses the runner model; required for `openai-codex`, `gemini` and `qwen-code`, optional for `github-copilot`. |
773
- | `--context <text-or-file>` | Appends extra instructions inline or from a file like `AGENTS.md`. |
774
- | `--test <command>` | Runs a verification command after each prompt attempt and feeds failing output back for retries. |
775
- | `--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`. |
776
- | `--thinking-level <level>` | Sets reasoning effort for supported runners. |
777
- | `--no-auto` | Waits for user confirmation before each prompt instead of running automatically through the queue. |
778
- | `--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. |
779
- | `--priority <n>` | Runs only prompts at or above the given priority. |
780
- | `--dry-run` | Prints which prompts are ready instead of executing them. |
781
- | `--allow-credits` | Lets OpenAI Codex spend credits when required. |
782
- | `--auto-push` | Pushes each successful coding-agent commit to the configured remote. |
783
- | `--auto-migrate` | Runs testing-server database migrations after each successful prompt. |
769
+ A **check** is the project's aggregate validation: tests, linting, typechecking, builds, generated-code consistency,
770
+ and other quality checks. `ptbk init` and `ptbk coder init` preserve an existing `scripts.check`, or compose available
771
+ validation scripts and report their scope. Configure the failing setup placeholder if the project has none.
772
+
773
+ ```bash
774
+ ptbk coder run --harness openai-codex --check "npm run check" --check-before yes-and-fix
775
+ ptbk coder run --harness openai-codex --check "npm run lint && npm run build && npm test"
776
+ ```
777
+
778
+ The default preflight mode remains `no`. Enabled preflight uses `npm run check` when no command is supplied;
779
+ post-prompt verification remains opt-in. Initial checks and repairs use the same command and actual process result.
780
+ Replace retired `--test` and `--test-before` with `--check` and `--check-before`. Init migrates recognized generated
781
+ scripts while preserving custom validation. For conflicts or custom callers, it reports the exact entries/files to
782
+ review: preserve the required validation in `check`, update references, then remove the unused legacy entry.
783
+ Automation that invokes `npm run test-for-ptbk-coder` must switch to `npm run check`. Restart an already-running
784
+ Coder invocation with the new flags to release its captured legacy command; initialization creates no compatibility alias.
785
+
786
+ | Flag | Purpose |
787
+ | -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
788
+ | `--harness <name>` | Selects the coding harness. |
789
+ | `--agent <book>` | Selects the primary Book; defaults to the selected project's `agents/developer.book`. |
790
+ | `--path <directory>` | Selects the project; defaults to invocation cwd. Relative paths start there, not at the CLI installation or enclosing Git root. |
791
+ | `--model <model>` | Chooses the runner model; required for `openai-codex`, `gemini` and `qwen-code`, optional for `github-copilot`. |
792
+ | `--context <text-or-file>` | Replaces the default project `AGENTS.md` with inline instructions or a project-relative file; an empty value disables context. |
793
+ | `--check <command>` | Runs a verification command after each prompt attempt and feeds failing output back for retries. |
794
+ | `--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`. |
795
+ | `--thinking-level <level>` | Sets reasoning effort for supported runners. |
796
+ | `--no-auto` | Waits for user confirmation before each prompt instead of running automatically through the queue. |
797
+ | `--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. |
798
+ | `--priority <n>` | Runs only prompts at or above the given priority. |
799
+ | `--dry-run` | Prints which prompts are ready instead of executing them. |
800
+ | `--allow-credits` | Lets OpenAI Codex spend credits when required. |
801
+ | `--auto-push` | Pushes each successful coding-agent commit to the configured remote. |
802
+ | `--auto-migrate` | Runs testing-server database migrations after each successful prompt. |
784
803
 
785
804
  #### Typical usage pattern
786
805
 
787
806
  1. Initialize once with `ptbk coder init`.
788
807
  2. Customize `prompts/templates/*.md` if needed, then create or write prompt files in `prompts/`.
789
- 3. Customize the starter `AGENTS.md` with repository-specific instructions, then pass `--agent agents/coding/developer.book --context AGENTS.md`.
808
+ 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.
790
809
  4. Run unattended batches by default, or pass `--no-auto` to confirm each prompt interactively.
791
810
  5. Finish with `ptbk coder verify` so resolved prompts are archived and broken ones get explicit repair follow-ups.
792
811
 
package/esm/index.es.js CHANGED
@@ -26,7 +26,7 @@ const BOOK_LANGUAGE_VERSION = '2.0.0';
26
26
  * @generated
27
27
  * @see https://github.com/webgptorg/promptbook
28
28
  */
29
- const PROMPTBOOK_ENGINE_VERSION = '0.114.0-48';
29
+ const PROMPTBOOK_ENGINE_VERSION = '0.114.0-49';
30
30
  /**
31
31
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
32
32
  * 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/core",
3
- "version": "0.114.0-48",
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,
package/umd/index.umd.js CHANGED
@@ -28,7 +28,7 @@
28
28
  * @generated
29
29
  * @see https://github.com/webgptorg/promptbook
30
30
  */
31
- const PROMPTBOOK_ENGINE_VERSION = '0.114.0-48';
31
+ const PROMPTBOOK_ENGINE_VERSION = '0.114.0-49';
32
32
  /**
33
33
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
34
34
  * 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
  */