@pimmesz/afterburner 1.0.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.
@@ -0,0 +1,96 @@
1
+ import {
2
+ ApiKeyRunner,
3
+ BASE_TASK_TOKENS,
4
+ ClaudeCodeRunner,
5
+ ClaudeCodeTranscriptsBudgetProvider,
6
+ ClaudeUsageBudgetProvider,
7
+ ConsoleNotifier,
8
+ DEFAULT_MODEL_BY_CATEGORY,
9
+ DeterministicTaskSelector,
10
+ DryRunRunner,
11
+ JsonlRunStore,
12
+ ManualBudgetProvider,
13
+ TASK_CATEGORIES,
14
+ TASK_TAXONOMY,
15
+ assertModelAllowed,
16
+ budgetFromUsageCache,
17
+ buildClaudeCodeInvocation,
18
+ claudeConfigDir,
19
+ configDir,
20
+ configSchema,
21
+ createBudgetProvider,
22
+ createModelCostTable,
23
+ createRunner,
24
+ createSelector,
25
+ dataDir,
26
+ defaultClaudeProjectsDir,
27
+ defaultCostTable,
28
+ defaultRunStorePath,
29
+ defaultUsageCachePath,
30
+ defineConfig,
31
+ deriveBranchName,
32
+ derivePrTitle,
33
+ formatConfigError,
34
+ generateScheduleArtifacts,
35
+ isFableModel,
36
+ loadConfig,
37
+ mapConfigLoadError,
38
+ parseSimpleCron,
39
+ readUsageCache,
40
+ repoConfigSchema,
41
+ runOnce,
42
+ sanitizeSpawnEnv,
43
+ shouldIgnite,
44
+ startWatch,
45
+ summarizeTranscriptUsage,
46
+ taskFingerprint,
47
+ writeUsageCache
48
+ } from "../chunk-OZAFLQDP.js";
49
+ export {
50
+ ApiKeyRunner,
51
+ BASE_TASK_TOKENS,
52
+ ClaudeCodeRunner,
53
+ ClaudeCodeTranscriptsBudgetProvider,
54
+ ClaudeUsageBudgetProvider,
55
+ ConsoleNotifier,
56
+ DEFAULT_MODEL_BY_CATEGORY,
57
+ DeterministicTaskSelector,
58
+ DryRunRunner,
59
+ JsonlRunStore,
60
+ ManualBudgetProvider,
61
+ TASK_CATEGORIES,
62
+ TASK_TAXONOMY,
63
+ assertModelAllowed,
64
+ budgetFromUsageCache,
65
+ buildClaudeCodeInvocation,
66
+ claudeConfigDir,
67
+ configDir,
68
+ configSchema,
69
+ createBudgetProvider,
70
+ createModelCostTable,
71
+ createRunner,
72
+ createSelector,
73
+ dataDir,
74
+ defaultClaudeProjectsDir,
75
+ defaultCostTable,
76
+ defaultRunStorePath,
77
+ defaultUsageCachePath,
78
+ defineConfig,
79
+ deriveBranchName,
80
+ derivePrTitle,
81
+ formatConfigError,
82
+ generateScheduleArtifacts,
83
+ isFableModel,
84
+ loadConfig,
85
+ mapConfigLoadError,
86
+ parseSimpleCron,
87
+ readUsageCache,
88
+ repoConfigSchema,
89
+ runOnce,
90
+ sanitizeSpawnEnv,
91
+ shouldIgnite,
92
+ startWatch,
93
+ summarizeTranscriptUsage,
94
+ taskFingerprint,
95
+ writeUsageCache
96
+ };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * MCP front-end stub. The CLI is the primary product; the MCP server will be
3
+ * a thin wrapper exposing the same core actions (run-once, log, doctor) as
4
+ * tools for any MCP-compatible host.
5
+ *
6
+ * TODO: implement with the official MCP SDK. Adding that dependency is a
7
+ * deliberate decision deferred from the scaffold; core stays vendor-SDK-free
8
+ * and the server will live behind this entry point only.
9
+ */
10
+ declare const MCP_STUB_MESSAGE: string;
11
+ declare function startMcpServer(): never;
12
+
13
+ export { MCP_STUB_MESSAGE, startMcpServer };
@@ -0,0 +1,8 @@
1
+ import {
2
+ MCP_STUB_MESSAGE,
3
+ startMcpServer
4
+ } from "../chunk-2NSOEZWY.js";
5
+ export {
6
+ MCP_STUB_MESSAGE,
7
+ startMcpServer
8
+ };
package/package.json ADDED
@@ -0,0 +1,75 @@
1
+ {
2
+ "name": "@pimmesz/afterburner",
3
+ "version": "1.0.1",
4
+ "description": "Convert idle Claude subscription quota into shippable engineering work: budget-aware trigger, bounded task selection, PR-only output.",
5
+ "license": "Apache-2.0",
6
+ "publishConfig": {
7
+ "access": "public"
8
+ },
9
+ "type": "module",
10
+ "packageManager": "pnpm@11.5.3",
11
+ "engines": {
12
+ "node": ">=22.12"
13
+ },
14
+ "bin": {
15
+ "afterburner": "./dist/cli/index.js",
16
+ "abr": "./dist/cli/index.js"
17
+ },
18
+ "main": "./dist/core/index.js",
19
+ "types": "./dist/core/index.d.ts",
20
+ "exports": {
21
+ ".": {
22
+ "types": "./dist/core/index.d.ts",
23
+ "import": "./dist/core/index.js",
24
+ "default": "./dist/core/index.js"
25
+ }
26
+ },
27
+ "files": [
28
+ "dist",
29
+ "skill",
30
+ "assets/afterburner-logo.png",
31
+ "afterburner.config.example.ts",
32
+ ".env.example"
33
+ ],
34
+ "scripts": {
35
+ "build": "tsup",
36
+ "prepack": "pnpm build",
37
+ "dev": "tsx src/cli/index.ts",
38
+ "lint": "eslint . && prettier --check .",
39
+ "format": "prettier --write .",
40
+ "typecheck": "tsc --noEmit",
41
+ "test": "vitest run",
42
+ "test:watch": "vitest"
43
+ },
44
+ "repository": {
45
+ "type": "git",
46
+ "url": "https://github.com/pimmesz/afterburner.git"
47
+ },
48
+ "keywords": [
49
+ "claude",
50
+ "claude-code",
51
+ "automation",
52
+ "quota",
53
+ "agent",
54
+ "pull-request"
55
+ ],
56
+ "dependencies": {
57
+ "commander": "^15.0.0",
58
+ "cosmiconfig": "^9.0.2",
59
+ "env-paths": "^4.0.0",
60
+ "node-cron": "^4.2.1",
61
+ "zod": "^4.4.3"
62
+ },
63
+ "devDependencies": {
64
+ "@eslint/js": "^10.0.1",
65
+ "@types/node": "^25.9.2",
66
+ "eslint": "^10.4.1",
67
+ "eslint-config-prettier": "^10.1.8",
68
+ "prettier": "^3.8.4",
69
+ "tsup": "^8.5.1",
70
+ "tsx": "^4.22.4",
71
+ "typescript": "^6.0.3",
72
+ "typescript-eslint": "^8.61.0",
73
+ "vitest": "^4.1.8"
74
+ }
75
+ }
package/skill/SKILL.md ADDED
@@ -0,0 +1,38 @@
1
+ ---
2
+ name: afterburner
3
+ description: Turn leftover Claude subscription quota into a reviewed pull request. Use when the user asks to run afterburner, check whether there is enough Claude budget headroom to ignite a task, inspect afterburner run history, or diagnose an afterburner setup problem.
4
+ allowed-tools: Bash(afterburner *) Bash(abr *)
5
+ ---
6
+
7
+ # Afterburner
8
+
9
+ Afterburner converts idle Claude subscription quota into ONE bounded,
10
+ verifiable engineering task and opens a pull request for human review. It is
11
+ PR-only (never merges, never pushes to a default branch) and dry-run by
12
+ default.
13
+
14
+ This skill is a thin wrapper over the installed `afterburner` CLI. If
15
+ `afterburner --version` fails, tell the user to install it first (from a clone:
16
+ `pnpm install && pnpm build && npm install -g .`, see the README install
17
+ section; the package may not be on npm yet), then re-run their request.
18
+
19
+ ## Commands
20
+
21
+ | Intent | Command |
22
+ | ---------------------------------- | -------------------------------- |
23
+ | Health check / diagnose setup | `afterburner doctor` |
24
+ | Single dry run (what WOULD happen) | `afterburner run-once --dry-run` |
25
+ | Run history (audit trail) | `afterburner log` |
26
+ | Live run | `afterburner run-once --live` |
27
+
28
+ ## Rules
29
+
30
+ - Never bypass the dry-run default: pass `--live` only when the user
31
+ explicitly asks for a live run in this conversation.
32
+ - Report the would-be branch, PR title, and estimated Sonnet-equivalent token
33
+ cost back to the user verbatim from the command output.
34
+ - If `doctor` reports failures, surface its printed fix hints instead of
35
+ improvising your own.
36
+ - Never edit the user's afterburner config to enable a live backend, raise
37
+ budget numbers, or set `allowFable` unless the user explicitly asked for
38
+ that exact change.