@cyanautomation/kaseki-agent 1.4.1
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/.dockerignore +54 -0
- package/.eslintignore +11 -0
- package/.eslintrc.json +95 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +53 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +53 -0
- package/.github/ISSUE_TEMPLATE/security.md +51 -0
- package/.github/PULL_REQUEST_TEMPLATE/default.md +71 -0
- package/.github/dependabot.yml +38 -0
- package/.github/skills/dependency-cache-optimization/SKILL.md +526 -0
- package/.github/skills/docker-image-management/SKILL.md +532 -0
- package/.github/skills/frontend-design/SKILL.md +782 -0
- package/.github/skills/prompt-engineering/SKILL.md +360 -0
- package/.github/skills/quality-gate-config/SKILL.md +591 -0
- package/.github/skills/result-report-analysis/SKILL.md +576 -0
- package/.github/skills/test-automation/SKILL.md +593 -0
- package/.github/skills/workflow-diagnosis/SKILL.md +468 -0
- package/.github/workflows/build-docker-image.yml +453 -0
- package/.github/workflows/release.yml +68 -0
- package/.releaserc.json +135 -0
- package/CHANGELOG.md +117 -0
- package/CLAUDE.md +336 -0
- package/CONTRIBUTING.md +339 -0
- package/Dockerfile +217 -0
- package/README.md +1527 -0
- package/STYLE.md +521 -0
- package/add-js-extensions.d.ts +9 -0
- package/add-js-extensions.d.ts.map +1 -0
- package/add-js-extensions.js.map +1 -0
- package/dist/add-js-extensions.d.ts +9 -0
- package/dist/add-js-extensions.d.ts.map +1 -0
- package/dist/add-js-extensions.js +52 -0
- package/dist/add-js-extensions.js.map +1 -0
- package/dist/ansi-colors.d.ts +26 -0
- package/dist/ansi-colors.d.ts.map +1 -0
- package/dist/ansi-colors.js +51 -0
- package/dist/ansi-colors.js.map +1 -0
- package/dist/cli/BaseCommand.d.ts +18 -0
- package/dist/cli/BaseCommand.d.ts.map +1 -0
- package/dist/cli/BaseCommand.js +31 -0
- package/dist/cli/BaseCommand.js.map +1 -0
- package/dist/cli/KasekiCLI.d.ts +30 -0
- package/dist/cli/KasekiCLI.d.ts.map +1 -0
- package/dist/cli/KasekiCLI.js +134 -0
- package/dist/cli/KasekiCLI.js.map +1 -0
- package/dist/cli/commands/ConfigCommand.d.ts +13 -0
- package/dist/cli/commands/ConfigCommand.d.ts.map +1 -0
- package/dist/cli/commands/ConfigCommand.js +131 -0
- package/dist/cli/commands/ConfigCommand.js.map +1 -0
- package/dist/cli/commands/DoctorCommand.d.ts +45 -0
- package/dist/cli/commands/DoctorCommand.d.ts.map +1 -0
- package/dist/cli/commands/DoctorCommand.js +309 -0
- package/dist/cli/commands/DoctorCommand.js.map +1 -0
- package/dist/cli/commands/ListCommand.d.ts +9 -0
- package/dist/cli/commands/ListCommand.d.ts.map +1 -0
- package/dist/cli/commands/ListCommand.js +81 -0
- package/dist/cli/commands/ListCommand.js.map +1 -0
- package/dist/cli/commands/ReportCommand.d.ts +9 -0
- package/dist/cli/commands/ReportCommand.d.ts.map +1 -0
- package/dist/cli/commands/ReportCommand.js +98 -0
- package/dist/cli/commands/ReportCommand.js.map +1 -0
- package/dist/cli/commands/RunCommand.d.ts +13 -0
- package/dist/cli/commands/RunCommand.d.ts.map +1 -0
- package/dist/cli/commands/RunCommand.js +191 -0
- package/dist/cli/commands/RunCommand.js.map +1 -0
- package/dist/cli/commands/SecretsCommand.d.ts +9 -0
- package/dist/cli/commands/SecretsCommand.d.ts.map +1 -0
- package/dist/cli/commands/SecretsCommand.js +109 -0
- package/dist/cli/commands/SecretsCommand.js.map +1 -0
- package/dist/cli/commands/ServeCommand.d.ts +9 -0
- package/dist/cli/commands/ServeCommand.d.ts.map +1 -0
- package/dist/cli/commands/ServeCommand.js +50 -0
- package/dist/cli/commands/ServeCommand.js.map +1 -0
- package/dist/cli/commands/SetupCommand.d.ts +42 -0
- package/dist/cli/commands/SetupCommand.d.ts.map +1 -0
- package/dist/cli/commands/SetupCommand.js +249 -0
- package/dist/cli/commands/SetupCommand.js.map +1 -0
- package/dist/cli.d.ts +9 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +130 -0
- package/dist/cli.js.map +1 -0
- package/dist/config/ConfigManager.d.ts +395 -0
- package/dist/config/ConfigManager.d.ts.map +1 -0
- package/dist/config/ConfigManager.js +446 -0
- package/dist/config/ConfigManager.js.map +1 -0
- package/dist/docker/DockerManager.d.ts +69 -0
- package/dist/docker/DockerManager.d.ts.map +1 -0
- package/dist/docker/DockerManager.js +266 -0
- package/dist/docker/DockerManager.js.map +1 -0
- package/dist/event-aggregator.d.ts +71 -0
- package/dist/event-aggregator.d.ts.map +1 -0
- package/dist/event-aggregator.js +95 -0
- package/dist/event-aggregator.js.map +1 -0
- package/dist/github-app-token.d.ts +16 -0
- package/dist/github-app-token.d.ts.map +1 -0
- package/dist/github-app-token.js +148 -0
- package/dist/github-app-token.js.map +1 -0
- package/dist/idempotency-store.d.ts +61 -0
- package/dist/idempotency-store.d.ts.map +1 -0
- package/dist/idempotency-store.js +321 -0
- package/dist/idempotency-store.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +31 -0
- package/dist/index.js.map +1 -0
- package/dist/instance/InstanceManager.d.ts +81 -0
- package/dist/instance/InstanceManager.d.ts.map +1 -0
- package/dist/instance/InstanceManager.js +220 -0
- package/dist/instance/InstanceManager.js.map +1 -0
- package/dist/instance-metadata-reader.d.ts +48 -0
- package/dist/instance-metadata-reader.d.ts.map +1 -0
- package/dist/instance-metadata-reader.js +94 -0
- package/dist/instance-metadata-reader.js.map +1 -0
- package/dist/instance-state-derivation.d.ts +42 -0
- package/dist/instance-state-derivation.d.ts.map +1 -0
- package/dist/instance-state-derivation.js +133 -0
- package/dist/instance-state-derivation.js.map +1 -0
- package/dist/job-scheduler.d.ts +124 -0
- package/dist/job-scheduler.d.ts.map +1 -0
- package/dist/job-scheduler.js +992 -0
- package/dist/job-scheduler.js.map +1 -0
- package/dist/kaseki-api-client.d.ts +89 -0
- package/dist/kaseki-api-client.d.ts.map +1 -0
- package/dist/kaseki-api-client.js +405 -0
- package/dist/kaseki-api-client.js.map +1 -0
- package/dist/kaseki-api-config.d.ts +34 -0
- package/dist/kaseki-api-config.d.ts.map +1 -0
- package/dist/kaseki-api-config.js +113 -0
- package/dist/kaseki-api-config.js.map +1 -0
- package/dist/kaseki-api-routes.d.ts +13 -0
- package/dist/kaseki-api-routes.d.ts.map +1 -0
- package/dist/kaseki-api-routes.js +559 -0
- package/dist/kaseki-api-routes.js.map +1 -0
- package/dist/kaseki-api-service-wrapper.d.ts +43 -0
- package/dist/kaseki-api-service-wrapper.d.ts.map +1 -0
- package/dist/kaseki-api-service-wrapper.js +150 -0
- package/dist/kaseki-api-service-wrapper.js.map +1 -0
- package/dist/kaseki-api-service.d.ts +16 -0
- package/dist/kaseki-api-service.d.ts.map +1 -0
- package/dist/kaseki-api-service.js +143 -0
- package/dist/kaseki-api-service.js.map +1 -0
- package/dist/kaseki-api-types.d.ts +440 -0
- package/dist/kaseki-api-types.d.ts.map +1 -0
- package/dist/kaseki-api-types.js +64 -0
- package/dist/kaseki-api-types.js.map +1 -0
- package/dist/kaseki-cli-lib.d.ts +219 -0
- package/dist/kaseki-cli-lib.d.ts.map +1 -0
- package/dist/kaseki-cli-lib.js +523 -0
- package/dist/kaseki-cli-lib.js.map +1 -0
- package/dist/kaseki-cli.d.ts +38 -0
- package/dist/kaseki-cli.d.ts.map +1 -0
- package/dist/kaseki-cli.js +559 -0
- package/dist/kaseki-cli.js.map +1 -0
- package/dist/kaseki-report.d.ts +3 -0
- package/dist/kaseki-report.d.ts.map +1 -0
- package/dist/kaseki-report.js +140 -0
- package/dist/kaseki-report.js.map +1 -0
- package/dist/lib/subprocess-helpers.d.ts +98 -0
- package/dist/lib/subprocess-helpers.d.ts.map +1 -0
- package/dist/lib/subprocess-helpers.js +136 -0
- package/dist/lib/subprocess-helpers.js.map +1 -0
- package/dist/logger.d.ts +39 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +79 -0
- package/dist/logger.js.map +1 -0
- package/dist/metrics.d.ts +19 -0
- package/dist/metrics.d.ts.map +1 -0
- package/dist/metrics.js +59 -0
- package/dist/metrics.js.map +1 -0
- package/dist/middleware/job-lookup.d.ts +27 -0
- package/dist/middleware/job-lookup.d.ts.map +1 -0
- package/dist/middleware/job-lookup.js +28 -0
- package/dist/middleware/job-lookup.js.map +1 -0
- package/dist/pi-event-filter.d.ts +3 -0
- package/dist/pi-event-filter.d.ts.map +1 -0
- package/dist/pi-event-filter.js +126 -0
- package/dist/pi-event-filter.js.map +1 -0
- package/dist/pi-progress-stream.d.ts +3 -0
- package/dist/pi-progress-stream.d.ts.map +1 -0
- package/dist/pi-progress-stream.js +205 -0
- package/dist/pi-progress-stream.js.map +1 -0
- package/dist/pi-progress-summarizer.d.ts +61 -0
- package/dist/pi-progress-summarizer.d.ts.map +1 -0
- package/dist/pi-progress-summarizer.js +246 -0
- package/dist/pi-progress-summarizer.js.map +1 -0
- package/dist/pre-flight-validator.d.ts +72 -0
- package/dist/pre-flight-validator.d.ts.map +1 -0
- package/dist/pre-flight-validator.js +513 -0
- package/dist/pre-flight-validator.js.map +1 -0
- package/dist/progress-stream-utils.d.ts +3 -0
- package/dist/progress-stream-utils.d.ts.map +1 -0
- package/dist/progress-stream-utils.js +15 -0
- package/dist/progress-stream-utils.js.map +1 -0
- package/dist/result-cache.d.ts +52 -0
- package/dist/result-cache.d.ts.map +1 -0
- package/dist/result-cache.js +134 -0
- package/dist/result-cache.js.map +1 -0
- package/dist/routes/artifact-routes.d.ts +10 -0
- package/dist/routes/artifact-routes.d.ts.map +1 -0
- package/dist/routes/artifact-routes.js +126 -0
- package/dist/routes/artifact-routes.js.map +1 -0
- package/dist/routes/log-routes.d.ts +8 -0
- package/dist/routes/log-routes.d.ts.map +1 -0
- package/dist/routes/log-routes.js +345 -0
- package/dist/routes/log-routes.js.map +1 -0
- package/dist/routes/status-routes.d.ts +8 -0
- package/dist/routes/status-routes.d.ts.map +1 -0
- package/dist/routes/status-routes.js +82 -0
- package/dist/routes/status-routes.js.map +1 -0
- package/dist/routes/webhook-routes.d.ts +6 -0
- package/dist/routes/webhook-routes.d.ts.map +1 -0
- package/dist/routes/webhook-routes.js +86 -0
- package/dist/routes/webhook-routes.js.map +1 -0
- package/dist/run-artifact-metadata-cache.d.ts +42 -0
- package/dist/run-artifact-metadata-cache.d.ts.map +1 -0
- package/dist/run-artifact-metadata-cache.js +139 -0
- package/dist/run-artifact-metadata-cache.js.map +1 -0
- package/dist/secret-value-cache.d.ts +13 -0
- package/dist/secret-value-cache.d.ts.map +1 -0
- package/dist/secret-value-cache.js +44 -0
- package/dist/secret-value-cache.js.map +1 -0
- package/dist/secrets/SecretsManager.d.ts +80 -0
- package/dist/secrets/SecretsManager.d.ts.map +1 -0
- package/dist/secrets/SecretsManager.js +306 -0
- package/dist/secrets/SecretsManager.js.map +1 -0
- package/dist/test-utils.d.ts +55 -0
- package/dist/test-utils.d.ts.map +1 -0
- package/dist/test-utils.js +48 -0
- package/dist/test-utils.js.map +1 -0
- package/dist/timestamp-tracker.d.ts +75 -0
- package/dist/timestamp-tracker.d.ts.map +1 -0
- package/dist/timestamp-tracker.js +121 -0
- package/dist/timestamp-tracker.js.map +1 -0
- package/dist/utils/failure-artifact-writer.d.ts +29 -0
- package/dist/utils/failure-artifact-writer.d.ts.map +1 -0
- package/dist/utils/failure-artifact-writer.js +157 -0
- package/dist/utils/failure-artifact-writer.js.map +1 -0
- package/dist/utils/file-helpers.d.ts +41 -0
- package/dist/utils/file-helpers.d.ts.map +1 -0
- package/dist/utils/file-helpers.js +143 -0
- package/dist/utils/file-helpers.js.map +1 -0
- package/dist/utils/http-client-factory.d.ts +46 -0
- package/dist/utils/http-client-factory.d.ts.map +1 -0
- package/dist/utils/http-client-factory.js +114 -0
- package/dist/utils/http-client-factory.js.map +1 -0
- package/dist/utils/progress-normalizer.d.ts +13 -0
- package/dist/utils/progress-normalizer.d.ts.map +1 -0
- package/dist/utils/progress-normalizer.js +57 -0
- package/dist/utils/progress-normalizer.js.map +1 -0
- package/dist/utils/response-helpers.d.ts +34 -0
- package/dist/utils/response-helpers.d.ts.map +1 -0
- package/dist/utils/response-helpers.js +78 -0
- package/dist/utils/response-helpers.js.map +1 -0
- package/dist/utils/route-helpers.d.ts +17 -0
- package/dist/utils/route-helpers.d.ts.map +1 -0
- package/dist/utils/route-helpers.js +22 -0
- package/dist/utils/route-helpers.js.map +1 -0
- package/dist/utils/status-response-builder.d.ts +23 -0
- package/dist/utils/status-response-builder.d.ts.map +1 -0
- package/dist/utils/status-response-builder.js +144 -0
- package/dist/utils/status-response-builder.js.map +1 -0
- package/dist/utils/type-guards.d.ts +37 -0
- package/dist/utils/type-guards.d.ts.map +1 -0
- package/dist/utils/type-guards.js +45 -0
- package/dist/utils/type-guards.js.map +1 -0
- package/dist/utils/utf8-helpers.d.ts +32 -0
- package/dist/utils/utf8-helpers.d.ts.map +1 -0
- package/dist/utils/utf8-helpers.js +97 -0
- package/dist/utils/utf8-helpers.js.map +1 -0
- package/dist/utils/webhook-event-builder.d.ts +26 -0
- package/dist/utils/webhook-event-builder.d.ts.map +1 -0
- package/dist/utils/webhook-event-builder.js +77 -0
- package/dist/utils/webhook-event-builder.js.map +1 -0
- package/dist/webhook-manager.d.ts +56 -0
- package/dist/webhook-manager.d.ts.map +1 -0
- package/dist/webhook-manager.js +359 -0
- package/dist/webhook-manager.js.map +1 -0
- package/docker/workspace-cache/package-lock.json +13 -0
- package/docker/workspace-cache/package.json +7 -0
- package/docker-compose.yml +53 -0
- package/docs/API.md +708 -0
- package/docs/BACKLOG.md +19 -0
- package/docs/BUILD_STRATEGY.md +404 -0
- package/docs/CLI.md +569 -0
- package/docs/DEPLOYMENT.md +521 -0
- package/docs/DEVELOPMENT.md +459 -0
- package/docs/DOCKER_SETUP.md +522 -0
- package/docs/ENHANCED_PROGRESS_LOGS.md +264 -0
- package/docs/IMPLEMENTATION_SUMMARY.md +549 -0
- package/docs/INTEGRATION_EXAMPLE.md +217 -0
- package/docs/NPM_SETUP.md +468 -0
- package/docs/PHASE1-4_IMPLEMENTATION.md +302 -0
- package/docs/PHASE1_COMPLETION.md +192 -0
- package/docs/PHASE2_COMPLETION.md +134 -0
- package/docs/PHASE6_MIGRATION.md +392 -0
- package/docs/PRINTF_SAFETY_FIX.md +282 -0
- package/docs/QUALITY_GATES.md +369 -0
- package/docs/SETUP_GUIDE.md +482 -0
- package/docs/TASK_PROMPT_TEMPLATES.md +533 -0
- package/docs/VALIDATION_FIX.md +139 -0
- package/docs/VERIFICATION_CHECKLIST.md +335 -0
- package/docs/repo-maturity.md +760 -0
- package/fix-tests.d.ts +9 -0
- package/fix-tests.d.ts.map +1 -0
- package/fix-tests.js.map +1 -0
- package/fix-tests.ts +53 -0
- package/jest.config.ts +31 -0
- package/kaseki +183 -0
- package/kaseki-agent.sh +1961 -0
- package/ops/logrotate/kaseki +10 -0
- package/package.json +83 -0
- package/perf/README.md +54 -0
- package/perf/pi-event-filter.benchmark.test.ts +98 -0
- package/run-kaseki-json.test.sh +106 -0
- package/run-kaseki.sh +990 -0
- package/scripts/allowlist-helper.sh +56 -0
- package/scripts/cleanup-kaseki.sh +168 -0
- package/scripts/deploy-pi-template.sh +293 -0
- package/scripts/docker-entrypoint.sh +71 -0
- package/scripts/dry-run-allowlist.sh +161 -0
- package/scripts/kaseki-activate.sh +396 -0
- package/scripts/kaseki-api.service +62 -0
- package/scripts/kaseki-container-entrypoint-wrapper.sh +119 -0
- package/scripts/kaseki-container-setup-remote.sh +172 -0
- package/scripts/kaseki-container-setup.sh +193 -0
- package/scripts/kaseki-healthcheck.sh +95 -0
- package/scripts/kaseki-install.sh +50 -0
- package/scripts/kaseki-maturity-score.sh +291 -0
- package/scripts/kaseki-performance-metrics.sh +122 -0
- package/scripts/kaseki-preflight.sh +270 -0
- package/scripts/kaseki-setup.sh +265 -0
- package/scripts/pi-setup-remote.sh +213 -0
- package/scripts/setup-github-labels.sh +42 -0
- package/scripts/suggest-allowlist.sh +68 -0
- package/scripts/templates/MULTI_HOST_DISTRIBUTED.md +337 -0
- package/scripts/templates/REST_API_SERVICE.md +490 -0
- package/scripts/templates/SINGLE_HOST_CLI.md +194 -0
- package/scripts/test-github-app.sh +248 -0
- package/src/add-js-extensions.ts +61 -0
- package/src/ansi-colors.test.ts +62 -0
- package/src/ansi-colors.ts +67 -0
- package/src/cli/BaseCommand.ts +40 -0
- package/src/cli/KasekiCLI.ts +154 -0
- package/src/cli/commands/ConfigCommand.ts +145 -0
- package/src/cli/commands/DoctorCommand.ts +329 -0
- package/src/cli/commands/ListCommand.ts +105 -0
- package/src/cli/commands/ReportCommand.ts +110 -0
- package/src/cli/commands/RunCommand.ts +218 -0
- package/src/cli/commands/SecretsCommand.ts +120 -0
- package/src/cli/commands/ServeCommand.ts +62 -0
- package/src/cli/commands/SetupCommand.ts +301 -0
- package/src/cli.ts +138 -0
- package/src/config/ConfigManager.ts +476 -0
- package/src/docker/DockerManager.ts +319 -0
- package/src/docker-entrypoint-packaging.test.ts +33 -0
- package/src/event-aggregator.test.ts +117 -0
- package/src/event-aggregator.ts +126 -0
- package/src/github-app-token.ts +215 -0
- package/src/idempotency-store.test.ts +117 -0
- package/src/idempotency-store.ts +385 -0
- package/src/index.ts +89 -0
- package/src/instance/InstanceManager.ts +285 -0
- package/src/instance-metadata-reader.test.ts +190 -0
- package/src/instance-metadata-reader.ts +129 -0
- package/src/instance-state-derivation.test.ts +263 -0
- package/src/instance-state-derivation.ts +148 -0
- package/src/job-scheduler.test.ts +1236 -0
- package/src/job-scheduler.ts +1117 -0
- package/src/kaseki-api-client.ts +488 -0
- package/src/kaseki-api-config.test.ts +315 -0
- package/src/kaseki-api-config.ts +175 -0
- package/src/kaseki-api-routes.test.ts +1615 -0
- package/src/kaseki-api-routes.ts +643 -0
- package/src/kaseki-api-service-wrapper.ts +188 -0
- package/src/kaseki-api-service.test.ts +418 -0
- package/src/kaseki-api-service.ts +192 -0
- package/src/kaseki-api-types.ts +320 -0
- package/src/kaseki-cli-lib.test.ts +552 -0
- package/src/kaseki-cli-lib.ts +760 -0
- package/src/kaseki-cli.ts +682 -0
- package/src/kaseki-report.test.ts +118 -0
- package/src/kaseki-report.ts +192 -0
- package/src/lib/subprocess-helpers.ts +177 -0
- package/src/logger.ts +114 -0
- package/src/metrics.ts +66 -0
- package/src/middleware/job-lookup.test.ts +113 -0
- package/src/middleware/job-lookup.ts +45 -0
- package/src/pi-event-filter.test.ts +183 -0
- package/src/pi-event-filter.ts +183 -0
- package/src/pi-progress-stream.ts +287 -0
- package/src/pi-progress-summarizer.test.ts +302 -0
- package/src/pi-progress-summarizer.ts +287 -0
- package/src/pre-flight-validator.test.ts +512 -0
- package/src/pre-flight-validator.ts +618 -0
- package/src/progress-stream-utils.test.ts +35 -0
- package/src/progress-stream-utils.ts +14 -0
- package/src/result-cache.test.ts +195 -0
- package/src/result-cache.ts +181 -0
- package/src/routes/artifact-routes.ts +169 -0
- package/src/routes/log-routes.ts +391 -0
- package/src/routes/status-routes.ts +92 -0
- package/src/routes/webhook-routes.ts +97 -0
- package/src/run-artifact-metadata-cache.test.ts +80 -0
- package/src/run-artifact-metadata-cache.ts +184 -0
- package/src/secret-value-cache.test.ts +66 -0
- package/src/secret-value-cache.ts +55 -0
- package/src/secrets/SecretsManager.ts +343 -0
- package/src/test-utils.ts +81 -0
- package/src/timestamp-tracker.test.ts +134 -0
- package/src/timestamp-tracker.ts +132 -0
- package/src/utils/failure-artifact-writer.ts +187 -0
- package/src/utils/file-helpers.test.ts +235 -0
- package/src/utils/file-helpers.ts +150 -0
- package/src/utils/http-client-factory.test.ts +245 -0
- package/src/utils/http-client-factory.ts +157 -0
- package/src/utils/progress-normalizer.test.ts +442 -0
- package/src/utils/progress-normalizer.ts +68 -0
- package/src/utils/response-helpers.test.ts +122 -0
- package/src/utils/response-helpers.ts +101 -0
- package/src/utils/route-helpers.ts +30 -0
- package/src/utils/status-response-builder.ts +159 -0
- package/src/utils/type-guards.ts +52 -0
- package/src/utils/utf8-helpers.ts +102 -0
- package/src/utils/webhook-event-builder.test.ts +143 -0
- package/src/utils/webhook-event-builder.ts +87 -0
- package/src/webhook-manager.test.ts +152 -0
- package/src/webhook-manager.ts +445 -0
- package/templates/allowlist-api-route.txt +7 -0
- package/templates/allowlist-comprehensive.txt +8 -0
- package/templates/allowlist-parser-fix.txt +6 -0
- package/templates/allowlist-ui-component.txt +9 -0
- package/templates/allowlist-utility.txt +9 -0
- package/test/actual-model-metadata.test.sh +102 -0
- package/test/dry-run.test.sh +131 -0
- package/test/fixtures/kaseki-report-exit-codes/metadata-exit-0.json +1 -0
- package/test/fixtures/kaseki-report-exit-codes/metadata-exit-1.json +1 -0
- package/test/fixtures/kaseki-report-exit-codes/metadata-exit-invalid.json +1 -0
- package/test/fixtures/kaseki-report-exit-codes/metadata-exit-str-0.json +1 -0
- package/test/fixtures/kaseki-report-exit-codes/metadata-exit-str-1.json +1 -0
- package/test/kaseki-api.integration.test.sh +165 -0
- package/test/pi-event-filter-failure.test.sh +83 -0
- package/test/printf-safety-focused.test.sh +99 -0
- package/test/printf-safety-results/results/restoration.jsonl +10 -0
- package/test/printf-safety-results/results/test.jsonl +0 -0
- package/test/printf-safety.test.sh +297 -0
- package/test/validation-fix.test.sh +79 -0
- package/test/validation-integration.test.sh +109 -0
- package/tests/allowlist-glob.test.sh +61 -0
- package/tests/dependency-cache-key.test.sh +48 -0
- package/tests/dependency-restore-mode.test.sh +48 -0
- package/tests/doctor-template-parity.test.sh +95 -0
- package/tests/github-operations.test.sh +142 -0
- package/tests/npm-install-flags.test.sh +58 -0
- package/tests/quality-gates.test.sh +178 -0
- package/tests/repo-memory.test.sh +103 -0
- package/tests/restore-disallowed-changes.test.sh +80 -0
- package/tests/validation-missing-npm-scripts.test.sh +93 -0
- package/tests/validation-strict-mode.test.sh +118 -0
- package/tsconfig.changed.json +7 -0
- package/tsconfig.json +39 -0
|
@@ -0,0 +1,482 @@
|
|
|
1
|
+
# Kaseki Agent Setup Guide
|
|
2
|
+
|
|
3
|
+
**👉 NEW: Using npm package?** See [NPM_SETUP.md](NPM_SETUP.md) for the recommended approach.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Quick Start (< 5 minutes) - NPM Method
|
|
8
|
+
|
|
9
|
+
### Prerequisites
|
|
10
|
+
|
|
11
|
+
- **Node.js v24+** — JavaScript runtime
|
|
12
|
+
- **Docker** (required) — handles containerized agent runs
|
|
13
|
+
- **Git** (required) — for cloning target repositories
|
|
14
|
+
- **OpenRouter API Key** (required) — authenticates Pi agent calls
|
|
15
|
+
- **Linux or macOS**
|
|
16
|
+
|
|
17
|
+
### Installation
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
# Global install (recommended)
|
|
21
|
+
npm install -g @cyanautomation/kaseki-agent
|
|
22
|
+
|
|
23
|
+
# Run setup wizard
|
|
24
|
+
kaseki-agent setup
|
|
25
|
+
|
|
26
|
+
# Verify
|
|
27
|
+
kaseki-agent doctor
|
|
28
|
+
|
|
29
|
+
# Run your first task
|
|
30
|
+
kaseki-agent run https://github.com/CyanAutomation/crudmapper main
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
That's it! For detailed documentation, see [NPM_SETUP.md](NPM_SETUP.md).
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Alternative: Traditional Setup (Shell Scripts)
|
|
38
|
+
|
|
39
|
+
For users preferring shell-based setup:
|
|
40
|
+
|
|
41
|
+
### Prerequisites
|
|
42
|
+
|
|
43
|
+
- **Docker** (required) — handles containerized agent runs
|
|
44
|
+
- **Git** (required) — for cloning target repositories
|
|
45
|
+
- **OpenRouter API Key** (required) — authenticates Pi agent calls
|
|
46
|
+
- **bash/sh** — standard shell
|
|
47
|
+
|
|
48
|
+
### One-Command Bootstrap
|
|
49
|
+
|
|
50
|
+
For a single host setup with automatic dependency checks:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# Clone the repository
|
|
54
|
+
git clone https://github.com/CyanAutomation/kaseki-agent.git /agents/kaseki-template
|
|
55
|
+
cd /agents/kaseki-template
|
|
56
|
+
|
|
57
|
+
# Run interactive setup (checks dependencies, guides you through API key setup)
|
|
58
|
+
./scripts/kaseki-setup.sh
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
This script will:
|
|
62
|
+
|
|
63
|
+
1. Validate Docker is installed (or guide you to install it)
|
|
64
|
+
2. Prompt for your OpenRouter API key securely
|
|
65
|
+
3. Create `~/.kaseki/secrets/openrouter_api_key` with proper permissions (600)
|
|
66
|
+
4. Run final health checks
|
|
67
|
+
5. Confirm you're ready to use kaseki-agent
|
|
68
|
+
|
|
69
|
+
**That's it!** You can now run kaseki-agent directly.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Choosing Your Deployment Pattern
|
|
74
|
+
|
|
75
|
+
Kaseki supports three deployment patterns. Choose the one that matches your needs:
|
|
76
|
+
|
|
77
|
+
| Pattern | Use Case | Complexity | Effort |
|
|
78
|
+
|---------|----------|-----------|--------|
|
|
79
|
+
| **Direct CLI** | One-off runs, local development, single host | Simple | Low |
|
|
80
|
+
| **Remote Activation** | Multi-host setup, controller-driven orchestration | Medium | Medium |
|
|
81
|
+
| **REST API Service** | Long-running service, async execution, distributed orchestration | Complex | High |
|
|
82
|
+
|
|
83
|
+
### Pattern 1: Direct CLI (Recommended for Single Host)
|
|
84
|
+
|
|
85
|
+
**Scenario**: You're on a Pi or single host and want to run kaseki-agent directly.
|
|
86
|
+
|
|
87
|
+
**Setup**: Run `./scripts/kaseki-setup.sh` once, then:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# Run an agent task
|
|
91
|
+
OPENROUTER_API_KEY_FILE=~/.kaseki/secrets/openrouter_api_key \
|
|
92
|
+
./run-kaseki.sh https://github.com/your-org/your-repo main
|
|
93
|
+
|
|
94
|
+
# Health check
|
|
95
|
+
./run-kaseki.sh --doctor
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
**When to use:**
|
|
99
|
+
|
|
100
|
+
- Local development or testing
|
|
101
|
+
- Single Pi/host deployments
|
|
102
|
+
- One-off tasks without orchestration
|
|
103
|
+
- Manual, ad-hoc execution
|
|
104
|
+
|
|
105
|
+
See [scripts/templates/SINGLE_HOST_CLI.md](../scripts/templates/SINGLE_HOST_CLI.md) for detailed steps.
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
### Pattern 2: Remote Activation (Recommended for Multi-Host)
|
|
110
|
+
|
|
111
|
+
**Scenario**: You have a controller machine (Mac, Linux) and want to orchestrate multiple Pi hosts.
|
|
112
|
+
|
|
113
|
+
**Setup**: Run `./scripts/pi-setup-remote.sh` from your controller to bootstrap each Pi:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
# From your controller machine (Mac/Linux)
|
|
117
|
+
./scripts/pi-setup-remote.sh pi@192.168.88.201 sk-or-v1-your-key-here
|
|
118
|
+
|
|
119
|
+
# Or, if you have the key in a file
|
|
120
|
+
./scripts/pi-setup-remote.sh pi@192.168.88.201 ~/my-openrouter-key.txt
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
This will:
|
|
124
|
+
|
|
125
|
+
1. SSH to the remote Pi
|
|
126
|
+
2. Create secrets directory with proper permissions
|
|
127
|
+
3. Securely transfer your API key
|
|
128
|
+
4. Run `kaseki-install.sh` to bootstrap the repository
|
|
129
|
+
5. Validate readiness with `--doctor`
|
|
130
|
+
|
|
131
|
+
Then from your controller, you can trigger runs on the Pi:
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
ssh pi@192.168.88.201 'OPENROUTER_API_KEY_FILE=~/.kaseki/secrets/openrouter_api_key /agents/kaseki-template/run-kaseki.sh https://github.com/your-org/your-repo main'
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**When to use:**
|
|
138
|
+
|
|
139
|
+
- Managing multiple Pi/host instances
|
|
140
|
+
- Controller-driven orchestration
|
|
141
|
+
- Integration with external orchestrators (e.g., OpenClaw)
|
|
142
|
+
- Want idempotent, reproducible setup
|
|
143
|
+
|
|
144
|
+
See [scripts/templates/MULTI_HOST_DISTRIBUTED.md](../scripts/templates/MULTI_HOST_DISTRIBUTED.md) for detailed steps.
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
### Pattern 3: REST API Service (For Advanced Users)
|
|
149
|
+
|
|
150
|
+
**Scenario**: You want a long-running HTTP API service that manages async kaseki-agent runs.
|
|
151
|
+
|
|
152
|
+
**Setup**: Deploy the Docker Compose service:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
cd /agents/kaseki-template
|
|
156
|
+
|
|
157
|
+
# Set your API key(s)
|
|
158
|
+
export KASEKI_API_KEYS=sk-your-secret-key
|
|
159
|
+
|
|
160
|
+
# Start the service
|
|
161
|
+
docker-compose up -d
|
|
162
|
+
|
|
163
|
+
# Verify it's running
|
|
164
|
+
curl http://localhost:8080/api/health
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Then trigger runs via HTTP:
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
curl -X POST http://localhost:8080/api/run \
|
|
171
|
+
-H "Authorization: Bearer sk-your-secret-key" \
|
|
172
|
+
-H "Content-Type: application/json" \
|
|
173
|
+
-d '{
|
|
174
|
+
"repo_url": "https://github.com/your-org/your-repo",
|
|
175
|
+
"git_ref": "main",
|
|
176
|
+
"task_prompt": "Fix the parsing bug"
|
|
177
|
+
}'
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
**When to use:**
|
|
181
|
+
|
|
182
|
+
- Long-running service with async execution
|
|
183
|
+
- Multiple concurrent runs
|
|
184
|
+
- Integration with distributed orchestrators
|
|
185
|
+
- Need HTTP API for external tools
|
|
186
|
+
|
|
187
|
+
See [scripts/templates/REST_API_SERVICE.md](../scripts/templates/REST_API_SERVICE.md) and [docs/DEPLOYMENT.md](DEPLOYMENT.md) for detailed setup.
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## Environment-Specific Installation
|
|
192
|
+
|
|
193
|
+
If you need to manually install dependencies, choose your operating system:
|
|
194
|
+
|
|
195
|
+
### Debian / Ubuntu / Raspberry Pi OS
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
# Update package list
|
|
199
|
+
sudo apt update
|
|
200
|
+
|
|
201
|
+
# Install required dependencies
|
|
202
|
+
sudo apt install -y \
|
|
203
|
+
docker.io \
|
|
204
|
+
git
|
|
205
|
+
|
|
206
|
+
# Optional: Install Node.js (only needed for fallback mode)
|
|
207
|
+
curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash -
|
|
208
|
+
sudo apt install -y nodejs
|
|
209
|
+
|
|
210
|
+
# Start Docker daemon
|
|
211
|
+
sudo systemctl start docker
|
|
212
|
+
sudo systemctl enable docker
|
|
213
|
+
|
|
214
|
+
# (Optional) Add your user to docker group to avoid `sudo`
|
|
215
|
+
sudo usermod -aG docker "$USER"
|
|
216
|
+
# Restart shell or run: newgrp docker
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
### Fedora / RHEL / CentOS Stream
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
# Update package list
|
|
223
|
+
sudo dnf update -y
|
|
224
|
+
|
|
225
|
+
# Install required dependencies
|
|
226
|
+
sudo dnf install -y \
|
|
227
|
+
docker \
|
|
228
|
+
git
|
|
229
|
+
|
|
230
|
+
# Optional: Install Node.js (only needed for fallback mode)
|
|
231
|
+
curl -fsSL https://rpm.nodesource.com/setup_24.x | sudo bash -
|
|
232
|
+
sudo dnf install -y nodejs
|
|
233
|
+
|
|
234
|
+
# Start Docker daemon
|
|
235
|
+
sudo systemctl start docker
|
|
236
|
+
sudo systemctl enable docker
|
|
237
|
+
|
|
238
|
+
# (Optional) Add your user to docker group to avoid `sudo`
|
|
239
|
+
sudo usermod -aG docker "$USER"
|
|
240
|
+
# Restart shell or run: newgrp docker
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
### Arch Linux
|
|
244
|
+
|
|
245
|
+
```bash
|
|
246
|
+
# Update package list
|
|
247
|
+
sudo pacman -Sy
|
|
248
|
+
|
|
249
|
+
# Install required dependencies
|
|
250
|
+
sudo pacman -S --needed \
|
|
251
|
+
docker \
|
|
252
|
+
git
|
|
253
|
+
|
|
254
|
+
# Optional: Install Node.js (only needed for fallback mode)
|
|
255
|
+
sudo pacman -S --needed nodejs npm
|
|
256
|
+
|
|
257
|
+
# Start Docker daemon
|
|
258
|
+
sudo systemctl start docker
|
|
259
|
+
sudo systemctl enable docker
|
|
260
|
+
|
|
261
|
+
# (Optional) Add your user to docker group to avoid `sudo`
|
|
262
|
+
sudo usermod -aG docker "$USER"
|
|
263
|
+
# Restart shell or run: newgrp docker
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
### macOS (for controller/development only)
|
|
267
|
+
|
|
268
|
+
```bash
|
|
269
|
+
# Install Homebrew if not already installed
|
|
270
|
+
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
271
|
+
|
|
272
|
+
# Install Docker Desktop (GUI) or Docker via Homebrew
|
|
273
|
+
brew install --cask docker
|
|
274
|
+
# OR (CLI only)
|
|
275
|
+
brew install docker
|
|
276
|
+
|
|
277
|
+
# Install Git and Node.js (if needed)
|
|
278
|
+
brew install git node
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
## Credential Setup
|
|
284
|
+
|
|
285
|
+
### OpenRouter API Key
|
|
286
|
+
|
|
287
|
+
Your OpenRouter API key authenticates requests to the Pi coding agent.
|
|
288
|
+
|
|
289
|
+
#### Obtain Your Key
|
|
290
|
+
|
|
291
|
+
1. Visit [openrouter.ai/keys](https://openrouter.ai/keys)
|
|
292
|
+
2. Create or copy an existing API key (format: `sk-or-v1-...`)
|
|
293
|
+
|
|
294
|
+
#### Store It Securely
|
|
295
|
+
|
|
296
|
+
```bash
|
|
297
|
+
# Create secrets directory
|
|
298
|
+
mkdir -p ~/.kaseki/secrets
|
|
299
|
+
chmod 700 ~/.kaseki/secrets
|
|
300
|
+
|
|
301
|
+
# Store your key (interactive)
|
|
302
|
+
read -sp 'Enter your OpenRouter API key: ' OPENROUTER_KEY
|
|
303
|
+
echo "$OPENROUTER_KEY" > ~/.kaseki/secrets/openrouter_api_key
|
|
304
|
+
chmod 600 ~/.kaseki/secrets/openrouter_api_key
|
|
305
|
+
|
|
306
|
+
# Or paste from a file
|
|
307
|
+
cp /path/to/your/key.txt ~/.kaseki/secrets/openrouter_api_key
|
|
308
|
+
chmod 600 ~/.kaseki/secrets/openrouter_api_key
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
#### Use It
|
|
312
|
+
|
|
313
|
+
All kaseki commands reference this file:
|
|
314
|
+
|
|
315
|
+
```bash
|
|
316
|
+
OPENROUTER_API_KEY_FILE=~/.kaseki/secrets/openrouter_api_key ./run-kaseki.sh ...
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
Or, for convenience, add to `~/.bashrc` or `~/.zshrc`:
|
|
320
|
+
|
|
321
|
+
```bash
|
|
322
|
+
export OPENROUTER_API_KEY_FILE=~/.kaseki/secrets/openrouter_api_key
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
Then you can simply run:
|
|
326
|
+
|
|
327
|
+
```bash
|
|
328
|
+
./run-kaseki.sh https://github.com/your-org/your-repo main
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
---
|
|
332
|
+
|
|
333
|
+
## Verify Your Setup
|
|
334
|
+
|
|
335
|
+
### Quick Health Check
|
|
336
|
+
|
|
337
|
+
```bash
|
|
338
|
+
./run-kaseki.sh --doctor
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
Expected output:
|
|
342
|
+
|
|
343
|
+
```
|
|
344
|
+
Preflight required dependencies: ok (docker)
|
|
345
|
+
Preflight optional dependencies: ok (curl, wget, sshpass, git, node, npm)
|
|
346
|
+
Docker daemon: running
|
|
347
|
+
Kaseki template image: available
|
|
348
|
+
✓ Setup is ready!
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
### Test a Real Run
|
|
352
|
+
|
|
353
|
+
```bash
|
|
354
|
+
./run-kaseki.sh \
|
|
355
|
+
https://github.com/CyanAutomation/crudmapper \
|
|
356
|
+
main
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
This will:
|
|
360
|
+
|
|
361
|
+
1. Spin up a Docker container (kaseki-1)
|
|
362
|
+
2. Clone the repository
|
|
363
|
+
3. Run the default agent task
|
|
364
|
+
4. Collect artifacts in `/agents/kaseki-results/kaseki-1/`
|
|
365
|
+
|
|
366
|
+
Check the results:
|
|
367
|
+
|
|
368
|
+
```bash
|
|
369
|
+
cat /agents/kaseki-results/kaseki-1/result-summary.md
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
---
|
|
373
|
+
|
|
374
|
+
## Troubleshooting
|
|
375
|
+
|
|
376
|
+
### "Docker daemon not responding"
|
|
377
|
+
|
|
378
|
+
```bash
|
|
379
|
+
# Start Docker (Linux/Raspberry Pi OS)
|
|
380
|
+
sudo systemctl start docker
|
|
381
|
+
|
|
382
|
+
# Or (if not using systemd)
|
|
383
|
+
sudo service docker start
|
|
384
|
+
|
|
385
|
+
# Verify it's running
|
|
386
|
+
docker ps
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
### "Permission denied while trying to connect to Docker daemon"
|
|
390
|
+
|
|
391
|
+
Add your user to the docker group:
|
|
392
|
+
|
|
393
|
+
```bash
|
|
394
|
+
sudo usermod -aG docker "$USER"
|
|
395
|
+
newgrp docker # Apply immediately (or restart shell)
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
### "OpenRouter API key not found"
|
|
399
|
+
|
|
400
|
+
Make sure your key file exists and is readable:
|
|
401
|
+
|
|
402
|
+
```bash
|
|
403
|
+
ls -la ~/.kaseki/secrets/openrouter_api_key
|
|
404
|
+
# Should output: -rw------- ... openrouter_api_key
|
|
405
|
+
|
|
406
|
+
# If not, re-create it
|
|
407
|
+
mkdir -p ~/.kaseki/secrets
|
|
408
|
+
read -sp 'Enter your OpenRouter API key: ' OPENROUTER_KEY
|
|
409
|
+
echo "$OPENROUTER_KEY" > ~/.kaseki/secrets/openrouter_api_key
|
|
410
|
+
chmod 600 ~/.kaseki/secrets/openrouter_api_key
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
### "Missing required host dependencies"
|
|
414
|
+
|
|
415
|
+
Run `./scripts/kaseki-setup.sh` or manually install dependencies:
|
|
416
|
+
|
|
417
|
+
```bash
|
|
418
|
+
# For Ubuntu/Debian
|
|
419
|
+
sudo apt install -y docker.io git
|
|
420
|
+
|
|
421
|
+
# For Fedora/RHEL
|
|
422
|
+
sudo dnf install -y docker git
|
|
423
|
+
|
|
424
|
+
# For Arch
|
|
425
|
+
sudo pacman -S --needed docker git
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
### Agent runs take too long
|
|
429
|
+
|
|
430
|
+
The default timeout is 20 minutes. To adjust:
|
|
431
|
+
|
|
432
|
+
```bash
|
|
433
|
+
KASEKI_AGENT_TIMEOUT_SECONDS=3600 ./run-kaseki.sh ...
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
### Results directory filling up disk
|
|
437
|
+
|
|
438
|
+
Clean up old runs:
|
|
439
|
+
|
|
440
|
+
```bash
|
|
441
|
+
./scripts/cleanup-kaseki.sh
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
By default, keeps 10 most recent runs. Adjust with:
|
|
445
|
+
|
|
446
|
+
```bash
|
|
447
|
+
./scripts/cleanup-kaseki.sh --keep 5
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
---
|
|
451
|
+
|
|
452
|
+
## Next Steps
|
|
453
|
+
|
|
454
|
+
1. **Choose your pattern** — Direct CLI, Remote Activation, or REST API Service
|
|
455
|
+
2. **Follow the appropriate template** — See [scripts/templates/](../scripts/templates/) for detailed steps
|
|
456
|
+
3. **Review quality gates** — Understand constraints in [docs/QUALITY_GATES.md](QUALITY_GATES.md)
|
|
457
|
+
4. **Craft effective task prompts** — See [docs/TASK_PROMPT_TEMPLATES.md](TASK_PROMPT_TEMPLATES.md)
|
|
458
|
+
5. **Monitor results** — Use `kaseki-report`, `kaseki-cli`, or web dashboard
|
|
459
|
+
|
|
460
|
+
---
|
|
461
|
+
|
|
462
|
+
## Advanced Topics
|
|
463
|
+
|
|
464
|
+
- **Dependency Caching**: See [CLAUDE.md](../CLAUDE.md#L159-L165) for 4-layer npm cache strategy
|
|
465
|
+
- **Quality Gates & Allowlists**: See [docs/QUALITY_GATES.md](QUALITY_GATES.md)
|
|
466
|
+
- **Task Prompts**: See [docs/TASK_PROMPT_TEMPLATES.md](TASK_PROMPT_TEMPLATES.md)
|
|
467
|
+
- **REST API Configuration**: See [docs/DEPLOYMENT.md](DEPLOYMENT.md)
|
|
468
|
+
- **Monitoring & CLI**: See [docs/CLI.md](CLI.md)
|
|
469
|
+
|
|
470
|
+
---
|
|
471
|
+
|
|
472
|
+
## Support
|
|
473
|
+
|
|
474
|
+
For issues, questions, or contributions:
|
|
475
|
+
|
|
476
|
+
- Check existing issues: [GitHub Issues](https://github.com/CyanAutomation/kaseki-agent/issues)
|
|
477
|
+
- Review documentation: [docs/](../) folder
|
|
478
|
+
- Report bugs: [New Issue](https://github.com/CyanAutomation/kaseki-agent/issues/new)
|
|
479
|
+
|
|
480
|
+
---
|
|
481
|
+
|
|
482
|
+
**Last updated**: May 7, 2026
|