@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
package/.dockerignore
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Minimal secure Docker build context baseline
|
|
2
|
+
|
|
3
|
+
# --- Allowlist only what Dockerfile copies ---
|
|
4
|
+
**
|
|
5
|
+
!Dockerfile
|
|
6
|
+
!kaseki
|
|
7
|
+
!kaseki-agent.sh
|
|
8
|
+
!run-kaseki.sh
|
|
9
|
+
!package.json
|
|
10
|
+
!package-lock.json
|
|
11
|
+
!tsconfig.json
|
|
12
|
+
!jest.config.js
|
|
13
|
+
!src/
|
|
14
|
+
!src/**
|
|
15
|
+
!.dockerignore
|
|
16
|
+
!README.md
|
|
17
|
+
!CLAUDE.md
|
|
18
|
+
!CONTRIBUTING.md
|
|
19
|
+
!STYLE.md
|
|
20
|
+
!docs/
|
|
21
|
+
!docs/**
|
|
22
|
+
!ops/
|
|
23
|
+
!ops/**
|
|
24
|
+
!scripts/
|
|
25
|
+
!scripts/**
|
|
26
|
+
!test/
|
|
27
|
+
!test/fixtures/
|
|
28
|
+
!test/fixtures/**
|
|
29
|
+
!docker/
|
|
30
|
+
!docker/workspace-cache/
|
|
31
|
+
!docker/workspace-cache/package.json
|
|
32
|
+
!docker/workspace-cache/package-lock.json
|
|
33
|
+
|
|
34
|
+
# --- Common exclusions (explicit for clarity) ---
|
|
35
|
+
.git
|
|
36
|
+
.gitignore
|
|
37
|
+
node_modules
|
|
38
|
+
*.log
|
|
39
|
+
.env
|
|
40
|
+
.env.*
|
|
41
|
+
.DS_Store
|
|
42
|
+
.vscode
|
|
43
|
+
.idea
|
|
44
|
+
*.swp
|
|
45
|
+
*.swo
|
|
46
|
+
|
|
47
|
+
# Test / coverage artifacts
|
|
48
|
+
coverage
|
|
49
|
+
.nyc_output
|
|
50
|
+
*.lcov
|
|
51
|
+
junit*.xml
|
|
52
|
+
|
|
53
|
+
.github/
|
|
54
|
+
dist/
|
package/.eslintignore
ADDED
package/.eslintrc.json
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
{
|
|
2
|
+
"env": {
|
|
3
|
+
"node": true,
|
|
4
|
+
"es2024": true
|
|
5
|
+
},
|
|
6
|
+
"parserOptions": {
|
|
7
|
+
"ecmaVersion": 2024,
|
|
8
|
+
"sourceType": "module"
|
|
9
|
+
},
|
|
10
|
+
"extends": [
|
|
11
|
+
"eslint:recommended"
|
|
12
|
+
],
|
|
13
|
+
"overrides": [
|
|
14
|
+
{
|
|
15
|
+
"files": [
|
|
16
|
+
"src/**/*.ts",
|
|
17
|
+
"perf/**/*.ts"
|
|
18
|
+
],
|
|
19
|
+
"parser": "@typescript-eslint/parser",
|
|
20
|
+
"parserOptions": {
|
|
21
|
+
"ecmaVersion": 2024,
|
|
22
|
+
"sourceType": "module"
|
|
23
|
+
},
|
|
24
|
+
"extends": [
|
|
25
|
+
"eslint:recommended",
|
|
26
|
+
"plugin:@typescript-eslint/recommended"
|
|
27
|
+
],
|
|
28
|
+
"plugins": [
|
|
29
|
+
"@typescript-eslint"
|
|
30
|
+
],
|
|
31
|
+
"rules": {
|
|
32
|
+
"no-unused-vars": "off",
|
|
33
|
+
"@typescript-eslint/no-unused-vars": [
|
|
34
|
+
"warn",
|
|
35
|
+
{
|
|
36
|
+
"argsIgnorePattern": "^_"
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
"@typescript-eslint/no-explicit-any": "off"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"rules": {
|
|
44
|
+
"indent": [
|
|
45
|
+
"warn",
|
|
46
|
+
2
|
|
47
|
+
],
|
|
48
|
+
"linebreak-style": [
|
|
49
|
+
"error",
|
|
50
|
+
"unix"
|
|
51
|
+
],
|
|
52
|
+
"quotes": [
|
|
53
|
+
"warn",
|
|
54
|
+
"single",
|
|
55
|
+
{
|
|
56
|
+
"avoidEscape": true
|
|
57
|
+
}
|
|
58
|
+
],
|
|
59
|
+
"semi": [
|
|
60
|
+
"warn",
|
|
61
|
+
"always"
|
|
62
|
+
],
|
|
63
|
+
"no-trailing-spaces": "warn",
|
|
64
|
+
"no-multiple-empty-lines": [
|
|
65
|
+
"warn",
|
|
66
|
+
{
|
|
67
|
+
"max": 1
|
|
68
|
+
}
|
|
69
|
+
],
|
|
70
|
+
"no-console": "off",
|
|
71
|
+
"no-process-exit": "off",
|
|
72
|
+
"no-empty": [
|
|
73
|
+
"error",
|
|
74
|
+
{
|
|
75
|
+
"allowEmptyCatch": true
|
|
76
|
+
}
|
|
77
|
+
],
|
|
78
|
+
"no-unused-vars": [
|
|
79
|
+
"warn",
|
|
80
|
+
{
|
|
81
|
+
"argsIgnorePattern": "^_"
|
|
82
|
+
}
|
|
83
|
+
]
|
|
84
|
+
},
|
|
85
|
+
"ignorePatterns": [
|
|
86
|
+
"node_modules/",
|
|
87
|
+
".git/",
|
|
88
|
+
"docker/",
|
|
89
|
+
"/kaseki-runs/",
|
|
90
|
+
"/kaseki-results/",
|
|
91
|
+
"/kaseki-cache/",
|
|
92
|
+
"dist/",
|
|
93
|
+
"**/*.log"
|
|
94
|
+
]
|
|
95
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug Report
|
|
3
|
+
about: Report a bug or unexpected behavior
|
|
4
|
+
title: "[BUG] "
|
|
5
|
+
labels: bug
|
|
6
|
+
assignees: ""
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Description
|
|
10
|
+
|
|
11
|
+
A clear and concise description of what the bug is.
|
|
12
|
+
|
|
13
|
+
## Steps to Reproduce
|
|
14
|
+
|
|
15
|
+
1. Run command: `...`
|
|
16
|
+
2. Use environment: `...`
|
|
17
|
+
3. Observe error in: `...`
|
|
18
|
+
|
|
19
|
+
## Expected Behavior
|
|
20
|
+
|
|
21
|
+
What should have happened?
|
|
22
|
+
|
|
23
|
+
## Actual Behavior
|
|
24
|
+
|
|
25
|
+
What actually happened instead?
|
|
26
|
+
|
|
27
|
+
## Environment
|
|
28
|
+
|
|
29
|
+
- **Kaseki-agent version**: (e.g., v0.1.0)
|
|
30
|
+
- **Docker version**: `docker --version`
|
|
31
|
+
- **Operating System**: (e.g., Ubuntu 24.04, macOS 13)
|
|
32
|
+
- **Node.js version**: `node --version` (if running locally)
|
|
33
|
+
- **Python version**: (if applicable)
|
|
34
|
+
|
|
35
|
+
## Logs & Error Output
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
Paste full error message, stack trace, or logs here
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
If relevant, share artifacts from `/agents/kaseki-results/kaseki-N/`:
|
|
42
|
+
- `stdout.log`
|
|
43
|
+
- `stderr.log`
|
|
44
|
+
- `quality.log`
|
|
45
|
+
- `validation.log`
|
|
46
|
+
|
|
47
|
+
## Additional Context
|
|
48
|
+
|
|
49
|
+
Any other context or screenshots that might help diagnose the issue?
|
|
50
|
+
|
|
51
|
+
## Possible Solution
|
|
52
|
+
|
|
53
|
+
(Optional) Do you have any ideas about what's causing this or how to fix it?
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature Request
|
|
3
|
+
about: Suggest an enhancement or new feature
|
|
4
|
+
title: "[FEATURE] "
|
|
5
|
+
labels: feature
|
|
6
|
+
assignees: ""
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Description
|
|
10
|
+
|
|
11
|
+
A clear and concise description of the feature you'd like to see.
|
|
12
|
+
|
|
13
|
+
## Problem Statement
|
|
14
|
+
|
|
15
|
+
What problem does this feature solve? What is the use case?
|
|
16
|
+
|
|
17
|
+
## Proposed Solution
|
|
18
|
+
|
|
19
|
+
How would you like this feature to work?
|
|
20
|
+
|
|
21
|
+
## Example Usage
|
|
22
|
+
|
|
23
|
+
Show an example of how the feature would be used:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
./run-kaseki.sh --new-flag
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Or a code example:
|
|
30
|
+
|
|
31
|
+
```typescript
|
|
32
|
+
// How would this look?
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Alternative Solutions
|
|
36
|
+
|
|
37
|
+
Have you considered any alternative approaches?
|
|
38
|
+
|
|
39
|
+
## Additional Context
|
|
40
|
+
|
|
41
|
+
Any other information, mock-ups, or design documents?
|
|
42
|
+
|
|
43
|
+
## Is this a breaking change?
|
|
44
|
+
|
|
45
|
+
- [ ] Yes, this would break existing usage
|
|
46
|
+
- [ ] No, this is backward compatible
|
|
47
|
+
|
|
48
|
+
## Priority
|
|
49
|
+
|
|
50
|
+
- [ ] Critical (blocks important workflows)
|
|
51
|
+
- [ ] High (nice to have, frequently requested)
|
|
52
|
+
- [ ] Medium (useful enhancement)
|
|
53
|
+
- [ ] Low (polish or niche use case)
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Security Vulnerability
|
|
3
|
+
about: Report a security issue (CONFIDENTIAL)
|
|
4
|
+
title: "[SECURITY] "
|
|
5
|
+
labels: security
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
**IMPORTANT:** Please do NOT disclose security vulnerabilities publicly. Instead, report them privately via GitHub's security advisory feature.
|
|
9
|
+
|
|
10
|
+
## Vulnerability Description
|
|
11
|
+
|
|
12
|
+
Describe the security issue clearly and concisely.
|
|
13
|
+
|
|
14
|
+
## Affected Component
|
|
15
|
+
|
|
16
|
+
Which part of kaseki-agent is affected?
|
|
17
|
+
- [ ] API key/credential handling
|
|
18
|
+
- [ ] Docker container security
|
|
19
|
+
- [ ] Dependency vulnerability
|
|
20
|
+
- [ ] CI/CD workflow security
|
|
21
|
+
- [ ] Other: ___________
|
|
22
|
+
|
|
23
|
+
## Severity
|
|
24
|
+
|
|
25
|
+
- [ ] Critical (immediate threat; remote exploitation; affects production)
|
|
26
|
+
- [ ] High (elevated risk; no immediate exposure)
|
|
27
|
+
- [ ] Medium (potential risk; requires specific conditions)
|
|
28
|
+
- [ ] Low (informational; defense-in-depth)
|
|
29
|
+
|
|
30
|
+
## Steps to Reproduce
|
|
31
|
+
|
|
32
|
+
(Optional, if safe to include)
|
|
33
|
+
|
|
34
|
+
## Impact
|
|
35
|
+
|
|
36
|
+
What is the potential impact if this vulnerability is exploited?
|
|
37
|
+
|
|
38
|
+
## Suggested Fix
|
|
39
|
+
|
|
40
|
+
(Optional) Do you have a suggested remediation?
|
|
41
|
+
|
|
42
|
+
## Timeline
|
|
43
|
+
|
|
44
|
+
When did you discover this? When can we expect public disclosure (if any)?
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
**To report privately:**
|
|
49
|
+
1. Go to **Settings** → **Security** → **Report a vulnerability**
|
|
50
|
+
2. Or email security@cyanautomation.com (if available)
|
|
51
|
+
3. Do not open a public issue
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
## What does this PR do?
|
|
2
|
+
|
|
3
|
+
Brief summary of the changes:
|
|
4
|
+
|
|
5
|
+
## Related Issue(s)
|
|
6
|
+
|
|
7
|
+
Closes #123 (reference issue number, if any)
|
|
8
|
+
|
|
9
|
+
## Type of Change
|
|
10
|
+
|
|
11
|
+
- [ ] Bug fix (non-breaking change that fixes an issue)
|
|
12
|
+
- [ ] New feature (non-breaking change that adds functionality)
|
|
13
|
+
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
|
|
14
|
+
- [ ] Documentation update
|
|
15
|
+
- [ ] Performance improvement
|
|
16
|
+
- [ ] CI/CD enhancement
|
|
17
|
+
- [ ] Dependencies/security update
|
|
18
|
+
|
|
19
|
+
## Testing
|
|
20
|
+
|
|
21
|
+
- [ ] Unit tests added or updated
|
|
22
|
+
- [ ] Integration tests added or updated
|
|
23
|
+
- [ ] Manual testing completed (describe below)
|
|
24
|
+
- [ ] N/A (documentation-only or trivial changes)
|
|
25
|
+
|
|
26
|
+
### Test Details
|
|
27
|
+
|
|
28
|
+
What did you test? How can reviewers verify this works?
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
# Example test command
|
|
32
|
+
npm test
|
|
33
|
+
./run-kaseki.sh --some-flag
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Documentation
|
|
37
|
+
|
|
38
|
+
- [ ] README.md updated (if needed)
|
|
39
|
+
- [ ] CLAUDE.md updated (if needed)
|
|
40
|
+
- [ ] CONTRIBUTING.md updated (if needed)
|
|
41
|
+
- [ ] Inline code comments added (if needed)
|
|
42
|
+
- [ ] N/A (no documentation needed)
|
|
43
|
+
|
|
44
|
+
## Pre-Submission Checklist
|
|
45
|
+
|
|
46
|
+
- [ ] Code follows the style guidelines (TypeScript strict mode, Bash conventions)
|
|
47
|
+
- [ ] No hardcoded secrets, API keys, or credentials
|
|
48
|
+
- [ ] No sensitive information in logs or comments
|
|
49
|
+
- [ ] No unrelated changes included
|
|
50
|
+
- [ ] Commit messages are clear and descriptive
|
|
51
|
+
- [ ] All tests pass locally (`npm test`, shell integration tests)
|
|
52
|
+
- [ ] Git history is clean (no fixup commits if possible)
|
|
53
|
+
|
|
54
|
+
## Breaking Changes
|
|
55
|
+
|
|
56
|
+
Does this PR introduce any breaking changes?
|
|
57
|
+
|
|
58
|
+
- [ ] Yes (describe below)
|
|
59
|
+
- [ ] No
|
|
60
|
+
|
|
61
|
+
### Breaking Change Details
|
|
62
|
+
|
|
63
|
+
If yes, what breaks and why is it necessary?
|
|
64
|
+
|
|
65
|
+
## Reviewers
|
|
66
|
+
|
|
67
|
+
Who should review this? cc @CyanAutomation/maintainers
|
|
68
|
+
|
|
69
|
+
## Additional Notes
|
|
70
|
+
|
|
71
|
+
Any other context or considerations for reviewers?
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
updates:
|
|
3
|
+
# npm dependency updates
|
|
4
|
+
- package-ecosystem: "npm"
|
|
5
|
+
directory: "/"
|
|
6
|
+
schedule:
|
|
7
|
+
# Check for updates weekly (Monday mornings)
|
|
8
|
+
interval: "weekly"
|
|
9
|
+
day: "monday"
|
|
10
|
+
time: "03:00"
|
|
11
|
+
# Only update direct dependencies (not transitive)
|
|
12
|
+
allow:
|
|
13
|
+
- dependency-type: "direct"
|
|
14
|
+
# Create pull requests
|
|
15
|
+
pull-requests:
|
|
16
|
+
# Increase if you want more concurrent PRs
|
|
17
|
+
open-pull-requests-limit: 5
|
|
18
|
+
# Reviewers and assignees
|
|
19
|
+
reviewers:
|
|
20
|
+
- "CyanAutomation/maintainers"
|
|
21
|
+
assignees:
|
|
22
|
+
- "CyanAutomation/maintainers"
|
|
23
|
+
# Add labels for easy filtering
|
|
24
|
+
labels:
|
|
25
|
+
- "infrastructure"
|
|
26
|
+
- "dependencies"
|
|
27
|
+
# Commit message style
|
|
28
|
+
commit-message:
|
|
29
|
+
prefix: "chore(deps)"
|
|
30
|
+
prefix-development: "chore(deps-dev)"
|
|
31
|
+
# Group updates
|
|
32
|
+
groups:
|
|
33
|
+
development-dependencies:
|
|
34
|
+
dependency-types:
|
|
35
|
+
- "dev"
|
|
36
|
+
production-dependencies:
|
|
37
|
+
dependency-types:
|
|
38
|
+
- "prod"
|