@made-by-moonlight/athene-plugin-agent-claude-code 0.9.1 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,15 +1,15 @@
1
- import { type Agent } from "@made-by-moonlight/athene-core";
1
+ import { type Agent, type ContextWindowUsage } from "@made-by-moonlight/athene-core";
2
2
  export { resetPsCache, resolveWorkspaceForClaude, toClaudeProjectPath } from "./activity-detection.js";
3
3
  /** Hook script content that updates session metadata on git/gh commands.
4
4
  * Exported for integration testing. */
5
- export declare const METADATA_UPDATER_SCRIPT = "#!/usr/bin/env bash\n# Metadata Updater Hook for Athene\n#\n# This PostToolUse hook automatically updates session metadata when:\n# - gh pr create: extracts PR URL and writes to metadata\n# - git checkout -b / git switch -c: extracts branch name and writes to metadata\n# - gh pr merge: updates status to \"merged\"\n\nset -euo pipefail\n\n# Configuration\nAO_DATA_DIR=\"${AO_DATA_DIR:-$HOME/.ao-sessions}\"\n\n# Read hook input from stdin\ninput=$(cat)\n\n# Extract fields from JSON (using jq if available, otherwise basic parsing)\nif command -v jq &>/dev/null; then\n tool_name=$(echo \"$input\" | jq -r '.tool_name // empty')\n command=$(echo \"$input\" | jq -r '.tool_input.command // empty')\n output=$(echo \"$input\" | jq -r '.tool_response // empty')\n exit_code=$(echo \"$input\" | jq -r '.exit_code // 0')\nelse\n # Fallback: basic JSON parsing without jq\n tool_name=$(echo \"$input\" | grep -o '\"tool_name\"[[:space:]]*:[[:space:]]*\"[^\"]*\"' | cut -d'\"' -f4 || echo \"\")\n command=$(echo \"$input\" | grep -o '\"command\"[[:space:]]*:[[:space:]]*\"[^\"]*\"' | cut -d'\"' -f4 || echo \"\")\n output=$(echo \"$input\" | grep -o '\"tool_response\"[[:space:]]*:[[:space:]]*\"[^\"]*\"' | cut -d'\"' -f4 || echo \"\")\n exit_code=$(echo \"$input\" | grep -o '\"exit_code\"[[:space:]]*:[[:space:]]*[0-9]*' | grep -o '[0-9]*$' || echo \"0\")\nfi\n\n# Only process successful commands (exit code 0)\nif [[ \"$exit_code\" -ne 0 ]]; then\n echo '{}'\n exit 0\nfi\n\n# Only process Bash tool calls\nif [[ \"$tool_name\" != \"Bash\" ]]; then\n echo '{}' # Empty JSON output\n exit 0\nfi\n\n# Validate AO_SESSION is set\nif [[ -z \"${AO_SESSION:-}\" ]]; then\n echo '{\"systemMessage\": \"AO_SESSION environment variable not set, skipping metadata update\"}'\n exit 0\nfi\n\n# Construct metadata file path\n# AO_DATA_DIR is already set to the project-specific sessions directory\n# V2 storage uses .json extension\nmetadata_file=\"$AO_DATA_DIR/${AO_SESSION}.json\"\n\n# Fallback to bare filename for pre-migration layouts\nif [[ ! -f \"$metadata_file\" ]]; then\n metadata_file=\"$AO_DATA_DIR/$AO_SESSION\"\nfi\n\n# Ensure metadata file exists\nif [[ ! -f \"$metadata_file\" ]]; then\n echo '{\"systemMessage\": \"Metadata file not found: '\"$AO_DATA_DIR/${AO_SESSION}\"'\"}'\n exit 0\nfi\n\n# Detect if metadata file is JSON format\nis_json_metadata() {\n local first_char\n first_char=$(head -c1 \"$metadata_file\" 2>/dev/null)\n [[ \"$first_char\" == \"{\" ]]\n}\n\n# Update a single key in metadata (handles both JSON and key=value formats)\nupdate_metadata_key() {\n local key=\"$1\"\n local value=\"$2\"\n local temp_file=\"${metadata_file}.tmp\"\n\n if is_json_metadata; then\n # JSON format\n if command -v jq &>/dev/null; then\n jq --arg k \"$key\" --arg v \"$value\" '.[$k] = $v' \"$metadata_file\" > \"$temp_file\"\n mv \"$temp_file\" \"$metadata_file\"\n else\n # jq unavailable \u2014 use node (hard dep) for safe nested JSON update\n node -e \"\n const fs = require('fs');\n const d = JSON.parse(fs.readFileSync(process.argv[1], 'utf8'));\n d[process.argv[2]] = process.argv[3];\n fs.writeFileSync(process.argv[4], JSON.stringify(d, null, 2));\n \" \"$metadata_file\" \"$key\" \"$value\" \"$temp_file\"\n mv \"$temp_file\" \"$metadata_file\"\n fi\n else\n # Key=value format (legacy)\n local escaped_value=$(echo \"$value\" | sed 's/[&|\\/]/\\\\&/g')\n if grep -q \"^$key=\" \"$metadata_file\" 2>/dev/null; then\n sed \"s|^$key=.*|$key=$escaped_value|\" \"$metadata_file\" > \"$temp_file\"\n else\n cp \"$metadata_file\" \"$temp_file\"\n echo \"$key=$value\" >> \"$temp_file\"\n fi\n mv \"$temp_file\" \"$metadata_file\"\n fi\n}\n\n# ============================================================================\n# Command Detection and Parsing\n# ============================================================================\n\n# Strip leading directory-change prefixes so that commands like\n# cd ~/.worktrees/project && gh pr create ...\n# are correctly detected. Agents frequently cd into a worktree first.\n# Store the regex pattern in a variable for clarity (avoids shell quoting confusion).\n# Uses space-padded (&&|;) to avoid breaking on paths containing & or ; chars.\ncd_prefix_pattern='^[[:space:]]*cd[[:space:]]+.*[[:space:]]+(&&|;)[[:space:]]+(.*)'\nclean_command=\"$command\"\nwhile [[ \"$clean_command\" =~ ^[[:space:]]*cd[[:space:]] ]]; do\n if [[ \"$clean_command\" =~ $cd_prefix_pattern ]]; then\n clean_command=\"${BASH_REMATCH[2]}\"\n else\n break\n fi\ndone\n\n# Detect: gh pr create\nif [[ \"$clean_command\" =~ ^gh[[:space:]]+pr[[:space:]]+create ]]; then\n sanitized_output=$(printf '%s' \"$output\" | sed -E $'s/\u001B\\[[0-9;]*[A-Za-z]//g')\n # Extract PR URL from output\n pr_url=\"\"\n # GitHub PR URLs are whitespace-delimited in gh output after ANSI stripping.\n if [[ \"$sanitized_output\" =~ (https://github[.]com/[^[:space:]]+/[^[:space:]]+/pull/[0-9]+) ]]; then\n pr_url=\"${BASH_REMATCH[1]}\"\n fi\n\n if [[ -n \"$pr_url\" ]]; then\n update_metadata_key \"pr\" \"$pr_url\"\n # Append to prs field (comma-separated list of all PR URLs for this session).\n # Supports multiple PRs per session \u2014 same repo or different repos.\n existing_prs=\"\"\n if is_json_metadata; then\n if command -v jq &>/dev/null; then\n existing_prs=$(jq -r '.prs // empty' \"$metadata_file\" 2>/dev/null || echo \"\")\n else\n existing_prs=$(node -e \"\n const fs = require('fs');\n const d = JSON.parse(fs.readFileSync(process.argv[1], 'utf8'));\n process.stdout.write(d.prs || '');\n \" \"$metadata_file\" 2>/dev/null || echo \"\")\n fi\n else\n existing_prs=$(grep '^prs=' \"$metadata_file\" 2>/dev/null | cut -d'=' -f2- || echo \"\")\n fi\n if [[ -z \"$existing_prs\" ]]; then\n new_prs=\"$pr_url\"\n else\n # Only append if not already present (exact comma-delimited match to avoid /pull/1 matching /pull/10)\n if ! echo \",$existing_prs,\" | grep -qF \",$pr_url,\"; then\n new_prs=\"$existing_prs,$pr_url\"\n else\n new_prs=\"$existing_prs\"\n fi\n fi\n update_metadata_key \"prs\" \"$new_prs\"\n update_metadata_key \"status\" \"pr_open\"\n echo '{\"systemMessage\": \"Updated metadata: PR created at '\"$pr_url\"'\"}'\n exit 0\n fi\nfi\n\n# Detect: git checkout -b <branch> or git switch -c <branch>\nif [[ \"$clean_command\" =~ ^git[[:space:]]+checkout[[:space:]]+-b[[:space:]]+([^[:space:]]+) ]] || \\\n [[ \"$clean_command\" =~ ^git[[:space:]]+switch[[:space:]]+-c[[:space:]]+([^[:space:]]+) ]]; then\n branch=\"${BASH_REMATCH[1]}\"\n\n if [[ -n \"$branch\" ]]; then\n update_metadata_key \"branch\" \"$branch\"\n echo '{\"systemMessage\": \"Updated metadata: branch = '\"$branch\"'\"}'\n exit 0\n fi\nfi\n\n# Detect: git checkout <branch> (without -b) or git switch <branch> (without -c)\n# Only update if the branch name looks like a feature branch (contains / or -)\nif [[ \"$clean_command\" =~ ^git[[:space:]]+checkout[[:space:]]+([^[:space:]-]+[/-][^[:space:]]+) ]] || \\\n [[ \"$clean_command\" =~ ^git[[:space:]]+switch[[:space:]]+([^[:space:]-]+[/-][^[:space:]]+) ]]; then\n branch=\"${BASH_REMATCH[1]}\"\n\n # Avoid updating for checkout of commits/tags\n if [[ -n \"$branch\" && \"$branch\" != \"HEAD\" ]]; then\n update_metadata_key \"branch\" \"$branch\"\n echo '{\"systemMessage\": \"Updated metadata: branch = '\"$branch\"'\"}'\n exit 0\n fi\nfi\n\n# Detect: gh pr merge\nif [[ \"$clean_command\" =~ ^gh[[:space:]]+pr[[:space:]]+merge ]]; then\n update_metadata_key \"status\" \"merged\"\n echo '{\"systemMessage\": \"Updated metadata: status = merged\"}'\n exit 0\nfi\n\n# No matching command, exit silently\necho '{}'\nexit 0\n";
5
+ export declare const METADATA_UPDATER_SCRIPT: string;
6
6
  /**
7
7
  * Node.js equivalent of METADATA_UPDATER_SCRIPT for Windows.
8
8
  * Reads JSON from stdin, parses it with Node built-ins, and updates the
9
9
  * key=value metadata file. No bash, jq, grep, sed, or chmod needed.
10
10
  * Exported for testing.
11
11
  */
12
- export declare const METADATA_UPDATER_SCRIPT_NODE = "#!/usr/bin/env node\n// Metadata Updater Hook for Athene (Node.js \u2014 Windows)\n//\n// This PostToolUse hook automatically updates session metadata when:\n// - gh pr create: extracts PR URL and writes to metadata\n// - git checkout -b / git switch -c: extracts branch name and writes to metadata\n// - gh pr merge: updates status to \"merged\"\n\nconst { readFileSync, writeFileSync, renameSync, existsSync, realpathSync } = require(\"node:fs\");\nconst { join, sep, resolve: resolvePath } = require(\"node:path\");\nconst os = require(\"node:os\");\n\nconst AO_DATA_DIR = process.env.AO_DATA_DIR || join(process.env.HOME || process.env.USERPROFILE || \"\", \".ao-sessions\");\nconst AO_SESSION = process.env.AO_SESSION || \"\";\n\n// Read hook input from stdin (fd 0 is cross-platform, no /dev/stdin needed)\nlet inputRaw = \"\";\ntry {\n inputRaw = readFileSync(0, \"utf-8\");\n} catch {\n inputRaw = \"\";\n}\n\nlet input;\ntry {\n input = JSON.parse(inputRaw || \"{}\");\n} catch {\n process.stdout.write(\"{}\\n\");\n process.exit(0);\n}\n\nconst toolName = input.tool_name || \"\";\nconst command = (input.tool_input && input.tool_input.command) || \"\";\nconst output = input.tool_response || \"\";\nconst exitCode = typeof input.exit_code === \"number\" ? input.exit_code : 0;\n\n// Only process successful commands\nif (exitCode !== 0) {\n process.stdout.write(\"{}\\n\");\n process.exit(0);\n}\n\n// Only process Bash tool calls\nif (toolName !== \"Bash\") {\n process.stdout.write(\"{}\\n\");\n process.exit(0);\n}\n\n// Validate AO_SESSION is set\nif (!AO_SESSION) {\n process.stdout.write(JSON.stringify({ systemMessage: \"AO_SESSION environment variable not set, skipping metadata update\" }) + \"\\n\");\n process.exit(0);\n}\n\n// Validate AO_SESSION contains no path traversal components\nif (AO_SESSION.includes(\"/\") || AO_SESSION.includes(\"\\\\\") || AO_SESSION.includes(\"..\")) {\n process.stdout.write(JSON.stringify({ systemMessage: \"AO_SESSION contains invalid path characters, skipping metadata update\" }) + \"\\n\");\n process.exit(0);\n}\n\n// Validate AO_DATA_DIR is within an allowed base directory (mirrors ao-metadata-helper.sh)\nconst home = os.homedir();\nlet resolvedAoDir;\ntry { resolvedAoDir = realpathSync(AO_DATA_DIR); } catch { resolvedAoDir = resolvePath(AO_DATA_DIR); }\nconst allowedBases = [join(home, \".ao\"), join(home, \".agent-orchestrator\"), os.tmpdir()];\nif (!allowedBases.some((a) => resolvedAoDir === a || resolvedAoDir.startsWith(a + sep))) {\n process.stdout.write(JSON.stringify({ systemMessage: \"AO_DATA_DIR is outside allowed directories, skipping metadata update\" }) + \"\\n\");\n process.exit(0);\n}\n\nconst metadataFile = join(AO_DATA_DIR, AO_SESSION);\n\nif (!existsSync(metadataFile)) {\n process.stdout.write(JSON.stringify({ systemMessage: \"Metadata file not found: \" + metadataFile }) + \"\\n\");\n process.exit(0);\n}\n\n/**\n * Update or append a key=value line in the metadata file (atomic via temp file).\n */\nfunction updateMetadataKey(key, value) {\n const lines = readFileSync(metadataFile, \"utf-8\").split(\"\\n\");\n let found = false;\n const updated = lines.map((line) => {\n if (line.startsWith(key + \"=\")) {\n found = true;\n return key + \"=\" + value;\n }\n return line;\n });\n if (!found) {\n // Insert before the trailing empty line (if any) so the file ends cleanly\n updated.push(key + \"=\" + value);\n }\n const tmpFile = metadataFile + \".tmp.\" + process.pid;\n writeFileSync(tmpFile, updated.join(\"\\n\"), \"utf-8\");\n renameSync(tmpFile, metadataFile);\n}\n\n// Strip leading cd ... && / cd ... ; prefixes (agents frequently cd into a\n// worktree before running the real command)\nlet cleanCommand = command;\nconst cdPrefixRe = /^\\s*cd\\s+\\S.*?\\s+(?:&&|;)\\s+(.*)/;\nlet m;\nwhile ((m = cdPrefixRe.exec(cleanCommand)) !== null && /^\\s*cd\\s/.test(cleanCommand)) {\n cleanCommand = m[1];\n}\n\n// Detect: gh pr create\nif (/^gh\\s+pr\\s+create/.test(cleanCommand)) {\n const prMatch = output.match(/https:\\/\\/github[.]com\\/[^/]+\\/[^/]+\\/pull\\/\\d+/);\n if (prMatch) {\n const prUrl = prMatch[0];\n let existingPrs = \"\";\n try {\n const raw = readFileSync(metadataFile, \"utf-8\");\n if (metadataFile.endsWith(\".json\")) {\n existingPrs = JSON.parse(raw).prs || \"\";\n } else {\n const prsLine = raw.split(\"\\n\").find((l) => l.startsWith(\"prs=\"));\n existingPrs = prsLine ? prsLine.slice(4) : \"\";\n }\n } catch {}\n const newPrs = !existingPrs\n ? prUrl\n : existingPrs.split(\",\").map((u) => u.trim()).includes(prUrl)\n ? existingPrs\n : existingPrs + \",\" + prUrl;\n updateMetadataKey(\"pr\", prUrl);\n updateMetadataKey(\"prs\", newPrs);\n updateMetadataKey(\"status\", \"pr_open\");\n process.stdout.write(JSON.stringify({ systemMessage: \"Updated metadata: PR created at \" + prUrl }) + \"\\n\");\n process.exit(0);\n }\n}\n\n// Detect: git checkout -b <branch> or git switch -c <branch>\nconst checkoutNewBranch = cleanCommand.match(/^git\\s+checkout\\s+-b\\s+(\\S+)/) ||\n cleanCommand.match(/^git\\s+switch\\s+-c\\s+(\\S+)/);\nif (checkoutNewBranch) {\n const branch = checkoutNewBranch[1];\n if (branch) {\n updateMetadataKey(\"branch\", branch);\n process.stdout.write(JSON.stringify({ systemMessage: \"Updated metadata: branch = \" + branch }) + \"\\n\");\n process.exit(0);\n }\n}\n\n// Detect: git checkout <branch> or git switch <branch> (without -b/-c)\n// Only update if branch looks like a feature branch (contains / or -)\nconst checkoutBranch = cleanCommand.match(/^git\\s+checkout\\s+([^\\s-]+[/-][^\\s]+)/) ||\n cleanCommand.match(/^git\\s+switch\\s+([^\\s-]+[/-][^\\s]+)/);\nif (checkoutBranch) {\n const branch = checkoutBranch[1];\n if (branch && branch !== \"HEAD\") {\n updateMetadataKey(\"branch\", branch);\n process.stdout.write(JSON.stringify({ systemMessage: \"Updated metadata: branch = \" + branch }) + \"\\n\");\n process.exit(0);\n }\n}\n\n// Detect: gh pr merge\nif (/^gh\\s+pr\\s+merge/.test(cleanCommand)) {\n updateMetadataKey(\"status\", \"merged\");\n process.stdout.write(JSON.stringify({ systemMessage: \"Updated metadata: status = merged\" }) + \"\\n\");\n process.exit(0);\n}\n\n// No matching command\nprocess.stdout.write(\"{}\\n\");\nprocess.exit(0);\n";
12
+ export declare const METADATA_UPDATER_SCRIPT_NODE: string;
13
13
  /**
14
14
  * Bash hook script that translates Claude Code lifecycle hooks into AO activity
15
15
  * JSONL entries. Registered on every event whose firing carries activity
@@ -35,6 +35,27 @@ export declare const ACTIVITY_UPDATER_SCRIPT = "#!/usr/bin/env bash\n# Activity
35
35
  * testing.
36
36
  */
37
37
  export declare const ACTIVITY_UPDATER_SCRIPT_NODE = "#!/usr/bin/env node\n// Activity Updater Hook for Athene (Node.js \u2014 Windows). See\n// ACTIVITY_UPDATER_SCRIPT for the canonical bash version. (#1941)\n\nconst { appendFileSync, mkdirSync, readFileSync } = require(\"node:fs\");\nconst { join } = require(\"node:path\");\n\nlet inputRaw = \"\";\ntry {\n inputRaw = readFileSync(0, \"utf-8\");\n} catch {\n process.stdout.write(\"{}\\n\");\n process.exit(0);\n}\n\nlet payload;\ntry {\n payload = JSON.parse(inputRaw || \"{}\");\n} catch {\n process.stdout.write(\"{}\\n\");\n process.exit(0);\n}\n\nconst event = typeof payload.hook_event_name === \"string\" ? payload.hook_event_name : \"\";\nconst notifType = typeof payload.notification_type === \"string\" ? payload.notification_type : \"\";\nconst toolName = typeof payload.tool_name === \"string\" ? payload.tool_name : \"\";\nconst errorType = typeof payload.error_type === \"string\" ? payload.error_type : \"\";\n\nlet state = \"\";\nlet trigger = \"\";\nswitch (event) {\n case \"SessionStart\":\n case \"Stop\":\n case \"SubagentStop\":\n state = \"ready\";\n trigger = event;\n break;\n case \"UserPromptSubmit\":\n case \"PreToolUse\":\n case \"PostToolUse\":\n case \"PostToolUseFailure\":\n case \"PreCompact\":\n case \"PostCompact\":\n case \"SubagentStart\":\n case \"PostToolBatch\":\n state = \"active\";\n trigger = event;\n break;\n case \"PermissionRequest\":\n state = \"waiting_input\";\n trigger = toolName ? `PermissionRequest (${toolName})` : \"PermissionRequest\";\n break;\n case \"Notification\":\n if (notifType === \"permission_prompt\" || notifType === \"idle_prompt\") {\n state = \"waiting_input\";\n trigger = `Notification (${notifType})`;\n } else {\n process.stdout.write(\"{}\\n\");\n process.exit(0);\n }\n break;\n case \"StopFailure\":\n state = \"blocked\";\n trigger = errorType ? `StopFailure (${errorType})` : \"StopFailure\";\n break;\n default:\n process.stdout.write(\"{}\\n\");\n process.exit(0);\n}\n\nconst workspace = process.env.CLAUDE_PROJECT_DIR || process.cwd();\nconst logDir = join(workspace, \".ao\");\nconst logFile = join(logDir, \"activity.jsonl\");\n\ntry {\n mkdirSync(logDir, { recursive: true });\n} catch {\n process.stdout.write(\"{}\\n\");\n process.exit(0);\n}\n\nconst ts = new Date().toISOString();\nconst entry =\n state === \"waiting_input\" || state === \"blocked\"\n ? { ts, state, source: \"hook\", trigger }\n : { ts, state, source: \"hook\" };\n\ntry {\n appendFileSync(logFile, JSON.stringify(entry) + \"\\n\", \"utf-8\");\n} catch {\n // Best-effort \u2014 never block Claude on log append failure\n}\n\nprocess.stdout.write(\"{}\\n\");\nprocess.exit(0);\n";
38
+ /**
39
+ * PreToolUse hook that blocks native Claude subagent dispatch (the `Task` /
40
+ * `Agent` tools) in ORCHESTRATOR sessions only. Orchestrators must delegate
41
+ * implementation work through `ao spawn` (a tracked worker session with a
42
+ * worktree, branch, lifecycle, and dashboard visibility); only read-only
43
+ * Explore / Plan investigation agents are permitted.
44
+ *
45
+ * Implemented in Node.js and invoked the same way on every platform
46
+ * (`node .claude/subagent-blocker.cjs`) — no bash, no jq, no shebang
47
+ * interpretation, no platform branching. JSON is parsed from stdin.
48
+ *
49
+ * Runtime-gated, not scaffold-time: the script is installed in every
50
+ * workspace but no-ops (exit 0, no output) unless
51
+ * `process.env.ATHENE_CALLER_TYPE === "orchestrator"`, so worker sessions
52
+ * (`ATHENE_CALLER_TYPE === "agent"`) are unaffected and `setupWorkspaceHooks`
53
+ * stays role-agnostic.
54
+ *
55
+ * Fails open: any non-Task/Agent tool, a non-orchestrator caller, or
56
+ * unparseable stdin exits 0 with no output. Exported for testing.
57
+ */
58
+ export declare const SUBAGENT_BLOCKER_SCRIPT_NODE: string;
38
59
  export declare const manifest: {
39
60
  name: string;
40
61
  slot: "agent";
@@ -42,6 +63,44 @@ export declare const manifest: {
42
63
  version: string;
43
64
  displayName: string;
44
65
  };
66
+ interface UsageFields {
67
+ input_tokens?: number;
68
+ output_tokens?: number;
69
+ cache_read_input_tokens?: number;
70
+ cache_creation_input_tokens?: number;
71
+ }
72
+ interface JsonlLine {
73
+ type?: string;
74
+ summary?: string;
75
+ model?: string;
76
+ message?: {
77
+ content?: string;
78
+ role?: string;
79
+ model?: string;
80
+ usage?: UsageFields;
81
+ };
82
+ costUSD?: number;
83
+ usage?: UsageFields;
84
+ inputTokens?: number;
85
+ outputTokens?: number;
86
+ estimatedCostUsd?: number;
87
+ }
88
+ /** Standard context-window limit for Claude 4.x Opus/Sonnet models. */
89
+ export declare const DEFAULT_CONTEXT_LIMIT_TOKENS = 200000;
90
+ /** Context-window limit for the 1M ("[1m]") model variants. */
91
+ export declare const MILLION_CONTEXT_LIMIT_TOKENS = 1000000;
92
+ /**
93
+ * Map a model id from the JSONL to its context-window limit in tokens.
94
+ * The 1M-context variants carry a `[1m]` marker in the model id (e.g.
95
+ * `claude-opus-4-8[1m]`); everything else uses the standard 200k window.
96
+ */
97
+ export declare function contextLimitForModel(model: string | undefined): number;
98
+ /**
99
+ * Compute live context-window occupancy from the LAST usage entry in the JSONL
100
+ * (not a sum). The most recent assistant turn's input + cache-read +
101
+ * cache-creation tokens are exactly what currently fills the context window.
102
+ */
103
+ export declare function extractContextWindow(lines: JsonlLine[]): ContextWindowUsage | undefined;
45
104
  export declare function create(): Agent;
46
105
  export declare function detect(): boolean;
47
106
  declare const _default: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,KAAK,EAYX,MAAM,gCAAgC,CAAC;AAexC,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAMvG;wCACwC;AACxC,eAAO,MAAM,uBAAuB,mvPA6MnC,CAAC;AAMF;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,mxMA2KxC,CAAC;AAMF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,uBAAuB,0xHAyGnC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,msFA+FxC,CAAC;AAMF,eAAO,MAAM,QAAQ;;;;;;CAMpB,CAAC;AA8iBF,wBAAgB,MAAM,IAAI,KAAK,CAE9B;AAED,wBAAgB,MAAM,IAAI,OAAO,CAahC;;;;;;;;;;;;AAED,wBAA0E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,KAAK,EAMV,KAAK,kBAAkB,EAOxB,MAAM,gCAAgC,CAAC;AAexC,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAMvG;wCACwC;AACxC,eAAO,MAAM,uBAAuB,QA8MnC,CAAC;AAMF;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,QA2KxC,CAAC;AAMF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,uBAAuB,0xHAyGnC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,msFA+FxC,CAAC;AAMF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,4BAA4B,QA6DxC,CAAC;AAMF,eAAO,MAAM,QAAQ;;;;;;CAMpB,CAAC;AAMF,UAAU,WAAW;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,UAAU,SAAS;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,WAAW,CAAA;KAAE,CAAC;IAEnF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAkJD,uEAAuE;AACvE,eAAO,MAAM,4BAA4B,SAAU,CAAC;AACpD,+DAA+D;AAC/D,eAAO,MAAM,4BAA4B,UAAY,CAAC;AAEtD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAKtE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,kBAAkB,GAAG,SAAS,CAcvF;AAsaD,wBAAgB,MAAM,IAAI,KAAK,CAE9B;AAED,wBAAgB,MAAM,IAAI,OAAO,CAahC;;;;;;;;;;;;AAED,wBAA0E"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { shellEscape, normalizeAgentPermissionMode, isWindows, } from "@made-by-moonlight/athene-core";
1
+ import { shellEscape, normalizeAgentPermissionMode, isWindows, ENV, legacyEnvName, bashEnvRead, nodeEnvRead, withLegacyEnvAliases, } from "@made-by-moonlight/athene-core";
2
2
  import { execFileSync } from "node:child_process";
3
3
  import { readFile, stat, open, writeFile, mkdir, chmod } from "node:fs/promises";
4
4
  import { existsSync, readFileSync } from "node:fs";
@@ -21,8 +21,9 @@ export const METADATA_UPDATER_SCRIPT = `#!/usr/bin/env bash
21
21
 
22
22
  set -euo pipefail
23
23
 
24
- # Configuration
25
- AO_DATA_DIR="\${AO_DATA_DIR:-$HOME/.ao-sessions}"
24
+ # Configuration — prefer ATHENE_* and fall back to legacy AO_*, then seed locals
25
+ ${ENV.DATA_DIR}="\${${ENV.DATA_DIR}:-\${${legacyEnvName(ENV.DATA_DIR)}:-$HOME/.ao-sessions}}"
26
+ ${ENV.SESSION}="${bashEnvRead(ENV.SESSION)}"
26
27
 
27
28
  # Read hook input from stdin
28
29
  input=$(cat)
@@ -53,25 +54,25 @@ if [[ "$tool_name" != "Bash" ]]; then
53
54
  exit 0
54
55
  fi
55
56
 
56
- # Validate AO_SESSION is set
57
- if [[ -z "\${AO_SESSION:-}" ]]; then
58
- echo '{"systemMessage": "AO_SESSION environment variable not set, skipping metadata update"}'
57
+ # Validate ${ENV.SESSION} is set
58
+ if [[ -z "\${${ENV.SESSION}:-}" ]]; then
59
+ echo '{"systemMessage": "${ENV.SESSION} environment variable not set, skipping metadata update"}'
59
60
  exit 0
60
61
  fi
61
62
 
62
63
  # Construct metadata file path
63
- # AO_DATA_DIR is already set to the project-specific sessions directory
64
+ # ${ENV.DATA_DIR} is already set to the project-specific sessions directory
64
65
  # V2 storage uses .json extension
65
- metadata_file="$AO_DATA_DIR/\${AO_SESSION}.json"
66
+ metadata_file="$${ENV.DATA_DIR}/\${${ENV.SESSION}}.json"
66
67
 
67
68
  # Fallback to bare filename for pre-migration layouts
68
69
  if [[ ! -f "$metadata_file" ]]; then
69
- metadata_file="$AO_DATA_DIR/$AO_SESSION"
70
+ metadata_file="$${ENV.DATA_DIR}/$${ENV.SESSION}"
70
71
  fi
71
72
 
72
73
  # Ensure metadata file exists
73
74
  if [[ ! -f "$metadata_file" ]]; then
74
- echo '{"systemMessage": "Metadata file not found: '"$AO_DATA_DIR/\${AO_SESSION}"'"}'
75
+ echo '{"systemMessage": "Metadata file not found: '"$${ENV.DATA_DIR}/\${${ENV.SESSION}}"'"}'
75
76
  exit 0
76
77
  fi
77
78
 
@@ -238,8 +239,8 @@ const { readFileSync, writeFileSync, renameSync, existsSync, realpathSync } = re
238
239
  const { join, sep, resolve: resolvePath } = require("node:path");
239
240
  const os = require("node:os");
240
241
 
241
- const AO_DATA_DIR = process.env.AO_DATA_DIR || join(process.env.HOME || process.env.USERPROFILE || "", ".ao-sessions");
242
- const AO_SESSION = process.env.AO_SESSION || "";
242
+ const ${ENV.DATA_DIR} = ${nodeEnvRead(ENV.DATA_DIR)} || join(process.env.HOME || process.env.USERPROFILE || "", ".ao-sessions");
243
+ const ${ENV.SESSION} = ${nodeEnvRead(ENV.SESSION)} || "";
243
244
 
244
245
  // Read hook input from stdin (fd 0 is cross-platform, no /dev/stdin needed)
245
246
  let inputRaw = "";
@@ -274,29 +275,29 @@ if (toolName !== "Bash") {
274
275
  process.exit(0);
275
276
  }
276
277
 
277
- // Validate AO_SESSION is set
278
- if (!AO_SESSION) {
279
- process.stdout.write(JSON.stringify({ systemMessage: "AO_SESSION environment variable not set, skipping metadata update" }) + "\\n");
278
+ // Validate ${ENV.SESSION} is set
279
+ if (!${ENV.SESSION}) {
280
+ process.stdout.write(JSON.stringify({ systemMessage: "${ENV.SESSION} environment variable not set, skipping metadata update" }) + "\\n");
280
281
  process.exit(0);
281
282
  }
282
283
 
283
- // Validate AO_SESSION contains no path traversal components
284
- if (AO_SESSION.includes("/") || AO_SESSION.includes("\\\\") || AO_SESSION.includes("..")) {
285
- process.stdout.write(JSON.stringify({ systemMessage: "AO_SESSION contains invalid path characters, skipping metadata update" }) + "\\n");
284
+ // Validate ${ENV.SESSION} contains no path traversal components
285
+ if (${ENV.SESSION}.includes("/") || ${ENV.SESSION}.includes("\\\\") || ${ENV.SESSION}.includes("..")) {
286
+ process.stdout.write(JSON.stringify({ systemMessage: "${ENV.SESSION} contains invalid path characters, skipping metadata update" }) + "\\n");
286
287
  process.exit(0);
287
288
  }
288
289
 
289
- // Validate AO_DATA_DIR is within an allowed base directory (mirrors ao-metadata-helper.sh)
290
+ // Validate ${ENV.DATA_DIR} is within an allowed base directory (mirrors ao-metadata-helper.sh)
290
291
  const home = os.homedir();
291
292
  let resolvedAoDir;
292
- try { resolvedAoDir = realpathSync(AO_DATA_DIR); } catch { resolvedAoDir = resolvePath(AO_DATA_DIR); }
293
+ try { resolvedAoDir = realpathSync(${ENV.DATA_DIR}); } catch { resolvedAoDir = resolvePath(${ENV.DATA_DIR}); }
293
294
  const allowedBases = [join(home, ".ao"), join(home, ".agent-orchestrator"), os.tmpdir()];
294
295
  if (!allowedBases.some((a) => resolvedAoDir === a || resolvedAoDir.startsWith(a + sep))) {
295
- process.stdout.write(JSON.stringify({ systemMessage: "AO_DATA_DIR is outside allowed directories, skipping metadata update" }) + "\\n");
296
+ process.stdout.write(JSON.stringify({ systemMessage: "${ENV.DATA_DIR} is outside allowed directories, skipping metadata update" }) + "\\n");
296
297
  process.exit(0);
297
298
  }
298
299
 
299
- const metadataFile = join(AO_DATA_DIR, AO_SESSION);
300
+ const metadataFile = join(${ENV.DATA_DIR}, ${ENV.SESSION});
300
301
 
301
302
  if (!existsSync(metadataFile)) {
302
303
  process.stdout.write(JSON.stringify({ systemMessage: "Metadata file not found: " + metadataFile }) + "\\n");
@@ -627,6 +628,91 @@ process.stdout.write("{}\\n");
627
628
  process.exit(0);
628
629
  `;
629
630
  // =============================================================================
631
+ // Subagent Blocker Hook Script
632
+ // =============================================================================
633
+ /**
634
+ * PreToolUse hook that blocks native Claude subagent dispatch (the `Task` /
635
+ * `Agent` tools) in ORCHESTRATOR sessions only. Orchestrators must delegate
636
+ * implementation work through `ao spawn` (a tracked worker session with a
637
+ * worktree, branch, lifecycle, and dashboard visibility); only read-only
638
+ * Explore / Plan investigation agents are permitted.
639
+ *
640
+ * Implemented in Node.js and invoked the same way on every platform
641
+ * (`node .claude/subagent-blocker.cjs`) — no bash, no jq, no shebang
642
+ * interpretation, no platform branching. JSON is parsed from stdin.
643
+ *
644
+ * Runtime-gated, not scaffold-time: the script is installed in every
645
+ * workspace but no-ops (exit 0, no output) unless
646
+ * `process.env.ATHENE_CALLER_TYPE === "orchestrator"`, so worker sessions
647
+ * (`ATHENE_CALLER_TYPE === "agent"`) are unaffected and `setupWorkspaceHooks`
648
+ * stays role-agnostic.
649
+ *
650
+ * Fails open: any non-Task/Agent tool, a non-orchestrator caller, or
651
+ * unparseable stdin exits 0 with no output. Exported for testing.
652
+ */
653
+ export const SUBAGENT_BLOCKER_SCRIPT_NODE = `#!/usr/bin/env node
654
+ // Subagent Blocker Hook for Athene
655
+ //
656
+ // Blocks native Claude subagent dispatch (Task/Agent) in orchestrator
657
+ // sessions. Orchestrators delegate via \`ao spawn\`; only read-only
658
+ // Explore/Plan investigation agents are allowed. No-ops for workers.
659
+
660
+ const { readFileSync } = require("node:fs");
661
+
662
+ // Runtime gating: only act in orchestrator sessions. Worker sessions
663
+ // (${ENV.CALLER_TYPE} === "agent") and every other caller type are unaffected even
664
+ // though the hook is installed everywhere.
665
+ if (${nodeEnvRead(ENV.CALLER_TYPE)} !== "orchestrator") {
666
+ process.exit(0);
667
+ }
668
+
669
+ let inputRaw = "";
670
+ try {
671
+ inputRaw = readFileSync(0, "utf-8");
672
+ } catch {
673
+ process.exit(0);
674
+ }
675
+
676
+ let payload;
677
+ try {
678
+ payload = JSON.parse(inputRaw || "{}");
679
+ } catch {
680
+ process.exit(0);
681
+ }
682
+
683
+ const toolName = typeof payload.tool_name === "string" ? payload.tool_name : "";
684
+ if (toolName !== "Task" && toolName !== "Agent") {
685
+ process.exit(0);
686
+ }
687
+
688
+ const toolInput =
689
+ payload.tool_input && typeof payload.tool_input === "object" ? payload.tool_input : {};
690
+ const subagentType =
691
+ typeof toolInput.subagent_type === "string" ? toolInput.subagent_type.toLowerCase() : "";
692
+
693
+ // Read-only investigation agents are permitted from the orchestrator.
694
+ if (subagentType === "explore" || subagentType === "plan") {
695
+ process.exit(0);
696
+ }
697
+
698
+ const reason =
699
+ "Orchestrator sessions must not dispatch native subagents. Delegate " +
700
+ "implementation work through \`ao spawn\`, which creates a tracked worker " +
701
+ "session (worktree, branch, lifecycle polling, dashboard visibility). Only " +
702
+ "read-only Explore/Plan investigation agents are permitted from the orchestrator.";
703
+
704
+ process.stdout.write(
705
+ JSON.stringify({
706
+ hookSpecificOutput: {
707
+ hookEventName: "PreToolUse",
708
+ permissionDecision: "deny",
709
+ permissionDecisionReason: reason,
710
+ },
711
+ }) + "\\n",
712
+ );
713
+ process.exit(0);
714
+ `;
715
+ // =============================================================================
630
716
  // Plugin Manifest
631
717
  // =============================================================================
632
718
  export const manifest = {
@@ -775,6 +861,42 @@ function extractCost(lines) {
775
861
  estimatedCostUsd: totalCost,
776
862
  };
777
863
  }
864
+ /** Standard context-window limit for Claude 4.x Opus/Sonnet models. */
865
+ export const DEFAULT_CONTEXT_LIMIT_TOKENS = 200_000;
866
+ /** Context-window limit for the 1M ("[1m]") model variants. */
867
+ export const MILLION_CONTEXT_LIMIT_TOKENS = 1_000_000;
868
+ /**
869
+ * Map a model id from the JSONL to its context-window limit in tokens.
870
+ * The 1M-context variants carry a `[1m]` marker in the model id (e.g.
871
+ * `claude-opus-4-8[1m]`); everything else uses the standard 200k window.
872
+ */
873
+ export function contextLimitForModel(model) {
874
+ if (model && /\[?1m\]?/i.test(model)) {
875
+ return MILLION_CONTEXT_LIMIT_TOKENS;
876
+ }
877
+ return DEFAULT_CONTEXT_LIMIT_TOKENS;
878
+ }
879
+ /**
880
+ * Compute live context-window occupancy from the LAST usage entry in the JSONL
881
+ * (not a sum). The most recent assistant turn's input + cache-read +
882
+ * cache-creation tokens are exactly what currently fills the context window.
883
+ */
884
+ export function extractContextWindow(lines) {
885
+ for (let i = lines.length - 1; i >= 0; i--) {
886
+ const line = lines[i];
887
+ const usage = line?.message?.usage ?? line?.usage;
888
+ if (!usage)
889
+ continue;
890
+ const usedTokens = (usage.input_tokens ?? 0) +
891
+ (usage.cache_read_input_tokens ?? 0) +
892
+ (usage.cache_creation_input_tokens ?? 0);
893
+ if (usedTokens <= 0)
894
+ continue;
895
+ const limitTokens = contextLimitForModel(line?.message?.model ?? line?.model);
896
+ return { usedTokens, limitTokens, pct: usedTokens / limitTokens };
897
+ }
898
+ return undefined;
899
+ }
778
900
  /**
779
901
  * Set the registration's hook in the `event`'s hook array, updating any
780
902
  * existing entry whose command contains one of `identifiers` (idempotent).
@@ -848,13 +970,14 @@ function upsertHookEntry(hooks, reg) {
848
970
  * tool-name and Notification's notification_type are filtered inside the
849
971
  * script itself so the registered set stays small.
850
972
  */
851
- function buildHookRegistrations(metadataCommand, activityCommand) {
973
+ function buildHookRegistrations(metadataCommand, activityCommand, subagentBlockerCommand) {
852
974
  const METADATA_IDS = [
853
975
  "metadata-updater.sh",
854
976
  "metadata-updater.cjs",
855
977
  "metadata-updater.js",
856
978
  ];
857
979
  const ACTIVITY_IDS = ["activity-updater.sh", "activity-updater.cjs"];
980
+ const SUBAGENT_BLOCKER_IDS = ["subagent-blocker.cjs"];
858
981
  const regs = [
859
982
  {
860
983
  event: "PostToolUse",
@@ -863,6 +986,19 @@ function buildHookRegistrations(metadataCommand, activityCommand) {
863
986
  timeout: 5000,
864
987
  identifiers: METADATA_IDS,
865
988
  },
989
+ // Subagent-blocker: PreToolUse on Task|Agent only. Runtime-gated to
990
+ // orchestrator sessions inside the script — installed everywhere, no-ops
991
+ // for workers. Blocks native subagent dispatch so implementation work
992
+ // goes through `ao spawn` (read-only Explore/Plan agents stay allowed).
993
+ {
994
+ event: "PreToolUse",
995
+ matcher: "Task|Agent",
996
+ command: subagentBlockerCommand,
997
+ // JSON parse + at most one stdout write — keep the timeout short so a
998
+ // stuck hook never stalls a tool call.
999
+ timeout: 2000,
1000
+ identifiers: SUBAGENT_BLOCKER_IDS,
1001
+ },
866
1002
  ];
867
1003
  // Activity-updater events. Every event that the activity-updater script
868
1004
  // knows how to map (see ACTIVITY_UPDATER_SCRIPT) must be registered here;
@@ -934,6 +1070,12 @@ async function setupHookInWorkspace(workspacePath) {
934
1070
  metadataCommand = ".claude/metadata-updater.sh";
935
1071
  activityCommand = ".claude/activity-updater.sh";
936
1072
  }
1073
+ // Subagent-blocker is always a Node .cjs invoked via `node` on every
1074
+ // platform: it parses JSON from stdin and is runtime-gated to orchestrator
1075
+ // sessions, so no shebang/chmod and no platform branching is required.
1076
+ const subagentBlockerPath = join(claudeDir, "subagent-blocker.cjs");
1077
+ await writeFile(subagentBlockerPath, SUBAGENT_BLOCKER_SCRIPT_NODE, "utf-8");
1078
+ const subagentBlockerCommand = "node .claude/subagent-blocker.cjs";
937
1079
  let existingSettings = {};
938
1080
  if (existsSync(settingsPath)) {
939
1081
  try {
@@ -945,7 +1087,7 @@ async function setupHookInWorkspace(workspacePath) {
945
1087
  }
946
1088
  }
947
1089
  const hooks = existingSettings["hooks"] ?? {};
948
- for (const reg of buildHookRegistrations(metadataCommand, activityCommand)) {
1090
+ for (const reg of buildHookRegistrations(metadataCommand, activityCommand, subagentBlockerCommand)) {
949
1091
  upsertHookEntry(hooks, reg);
950
1092
  }
951
1093
  existingSettings["hooks"] = hooks;
@@ -999,16 +1141,18 @@ function createClaudeCodeAgent() {
999
1141
  // Unset CLAUDECODE to avoid nested agent conflicts
1000
1142
  env["CLAUDECODE"] = "";
1001
1143
  // Set session info for introspection
1002
- env["AO_SESSION_ID"] = config.sessionId;
1003
- // NOTE: AO_PROJECT_ID is NOT set here - it's the caller's responsibility
1144
+ env[ENV.SESSION_ID] = config.sessionId;
1145
+ // NOTE: ATHENE_PROJECT_ID is NOT set here - it's the caller's responsibility
1004
1146
  // to set it based on their metadata path scheme:
1005
1147
  // - spawn.ts sets it to projectId for project-specific directories
1006
1148
  // - start.ts omits it for orchestrator (flat directories)
1007
1149
  // - session manager omits it (flat directories)
1008
1150
  if (config.issueId) {
1009
- env["AO_ISSUE_ID"] = config.issueId;
1151
+ env[ENV.ISSUE_ID] = config.issueId;
1010
1152
  }
1011
- return env;
1153
+ // Emit both ATHENE_* (canonical) and legacy AO_* names so old readers,
1154
+ // the ao fleet, and existing ~/.ao/bin wrappers keep working.
1155
+ return withLegacyEnvAliases(env);
1012
1156
  },
1013
1157
  detectActivity(terminalOutput) {
1014
1158
  // #1941: Claude activity is derived from platform-event hooks
@@ -1061,6 +1205,7 @@ function createClaudeCodeAgent() {
1061
1205
  agentSessionId,
1062
1206
  metadata: { claudeSessionUuid: agentSessionId },
1063
1207
  cost: extractCost(lines),
1208
+ contextWindow: extractContextWindow(lines),
1064
1209
  };
1065
1210
  },
1066
1211
  async getRestoreCommand(session, project) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@made-by-moonlight/athene-plugin-agent-claude-code",
3
- "version": "0.9.1",
3
+ "version": "0.10.0",
4
4
  "description": "Agent plugin: Claude Code",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -27,8 +27,15 @@
27
27
  "engines": {
28
28
  "node": ">=20.0.0"
29
29
  },
30
+ "scripts": {
31
+ "build": "tsc",
32
+ "dev": "tsc --watch",
33
+ "typecheck": "tsc --noEmit",
34
+ "test": "vitest run",
35
+ "clean": "rm -rf dist"
36
+ },
30
37
  "dependencies": {
31
- "@made-by-moonlight/athene-core": "0.9.1"
38
+ "@made-by-moonlight/athene-core": "workspace:*"
32
39
  },
33
40
  "devDependencies": {
34
41
  "@types/node": "^25.2.3",
@@ -37,11 +44,5 @@
37
44
  },
38
45
  "publishConfig": {
39
46
  "access": "public"
40
- },
41
- "scripts": {
42
- "build": "tsc",
43
- "typecheck": "tsc --noEmit",
44
- "test": "vitest run",
45
- "clean": "rm -rf dist"
46
47
  }
47
- }
48
+ }
package/LICENSE DELETED
@@ -1,22 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2025 Composio, Inc.
4
- Copyright (c) 2026 slievr (Athene fork)
5
-
6
- Permission is hereby granted, free of charge, to any person obtaining a copy
7
- of this software and associated documentation files (the "Software"), to deal
8
- in the Software without restriction, including without limitation the rights
9
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
- copies of the Software, and to permit persons to whom the Software is
11
- furnished to do so, subject to the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be included in all
14
- copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
- SOFTWARE.