steroids-cli 0.4.47
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/LICENSE +21 -0
- package/README.md +640 -0
- package/dist/cli/colors.d.ts +110 -0
- package/dist/cli/colors.d.ts.map +1 -0
- package/dist/cli/colors.js +228 -0
- package/dist/cli/colors.js.map +1 -0
- package/dist/cli/env.d.ts +159 -0
- package/dist/cli/env.d.ts.map +1 -0
- package/dist/cli/env.js +227 -0
- package/dist/cli/env.js.map +1 -0
- package/dist/cli/errors.d.ts +166 -0
- package/dist/cli/errors.d.ts.map +1 -0
- package/dist/cli/errors.js +244 -0
- package/dist/cli/errors.js.map +1 -0
- package/dist/cli/flags.d.ts +75 -0
- package/dist/cli/flags.d.ts.map +1 -0
- package/dist/cli/flags.js +232 -0
- package/dist/cli/flags.js.map +1 -0
- package/dist/cli/help.d.ts +97 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/help.js +275 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/index.d.ts +13 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +29 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/interactive.d.ts +58 -0
- package/dist/cli/interactive.d.ts.map +1 -0
- package/dist/cli/interactive.js +127 -0
- package/dist/cli/interactive.js.map +1 -0
- package/dist/cli/output.d.ts +116 -0
- package/dist/cli/output.d.ts.map +1 -0
- package/dist/cli/output.js +178 -0
- package/dist/cli/output.js.map +1 -0
- package/dist/commands/about.d.ts +7 -0
- package/dist/commands/about.d.ts.map +1 -0
- package/dist/commands/about.js +259 -0
- package/dist/commands/about.js.map +1 -0
- package/dist/commands/ai.d.ts +6 -0
- package/dist/commands/ai.d.ts.map +1 -0
- package/dist/commands/ai.js +382 -0
- package/dist/commands/ai.js.map +1 -0
- package/dist/commands/backup.d.ts +3 -0
- package/dist/commands/backup.d.ts.map +1 -0
- package/dist/commands/backup.js +528 -0
- package/dist/commands/backup.js.map +1 -0
- package/dist/commands/completion.d.ts +3 -0
- package/dist/commands/completion.d.ts.map +1 -0
- package/dist/commands/completion.js +405 -0
- package/dist/commands/completion.js.map +1 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +665 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/disputes.d.ts +3 -0
- package/dist/commands/disputes.d.ts.map +1 -0
- package/dist/commands/disputes.js +499 -0
- package/dist/commands/disputes.js.map +1 -0
- package/dist/commands/gc.d.ts +3 -0
- package/dist/commands/gc.d.ts.map +1 -0
- package/dist/commands/gc.js +300 -0
- package/dist/commands/gc.js.map +1 -0
- package/dist/commands/git.d.ts +3 -0
- package/dist/commands/git.d.ts.map +1 -0
- package/dist/commands/git.js +458 -0
- package/dist/commands/git.js.map +1 -0
- package/dist/commands/health.d.ts +3 -0
- package/dist/commands/health.d.ts.map +1 -0
- package/dist/commands/health.js +604 -0
- package/dist/commands/health.js.map +1 -0
- package/dist/commands/hooks.d.ts +6 -0
- package/dist/commands/hooks.d.ts.map +1 -0
- package/dist/commands/hooks.js +529 -0
- package/dist/commands/hooks.js.map +1 -0
- package/dist/commands/init.d.ts +6 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +200 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/llm.d.ts +7 -0
- package/dist/commands/llm.d.ts.map +1 -0
- package/dist/commands/llm.js +285 -0
- package/dist/commands/llm.js.map +1 -0
- package/dist/commands/locks.d.ts +3 -0
- package/dist/commands/locks.d.ts.map +1 -0
- package/dist/commands/locks.js +431 -0
- package/dist/commands/locks.js.map +1 -0
- package/dist/commands/logs.d.ts +3 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +487 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/loop-phases.d.ts +11 -0
- package/dist/commands/loop-phases.d.ts.map +1 -0
- package/dist/commands/loop-phases.js +204 -0
- package/dist/commands/loop-phases.js.map +1 -0
- package/dist/commands/loop.d.ts +3 -0
- package/dist/commands/loop.d.ts.map +1 -0
- package/dist/commands/loop.js +396 -0
- package/dist/commands/loop.js.map +1 -0
- package/dist/commands/projects.d.ts +6 -0
- package/dist/commands/projects.d.ts.map +1 -0
- package/dist/commands/projects.js +362 -0
- package/dist/commands/projects.js.map +1 -0
- package/dist/commands/purge.d.ts +3 -0
- package/dist/commands/purge.d.ts.map +1 -0
- package/dist/commands/purge.js +516 -0
- package/dist/commands/purge.js.map +1 -0
- package/dist/commands/runners.d.ts +3 -0
- package/dist/commands/runners.d.ts.map +1 -0
- package/dist/commands/runners.js +1076 -0
- package/dist/commands/runners.js.map +1 -0
- package/dist/commands/scan.d.ts +3 -0
- package/dist/commands/scan.d.ts.map +1 -0
- package/dist/commands/scan.js +291 -0
- package/dist/commands/scan.js.map +1 -0
- package/dist/commands/sections-commands.d.ts +9 -0
- package/dist/commands/sections-commands.d.ts.map +1 -0
- package/dist/commands/sections-commands.js +282 -0
- package/dist/commands/sections-commands.js.map +1 -0
- package/dist/commands/sections-graph.d.ts +25 -0
- package/dist/commands/sections-graph.d.ts.map +1 -0
- package/dist/commands/sections-graph.js +180 -0
- package/dist/commands/sections-graph.js.map +1 -0
- package/dist/commands/sections.d.ts +3 -0
- package/dist/commands/sections.d.ts.map +1 -0
- package/dist/commands/sections.js +376 -0
- package/dist/commands/sections.js.map +1 -0
- package/dist/commands/stats.d.ts +6 -0
- package/dist/commands/stats.d.ts.map +1 -0
- package/dist/commands/stats.js +324 -0
- package/dist/commands/stats.js.map +1 -0
- package/dist/commands/tasks.d.ts +3 -0
- package/dist/commands/tasks.d.ts.map +1 -0
- package/dist/commands/tasks.js +1115 -0
- package/dist/commands/tasks.js.map +1 -0
- package/dist/commands/web.d.ts +7 -0
- package/dist/commands/web.d.ts.map +1 -0
- package/dist/commands/web.js +204 -0
- package/dist/commands/web.js.map +1 -0
- package/dist/config/ai-setup.d.ts +27 -0
- package/dist/config/ai-setup.d.ts.map +1 -0
- package/dist/config/ai-setup.js +432 -0
- package/dist/config/ai-setup.js.map +1 -0
- package/dist/config/browser.d.ts +9 -0
- package/dist/config/browser.d.ts.map +1 -0
- package/dist/config/browser.js +200 -0
- package/dist/config/browser.js.map +1 -0
- package/dist/config/json-schema.d.ts +28 -0
- package/dist/config/json-schema.d.ts.map +1 -0
- package/dist/config/json-schema.js +84 -0
- package/dist/config/json-schema.js.map +1 -0
- package/dist/config/loader.d.ts +152 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +270 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/schema.d.ts +34 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +437 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/config/validator.d.ts +32 -0
- package/dist/config/validator.d.ts.map +1 -0
- package/dist/config/validator.js +187 -0
- package/dist/config/validator.js.map +1 -0
- package/dist/database/connection.d.ts +35 -0
- package/dist/database/connection.d.ts.map +1 -0
- package/dist/database/connection.js +208 -0
- package/dist/database/connection.js.map +1 -0
- package/dist/database/queries.d.ts +218 -0
- package/dist/database/queries.d.ts.map +1 -0
- package/dist/database/queries.js +613 -0
- package/dist/database/queries.js.map +1 -0
- package/dist/database/schema.d.ts +8 -0
- package/dist/database/schema.d.ts.map +1 -0
- package/dist/database/schema.js +160 -0
- package/dist/database/schema.js.map +1 -0
- package/dist/disputes/behavior.d.ts +106 -0
- package/dist/disputes/behavior.d.ts.map +1 -0
- package/dist/disputes/behavior.js +150 -0
- package/dist/disputes/behavior.js.map +1 -0
- package/dist/disputes/create.d.ts +59 -0
- package/dist/disputes/create.d.ts.map +1 -0
- package/dist/disputes/create.js +222 -0
- package/dist/disputes/create.js.map +1 -0
- package/dist/disputes/index.d.ts +21 -0
- package/dist/disputes/index.d.ts.map +1 -0
- package/dist/disputes/index.js +76 -0
- package/dist/disputes/index.js.map +1 -0
- package/dist/disputes/markdown.d.ts +41 -0
- package/dist/disputes/markdown.d.ts.map +1 -0
- package/dist/disputes/markdown.js +261 -0
- package/dist/disputes/markdown.js.map +1 -0
- package/dist/disputes/queries.d.ts +83 -0
- package/dist/disputes/queries.d.ts.map +1 -0
- package/dist/disputes/queries.js +180 -0
- package/dist/disputes/queries.js.map +1 -0
- package/dist/disputes/resolve.d.ts +57 -0
- package/dist/disputes/resolve.d.ts.map +1 -0
- package/dist/disputes/resolve.js +171 -0
- package/dist/disputes/resolve.js.map +1 -0
- package/dist/disputes/stale.d.ts +98 -0
- package/dist/disputes/stale.d.ts.map +1 -0
- package/dist/disputes/stale.js +205 -0
- package/dist/disputes/stale.js.map +1 -0
- package/dist/disputes/types.d.ts +92 -0
- package/dist/disputes/types.d.ts.map +1 -0
- package/dist/disputes/types.js +100 -0
- package/dist/disputes/types.js.map +1 -0
- package/dist/git/push.d.ts +26 -0
- package/dist/git/push.d.ts.map +1 -0
- package/dist/git/push.js +97 -0
- package/dist/git/push.js.map +1 -0
- package/dist/git/status.d.ts +61 -0
- package/dist/git/status.d.ts.map +1 -0
- package/dist/git/status.js +251 -0
- package/dist/git/status.js.map +1 -0
- package/dist/hooks/events.d.ts +72 -0
- package/dist/hooks/events.d.ts.map +1 -0
- package/dist/hooks/events.js +120 -0
- package/dist/hooks/events.js.map +1 -0
- package/dist/hooks/index.d.ts +19 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +48 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/integration.d.ts +69 -0
- package/dist/hooks/integration.d.ts.map +1 -0
- package/dist/hooks/integration.js +179 -0
- package/dist/hooks/integration.js.map +1 -0
- package/dist/hooks/merge.d.ts +115 -0
- package/dist/hooks/merge.d.ts.map +1 -0
- package/dist/hooks/merge.js +161 -0
- package/dist/hooks/merge.js.map +1 -0
- package/dist/hooks/orchestrator.d.ts +115 -0
- package/dist/hooks/orchestrator.d.ts.map +1 -0
- package/dist/hooks/orchestrator.js +226 -0
- package/dist/hooks/orchestrator.js.map +1 -0
- package/dist/hooks/payload.d.ts +294 -0
- package/dist/hooks/payload.d.ts.map +1 -0
- package/dist/hooks/payload.js +267 -0
- package/dist/hooks/payload.js.map +1 -0
- package/dist/hooks/script-runner.d.ts +63 -0
- package/dist/hooks/script-runner.d.ts.map +1 -0
- package/dist/hooks/script-runner.js +221 -0
- package/dist/hooks/script-runner.js.map +1 -0
- package/dist/hooks/templates.d.ts +104 -0
- package/dist/hooks/templates.d.ts.map +1 -0
- package/dist/hooks/templates.js +327 -0
- package/dist/hooks/templates.js.map +1 -0
- package/dist/hooks/webhook-runner.d.ts +69 -0
- package/dist/hooks/webhook-runner.d.ts.map +1 -0
- package/dist/hooks/webhook-runner.js +208 -0
- package/dist/hooks/webhook-runner.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +281 -0
- package/dist/index.js.map +1 -0
- package/dist/locking/cleanup.d.ts +70 -0
- package/dist/locking/cleanup.d.ts.map +1 -0
- package/dist/locking/cleanup.js +157 -0
- package/dist/locking/cleanup.js.map +1 -0
- package/dist/locking/queries.d.ts +116 -0
- package/dist/locking/queries.d.ts.map +1 -0
- package/dist/locking/queries.js +255 -0
- package/dist/locking/queries.js.map +1 -0
- package/dist/locking/section-lock.d.ts +74 -0
- package/dist/locking/section-lock.d.ts.map +1 -0
- package/dist/locking/section-lock.js +207 -0
- package/dist/locking/section-lock.js.map +1 -0
- package/dist/locking/task-lock.d.ts +92 -0
- package/dist/locking/task-lock.d.ts.map +1 -0
- package/dist/locking/task-lock.js +246 -0
- package/dist/locking/task-lock.js.map +1 -0
- package/dist/migrations/index.d.ts +7 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +37 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/migrations/manifest.d.ts +92 -0
- package/dist/migrations/manifest.d.ts.map +1 -0
- package/dist/migrations/manifest.js +270 -0
- package/dist/migrations/manifest.js.map +1 -0
- package/dist/migrations/runner.d.ts +84 -0
- package/dist/migrations/runner.d.ts.map +1 -0
- package/dist/migrations/runner.js +351 -0
- package/dist/migrations/runner.js.map +1 -0
- package/dist/orchestrator/coder.d.ts +32 -0
- package/dist/orchestrator/coder.d.ts.map +1 -0
- package/dist/orchestrator/coder.js +174 -0
- package/dist/orchestrator/coder.js.map +1 -0
- package/dist/orchestrator/coordinator.d.ts +28 -0
- package/dist/orchestrator/coordinator.d.ts.map +1 -0
- package/dist/orchestrator/coordinator.js +256 -0
- package/dist/orchestrator/coordinator.js.map +1 -0
- package/dist/orchestrator/reviewer.d.ts +35 -0
- package/dist/orchestrator/reviewer.d.ts.map +1 -0
- package/dist/orchestrator/reviewer.js +241 -0
- package/dist/orchestrator/reviewer.js.map +1 -0
- package/dist/orchestrator/task-selector.d.ts +102 -0
- package/dist/orchestrator/task-selector.d.ts.map +1 -0
- package/dist/orchestrator/task-selector.js +341 -0
- package/dist/orchestrator/task-selector.js.map +1 -0
- package/dist/prompts/coder.d.ts +36 -0
- package/dist/prompts/coder.d.ts.map +1 -0
- package/dist/prompts/coder.js +315 -0
- package/dist/prompts/coder.js.map +1 -0
- package/dist/prompts/prompt-helpers.d.ts +51 -0
- package/dist/prompts/prompt-helpers.d.ts.map +1 -0
- package/dist/prompts/prompt-helpers.js +312 -0
- package/dist/prompts/prompt-helpers.js.map +1 -0
- package/dist/prompts/reviewer.d.ts +40 -0
- package/dist/prompts/reviewer.d.ts.map +1 -0
- package/dist/prompts/reviewer.js +438 -0
- package/dist/prompts/reviewer.js.map +1 -0
- package/dist/providers/api-models.d.ts +65 -0
- package/dist/providers/api-models.d.ts.map +1 -0
- package/dist/providers/api-models.js +323 -0
- package/dist/providers/api-models.js.map +1 -0
- package/dist/providers/claude.d.ts +53 -0
- package/dist/providers/claude.d.ts.map +1 -0
- package/dist/providers/claude.js +229 -0
- package/dist/providers/claude.js.map +1 -0
- package/dist/providers/codex.d.ts +53 -0
- package/dist/providers/codex.d.ts.map +1 -0
- package/dist/providers/codex.js +214 -0
- package/dist/providers/codex.js.map +1 -0
- package/dist/providers/gemini.d.ts +58 -0
- package/dist/providers/gemini.d.ts.map +1 -0
- package/dist/providers/gemini.js +242 -0
- package/dist/providers/gemini.js.map +1 -0
- package/dist/providers/index.d.ts +13 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +49 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/interface.d.ts +173 -0
- package/dist/providers/interface.d.ts.map +1 -0
- package/dist/providers/interface.js +96 -0
- package/dist/providers/interface.js.map +1 -0
- package/dist/providers/invocation-logger.d.ts +114 -0
- package/dist/providers/invocation-logger.d.ts.map +1 -0
- package/dist/providers/invocation-logger.js +298 -0
- package/dist/providers/invocation-logger.js.map +1 -0
- package/dist/providers/openai.d.ts +53 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +232 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/providers/registry.d.ts +100 -0
- package/dist/providers/registry.d.ts.map +1 -0
- package/dist/providers/registry.js +178 -0
- package/dist/providers/registry.js.map +1 -0
- package/dist/runners/activity-log.d.ts +65 -0
- package/dist/runners/activity-log.d.ts.map +1 -0
- package/dist/runners/activity-log.js +148 -0
- package/dist/runners/activity-log.js.map +1 -0
- package/dist/runners/cron.d.ts +26 -0
- package/dist/runners/cron.d.ts.map +1 -0
- package/dist/runners/cron.js +176 -0
- package/dist/runners/cron.js.map +1 -0
- package/dist/runners/daemon.d.ts +71 -0
- package/dist/runners/daemon.d.ts.map +1 -0
- package/dist/runners/daemon.js +245 -0
- package/dist/runners/daemon.js.map +1 -0
- package/dist/runners/global-db.d.ts +31 -0
- package/dist/runners/global-db.d.ts.map +1 -0
- package/dist/runners/global-db.js +230 -0
- package/dist/runners/global-db.js.map +1 -0
- package/dist/runners/hang-detector.d.ts +38 -0
- package/dist/runners/hang-detector.d.ts.map +1 -0
- package/dist/runners/hang-detector.js +136 -0
- package/dist/runners/hang-detector.js.map +1 -0
- package/dist/runners/heartbeat.d.ts +39 -0
- package/dist/runners/heartbeat.d.ts.map +1 -0
- package/dist/runners/heartbeat.js +79 -0
- package/dist/runners/heartbeat.js.map +1 -0
- package/dist/runners/lock.d.ts +47 -0
- package/dist/runners/lock.d.ts.map +1 -0
- package/dist/runners/lock.js +150 -0
- package/dist/runners/lock.js.map +1 -0
- package/dist/runners/orchestrator-loop.d.ts +20 -0
- package/dist/runners/orchestrator-loop.d.ts.map +1 -0
- package/dist/runners/orchestrator-loop.js +285 -0
- package/dist/runners/orchestrator-loop.js.map +1 -0
- package/dist/runners/projects.d.ts +96 -0
- package/dist/runners/projects.d.ts.map +1 -0
- package/dist/runners/projects.js +255 -0
- package/dist/runners/projects.js.map +1 -0
- package/dist/runners/wakeup.d.ts +34 -0
- package/dist/runners/wakeup.d.ts.map +1 -0
- package/dist/runners/wakeup.js +291 -0
- package/dist/runners/wakeup.js.map +1 -0
- package/migrations/001_initial_schema.sql +106 -0
- package/migrations/002_add_commit_sha.sql +12 -0
- package/migrations/003_add_section_priority.sql +13 -0
- package/migrations/004_add_section_dependencies.sql +18 -0
- package/migrations/005_add_audit_actor_model.sql +10 -0
- package/migrations/006_add_task_invocations.sql +33 -0
- package/migrations/007_add_file_anchor.sql +14 -0
- package/migrations/manifest.json +62 -0
- package/package.json +49 -0
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Hook Orchestrator
|
|
4
|
+
*
|
|
5
|
+
* Coordinates hook execution by:
|
|
6
|
+
* 1. Loading hooks from config
|
|
7
|
+
* 2. Matching events to hooks
|
|
8
|
+
* 3. Executing matching hooks (script or webhook)
|
|
9
|
+
* 4. Logging execution results
|
|
10
|
+
* 5. Handling failures gracefully (non-blocking)
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.HookOrchestrator = void 0;
|
|
14
|
+
exports.createOrchestrator = createOrchestrator;
|
|
15
|
+
const merge_js_1 = require("./merge.js");
|
|
16
|
+
const script_runner_js_1 = require("./script-runner.js");
|
|
17
|
+
const webhook_runner_js_1 = require("./webhook-runner.js");
|
|
18
|
+
/**
|
|
19
|
+
* Hook Orchestrator
|
|
20
|
+
*
|
|
21
|
+
* Manages hook lifecycle and execution
|
|
22
|
+
*/
|
|
23
|
+
class HookOrchestrator {
|
|
24
|
+
hooks = [];
|
|
25
|
+
config;
|
|
26
|
+
constructor(hooks = [], config = {}) {
|
|
27
|
+
this.hooks = hooks;
|
|
28
|
+
this.config = {
|
|
29
|
+
verbose: config.verbose ?? false,
|
|
30
|
+
continueOnError: config.continueOnError ?? true,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Load hooks from configuration
|
|
35
|
+
*/
|
|
36
|
+
setHooks(hooks) {
|
|
37
|
+
this.hooks = hooks;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Get all loaded hooks
|
|
41
|
+
*/
|
|
42
|
+
getHooks() {
|
|
43
|
+
return [...this.hooks];
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Get hooks for a specific event
|
|
47
|
+
*/
|
|
48
|
+
getHooksForEvent(event) {
|
|
49
|
+
return (0, merge_js_1.filterHooksByEvent)(this.hooks, event);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Execute all hooks for an event
|
|
53
|
+
*
|
|
54
|
+
* @param event - Event name
|
|
55
|
+
* @param payload - Event payload
|
|
56
|
+
* @returns Array of execution results
|
|
57
|
+
*/
|
|
58
|
+
async executeHooksForEvent(event, payload) {
|
|
59
|
+
const matchingHooks = this.getHooksForEvent(event);
|
|
60
|
+
if (matchingHooks.length === 0) {
|
|
61
|
+
return [];
|
|
62
|
+
}
|
|
63
|
+
if (this.config.verbose) {
|
|
64
|
+
console.log(`[Hooks] Executing ${matchingHooks.length} hook(s) for event: ${event}`);
|
|
65
|
+
}
|
|
66
|
+
const results = [];
|
|
67
|
+
for (const hook of matchingHooks) {
|
|
68
|
+
try {
|
|
69
|
+
// Validate hook configuration
|
|
70
|
+
const validation = (0, merge_js_1.validateHook)(hook);
|
|
71
|
+
if (!validation.valid) {
|
|
72
|
+
const error = `Invalid hook configuration: ${validation.errors.join(', ')}`;
|
|
73
|
+
results.push({
|
|
74
|
+
hookName: hook.name,
|
|
75
|
+
hookType: hook.type,
|
|
76
|
+
success: false,
|
|
77
|
+
duration: 0,
|
|
78
|
+
error,
|
|
79
|
+
});
|
|
80
|
+
if (this.config.verbose) {
|
|
81
|
+
console.error(`[Hooks] ${hook.name}: ${error}`);
|
|
82
|
+
}
|
|
83
|
+
if (!this.config.continueOnError) {
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
// Execute hook based on type
|
|
89
|
+
const result = await this.executeHook(hook, payload);
|
|
90
|
+
results.push(result);
|
|
91
|
+
if (this.config.verbose) {
|
|
92
|
+
if (result.success) {
|
|
93
|
+
console.log(`[Hooks] ${hook.name}: ✓ Success (${result.duration}ms)`);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
console.error(`[Hooks] ${hook.name}: ✗ Failed - ${result.error}`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// Stop if continueOnError is false and hook failed
|
|
100
|
+
if (!result.success && !this.config.continueOnError) {
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
106
|
+
results.push({
|
|
107
|
+
hookName: hook.name,
|
|
108
|
+
hookType: hook.type,
|
|
109
|
+
success: false,
|
|
110
|
+
duration: 0,
|
|
111
|
+
error: errorMsg,
|
|
112
|
+
});
|
|
113
|
+
if (this.config.verbose) {
|
|
114
|
+
console.error(`[Hooks] ${hook.name}: ✗ Exception - ${errorMsg}`);
|
|
115
|
+
}
|
|
116
|
+
if (!this.config.continueOnError) {
|
|
117
|
+
break;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return results;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Execute a single hook
|
|
125
|
+
*/
|
|
126
|
+
async executeHook(hook, payload) {
|
|
127
|
+
if (hook.type === 'script') {
|
|
128
|
+
return this.executeScriptHook(hook, payload);
|
|
129
|
+
}
|
|
130
|
+
else if (hook.type === 'webhook') {
|
|
131
|
+
return this.executeWebhookHook(hook, payload);
|
|
132
|
+
}
|
|
133
|
+
// This should never happen due to TypeScript's discriminated union
|
|
134
|
+
const _exhaustive = hook;
|
|
135
|
+
return {
|
|
136
|
+
hookName: hook.name,
|
|
137
|
+
hookType: hook.type,
|
|
138
|
+
success: false,
|
|
139
|
+
duration: 0,
|
|
140
|
+
error: `Unknown hook type: ${hook.type}`,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Execute a script hook
|
|
145
|
+
*/
|
|
146
|
+
async executeScriptHook(hook, payload) {
|
|
147
|
+
const config = (0, merge_js_1.toScriptRunnerConfig)(hook);
|
|
148
|
+
const scriptResult = await (0, script_runner_js_1.executeScript)(config, payload);
|
|
149
|
+
return {
|
|
150
|
+
hookName: hook.name,
|
|
151
|
+
hookType: 'script',
|
|
152
|
+
success: scriptResult.success,
|
|
153
|
+
duration: scriptResult.duration,
|
|
154
|
+
error: scriptResult.error,
|
|
155
|
+
scriptResult,
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Execute a webhook hook
|
|
160
|
+
*/
|
|
161
|
+
async executeWebhookHook(hook, payload) {
|
|
162
|
+
const config = (0, merge_js_1.toWebhookRunnerConfig)(hook);
|
|
163
|
+
const webhookResult = await (0, webhook_runner_js_1.executeWebhook)(config, payload);
|
|
164
|
+
return {
|
|
165
|
+
hookName: hook.name,
|
|
166
|
+
hookType: 'webhook',
|
|
167
|
+
success: webhookResult.success,
|
|
168
|
+
duration: webhookResult.duration,
|
|
169
|
+
error: webhookResult.error,
|
|
170
|
+
webhookResult,
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Validate all loaded hooks
|
|
175
|
+
*
|
|
176
|
+
* @returns Validation results for each hook
|
|
177
|
+
*/
|
|
178
|
+
validateAllHooks() {
|
|
179
|
+
return this.hooks.map((hook) => {
|
|
180
|
+
const validation = (0, merge_js_1.validateHook)(hook);
|
|
181
|
+
return {
|
|
182
|
+
hook: hook.name,
|
|
183
|
+
valid: validation.valid,
|
|
184
|
+
errors: validation.errors,
|
|
185
|
+
};
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Get statistics about loaded hooks
|
|
190
|
+
*/
|
|
191
|
+
getStats() {
|
|
192
|
+
const stats = {
|
|
193
|
+
total: this.hooks.length,
|
|
194
|
+
enabled: 0,
|
|
195
|
+
disabled: 0,
|
|
196
|
+
byType: {},
|
|
197
|
+
byEvent: {},
|
|
198
|
+
};
|
|
199
|
+
for (const hook of this.hooks) {
|
|
200
|
+
if (hook.enabled === false) {
|
|
201
|
+
stats.disabled++;
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
stats.enabled++;
|
|
205
|
+
}
|
|
206
|
+
stats.byType[hook.type] = (stats.byType[hook.type] || 0) + 1;
|
|
207
|
+
stats.byEvent[hook.event] = (stats.byEvent[hook.event] || 0) + 1;
|
|
208
|
+
}
|
|
209
|
+
return stats;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
exports.HookOrchestrator = HookOrchestrator;
|
|
213
|
+
/**
|
|
214
|
+
* Create a hook orchestrator from global and project hooks
|
|
215
|
+
*
|
|
216
|
+
* @param globalHooks - Hooks from ~/.steroids/config.yaml
|
|
217
|
+
* @param projectHooks - Hooks from .steroids/config.yaml
|
|
218
|
+
* @param config - Orchestrator configuration
|
|
219
|
+
* @returns Configured hook orchestrator
|
|
220
|
+
*/
|
|
221
|
+
function createOrchestrator(globalHooks, projectHooks, config) {
|
|
222
|
+
const { mergeHooks } = require('./merge.js');
|
|
223
|
+
const merged = mergeHooks(globalHooks, projectHooks);
|
|
224
|
+
return new HookOrchestrator(merged, config);
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=orchestrator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/hooks/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hook Payload Schemas
|
|
3
|
+
*
|
|
4
|
+
* Defines the payload structures for each hook event type.
|
|
5
|
+
* Payloads contain all context needed by hook handlers.
|
|
6
|
+
*/
|
|
7
|
+
import type { HookEvent } from './events';
|
|
8
|
+
/**
|
|
9
|
+
* Task status values
|
|
10
|
+
*/
|
|
11
|
+
export type TaskStatus = 'pending' | 'in_progress' | 'completed' | 'review';
|
|
12
|
+
/**
|
|
13
|
+
* Health status values
|
|
14
|
+
*/
|
|
15
|
+
export type HealthStatus = 'healthy' | 'warning' | 'critical';
|
|
16
|
+
/**
|
|
17
|
+
* Dispute status values
|
|
18
|
+
*/
|
|
19
|
+
export type DisputeStatus = 'open' | 'resolved';
|
|
20
|
+
/**
|
|
21
|
+
* Dispute type values
|
|
22
|
+
*/
|
|
23
|
+
export type DisputeType = 'scope' | 'quality' | 'requirements' | 'other';
|
|
24
|
+
/**
|
|
25
|
+
* Dispute resolution values
|
|
26
|
+
*/
|
|
27
|
+
export type DisputeResolution = 'coder_wins' | 'reviewer_wins' | 'compromise' | 'escalated';
|
|
28
|
+
/**
|
|
29
|
+
* Base payload structure for all events
|
|
30
|
+
*/
|
|
31
|
+
export interface BasePayload {
|
|
32
|
+
/** Event name that triggered this hook */
|
|
33
|
+
event: HookEvent;
|
|
34
|
+
/** ISO 8601 timestamp of when the event occurred */
|
|
35
|
+
timestamp: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Project context included in all payloads
|
|
39
|
+
*/
|
|
40
|
+
export interface ProjectContext {
|
|
41
|
+
/** Project name (directory name) */
|
|
42
|
+
name: string;
|
|
43
|
+
/** Absolute path to project root */
|
|
44
|
+
path: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Task data for task-related events
|
|
48
|
+
*/
|
|
49
|
+
export interface TaskData {
|
|
50
|
+
/** Unique task identifier */
|
|
51
|
+
id: string;
|
|
52
|
+
/** Task title/description */
|
|
53
|
+
title: string;
|
|
54
|
+
/** Current task status */
|
|
55
|
+
status: TaskStatus;
|
|
56
|
+
/** Previous status (for update events) */
|
|
57
|
+
previousStatus?: TaskStatus;
|
|
58
|
+
/** Section name the task belongs to */
|
|
59
|
+
section?: string | null;
|
|
60
|
+
/** Section ID the task belongs to */
|
|
61
|
+
sectionId?: string | null;
|
|
62
|
+
/** File where task is defined */
|
|
63
|
+
file?: string;
|
|
64
|
+
/** Line number in source file */
|
|
65
|
+
line?: number;
|
|
66
|
+
/** Original source file for synced tasks */
|
|
67
|
+
sourceFile?: string | null;
|
|
68
|
+
/** Number of times task was rejected */
|
|
69
|
+
rejectionCount?: number;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Section data for section-related events
|
|
73
|
+
*/
|
|
74
|
+
export interface SectionData {
|
|
75
|
+
/** Unique section identifier */
|
|
76
|
+
id: string;
|
|
77
|
+
/** Section name */
|
|
78
|
+
name: string;
|
|
79
|
+
/** Number of tasks in section */
|
|
80
|
+
taskCount: number;
|
|
81
|
+
/** File where section is defined */
|
|
82
|
+
file?: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Task summary for section/project completion
|
|
86
|
+
*/
|
|
87
|
+
export interface TaskSummary {
|
|
88
|
+
/** Task ID */
|
|
89
|
+
id: string;
|
|
90
|
+
/** Task title */
|
|
91
|
+
title: string;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Health data for health-related events
|
|
95
|
+
*/
|
|
96
|
+
export interface HealthData {
|
|
97
|
+
/** Current health score (0-100) */
|
|
98
|
+
score: number;
|
|
99
|
+
/** Previous health score (for change events) */
|
|
100
|
+
previousScore?: number;
|
|
101
|
+
/** Health status category */
|
|
102
|
+
status: HealthStatus;
|
|
103
|
+
/** List of failed check names */
|
|
104
|
+
failedChecks?: string[];
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Dispute data for dispute-related events
|
|
108
|
+
*/
|
|
109
|
+
export interface DisputeData {
|
|
110
|
+
/** Unique dispute identifier */
|
|
111
|
+
id: string;
|
|
112
|
+
/** Task ID the dispute is about */
|
|
113
|
+
taskId: string;
|
|
114
|
+
/** Type of dispute */
|
|
115
|
+
type: DisputeType;
|
|
116
|
+
/** Dispute status */
|
|
117
|
+
status: DisputeStatus;
|
|
118
|
+
/** Reason for opening dispute */
|
|
119
|
+
reason: string;
|
|
120
|
+
/** Coder's position */
|
|
121
|
+
coderPosition?: string;
|
|
122
|
+
/** Reviewer's position */
|
|
123
|
+
reviewerPosition?: string;
|
|
124
|
+
/** Resolution (for resolved disputes) */
|
|
125
|
+
resolution?: DisputeResolution;
|
|
126
|
+
/** Resolution notes */
|
|
127
|
+
resolutionNotes?: string;
|
|
128
|
+
/** Who created the dispute */
|
|
129
|
+
createdBy: string;
|
|
130
|
+
/** Who resolved the dispute (if resolved) */
|
|
131
|
+
resolvedBy?: string;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Project summary for project completion
|
|
135
|
+
*/
|
|
136
|
+
export interface ProjectSummary {
|
|
137
|
+
/** Total number of tasks in project */
|
|
138
|
+
totalTasks: number;
|
|
139
|
+
/** List of files containing tasks */
|
|
140
|
+
files: string[];
|
|
141
|
+
/** Number of sections */
|
|
142
|
+
sectionCount?: number;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Payload for task.created event
|
|
146
|
+
*/
|
|
147
|
+
export interface TaskCreatedPayload extends BasePayload {
|
|
148
|
+
event: 'task.created';
|
|
149
|
+
task: TaskData;
|
|
150
|
+
project: ProjectContext;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Payload for task.updated event
|
|
154
|
+
*/
|
|
155
|
+
export interface TaskUpdatedPayload extends BasePayload {
|
|
156
|
+
event: 'task.updated';
|
|
157
|
+
task: TaskData;
|
|
158
|
+
project: ProjectContext;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Payload for task.completed event
|
|
162
|
+
*/
|
|
163
|
+
export interface TaskCompletedPayload extends BasePayload {
|
|
164
|
+
event: 'task.completed';
|
|
165
|
+
task: TaskData;
|
|
166
|
+
project: ProjectContext;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Payload for task.failed event
|
|
170
|
+
*/
|
|
171
|
+
export interface TaskFailedPayload extends BasePayload {
|
|
172
|
+
event: 'task.failed';
|
|
173
|
+
task: TaskData;
|
|
174
|
+
project: ProjectContext;
|
|
175
|
+
/** Maximum rejections reached */
|
|
176
|
+
maxRejections: number;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Payload for section.completed event
|
|
180
|
+
*/
|
|
181
|
+
export interface SectionCompletedPayload extends BasePayload {
|
|
182
|
+
event: 'section.completed';
|
|
183
|
+
section: SectionData;
|
|
184
|
+
tasks: TaskSummary[];
|
|
185
|
+
project: ProjectContext;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Payload for project.completed event
|
|
189
|
+
*/
|
|
190
|
+
export interface ProjectCompletedPayload extends BasePayload {
|
|
191
|
+
event: 'project.completed';
|
|
192
|
+
project: ProjectContext;
|
|
193
|
+
summary: ProjectSummary;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Payload for health.changed event
|
|
197
|
+
*/
|
|
198
|
+
export interface HealthChangedPayload extends BasePayload {
|
|
199
|
+
event: 'health.changed';
|
|
200
|
+
project: ProjectContext;
|
|
201
|
+
health: HealthData;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Payload for health.critical event
|
|
205
|
+
*/
|
|
206
|
+
export interface HealthCriticalPayload extends BasePayload {
|
|
207
|
+
event: 'health.critical';
|
|
208
|
+
project: ProjectContext;
|
|
209
|
+
health: HealthData;
|
|
210
|
+
/** Threshold that was violated */
|
|
211
|
+
threshold: number;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Payload for dispute.created event
|
|
215
|
+
*/
|
|
216
|
+
export interface DisputeCreatedPayload extends BasePayload {
|
|
217
|
+
event: 'dispute.created';
|
|
218
|
+
dispute: DisputeData;
|
|
219
|
+
task: TaskData;
|
|
220
|
+
project: ProjectContext;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Payload for dispute.resolved event
|
|
224
|
+
*/
|
|
225
|
+
export interface DisputeResolvedPayload extends BasePayload {
|
|
226
|
+
event: 'dispute.resolved';
|
|
227
|
+
dispute: DisputeData;
|
|
228
|
+
task: TaskData;
|
|
229
|
+
project: ProjectContext;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Union of all task event payloads
|
|
233
|
+
*/
|
|
234
|
+
export type TaskEventPayload = TaskCreatedPayload | TaskUpdatedPayload | TaskCompletedPayload | TaskFailedPayload;
|
|
235
|
+
/**
|
|
236
|
+
* Union of all health event payloads
|
|
237
|
+
*/
|
|
238
|
+
export type HealthEventPayload = HealthChangedPayload | HealthCriticalPayload;
|
|
239
|
+
/**
|
|
240
|
+
* Union of all dispute event payloads
|
|
241
|
+
*/
|
|
242
|
+
export type DisputeEventPayload = DisputeCreatedPayload | DisputeResolvedPayload;
|
|
243
|
+
/**
|
|
244
|
+
* Union of all possible hook payloads
|
|
245
|
+
*/
|
|
246
|
+
export type HookPayload = TaskCreatedPayload | TaskUpdatedPayload | TaskCompletedPayload | TaskFailedPayload | SectionCompletedPayload | ProjectCompletedPayload | HealthChangedPayload | HealthCriticalPayload | DisputeCreatedPayload | DisputeResolvedPayload;
|
|
247
|
+
/**
|
|
248
|
+
* Create a task.created payload
|
|
249
|
+
*/
|
|
250
|
+
export declare function createTaskCreatedPayload(task: TaskData, project: ProjectContext): TaskCreatedPayload;
|
|
251
|
+
/**
|
|
252
|
+
* Create a task.updated payload
|
|
253
|
+
*/
|
|
254
|
+
export declare function createTaskUpdatedPayload(task: TaskData, project: ProjectContext): TaskUpdatedPayload;
|
|
255
|
+
/**
|
|
256
|
+
* Create a task.completed payload
|
|
257
|
+
*/
|
|
258
|
+
export declare function createTaskCompletedPayload(task: TaskData, project: ProjectContext): TaskCompletedPayload;
|
|
259
|
+
/**
|
|
260
|
+
* Create a task.failed payload
|
|
261
|
+
*/
|
|
262
|
+
export declare function createTaskFailedPayload(task: TaskData, project: ProjectContext, maxRejections: number): TaskFailedPayload;
|
|
263
|
+
/**
|
|
264
|
+
* Create a section.completed payload
|
|
265
|
+
*/
|
|
266
|
+
export declare function createSectionCompletedPayload(section: SectionData, tasks: TaskSummary[], project: ProjectContext): SectionCompletedPayload;
|
|
267
|
+
/**
|
|
268
|
+
* Create a project.completed payload
|
|
269
|
+
*/
|
|
270
|
+
export declare function createProjectCompletedPayload(project: ProjectContext, summary: ProjectSummary): ProjectCompletedPayload;
|
|
271
|
+
/**
|
|
272
|
+
* Create a health.changed payload
|
|
273
|
+
*/
|
|
274
|
+
export declare function createHealthChangedPayload(project: ProjectContext, health: HealthData): HealthChangedPayload;
|
|
275
|
+
/**
|
|
276
|
+
* Create a health.critical payload
|
|
277
|
+
*/
|
|
278
|
+
export declare function createHealthCriticalPayload(project: ProjectContext, health: HealthData, threshold: number): HealthCriticalPayload;
|
|
279
|
+
/**
|
|
280
|
+
* Create a dispute.created payload
|
|
281
|
+
*/
|
|
282
|
+
export declare function createDisputeCreatedPayload(dispute: DisputeData, task: TaskData, project: ProjectContext): DisputeCreatedPayload;
|
|
283
|
+
/**
|
|
284
|
+
* Create a dispute.resolved payload
|
|
285
|
+
*/
|
|
286
|
+
export declare function createDisputeResolvedPayload(dispute: DisputeData, task: TaskData, project: ProjectContext): DisputeResolvedPayload;
|
|
287
|
+
/**
|
|
288
|
+
* Validate that a payload has required fields for its event type
|
|
289
|
+
*/
|
|
290
|
+
export declare function validatePayload(payload: HookPayload): {
|
|
291
|
+
valid: boolean;
|
|
292
|
+
errors: string[];
|
|
293
|
+
};
|
|
294
|
+
//# sourceMappingURL=payload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../src/hooks/payload.ts"],"names":[],"mappings":"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"}
|