@hivehub/rulebook 5.5.1 → 5.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/commands/rulebook-learn-capture.md +41 -48
- package/.claude/commands/rulebook-learn-list.md +13 -13
- package/README.md +332 -394
- package/dist/cli/commands/context-intelligence.d.ts +0 -1
- package/dist/cli/commands/context-intelligence.d.ts.map +1 -1
- package/dist/cli/commands/context-intelligence.js +12 -33
- package/dist/cli/commands/context-intelligence.js.map +1 -1
- package/dist/cli/commands/index.d.ts +4 -7
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +4 -7
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +40 -81
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/mcp.d.ts +0 -1
- package/dist/cli/commands/mcp.d.ts.map +1 -1
- package/dist/cli/commands/mcp.js +1 -7
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/memory.d.ts +7 -1
- package/dist/cli/commands/memory.d.ts.map +1 -1
- package/dist/cli/commands/memory.js +51 -57
- package/dist/cli/commands/memory.js.map +1 -1
- package/dist/cli/commands/misc.d.ts +1 -15
- package/dist/cli/commands/misc.d.ts.map +1 -1
- package/dist/cli/commands/misc.js +36 -215
- package/dist/cli/commands/misc.js.map +1 -1
- package/dist/cli/commands/plans.d.ts +0 -6
- package/dist/cli/commands/plans.d.ts.map +1 -1
- package/dist/cli/commands/plans.js +9 -77
- package/dist/cli/commands/plans.js.map +1 -1
- package/dist/cli/commands/skills.js +6 -6
- package/dist/cli/commands/skills.js.map +1 -1
- package/dist/cli/commands/task.js +4 -4
- package/dist/cli/commands/task.js.map +1 -1
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +122 -52
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/prompts.d.ts.map +1 -1
- package/dist/cli/prompts.js +1 -78
- package/dist/cli/prompts.js.map +1 -1
- package/dist/core/claude/claude-mcp.d.ts +59 -0
- package/dist/core/claude/claude-mcp.d.ts.map +1 -0
- package/dist/core/claude/claude-mcp.js +220 -0
- package/dist/core/claude/claude-mcp.js.map +1 -0
- package/dist/core/claude/claude-md-generator.d.ts +52 -0
- package/dist/core/claude/claude-md-generator.d.ts.map +1 -0
- package/dist/core/claude/claude-md-generator.js +104 -0
- package/dist/core/claude/claude-md-generator.js.map +1 -0
- package/dist/core/claude/claude-settings-manager.d.ts +44 -0
- package/dist/core/claude/claude-settings-manager.d.ts.map +1 -0
- package/dist/core/claude/claude-settings-manager.js +194 -0
- package/dist/core/claude/claude-settings-manager.js.map +1 -0
- package/dist/core/claude-settings-manager.d.ts.map +1 -1
- package/dist/core/claude-settings-manager.js +9 -3
- package/dist/core/claude-settings-manager.js.map +1 -1
- package/dist/core/console/cli-bridge.d.ts +113 -0
- package/dist/core/console/cli-bridge.d.ts.map +1 -0
- package/dist/core/console/cli-bridge.js +1094 -0
- package/dist/core/console/cli-bridge.js.map +1 -0
- package/dist/core/detect/detector.d.ts +35 -0
- package/dist/core/detect/detector.d.ts.map +1 -0
- package/dist/core/detect/detector.js +541 -0
- package/dist/core/detect/detector.js.map +1 -0
- package/dist/core/docs/docs-generator.d.ts +9 -0
- package/dist/core/docs/docs-generator.d.ts.map +1 -0
- package/dist/core/docs/docs-generator.js +531 -0
- package/dist/core/docs/docs-generator.js.map +1 -0
- package/dist/core/docs/mcp-reference-generator.d.ts +13 -0
- package/dist/core/docs/mcp-reference-generator.d.ts.map +1 -0
- package/dist/core/docs/mcp-reference-generator.js +66 -0
- package/dist/core/docs/mcp-reference-generator.js.map +1 -0
- package/dist/core/generators/generator.d.ts +54 -0
- package/dist/core/generators/generator.d.ts.map +1 -0
- package/dist/core/generators/generator.js +1041 -0
- package/dist/core/generators/generator.js.map +1 -0
- package/dist/core/generators/gitignore-generator.d.ts +13 -0
- package/dist/core/generators/gitignore-generator.d.ts.map +1 -0
- package/dist/core/generators/gitignore-generator.js +307 -0
- package/dist/core/generators/gitignore-generator.js.map +1 -0
- package/dist/core/generators/minimal-scaffolder.d.ts +8 -0
- package/dist/core/generators/minimal-scaffolder.d.ts.map +1 -0
- package/dist/core/generators/minimal-scaffolder.js +51 -0
- package/dist/core/generators/minimal-scaffolder.js.map +1 -0
- package/dist/core/generators/rules-generator.d.ts +73 -0
- package/dist/core/generators/rules-generator.d.ts.map +1 -0
- package/dist/core/generators/rules-generator.js +202 -0
- package/dist/core/generators/rules-generator.js.map +1 -0
- package/dist/core/generators/workflow-generator.d.ts +15 -0
- package/dist/core/generators/workflow-generator.d.ts.map +1 -0
- package/dist/core/generators/workflow-generator.js +390 -0
- package/dist/core/generators/workflow-generator.js.map +1 -0
- package/dist/core/ide/multi-tool-generator.d.ts +59 -0
- package/dist/core/ide/multi-tool-generator.d.ts.map +1 -0
- package/dist/core/ide/multi-tool-generator.js +157 -0
- package/dist/core/ide/multi-tool-generator.js.map +1 -0
- package/dist/core/ide/opencode-generator.d.ts +72 -0
- package/dist/core/ide/opencode-generator.d.ts.map +1 -0
- package/dist/core/ide/opencode-generator.js +450 -0
- package/dist/core/ide/opencode-generator.js.map +1 -0
- package/dist/core/merger.d.ts +1 -1
- package/dist/core/merger.d.ts.map +1 -1
- package/dist/core/merger.js +5 -5
- package/dist/core/merger.js.map +1 -1
- package/dist/core/migrator.d.ts +0 -1
- package/dist/core/migrator.d.ts.map +1 -1
- package/dist/core/migrator.js +4 -29
- package/dist/core/migrator.js.map +1 -1
- package/dist/core/quality/coverage-checker.d.ts +14 -0
- package/dist/core/quality/coverage-checker.d.ts.map +1 -0
- package/dist/core/quality/coverage-checker.js +176 -0
- package/dist/core/quality/coverage-checker.js.map +1 -0
- package/dist/core/quality/dependency-checker.d.ts +21 -0
- package/dist/core/quality/dependency-checker.d.ts.map +1 -0
- package/dist/core/quality/dependency-checker.js +247 -0
- package/dist/core/quality/dependency-checker.js.map +1 -0
- package/dist/core/quality/doctor.d.ts +19 -0
- package/dist/core/quality/doctor.d.ts.map +1 -0
- package/dist/core/quality/doctor.js +163 -0
- package/dist/core/quality/doctor.js.map +1 -0
- package/dist/core/quality/validator.d.ts +21 -0
- package/dist/core/quality/validator.d.ts.map +1 -0
- package/dist/core/quality/validator.js +177 -0
- package/dist/core/quality/validator.js.map +1 -0
- package/dist/core/ralph-scripts.d.ts.map +1 -1
- package/dist/core/ralph-scripts.js +7 -6
- package/dist/core/ralph-scripts.js.map +1 -1
- package/dist/core/skills/skills-manager.d.ts +126 -0
- package/dist/core/skills/skills-manager.d.ts.map +1 -0
- package/dist/core/skills/skills-manager.js +630 -0
- package/dist/core/skills/skills-manager.js.map +1 -0
- package/dist/core/state/config-manager.d.ts +86 -0
- package/dist/core/state/config-manager.d.ts.map +1 -0
- package/dist/core/state/config-manager.js +562 -0
- package/dist/core/state/config-manager.js.map +1 -0
- package/dist/core/state/override-manager.d.ts +23 -0
- package/dist/core/state/override-manager.d.ts.map +1 -0
- package/dist/core/state/override-manager.js +82 -0
- package/dist/core/state/override-manager.js.map +1 -0
- package/dist/core/state/state-writer.d.ts +34 -0
- package/dist/core/state/state-writer.d.ts.map +1 -0
- package/dist/core/state/state-writer.js +78 -0
- package/dist/core/state/state-writer.js.map +1 -0
- package/dist/core/state/version-bumper.d.ts +19 -0
- package/dist/core/state/version-bumper.d.ts.map +1 -0
- package/dist/core/state/version-bumper.js +180 -0
- package/dist/core/state/version-bumper.js.map +1 -0
- package/dist/core/tasks/decision-manager.d.ts +25 -0
- package/dist/core/tasks/decision-manager.d.ts.map +1 -0
- package/dist/core/tasks/decision-manager.js +183 -0
- package/dist/core/tasks/decision-manager.js.map +1 -0
- package/dist/core/tasks/knowledge-manager.d.ts +24 -0
- package/dist/core/tasks/knowledge-manager.d.ts.map +1 -0
- package/dist/core/tasks/knowledge-manager.js +173 -0
- package/dist/core/tasks/knowledge-manager.js.map +1 -0
- package/dist/core/tasks/learn-manager.d.ts +27 -0
- package/dist/core/tasks/learn-manager.d.ts.map +1 -0
- package/dist/core/tasks/learn-manager.js +121 -0
- package/dist/core/tasks/learn-manager.js.map +1 -0
- package/dist/core/tasks/plans-manager.d.ts +46 -0
- package/dist/core/tasks/plans-manager.d.ts.map +1 -0
- package/dist/core/tasks/plans-manager.js +158 -0
- package/dist/core/tasks/plans-manager.js.map +1 -0
- package/dist/core/tasks/task-manager.d.ts +127 -0
- package/dist/core/tasks/task-manager.d.ts.map +1 -0
- package/dist/core/tasks/task-manager.js +607 -0
- package/dist/core/tasks/task-manager.js.map +1 -0
- package/dist/core/workspace/project-worker.d.ts +6 -6
- package/dist/core/workspace/project-worker.d.ts.map +1 -1
- package/dist/core/workspace/project-worker.js +6 -6
- package/dist/core/workspace/project-worker.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -176
- package/dist/index.js.map +1 -1
- package/dist/mcp/rulebook-server.d.ts.map +1 -1
- package/dist/mcp/rulebook-server.js +16 -960
- package/dist/mcp/rulebook-server.js.map +1 -1
- package/dist/memory/file-search.d.ts +43 -0
- package/dist/memory/file-search.d.ts.map +1 -0
- package/dist/memory/file-search.js +228 -0
- package/dist/memory/file-search.js.map +1 -0
- package/dist/memory/file-store.d.ts +99 -0
- package/dist/memory/file-store.d.ts.map +1 -0
- package/dist/memory/file-store.js +615 -0
- package/dist/memory/file-store.js.map +1 -0
- package/dist/memory/legacy-migrator.d.ts +27 -0
- package/dist/memory/legacy-migrator.d.ts.map +1 -0
- package/dist/memory/legacy-migrator.js +185 -0
- package/dist/memory/legacy-migrator.js.map +1 -0
- package/dist/memory/memory-manager.d.ts +25 -24
- package/dist/memory/memory-manager.d.ts.map +1 -1
- package/dist/memory/memory-manager.js +97 -140
- package/dist/memory/memory-manager.js.map +1 -1
- package/dist/memory/memory-types.d.ts +1 -1
- package/dist/memory/memory-types.d.ts.map +1 -1
- package/dist/types.d.ts +8 -119
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/file-system.d.ts +22 -0
- package/dist/utils/file-system.d.ts.map +1 -1
- package/dist/utils/file-system.js +31 -0
- package/dist/utils/file-system.js.map +1 -1
- package/dist/utils/git-hooks.d.ts.map +1 -1
- package/dist/utils/git-hooks.js +3 -2
- package/dist/utils/git-hooks.js.map +1 -1
- package/package.json +2 -6
- package/templates/agents/context-intelligence.md +50 -52
- package/templates/cli/OPENCODE.md +85 -18
- package/templates/commands/rulebook-learn-capture.md +41 -48
- package/templates/commands/rulebook-learn-list.md +13 -13
- package/templates/core/AGENTS_LEAN.md +0 -14
- package/templates/hooks/check-context-and-handoff.sh +74 -76
- package/templates/hooks/enforce-pre-tool.sh +70 -0
- package/templates/hooks/enforce-team-for-background-agents.sh +55 -55
- package/templates/hooks/on-compact-reinject.sh +34 -34
- package/templates/hooks/resume-from-handoff.sh +61 -61
- package/templates/hooks/terse-activate.sh +197 -197
- package/templates/hooks/terse-mode-tracker.sh +190 -187
- package/templates/ides/OPENCODE.md +63 -0
- package/templates/skills/cli/opencode/SKILL.md +82 -28
- package/.claude/commands/ralph-config.md +0 -112
- package/.claude/commands/ralph-history.md +0 -110
- package/.claude/commands/ralph-init.md +0 -72
- package/.claude/commands/ralph-pause-resume.md +0 -105
- package/.claude/commands/ralph-run.md +0 -101
- package/.claude/commands/ralph-status.md +0 -76
- package/templates/core/RALPH.md +0 -471
- package/templates/frameworks/ANGULAR.md +0 -36
- package/templates/frameworks/DJANGO.md +0 -83
- package/templates/frameworks/ELECTRON.md +0 -147
- package/templates/frameworks/FLASK.md +0 -38
- package/templates/frameworks/FLUTTER.md +0 -55
- package/templates/frameworks/JQUERY.md +0 -32
- package/templates/frameworks/LARAVEL.md +0 -38
- package/templates/frameworks/NESTJS.md +0 -43
- package/templates/frameworks/NEXTJS.md +0 -127
- package/templates/frameworks/NUXT.md +0 -40
- package/templates/frameworks/RAILS.md +0 -66
- package/templates/frameworks/REACT.md +0 -38
- package/templates/frameworks/REACT_NATIVE.md +0 -47
- package/templates/frameworks/SPRING.md +0 -39
- package/templates/frameworks/SYMFONY.md +0 -36
- package/templates/frameworks/VUE.md +0 -36
- package/templates/frameworks/ZEND.md +0 -35
- package/templates/hooks/enforce-mcp-for-tasks.sh +0 -31
- package/templates/hooks/enforce-no-deferred.sh +0 -21
- package/templates/hooks/enforce-no-shortcuts.sh +0 -31
- package/templates/ides/COPILOT.md +0 -37
- package/templates/ides/CURSOR.md +0 -43
- package/templates/ides/JETBRAINS_AI.md +0 -35
- package/templates/ides/REPLIT.md +0 -36
- package/templates/ides/TABNINE.md +0 -29
- package/templates/ides/VSCODE.md +0 -40
- package/templates/ides/WINDSURF.md +0 -36
- package/templates/ides/ZED.md +0 -32
- package/templates/ides/cursor-mdc/go.mdc +0 -24
- package/templates/ides/cursor-mdc/python.mdc +0 -24
- package/templates/ides/cursor-mdc/quality.mdc +0 -25
- package/templates/ides/cursor-mdc/ralph.mdc +0 -39
- package/templates/ides/cursor-mdc/rulebook.mdc +0 -38
- package/templates/ides/cursor-mdc/rust.mdc +0 -24
- package/templates/ides/cursor-mdc/typescript.mdc +0 -25
- package/templates/ralph/ralph-history.bat +0 -4
- package/templates/ralph/ralph-history.sh +0 -5
- package/templates/ralph/ralph-init.bat +0 -5
- package/templates/ralph/ralph-init.sh +0 -5
- package/templates/ralph/ralph-pause.bat +0 -5
- package/templates/ralph/ralph-pause.sh +0 -5
- package/templates/ralph/ralph-run.bat +0 -5
- package/templates/ralph/ralph-run.sh +0 -5
- package/templates/ralph/ralph-status.bat +0 -4
- package/templates/ralph/ralph-status.sh +0 -5
- package/templates/services/AZURE_BLOB.md +0 -184
- package/templates/services/CASSANDRA.md +0 -239
- package/templates/services/DATADOG.md +0 -26
- package/templates/services/DOCKER.md +0 -124
- package/templates/services/DOCKER_COMPOSE.md +0 -168
- package/templates/services/DYNAMODB.md +0 -308
- package/templates/services/ELASTICSEARCH.md +0 -347
- package/templates/services/GCS.md +0 -178
- package/templates/services/HELM.md +0 -194
- package/templates/services/INFLUXDB.md +0 -265
- package/templates/services/KAFKA.md +0 -341
- package/templates/services/KUBERNETES.md +0 -208
- package/templates/services/MARIADB.md +0 -183
- package/templates/services/MEMCACHED.md +0 -242
- package/templates/services/MINIO.md +0 -201
- package/templates/services/MONGODB.md +0 -268
- package/templates/services/MYSQL.md +0 -358
- package/templates/services/NEO4J.md +0 -247
- package/templates/services/OPENTELEMETRY.md +0 -25
- package/templates/services/ORACLE.md +0 -290
- package/templates/services/PINO.md +0 -24
- package/templates/services/POSTGRESQL.md +0 -326
- package/templates/services/PROMETHEUS.md +0 -33
- package/templates/services/RABBITMQ.md +0 -286
- package/templates/services/REDIS.md +0 -292
- package/templates/services/S3.md +0 -298
- package/templates/services/SENTRY.md +0 -23
- package/templates/services/SQLITE.md +0 -294
- package/templates/services/SQLSERVER.md +0 -294
- package/templates/services/WINSTON.md +0 -30
- package/templates/skills/frameworks/angular/SKILL.md +0 -46
- package/templates/skills/frameworks/django/SKILL.md +0 -93
- package/templates/skills/frameworks/electron/SKILL.md +0 -157
- package/templates/skills/frameworks/flask/SKILL.md +0 -48
- package/templates/skills/frameworks/flutter/SKILL.md +0 -65
- package/templates/skills/frameworks/jquery/SKILL.md +0 -42
- package/templates/skills/frameworks/laravel/SKILL.md +0 -48
- package/templates/skills/frameworks/nestjs/SKILL.md +0 -53
- package/templates/skills/frameworks/nextjs/SKILL.md +0 -137
- package/templates/skills/frameworks/nuxt/SKILL.md +0 -50
- package/templates/skills/frameworks/rails/SKILL.md +0 -76
- package/templates/skills/frameworks/react/SKILL.md +0 -48
- package/templates/skills/frameworks/react-native/SKILL.md +0 -57
- package/templates/skills/frameworks/spring/SKILL.md +0 -49
- package/templates/skills/frameworks/symfony/SKILL.md +0 -46
- package/templates/skills/frameworks/vue/SKILL.md +0 -46
- package/templates/skills/frameworks/zend/SKILL.md +0 -45
- package/templates/skills/services/azure-blob/SKILL.md +0 -194
- package/templates/skills/services/cassandra/SKILL.md +0 -249
- package/templates/skills/services/dynamodb/SKILL.md +0 -318
- package/templates/skills/services/elasticsearch/SKILL.md +0 -357
- package/templates/skills/services/gcs/SKILL.md +0 -188
- package/templates/skills/services/influxdb/SKILL.md +0 -275
- package/templates/skills/services/kafka/SKILL.md +0 -351
- package/templates/skills/services/mariadb/SKILL.md +0 -193
- package/templates/skills/services/memcached/SKILL.md +0 -252
- package/templates/skills/services/minio/SKILL.md +0 -211
- package/templates/skills/services/mongodb/SKILL.md +0 -278
- package/templates/skills/services/mysql/SKILL.md +0 -368
- package/templates/skills/services/neo4j/SKILL.md +0 -257
- package/templates/skills/services/oracle/SKILL.md +0 -300
- package/templates/skills/services/postgresql/SKILL.md +0 -336
- package/templates/skills/services/rabbitmq/SKILL.md +0 -296
- package/templates/skills/services/redis/SKILL.md +0 -302
- package/templates/skills/services/s3/SKILL.md +0 -308
- package/templates/skills/services/sqlite/SKILL.md +0 -304
- package/templates/skills/services/sqlserver/SKILL.md +0 -304
- package/templates/skills/workflows/ralph/SETUP.md +0 -228
- package/templates/skills/workflows/ralph/SKILL.md +0 -309
- package/templates/skills/workflows/ralph/install.sh +0 -87
- package/templates/skills/workflows/ralph/manifest.json +0 -158
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get path to AGENTS.override.md in the project root.
|
|
3
|
+
*/
|
|
4
|
+
export declare function getOverridePath(projectRoot: string): string;
|
|
5
|
+
/**
|
|
6
|
+
* Check if AGENTS.override.md exists.
|
|
7
|
+
*/
|
|
8
|
+
export declare function overrideExists(projectRoot: string): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Read override content, stripping OVERRIDE:START/END markers.
|
|
11
|
+
* Returns empty string if file does not exist or has no custom content.
|
|
12
|
+
*/
|
|
13
|
+
export declare function readOverrideContent(projectRoot: string): Promise<string>;
|
|
14
|
+
/**
|
|
15
|
+
* Create AGENTS.override.md from template if it does not already exist.
|
|
16
|
+
* Returns true if file was created, false if it already existed.
|
|
17
|
+
*/
|
|
18
|
+
export declare function initOverride(projectRoot: string): Promise<boolean>;
|
|
19
|
+
/**
|
|
20
|
+
* Clear AGENTS.override.md back to the empty template.
|
|
21
|
+
*/
|
|
22
|
+
export declare function clearOverride(projectRoot: string): Promise<void>;
|
|
23
|
+
//# sourceMappingURL=override-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"override-manager.d.ts","sourceRoot":"","sources":["../../../src/core/state/override-manager.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAqB9E;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA4BxE;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYtE"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { existsSync } from 'fs';
|
|
2
|
+
import { readFile, writeFile } from 'fs/promises';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import { fileExists } from '../../utils/file-system.js';
|
|
5
|
+
const OVERRIDE_FILE = 'AGENTS.override.md';
|
|
6
|
+
/**
|
|
7
|
+
* Get path to AGENTS.override.md in the project root.
|
|
8
|
+
*/
|
|
9
|
+
export function getOverridePath(projectRoot) {
|
|
10
|
+
return path.join(projectRoot, OVERRIDE_FILE);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Check if AGENTS.override.md exists.
|
|
14
|
+
*/
|
|
15
|
+
export function overrideExists(projectRoot) {
|
|
16
|
+
return existsSync(getOverridePath(projectRoot));
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Read override content, stripping OVERRIDE:START/END markers.
|
|
20
|
+
* Returns empty string if file does not exist or has no custom content.
|
|
21
|
+
*/
|
|
22
|
+
export async function readOverrideContent(projectRoot) {
|
|
23
|
+
const overridePath = getOverridePath(projectRoot);
|
|
24
|
+
if (!existsSync(overridePath))
|
|
25
|
+
return '';
|
|
26
|
+
const raw = await readFile(overridePath, 'utf-8');
|
|
27
|
+
// Strip marker comments — return only actual content between them
|
|
28
|
+
const match = raw.match(/<!-- OVERRIDE:START -->([\s\S]*?)<!-- OVERRIDE:END -->/);
|
|
29
|
+
if (!match)
|
|
30
|
+
return raw.trim();
|
|
31
|
+
const content = match[1].trim();
|
|
32
|
+
// If it still contains only the template placeholder text, treat as empty
|
|
33
|
+
if (content.includes('This file contains project-specific directives') &&
|
|
34
|
+
!content.split('\n').some((line) => line.startsWith('- ') && !line.includes('**Example'))) {
|
|
35
|
+
return '';
|
|
36
|
+
}
|
|
37
|
+
return content;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Create AGENTS.override.md from template if it does not already exist.
|
|
41
|
+
* Returns true if file was created, false if it already existed.
|
|
42
|
+
*/
|
|
43
|
+
export async function initOverride(projectRoot) {
|
|
44
|
+
const overridePath = getOverridePath(projectRoot);
|
|
45
|
+
if (existsSync(overridePath))
|
|
46
|
+
return false;
|
|
47
|
+
const templatePath = path.join(path.dirname(path.dirname(new URL(import.meta.url).pathname)), 'templates', 'core', 'AGENTS_OVERRIDE.md');
|
|
48
|
+
let templateContent = '';
|
|
49
|
+
if (await fileExists(templatePath)) {
|
|
50
|
+
templateContent = await readFile(templatePath, 'utf-8');
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
templateContent = [
|
|
54
|
+
'<!-- OVERRIDE:START -->',
|
|
55
|
+
'# Project-Specific Overrides',
|
|
56
|
+
'',
|
|
57
|
+
'Add your custom rules and team conventions here.',
|
|
58
|
+
'This file is never overwritten by `rulebook init` or `rulebook update`.',
|
|
59
|
+
'<!-- OVERRIDE:END -->',
|
|
60
|
+
'',
|
|
61
|
+
].join('\n');
|
|
62
|
+
}
|
|
63
|
+
await writeFile(overridePath, templateContent);
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Clear AGENTS.override.md back to the empty template.
|
|
68
|
+
*/
|
|
69
|
+
export async function clearOverride(projectRoot) {
|
|
70
|
+
const overridePath = getOverridePath(projectRoot);
|
|
71
|
+
const emptyContent = [
|
|
72
|
+
'<!-- OVERRIDE:START -->',
|
|
73
|
+
'# Project-Specific Overrides',
|
|
74
|
+
'',
|
|
75
|
+
'Add your custom rules and team conventions here.',
|
|
76
|
+
'This file is never overwritten by `rulebook init` or `rulebook update`.',
|
|
77
|
+
'<!-- OVERRIDE:END -->',
|
|
78
|
+
'',
|
|
79
|
+
].join('\n');
|
|
80
|
+
await writeFile(overridePath, emptyContent);
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=override-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"override-manager.js","sourceRoot":"","sources":["../../../src/core/state/override-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v5.3.0 F3 — `.rulebook/STATE.md` auto-regeneration.
|
|
3
|
+
*
|
|
4
|
+
* Renders a short (<40 line) machine-written status file imported by
|
|
5
|
+
* CLAUDE.md via `@.rulebook/STATE.md`. Updated on every task state
|
|
6
|
+
* change. Users can opt out by adding a `manual: true` YAML
|
|
7
|
+
* frontmatter flag.
|
|
8
|
+
*/
|
|
9
|
+
export declare const STATE_FILE = ".rulebook/STATE.md";
|
|
10
|
+
export interface StateSnapshot {
|
|
11
|
+
activeTask?: {
|
|
12
|
+
id: string;
|
|
13
|
+
phase: string;
|
|
14
|
+
progress: string;
|
|
15
|
+
} | null;
|
|
16
|
+
lastQualityGate?: string | null;
|
|
17
|
+
healthScore?: number | null;
|
|
18
|
+
updatedAt: string;
|
|
19
|
+
}
|
|
20
|
+
export declare function getStatePath(projectRoot: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* Check whether the STATE.md has `manual: true` frontmatter, meaning
|
|
23
|
+
* the user maintains it by hand and rulebook should not touch it.
|
|
24
|
+
*/
|
|
25
|
+
export declare function isManuallyMaintained(projectRoot: string): Promise<boolean>;
|
|
26
|
+
/**
|
|
27
|
+
* Write or overwrite `.rulebook/STATE.md` with the given snapshot.
|
|
28
|
+
* No-op if the file has `manual: true` frontmatter.
|
|
29
|
+
*/
|
|
30
|
+
export declare function writeState(projectRoot: string, snapshot: StateSnapshot): Promise<{
|
|
31
|
+
path: string;
|
|
32
|
+
written: boolean;
|
|
33
|
+
}>;
|
|
34
|
+
//# sourceMappingURL=state-writer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-writer.d.ts","sourceRoot":"","sources":["../../../src/core/state/state-writer.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AAEH,eAAO,MAAM,UAAU,uBAAuB,CAAC;AAE/C,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACpE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAKhF;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,aAAa,GACtB,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAU7C"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import { writeFile, fileExists, readFile, ensureDir } from '../../utils/file-system.js';
|
|
3
|
+
/**
|
|
4
|
+
* v5.3.0 F3 — `.rulebook/STATE.md` auto-regeneration.
|
|
5
|
+
*
|
|
6
|
+
* Renders a short (<40 line) machine-written status file imported by
|
|
7
|
+
* CLAUDE.md via `@.rulebook/STATE.md`. Updated on every task state
|
|
8
|
+
* change. Users can opt out by adding a `manual: true` YAML
|
|
9
|
+
* frontmatter flag.
|
|
10
|
+
*/
|
|
11
|
+
export const STATE_FILE = '.rulebook/STATE.md';
|
|
12
|
+
export function getStatePath(projectRoot) {
|
|
13
|
+
return path.join(projectRoot, STATE_FILE);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Check whether the STATE.md has `manual: true` frontmatter, meaning
|
|
17
|
+
* the user maintains it by hand and rulebook should not touch it.
|
|
18
|
+
*/
|
|
19
|
+
export async function isManuallyMaintained(projectRoot) {
|
|
20
|
+
const target = getStatePath(projectRoot);
|
|
21
|
+
if (!(await fileExists(target)))
|
|
22
|
+
return false;
|
|
23
|
+
const content = await readFile(target);
|
|
24
|
+
return /^---\n[\s\S]*?manual:\s*true/m.test(content);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Write or overwrite `.rulebook/STATE.md` with the given snapshot.
|
|
28
|
+
* No-op if the file has `manual: true` frontmatter.
|
|
29
|
+
*/
|
|
30
|
+
export async function writeState(projectRoot, snapshot) {
|
|
31
|
+
if (await isManuallyMaintained(projectRoot)) {
|
|
32
|
+
return { path: getStatePath(projectRoot), written: false };
|
|
33
|
+
}
|
|
34
|
+
const target = getStatePath(projectRoot);
|
|
35
|
+
await ensureDir(path.dirname(target));
|
|
36
|
+
const content = renderState(snapshot);
|
|
37
|
+
await writeFile(target, content);
|
|
38
|
+
return { path: target, written: true };
|
|
39
|
+
}
|
|
40
|
+
function renderState(s) {
|
|
41
|
+
const lines = [
|
|
42
|
+
'<!-- Auto-generated by rulebook v5.3.0. Do not edit — changes will be overwritten. -->',
|
|
43
|
+
'<!-- Add `manual: true` frontmatter to opt out of auto-generation. -->',
|
|
44
|
+
'',
|
|
45
|
+
'# Project state',
|
|
46
|
+
'',
|
|
47
|
+
`**Last updated**: ${s.updatedAt}`,
|
|
48
|
+
'',
|
|
49
|
+
];
|
|
50
|
+
if (s.activeTask) {
|
|
51
|
+
lines.push(`## Active task`);
|
|
52
|
+
lines.push('');
|
|
53
|
+
lines.push(`- **ID**: \`${s.activeTask.id}\``);
|
|
54
|
+
lines.push(`- **Phase**: ${s.activeTask.phase}`);
|
|
55
|
+
lines.push(`- **Progress**: ${s.activeTask.progress}`);
|
|
56
|
+
lines.push('');
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
lines.push('## Active task');
|
|
60
|
+
lines.push('');
|
|
61
|
+
lines.push('No active task.');
|
|
62
|
+
lines.push('');
|
|
63
|
+
}
|
|
64
|
+
if (s.lastQualityGate) {
|
|
65
|
+
lines.push(`## Quality gate`);
|
|
66
|
+
lines.push('');
|
|
67
|
+
lines.push(`- **Last status**: ${s.lastQualityGate}`);
|
|
68
|
+
lines.push('');
|
|
69
|
+
}
|
|
70
|
+
if (s.healthScore != null) {
|
|
71
|
+
lines.push(`## Health`);
|
|
72
|
+
lines.push('');
|
|
73
|
+
lines.push(`- **Score**: ${s.healthScore}/100`);
|
|
74
|
+
lines.push('');
|
|
75
|
+
}
|
|
76
|
+
return lines.join('\n');
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=state-writer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-writer.js","sourceRoot":"","sources":["../../../src/core/state/state-writer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type BumpType = 'major' | 'minor' | 'patch';
|
|
2
|
+
export interface VersionBumpResult {
|
|
3
|
+
oldVersion: string;
|
|
4
|
+
newVersion: string;
|
|
5
|
+
filesUpdated: string[];
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Bump semantic version
|
|
9
|
+
*/
|
|
10
|
+
export declare function bumpVersion(version: string, type: BumpType): string;
|
|
11
|
+
/**
|
|
12
|
+
* Get current version from project files
|
|
13
|
+
*/
|
|
14
|
+
export declare function getCurrentVersion(projectDir: string): Promise<string | null>;
|
|
15
|
+
/**
|
|
16
|
+
* Bump version across all project files
|
|
17
|
+
*/
|
|
18
|
+
export declare function bumpProjectVersion(projectDir: string, bumpType: BumpType): Promise<VersionBumpResult>;
|
|
19
|
+
//# sourceMappingURL=version-bumper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-bumper.d.ts","sourceRoot":"","sources":["../../../src/core/state/version-bumper.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAEnD,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,CAyBnE;AA+GD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA0BlF;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,iBAAiB,CAAC,CA4C5B"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { readFile, writeFile, fileExists } from '../../utils/file-system.js';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { exec } from 'child_process';
|
|
4
|
+
import { promisify } from 'util';
|
|
5
|
+
const execAsync = promisify(exec);
|
|
6
|
+
/**
|
|
7
|
+
* Bump semantic version
|
|
8
|
+
*/
|
|
9
|
+
export function bumpVersion(version, type) {
|
|
10
|
+
const parts = version.replace(/^v/, '').split('.').map(Number);
|
|
11
|
+
if (parts.length !== 3 || parts.some(isNaN)) {
|
|
12
|
+
throw new Error(`Invalid version format: ${version}`);
|
|
13
|
+
}
|
|
14
|
+
let [major, minor, patch] = parts;
|
|
15
|
+
switch (type) {
|
|
16
|
+
case 'major':
|
|
17
|
+
major += 1;
|
|
18
|
+
minor = 0;
|
|
19
|
+
patch = 0;
|
|
20
|
+
break;
|
|
21
|
+
case 'minor':
|
|
22
|
+
minor += 1;
|
|
23
|
+
patch = 0;
|
|
24
|
+
break;
|
|
25
|
+
case 'patch':
|
|
26
|
+
patch += 1;
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
return `${major}.${minor}.${patch}`;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Update version in package.json
|
|
33
|
+
*/
|
|
34
|
+
async function updatePackageJson(projectDir, newVersion) {
|
|
35
|
+
const packagePath = path.join(projectDir, 'package.json');
|
|
36
|
+
if (!(await fileExists(packagePath))) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
const content = await readFile(packagePath);
|
|
40
|
+
const pkg = JSON.parse(content);
|
|
41
|
+
pkg.version = newVersion;
|
|
42
|
+
await writeFile(packagePath, JSON.stringify(pkg, null, 2) + '\n');
|
|
43
|
+
return true;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Update version in Cargo.toml
|
|
47
|
+
*/
|
|
48
|
+
async function updateCargoToml(projectDir, newVersion) {
|
|
49
|
+
const cargoPath = path.join(projectDir, 'Cargo.toml');
|
|
50
|
+
if (!(await fileExists(cargoPath))) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
let content = await readFile(cargoPath);
|
|
54
|
+
content = content.replace(/^version\s*=\s*"[^"]+"/m, `version = "${newVersion}"`);
|
|
55
|
+
await writeFile(cargoPath, content);
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Update version in pyproject.toml
|
|
60
|
+
*/
|
|
61
|
+
async function updatePyprojectToml(projectDir, newVersion) {
|
|
62
|
+
const pyprojectPath = path.join(projectDir, 'pyproject.toml');
|
|
63
|
+
if (!(await fileExists(pyprojectPath))) {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
let content = await readFile(pyprojectPath);
|
|
67
|
+
content = content.replace(/^version\s*=\s*"[^"]+"/m, `version = "${newVersion}"`);
|
|
68
|
+
await writeFile(pyprojectPath, content);
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Update version in mix.exs (Elixir)
|
|
73
|
+
*/
|
|
74
|
+
async function updateMixExs(projectDir, newVersion) {
|
|
75
|
+
const mixPath = path.join(projectDir, 'mix.exs');
|
|
76
|
+
if (!(await fileExists(mixPath))) {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
let content = await readFile(mixPath);
|
|
80
|
+
content = content.replace(/version:\s*"[^"]+"/, `version: "${newVersion}"`);
|
|
81
|
+
await writeFile(mixPath, content);
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Update version in build.gradle.kts (Kotlin)
|
|
86
|
+
*/
|
|
87
|
+
async function updateGradleKts(projectDir, newVersion) {
|
|
88
|
+
const gradlePath = path.join(projectDir, 'build.gradle.kts');
|
|
89
|
+
if (!(await fileExists(gradlePath))) {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
let content = await readFile(gradlePath);
|
|
93
|
+
content = content.replace(/version\s*=\s*"[^"]+"/, `version = "${newVersion}"`);
|
|
94
|
+
await writeFile(gradlePath, content);
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Update version in .csproj (C#)
|
|
99
|
+
*/
|
|
100
|
+
async function updateCsproj(projectDir, newVersion) {
|
|
101
|
+
const csprojFiles = await execAsync(`find . -maxdepth 2 -name "*.csproj" 2>/dev/null || true`, {
|
|
102
|
+
cwd: projectDir,
|
|
103
|
+
});
|
|
104
|
+
if (!csprojFiles.stdout.trim()) {
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
const csprojPath = path.join(projectDir, csprojFiles.stdout.trim().split('\n')[0].replace('./', ''));
|
|
108
|
+
let content = await readFile(csprojPath);
|
|
109
|
+
content = content.replace(/<Version>[^<]+<\/Version>/, `<Version>${newVersion}</Version>`);
|
|
110
|
+
await writeFile(csprojPath, content);
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Get current version from project files
|
|
115
|
+
*/
|
|
116
|
+
export async function getCurrentVersion(projectDir) {
|
|
117
|
+
// Check package.json
|
|
118
|
+
const packagePath = path.join(projectDir, 'package.json');
|
|
119
|
+
if (await fileExists(packagePath)) {
|
|
120
|
+
const content = await readFile(packagePath);
|
|
121
|
+
const pkg = JSON.parse(content);
|
|
122
|
+
return pkg.version;
|
|
123
|
+
}
|
|
124
|
+
// Check Cargo.toml
|
|
125
|
+
const cargoPath = path.join(projectDir, 'Cargo.toml');
|
|
126
|
+
if (await fileExists(cargoPath)) {
|
|
127
|
+
const content = await readFile(cargoPath);
|
|
128
|
+
const match = content.match(/^version\s*=\s*"([^"]+)"/m);
|
|
129
|
+
if (match)
|
|
130
|
+
return match[1];
|
|
131
|
+
}
|
|
132
|
+
// Check pyproject.toml
|
|
133
|
+
const pyprojectPath = path.join(projectDir, 'pyproject.toml');
|
|
134
|
+
if (await fileExists(pyprojectPath)) {
|
|
135
|
+
const content = await readFile(pyprojectPath);
|
|
136
|
+
const match = content.match(/^version\s*=\s*"([^"]+)"/m);
|
|
137
|
+
if (match)
|
|
138
|
+
return match[1];
|
|
139
|
+
}
|
|
140
|
+
return null;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Bump version across all project files
|
|
144
|
+
*/
|
|
145
|
+
export async function bumpProjectVersion(projectDir, bumpType) {
|
|
146
|
+
const currentVersion = await getCurrentVersion(projectDir);
|
|
147
|
+
if (!currentVersion) {
|
|
148
|
+
throw new Error('Could not find version in project files');
|
|
149
|
+
}
|
|
150
|
+
const newVersion = bumpVersion(currentVersion, bumpType);
|
|
151
|
+
const filesUpdated = [];
|
|
152
|
+
// Update all version files
|
|
153
|
+
if (await updatePackageJson(projectDir, newVersion)) {
|
|
154
|
+
filesUpdated.push('package.json');
|
|
155
|
+
}
|
|
156
|
+
if (await updateCargoToml(projectDir, newVersion)) {
|
|
157
|
+
filesUpdated.push('Cargo.toml');
|
|
158
|
+
}
|
|
159
|
+
if (await updatePyprojectToml(projectDir, newVersion)) {
|
|
160
|
+
filesUpdated.push('pyproject.toml');
|
|
161
|
+
}
|
|
162
|
+
if (await updateMixExs(projectDir, newVersion)) {
|
|
163
|
+
filesUpdated.push('mix.exs');
|
|
164
|
+
}
|
|
165
|
+
if (await updateGradleKts(projectDir, newVersion)) {
|
|
166
|
+
filesUpdated.push('build.gradle.kts');
|
|
167
|
+
}
|
|
168
|
+
if (await updateCsproj(projectDir, newVersion)) {
|
|
169
|
+
filesUpdated.push('*.csproj');
|
|
170
|
+
}
|
|
171
|
+
if (filesUpdated.length === 0) {
|
|
172
|
+
throw new Error('No version files found to update');
|
|
173
|
+
}
|
|
174
|
+
return {
|
|
175
|
+
oldVersion: currentVersion,
|
|
176
|
+
newVersion,
|
|
177
|
+
filesUpdated,
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=version-bumper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-bumper.js","sourceRoot":"","sources":["../../../src/core/state/version-bumper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Decision, DecisionStatus } from '../../types.js';
|
|
2
|
+
export declare class DecisionManager {
|
|
3
|
+
private decisionsPath;
|
|
4
|
+
constructor(projectRoot: string, rulebookDir?: string);
|
|
5
|
+
private ensureDir;
|
|
6
|
+
getNextId(): Promise<number>;
|
|
7
|
+
create(title: string, options?: {
|
|
8
|
+
context?: string;
|
|
9
|
+
decision?: string;
|
|
10
|
+
alternatives?: string[];
|
|
11
|
+
consequences?: string;
|
|
12
|
+
relatedTasks?: string[];
|
|
13
|
+
status?: DecisionStatus;
|
|
14
|
+
}): Promise<Decision>;
|
|
15
|
+
list(status?: DecisionStatus): Promise<Decision[]>;
|
|
16
|
+
show(id: number): Promise<{
|
|
17
|
+
decision: Decision;
|
|
18
|
+
content: string;
|
|
19
|
+
} | null>;
|
|
20
|
+
update(id: number, fields: Partial<Pick<Decision, 'status' | 'context' | 'decision' | 'consequences' | 'alternatives'>>): Promise<Decision | null>;
|
|
21
|
+
supersede(oldId: number, newId: number): Promise<boolean>;
|
|
22
|
+
getForGenerator(): Promise<string>;
|
|
23
|
+
private renderMarkdown;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=decision-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decision-manager.d.ts","sourceRoot":"","sources":["../../../src/core/tasks/decision-manager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAe/D,qBAAa,eAAe;IAC1B,OAAO,CAAC,aAAa,CAAS;gBAElB,WAAW,EAAE,MAAM,EAAE,WAAW,GAAE,MAAoB;IAIlE,OAAO,CAAC,SAAS;IAMX,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAW5B,MAAM,CACV,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;QACP,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,MAAM,CAAC,EAAE,cAAc,CAAC;KACpB,GACL,OAAO,CAAC,QAAQ,CAAC;IA4Cd,IAAI,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAoBlD,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAmBzE,MAAM,CACV,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,OAAO,CACb,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,cAAc,GAAG,cAAc,CAAC,CACpF,GACA,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAkCrB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BzD,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAqBxC,OAAO,CAAC,cAAc;CAsBvB"}
|