@rse/ase 0.9.32 → 0.9.33

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/dst/ase-hook.js CHANGED
@@ -25,8 +25,8 @@ const addonMcpServers = [
25
25
  "search-perplexity"
26
26
  ];
27
27
  /* build a per-tool regular expression matching the tool names exposed
28
- by the addon MCP servers: Claude Code prefixes them as
29
- "mcp__<server>__<tool>", whereas Copilot CLI prefixes them as
28
+ by the addon MCP servers: Anthropic Claude Code CLI prefixes them as
29
+ "mcp__<server>__<tool>", whereas GitHub Copilot CLI prefixes them as
30
30
  "<server>-<tool>" */
31
31
  const addonMcpToolNamePattern = (prefix, suffix) => {
32
32
  const alternatives = addonMcpServers
@@ -202,8 +202,8 @@ export default class HookCommand {
202
202
  if (process.env.ASE_SETUP_DEV !== undefined)
203
203
  versionHints.push("**NOTICE:** *development* setup");
204
204
  const versionHint = versionHints.length > 0 ? "(" + versionHints.join(", ") + ")" : "";
205
- /* read session information (Claude Code uses snake_case fields,
206
- Copilot CLI uses camelCase fields) */
205
+ /* read session information (Anthropic Claude Code CLI uses snake_case fields,
206
+ GitHub Copilot CLI uses camelCase fields) */
207
207
  const stdin = await this.readStdin();
208
208
  const input = this.parseJSON(stdin, v.object({
209
209
  session_id: v.optional(v.string()),
@@ -252,8 +252,8 @@ export default class HookCommand {
252
252
  persona = val;
253
253
  /* determine headless mode */
254
254
  const headless = (process.env.ASE_HEADLESS ?? "false") === "true" ? "true" : "false";
255
- /* provide ASE information to Claude Code shell commands
256
- (Claude Code only -- Copilot CLI has no equivalent mechanism) */
255
+ /* provide ASE information to Anthropic Claude Code CLI shell commands
256
+ (Anthropic Claude Code CLI only -- GitHub Copilot CLI has no equivalent mechanism) */
257
257
  const envFile = tool === "claude" ? (process.env.CLAUDE_ENV_FILE ?? "") : "";
258
258
  if (envFile !== "") {
259
259
  const script = `export ASE_VERSION=${quote([versionCurrentPlugin])}\n` +
@@ -284,15 +284,15 @@ export default class HookCommand {
284
284
  /* build the deterministic ASE banner (rendered directly by the
285
285
  agent harness, independent of any model decision, so it is
286
286
  guaranteed to appear once in every non-headless session;
287
- Claude Code and OpenAI Codex CLI surface a top-level
288
- "systemMessage" field for this -- Copilot CLI has no equivalent) */
287
+ Anthropic Claude Code CLI and OpenAI Codex CLI surface a top-level
288
+ "systemMessage" field for this -- GitHub Copilot CLI has no equivalent) */
289
289
  const banner = `\n⧉ ASE: ⎈ version: ${versionCurrentPlugin}${versionHint !== "" ? " " + versionHint.replaceAll(/\*/g, "") : ""}` +
290
290
  `\n⧉ ASE: ※ user: ${userId}, ⚑ project: ${projectId}` +
291
291
  `\n⧉ ASE: ◉ task: ${taskId}, ⏻ session: ${sessionId}` +
292
292
  `\n⧉ ASE: ☯ persona: ${persona}`;
293
293
  /* inject markdown into session context.
294
- Claude Code and OpenAI Codex CLI expect the context nested in
295
- "hookSpecificOutput"; Copilot CLI expects a flat top-level
294
+ Anthropic Claude Code CLI and OpenAI Codex CLI expect the context nested in
295
+ "hookSpecificOutput"; GitHub Copilot CLI expects a flat top-level
296
296
  "additionalContext" field. */
297
297
  const payload = tool !== "copilot" ? {
298
298
  "hookSpecificOutput": {
@@ -313,8 +313,8 @@ export default class HookCommand {
313
313
  /* publish the agent activity marker to tmux as a per-pane user
314
314
  option, so tmux can render the live state via
315
315
  #{@ase_agent_status} (refreshed on tmux's own interval,
316
- independent of Claude Code's statusline repaint cadence).
317
- Notice: the Claude Code statusline is not usable for this case
316
+ independent of Anthropic Claude Code CLI's statusline repaint cadence).
317
+ Notice: the Anthropic Claude Code CLI statusline is not usable for this case
318
318
  at all, as it is not repainted during agent processing! */
319
319
  writeAgentStatus(status) {
320
320
  const icon = status === "busy" ? "▶" : "⏸";
@@ -354,8 +354,8 @@ export default class HookCommand {
354
354
  }
355
355
  return 0;
356
356
  }
357
- /* pick the session id from a parsed payload (Claude Code uses
358
- snake_case fields, Copilot CLI uses camelCase fields) */
357
+ /* pick the session id from a parsed payload (Anthropic Claude Code CLI uses
358
+ snake_case fields, GitHub Copilot CLI uses camelCase fields) */
359
359
  pickSessionId(input) {
360
360
  return input.session_id ?? input.sessionId ?? "";
361
361
  }
@@ -444,7 +444,7 @@ export default class HookCommand {
444
444
  return { approve: false, reason: "" };
445
445
  }
446
446
  /* handler for "ase hook pre-tool-use" (all tools).
447
- For Claude Code and Copilot CLI this is where ASE tool
447
+ For Anthropic Claude Code CLI and GitHub Copilot CLI this is where ASE tool
448
448
  invocations are auto-approved (via "permissionDecision: allow").
449
449
  OpenAI Codex CLI rejects that mechanism in "PreToolUse", so for
450
450
  Codex this handler stays silent and approval is granted in the
@@ -465,8 +465,8 @@ export default class HookCommand {
465
465
  /* determine whether to auto-approve the tool invocation */
466
466
  const { approve, reason } = this.decideApproval(tool, spec, input);
467
467
  /* emit permission decision (or stay silent to defer to default flow).
468
- Claude Code expects the decision nested in "hookSpecificOutput";
469
- Copilot CLI expects flat top-level fields. */
468
+ Anthropic Claude Code CLI expects the decision nested in "hookSpecificOutput";
469
+ GitHub Copilot CLI expects flat top-level fields. */
470
470
  if (approve) {
471
471
  const payload = spec.preToolUseWrapped ? {
472
472
  "hookSpecificOutput": {
@@ -524,7 +524,7 @@ export default class HookCommand {
524
524
  /* register CLI top-level command "ase hook" */
525
525
  const hookCmd = program
526
526
  .command("hook")
527
- .description("Claude Code and Copilot CLI hook entry points")
527
+ .description("Anthropic Claude Code CLI and GitHub Copilot CLI hook entry points")
528
528
  .action(() => {
529
529
  hookCmd.outputHelp();
530
530
  process.exit(1);
package/dst/ase-kv.js CHANGED
@@ -7,7 +7,7 @@ import { z } from "zod";
7
7
  /* reusable functionality: in-memory key/value store living inside the
8
8
  "ase service" process; per-project (one service per project) and
9
9
  not persisted; intended for sharing information between skills
10
- across multiple Claude Code instances connected to the same service */
10
+ across multiple Anthropic Claude Code CLI instances connected to the same service */
11
11
  export class KV {
12
12
  /* the actual in-memory store */
13
13
  static store = new Map();
package/dst/ase-setup.js CHANGED
@@ -13,8 +13,8 @@ import Table from "cli-table3";
13
13
  import chalk from "chalk";
14
14
  import Version from "./ase-version.js";
15
15
  const toolSpecs = {
16
- "claude": { cli: "claude", label: "Claude Code", pInstall: "install", pRemove: "uninstall", pUpdate: "update" },
17
- "copilot": { cli: "copilot", label: "Copilot CLI", pInstall: "install", pRemove: "uninstall", pUpdate: "update" },
16
+ "claude": { cli: "claude", label: "Anthropic Claude Code CLI", pInstall: "install", pRemove: "uninstall", pUpdate: "update" },
17
+ "copilot": { cli: "copilot", label: "GitHub Copilot CLI", pInstall: "install", pRemove: "uninstall", pUpdate: "update" },
18
18
  "codex": { cli: "codex", label: "OpenAI Codex CLI", pInstall: "add", pRemove: "remove", pUpdate: "upgrade" }
19
19
  };
20
20
  /* CLI command "ase setup" */
@@ -361,7 +361,7 @@ export default class SetupCommand {
361
361
  /* register an MCP server with the tool, supporting both the "stdio"
362
362
  (a local subprocess command) and "http" (a remote URL, optionally
363
363
  with HTTP headers) transports; the per-tool command line differs
364
- between Claude Code, GitHub Copilot CLI, and OpenAI Codex CLI */
364
+ between Anthropic Claude Code CLI, GitHub Copilot CLI, and OpenAI Codex CLI */
365
365
  async mcpAdd(tool, name, env, transport) {
366
366
  const args = ["mcp", "add"];
367
367
  if (tool === "claude") {
@@ -416,7 +416,7 @@ export default class SetupCommand {
416
416
  await this.run(toolSpecs[tool].cli, args);
417
417
  }
418
418
  /* unregister an MCP server from the tool; the per-tool command line
419
- differs between Claude Code, GitHub Copilot CLI, and OpenAI Codex CLI */
419
+ differs between Anthropic Claude Code CLI, GitHub Copilot CLI, and OpenAI Codex CLI */
420
420
  async mcpRemove(tool, name) {
421
421
  const args = tool === "claude" ?
422
422
  ["mcp", "remove", "--scope", "user", name] :
@@ -12,7 +12,7 @@ import { execaSync } from "execa";
12
12
  import { Chalk } from "chalk";
13
13
  import { Config, configSchema, parseScope } from "./ase-config.js";
14
14
  import pkg from "../package.json" with { type: "json" };
15
- /* forced-color chalk instance: stdout is a pipe under Claude Code,
15
+ /* forced-color chalk instance: stdout is a pipe under Anthropic Claude Code CLI,
16
16
  so chalk auto-detection would yield level 0; force level 1 to keep
17
17
  emitting ANSI sequences as the original implementation did */
18
18
  const c = new Chalk({ level: 1 });
@@ -34,7 +34,7 @@ const readStdin = async () => {
34
34
  chunks.push(typeof chunk === "string" ? Buffer.from(chunk) : chunk);
35
35
  return Buffer.concat(chunks).toString("utf8");
36
36
  };
37
- /* detect terminal column width via /dev/tty (stdout is a pipe under Claude Code) */
37
+ /* detect terminal column width via /dev/tty (stdout is a pipe under Anthropic Claude Code CLI) */
38
38
  const detectTermWidth = () => {
39
39
  let width = 0;
40
40
  let tty = null;
@@ -195,7 +195,7 @@ export default class StatuslineCommand {
195
195
  const toolDflt = envTool !== "" ? this.parseTool(envTool) : "claude";
196
196
  program
197
197
  .command("statusline")
198
- .description("Render Claude Code or GitHub Copilot CLI statusline from stdin JSON")
198
+ .description("Render Anthropic Claude Code CLI or GitHub Copilot CLI statusline from stdin JSON")
199
199
  .option("-t, --tool <tool>", "target tool (\"claude\" or \"copilot\"; \"codex\" is unsupported)", toolDflt)
200
200
  .option("-w, --width <n>", "force terminal width to <n> characters (0 = auto-detect via /dev/tty)", parseInteger("--width"), 0)
201
201
  .option("-m, --margin <n>", "reduce maximum used terminal width by <n> characters on each side", parseInteger("--margin"), 2)
@@ -225,7 +225,7 @@ export default class StatuslineCommand {
225
225
  process.exit(1);
226
226
  }
227
227
  /* normalize Copilot CLI's top-level "cwd" into the
228
- "workspace.current_dir" structure shared with Claude Code */
228
+ "workspace.current_dir" structure shared with Anthropic Claude Code CLI */
229
229
  if (tool === "copilot"
230
230
  && (data.workspace?.current_dir === undefined || data.workspace.current_dir === "")
231
231
  && typeof data.cwd === "string" && data.cwd !== "") {
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "homepage": "http://github.com/rse/ase",
7
7
  "repository": { "url": "git+https://github.com/rse/ase.git", "type": "git" },
8
8
  "bugs": { "url": "http://github.com/rse/ase/issues" },
9
- "version": "0.9.32",
9
+ "version": "0.9.33",
10
10
  "license": "Apache-2.0",
11
11
  "author": {
12
12
  "name": "Dr. Ralf S. Engelschall",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ase",
3
- "version": "0.9.32",
3
+ "version": "0.9.33",
4
4
  "description": "Agentic Software Engineering (ASE)",
5
5
  "keywords": [ "agentic", "software", "engineering" ],
6
6
  "homepage": "https://ase.tools",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ase",
3
- "version": "0.9.32",
3
+ "version": "0.9.33",
4
4
  "description": "Agentic Software Engineering (ASE)",
5
5
  "keywords": [ "agentic", "software", "engineering" ],
6
6
  "homepage": "https://ase.tools",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ase",
3
- "version": "0.9.32",
3
+ "version": "0.9.33",
4
4
  "description": "Agentic Software Engineering (ASE)",
5
5
  "keywords": [ "agentic", "software", "engineering" ],
6
6
  "homepage": "https://ase.tools",
@@ -2,8 +2,8 @@
2
2
  ASE Constitution
3
3
  ================
4
4
 
5
- You are **Claude Code**, an expert-level AI coding assistant.
6
- You have the **Agentic Software Engineering (ASE)** facility enabled,
5
+ You are an expert-level AI coding assistant.
6
+ You have the **Agentic Software Engineering (ASE)** companion toolkit enabled,
7
7
  which boosts you to an expert-level Software Engineering AI agent.
8
8
 
9
9
  If ((<ase-agent-tool/> is equal `codex`) *AND* (<ase-headless/> is empty
@@ -28,7 +28,7 @@ Skill Output
28
28
  - *IMPORTANT*: For *Final-Message-Only Display* ("focus mode"):
29
29
  some agent harnesses show the user only the *final* text message of
30
30
  a turn and *hide* all text emitted *between* tool calls. If your
31
- harness instructions indicate such a mode (e.g. *Claude Code* with
31
+ harness instructions indicate such a mode (e.g. *Anthropic Claude Code CLI* with
32
32
  "focus mode" enabled), you *MUST* repeat *all* <template/> outputs
33
33
  emitted since the last shown final text message -- *verbatim*, in
34
34
  their *original order*, and each only *once* -- at the *top* of the
@@ -6,7 +6,7 @@
6
6
  "homepage": "http://github.com/rse/ase",
7
7
  "repository": { "url": "git+https://github.com/rse/ase.git", "type": "git" },
8
8
  "bugs": { "url": "http://github.com/rse/ase/issues" },
9
- "version": "0.9.32",
9
+ "version": "0.9.33",
10
10
  "license": "Apache-2.0",
11
11
  "author": {
12
12
  "name": "Dr. Ralf S. Engelschall",