@gobing-ai/superskill 0.3.0 → 0.3.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.
Files changed (3) hide show
  1. package/README.md +19 -9
  2. package/dist/index.js +319 -165
  3. package/package.json +4 -4
package/README.md CHANGED
@@ -49,21 +49,31 @@ Full walkthrough: [Quick start guide](docs/help/quick_start.md).
49
49
  | Agent | Skills | Commands | Subagents | Hooks |
50
50
  |-------|:------:|:--------:|:---------:|:-----:|
51
51
  | Claude Code | ✓ | ✓ | ✓ | ✓ |
52
- | Grok Build | ✓ | ✓ | ✓ | ✓ |
53
- | Codex | ✓ | ✓ | ✓ | |
54
- | Pi | ✓ | ✓ | ✓ | |
55
- | omp | ✓ | ✓ | ✓ | |
56
- | OpenCode | ✓ | ✓ | ✓ | |
57
- | Antigravity IDE | ✓ | ✓ | — | |
58
- | Antigravity CLI | ✓ | | — | |
52
+ | Grok | ✓ | ✓ | ✓ | ✓ |
53
+ | Codex | ✓ | ✓ | ✓ | |
54
+ | Pi | ✓ | ✓ | ✓ | |
55
+ | omp | ✓ | ✓ | ✓ | |
56
+ | OpenCode | ✓ | ✓ | ✓ | |
57
+ | Antigravity IDE | ✓ | ✓ | — | |
58
+ | Antigravity CLI | ✓ | | — | |
59
59
  | Hermes | ✓ | ✓ | — | ✓ |
60
- | OpenClaw | ✓ | — | — | — |
61
60
 
62
- Grok installs the **native Claude-format plugin** (`--targets grok`): slash form is `/plugin:command` (e.g. `/sp:dev-idea`). Adapted skills under `~/.agents` (from Codex/Pi installs) may still appear as `/plugin-command` in Grok — prefer the colon form for plugin commands.
61
+ Both Antigravity targets get skills, commands, and hooks from rulesync
62
+ (`codexcli`/`codexcli`/`antigravity-ide` adapters); subagents are not part of the
63
+ rulesync→antigravity map, so they don't ship there. `omp`, Grok, and Claude Code
64
+ install plugins natively (no rulesync pass); the remaining targets route through
65
+ rulesync's per-target generators. Hermes copies skills/commands from OpenCode's
66
+ rulesync output and adds a canonical `hooks.json` copy at `~/.hermes/hooks.json`.
67
+
68
+ Grok loads the Claude-format plugin natively — slash form is `/plugin:command`
69
+ (e.g. `/cc:skill-add`). Codex/Pi-installed skills under `~/.agents/` may also
70
+ appear in Grok as `/plugin-command` (hyphen form) when Grok discovers the shared
71
+ skills root; prefer the colon form for plugin commands.
63
72
 
64
73
  See [entity locations](docs/help/entity_locations.md) for the exact install directories per agent.
65
74
 
66
75
  > Agents that don't natively support some entity types still get them. `superskill install` adapts commands and subagents as Skills 2.0 skill directories for targets that lack them — so every agent receives the full plugin surface, regardless of native feature set.
76
+ </input>
67
77
 
68
78
  ## Commands
69
79
 
package/dist/index.js CHANGED
@@ -2140,7 +2140,7 @@ var require_commander = __commonJS((exports) => {
2140
2140
  exports.InvalidOptionArgumentError = InvalidArgumentError;
2141
2141
  });
2142
2142
 
2143
- // ../../node_modules/.bun/@gobing-ai+ts-utils@0.4.8/node_modules/@gobing-ai/ts-utils/dist/errors.js
2143
+ // ../../node_modules/.bun/@gobing-ai+ts-utils@0.4.9/node_modules/@gobing-ai/ts-utils/dist/errors.js
2144
2144
  var ErrorCode;
2145
2145
  var init_errors = __esm(() => {
2146
2146
  ErrorCode = {
@@ -2151,7 +2151,7 @@ var init_errors = __esm(() => {
2151
2151
  };
2152
2152
  });
2153
2153
 
2154
- // ../../node_modules/.bun/@gobing-ai+ts-utils@0.4.8/node_modules/@gobing-ai/ts-utils/dist/api-response.js
2154
+ // ../../node_modules/.bun/@gobing-ai+ts-utils@0.4.9/node_modules/@gobing-ai/ts-utils/dist/api-response.js
2155
2155
  var API_ERROR_CODES, ERROR_CODE_TO_HTTP, CLIENT_SAFE_CODES;
2156
2156
  var init_api_response = __esm(() => {
2157
2157
  init_errors();
@@ -2174,10 +2174,10 @@ var init_api_response = __esm(() => {
2174
2174
  CLIENT_SAFE_CODES = new Set([ErrorCode.NotFound, ErrorCode.Validation, ErrorCode.Conflict]);
2175
2175
  });
2176
2176
 
2177
- // ../../node_modules/.bun/@gobing-ai+ts-utils@0.4.8/node_modules/@gobing-ai/ts-utils/dist/cursor.js
2177
+ // ../../node_modules/.bun/@gobing-ai+ts-utils@0.4.9/node_modules/@gobing-ai/ts-utils/dist/cursor.js
2178
2178
  var init_cursor = () => {};
2179
2179
 
2180
- // ../../node_modules/.bun/@gobing-ai+ts-utils@0.4.8/node_modules/@gobing-ai/ts-utils/dist/object.js
2180
+ // ../../node_modules/.bun/@gobing-ai+ts-utils@0.4.9/node_modules/@gobing-ai/ts-utils/dist/object.js
2181
2181
  function isPlainObject(value) {
2182
2182
  return typeof value === "object" && value !== null && !Array.isArray(value);
2183
2183
  }
@@ -2193,7 +2193,7 @@ function deepMerge(target, source) {
2193
2193
  return result;
2194
2194
  }
2195
2195
 
2196
- // ../../node_modules/.bun/@gobing-ai+ts-utils@0.4.8/node_modules/@gobing-ai/ts-utils/dist/output.js
2196
+ // ../../node_modules/.bun/@gobing-ai+ts-utils@0.4.9/node_modules/@gobing-ai/ts-utils/dist/output.js
2197
2197
  function processStream(name) {
2198
2198
  const proc = globalThis.process;
2199
2199
  const stream = proc?.[name];
@@ -2214,7 +2214,7 @@ function echoError(message, target = defaultStderrTarget ?? processStream("stder
2214
2214
  }
2215
2215
  var defaultStdoutTarget, defaultStderrTarget;
2216
2216
 
2217
- // ../../node_modules/.bun/@gobing-ai+ts-utils@0.4.8/node_modules/@gobing-ai/ts-utils/dist/index.js
2217
+ // ../../node_modules/.bun/@gobing-ai+ts-utils@0.4.9/node_modules/@gobing-ai/ts-utils/dist/index.js
2218
2218
  var init_dist = __esm(() => {
2219
2219
  init_api_response();
2220
2220
  init_cursor();
@@ -17618,90 +17618,6 @@ var require_src = __commonJS((exports) => {
17618
17618
  };
17619
17619
  });
17620
17620
 
17621
- // ../../node_modules/.bun/@gobing-ai+ts-infra@0.4.8+e890708e3f71c185/node_modules/@gobing-ai/ts-infra/dist/telemetry/sdk.js
17622
- function getTelemetryConfig(configPartial = {}) {
17623
- return {
17624
- enabled: configPartial.enabled ?? CONFIG_DEFAULTS.enabled,
17625
- serviceName: configPartial.serviceName ?? CONFIG_DEFAULTS.serviceName,
17626
- environment: configPartial.environment ?? configPartial.appEnv ?? CONFIG_DEFAULTS.environment,
17627
- dbStatementDebug: configPartial.dbStatementDebug ?? false
17628
- };
17629
- }
17630
- function getResolvedConfig() {
17631
- return resolvedConfig;
17632
- }
17633
- function getTracer() {
17634
- return import_api.trace.getTracer(TRACER_NAME, TRACER_VERSION);
17635
- }
17636
- var import_api, CONFIG_DEFAULTS, TRACER_NAME = "@gobing-ai/ts-infra", TRACER_VERSION = "0.1.0", resolvedConfig;
17637
- var init_sdk = __esm(() => {
17638
- import_api = __toESM(require_src(), 1);
17639
- CONFIG_DEFAULTS = {
17640
- enabled: true,
17641
- serviceName: "ts-libs",
17642
- environment: "development"
17643
- };
17644
- resolvedConfig = getTelemetryConfig();
17645
- });
17646
-
17647
- // ../../node_modules/.bun/@gobing-ai+ts-infra@0.4.8+e890708e3f71c185/node_modules/@gobing-ai/ts-infra/dist/telemetry/metrics.js
17648
- function getMeter() {
17649
- return import_api2.metrics.getMeter(METER_NAME, METER_VERSION);
17650
- }
17651
- function noopCounter() {
17652
- if (!_noopCounter)
17653
- _noopCounter = import_api2.createNoopMeter().createCounter("noop");
17654
- return _noopCounter;
17655
- }
17656
- function getOrCreateCounter(key, name, description, unit = "{operation}") {
17657
- if (!getResolvedConfig().enabled)
17658
- return noopCounter();
17659
- if (!instruments[key]) {
17660
- instruments[key] = getMeter().createCounter(name, { description, unit });
17661
- }
17662
- return instruments[key];
17663
- }
17664
- function getEventbusEmitsTotal() {
17665
- return getOrCreateCounter("ebEmit", "eventbus.emits.total", "Total event bus emits", "{emit}");
17666
- }
17667
- function getEventbusErrorsTotal() {
17668
- return getOrCreateCounter("ebErr", "eventbus.errors.total", "Event bus errors", "{error}");
17669
- }
17670
- var import_api2, METER_NAME = "@gobing-ai/ts-infra", METER_VERSION = "0.1.0", instruments, _noopCounter;
17671
- var init_metrics = __esm(() => {
17672
- init_sdk();
17673
- import_api2 = __toESM(require_src(), 1);
17674
- instruments = {};
17675
- });
17676
-
17677
- // ../../node_modules/.bun/@gobing-ai+ts-infra@0.4.8+e890708e3f71c185/node_modules/@gobing-ai/ts-infra/dist/telemetry/tracing.js
17678
- function isSuppressed(tracer) {
17679
- return tracer === undefined && !getResolvedConfig().enabled;
17680
- }
17681
- function nonRecordingSpan() {
17682
- return import_api3.trace.wrapSpanContext(import_api3.INVALID_SPAN_CONTEXT);
17683
- }
17684
- async function traceAsync(name, fn, options2, tracer) {
17685
- if (isSuppressed(tracer))
17686
- return fn(nonRecordingSpan());
17687
- const resolvedTracer = tracer ?? getTracer();
17688
- return resolvedTracer.startActiveSpan(name, options2 ?? {}, async (span) => {
17689
- try {
17690
- return await fn(span);
17691
- } catch (err) {
17692
- span.setStatus({ code: 2, message: err instanceof Error ? err.message : String(err) });
17693
- throw err;
17694
- } finally {
17695
- span.end();
17696
- }
17697
- });
17698
- }
17699
- var import_api3;
17700
- var init_tracing = __esm(() => {
17701
- init_sdk();
17702
- import_api3 = __toESM(require_src(), 1);
17703
- });
17704
-
17705
17621
  // ../../node_modules/.bun/@logtape+logtape@2.1.5/node_modules/@logtape/logtape/dist/context.js
17706
17622
  function getCategoryPrefix() {
17707
17623
  const rootLogger = LoggerImpl.getLogger();
@@ -18523,7 +18439,7 @@ var init_mod = __esm(() => {
18523
18439
  init_logger();
18524
18440
  });
18525
18441
 
18526
- // ../../node_modules/.bun/@gobing-ai+ts-infra@0.4.8+e890708e3f71c185/node_modules/@gobing-ai/ts-infra/dist/logger.js
18442
+ // ../../node_modules/.bun/@gobing-ai+ts-infra@0.4.9+3437c89d5c5e6219/node_modules/@gobing-ai/ts-infra/dist/logger.js
18527
18443
  class LogTapeLogger {
18528
18444
  inner;
18529
18445
  constructor(inner) {
@@ -18553,8 +18469,8 @@ class LogTapeLogger {
18553
18469
  if (!muted)
18554
18470
  this.inner.fatal(msg, data ?? {});
18555
18471
  }
18556
- child(context2) {
18557
- return new LogTapeLogger(this.inner.with(context2));
18472
+ child(context) {
18473
+ return new LogTapeLogger(this.inner.with(context));
18558
18474
  }
18559
18475
  }
18560
18476
  function getLogger2(category) {
@@ -18565,7 +18481,63 @@ var init_logger2 = __esm(() => {
18565
18481
  init_mod();
18566
18482
  });
18567
18483
 
18568
- // ../../node_modules/.bun/@gobing-ai+ts-infra@0.4.8+e890708e3f71c185/node_modules/@gobing-ai/ts-infra/dist/event-bus/event-bus.js
18484
+ // ../../node_modules/.bun/@gobing-ai+ts-infra@0.4.9+3437c89d5c5e6219/node_modules/@gobing-ai/ts-infra/dist/telemetry/sdk.js
18485
+ function getTelemetryConfig(configPartial = {}) {
18486
+ return {
18487
+ enabled: configPartial.enabled ?? CONFIG_DEFAULTS.enabled,
18488
+ serviceName: configPartial.serviceName ?? CONFIG_DEFAULTS.serviceName,
18489
+ environment: configPartial.environment ?? configPartial.appEnv ?? CONFIG_DEFAULTS.environment,
18490
+ dbStatementDebug: configPartial.dbStatementDebug ?? false
18491
+ };
18492
+ }
18493
+ function getResolvedConfig() {
18494
+ return resolvedConfig;
18495
+ }
18496
+ function getTracer() {
18497
+ return import_api.trace.getTracer(TRACER_NAME, TRACER_VERSION);
18498
+ }
18499
+ var import_api, CONFIG_DEFAULTS, TRACER_NAME = "@gobing-ai/ts-infra", TRACER_VERSION = "0.1.0", resolvedConfig;
18500
+ var init_sdk = __esm(() => {
18501
+ import_api = __toESM(require_src(), 1);
18502
+ CONFIG_DEFAULTS = {
18503
+ enabled: true,
18504
+ serviceName: "ts-libs",
18505
+ environment: "development"
18506
+ };
18507
+ resolvedConfig = getTelemetryConfig();
18508
+ });
18509
+
18510
+ // ../../node_modules/.bun/@gobing-ai+ts-infra@0.4.9+3437c89d5c5e6219/node_modules/@gobing-ai/ts-infra/dist/telemetry/metrics.js
18511
+ function getMeter() {
18512
+ return import_api2.metrics.getMeter(METER_NAME, METER_VERSION);
18513
+ }
18514
+ function noopCounter() {
18515
+ if (!_noopCounter)
18516
+ _noopCounter = import_api2.createNoopMeter().createCounter("noop");
18517
+ return _noopCounter;
18518
+ }
18519
+ function getOrCreateCounter(key, name, description, unit = "{operation}") {
18520
+ if (!getResolvedConfig().enabled)
18521
+ return noopCounter();
18522
+ if (!instruments[key]) {
18523
+ instruments[key] = getMeter().createCounter(name, { description, unit });
18524
+ }
18525
+ return instruments[key];
18526
+ }
18527
+ function getEventbusEmitsTotal() {
18528
+ return getOrCreateCounter("ebEmit", "eventbus.emits.total", "Total event bus emits", "{emit}");
18529
+ }
18530
+ function getEventbusErrorsTotal() {
18531
+ return getOrCreateCounter("ebErr", "eventbus.errors.total", "Event bus errors", "{error}");
18532
+ }
18533
+ var import_api2, METER_NAME = "@gobing-ai/ts-infra", METER_VERSION = "0.1.0", instruments, _noopCounter;
18534
+ var init_metrics = __esm(() => {
18535
+ init_sdk();
18536
+ import_api2 = __toESM(require_src(), 1);
18537
+ instruments = {};
18538
+ });
18539
+
18540
+ // ../../node_modules/.bun/@gobing-ai+ts-infra@0.4.9+3437c89d5c5e6219/node_modules/@gobing-ai/ts-infra/dist/event-bus/event-bus.js
18569
18541
  function busLogger() {
18570
18542
  if (!_busLogger)
18571
18543
  _busLogger = getLogger2("event-bus");
@@ -18810,24 +18782,52 @@ var init_event_bus = __esm(() => {
18810
18782
  init_metrics();
18811
18783
  });
18812
18784
 
18813
- // ../../node_modules/.bun/@gobing-ai+ts-infra@0.4.8+e890708e3f71c185/node_modules/@gobing-ai/ts-infra/dist/event-bus/index.js
18785
+ // ../../node_modules/.bun/@gobing-ai+ts-infra@0.4.9+3437c89d5c5e6219/node_modules/@gobing-ai/ts-infra/dist/event-bus/index.js
18814
18786
  var init_event_bus2 = __esm(() => {
18815
18787
  init_event_bus();
18816
18788
  });
18817
18789
 
18818
- // ../../node_modules/.bun/@gobing-ai+ts-infra@0.4.8+e890708e3f71c185/node_modules/@gobing-ai/ts-infra/dist/telemetry/index.js
18790
+ // ../../node_modules/.bun/@gobing-ai+ts-infra@0.4.9+3437c89d5c5e6219/node_modules/@gobing-ai/ts-infra/dist/telemetry/tracing.js
18791
+ function isSuppressed(tracer) {
18792
+ return tracer === undefined && !getResolvedConfig().enabled;
18793
+ }
18794
+ function nonRecordingSpan() {
18795
+ return import_api3.trace.wrapSpanContext(import_api3.INVALID_SPAN_CONTEXT);
18796
+ }
18797
+ async function traceAsync(name, fn, options2, tracer) {
18798
+ if (isSuppressed(tracer))
18799
+ return fn(nonRecordingSpan());
18800
+ const resolvedTracer = tracer ?? getTracer();
18801
+ return resolvedTracer.startActiveSpan(name, options2 ?? {}, async (span) => {
18802
+ try {
18803
+ return await fn(span);
18804
+ } catch (err) {
18805
+ span.setStatus({ code: 2, message: err instanceof Error ? err.message : String(err) });
18806
+ throw err;
18807
+ } finally {
18808
+ span.end();
18809
+ }
18810
+ });
18811
+ }
18812
+ var import_api3;
18813
+ var init_tracing = __esm(() => {
18814
+ init_sdk();
18815
+ import_api3 = __toESM(require_src(), 1);
18816
+ });
18817
+
18818
+ // ../../node_modules/.bun/@gobing-ai+ts-infra@0.4.9+3437c89d5c5e6219/node_modules/@gobing-ai/ts-infra/dist/telemetry/index.js
18819
18819
  var init_telemetry = __esm(() => {
18820
18820
  init_tracing();
18821
18821
  });
18822
18822
 
18823
- // ../../node_modules/.bun/@gobing-ai+ts-infra@0.4.8+e890708e3f71c185/node_modules/@gobing-ai/ts-infra/dist/index.js
18823
+ // ../../node_modules/.bun/@gobing-ai+ts-infra@0.4.9+3437c89d5c5e6219/node_modules/@gobing-ai/ts-infra/dist/index.js
18824
18824
  var init_dist3 = __esm(() => {
18825
18825
  init_event_bus2();
18826
18826
  init_logger2();
18827
18827
  init_telemetry();
18828
18828
  });
18829
18829
 
18830
- // ../../node_modules/.bun/@gobing-ai+ts-ai-runner@0.4.8+5a4f8cc6c6b198a4/node_modules/@gobing-ai/ts-ai-runner/dist/agents/shims.js
18830
+ // ../../node_modules/.bun/@gobing-ai+ts-ai-runner@0.4.9+f538f5927c5652e6/node_modules/@gobing-ai/ts-ai-runner/dist/agents/shims.js
18831
18831
  function resolveAgentName(input) {
18832
18832
  if (isCanonicalName(input))
18833
18833
  return input;
@@ -33678,7 +33678,7 @@ var init_zod2 = __esm(() => {
33678
33678
  init_external2();
33679
33679
  });
33680
33680
 
33681
- // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.8+228fd7a6ff60553a/node_modules/@gobing-ai/ts-runtime/dist/config.js
33681
+ // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.9+887bd90ab9d8a051/node_modules/@gobing-ai/ts-runtime/dist/config.js
33682
33682
  function parseYamlObject(text) {
33683
33683
  let parsed;
33684
33684
  try {
@@ -33693,6 +33693,9 @@ function parseYamlObject(text) {
33693
33693
  }
33694
33694
  return parsed;
33695
33695
  }
33696
+ function getProcessEnv() {
33697
+ return process.env;
33698
+ }
33696
33699
  function interpolateEnv(value) {
33697
33700
  return value.replace(ENV_INTERPOLATION_RE, (_match, name) => process.env[name] ?? `\${${name}}`);
33698
33701
  }
@@ -33775,7 +33778,7 @@ var init_config = __esm(() => {
33775
33778
  };
33776
33779
  });
33777
33780
 
33778
- // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.8+228fd7a6ff60553a/node_modules/@gobing-ai/ts-runtime/dist/file-system-node.js
33781
+ // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.9+887bd90ab9d8a051/node_modules/@gobing-ai/ts-runtime/dist/file-system-node.js
33779
33782
  import { appendFileSync, cpSync as cpSync2, createReadStream, createWriteStream, existsSync as existsSync9, mkdirSync as mkdirSync5, readdirSync as readdirSync3, readFileSync as readFileSync6, realpathSync, renameSync, rmSync as rmSync4, statSync as statSync4, writeFileSync as writeFileSync4 } from "fs";
33780
33783
  import { dirname as dirname5, resolve as resolvePath } from "path";
33781
33784
  function createNodeFileSystem(root) {
@@ -33862,6 +33865,17 @@ function findProjectRoot(startDir) {
33862
33865
  }
33863
33866
  var init_file_system_node = () => {};
33864
33867
 
33868
+ // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.9+887bd90ab9d8a051/node_modules/@gobing-ai/ts-runtime/dist/db-errors.js
33869
+ var DbModuleNotInstalledError;
33870
+ var init_db_errors = __esm(() => {
33871
+ DbModuleNotInstalledError = class DbModuleNotInstalledError extends Error {
33872
+ constructor(message = "@gobing-ai/ts-db is not installed. It is an optional peer of @gobing-ai/ts-runtime, required only for createDbAdapter on node-bun. Install it (`bun add @gobing-ai/ts-db`) or, when bundling, mark `@gobing-ai/ts-db` external.", options2) {
33873
+ super(message, options2);
33874
+ this.name = "DbModuleNotInstalledError";
33875
+ }
33876
+ };
33877
+ });
33878
+
33865
33879
  // ../../node_modules/.bun/is-plain-obj@4.1.0/node_modules/is-plain-obj/index.js
33866
33880
  function isPlainObject4(value) {
33867
33881
  if (typeof value !== "object" || value === null) {
@@ -41042,10 +41056,10 @@ var init_execa = __esm(() => {
41042
41056
  } = getIpcExport());
41043
41057
  });
41044
41058
 
41045
- // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.8+228fd7a6ff60553a/node_modules/@gobing-ai/ts-runtime/dist/process-executor.js
41059
+ // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.9+887bd90ab9d8a051/node_modules/@gobing-ai/ts-runtime/dist/process-executor.js
41046
41060
  import { isatty } from "tty";
41047
41061
 
41048
- class ProcessExecutor {
41062
+ class NodeProcessExecutor {
41049
41063
  config;
41050
41064
  constructor(config2 = {}) {
41051
41065
  this.config = config2;
@@ -41278,14 +41292,71 @@ function isTimedOut(error51) {
41278
41292
  function errorMessage(error51) {
41279
41293
  return error51 instanceof Error ? error51.message : String(error51);
41280
41294
  }
41281
- var NodeProcessExecutor;
41282
41295
  var init_process_executor = __esm(() => {
41283
41296
  init_execa();
41284
- NodeProcessExecutor = class NodeProcessExecutor extends ProcessExecutor {
41297
+ });
41298
+
41299
+ // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.9+887bd90ab9d8a051/node_modules/@gobing-ai/ts-runtime/dist/runtime-node-bun.js
41300
+ function getNodeFileSystem() {
41301
+ if (!_nodeFileSystem)
41302
+ _nodeFileSystem = createNodeFileSystem();
41303
+ return _nodeFileSystem;
41304
+ }
41305
+ async function loadNodeConfig(options2) {
41306
+ const fs = getNodeFileSystem();
41307
+ const raw = await readYamlConfig(fs);
41308
+ return buildConfigFromObject(raw ?? {}, options2);
41309
+ }
41310
+ async function readYamlConfig(fs) {
41311
+ const candidates = [getProcessEnv().CONFIG_PATH, "config/config.yaml", "config/config.example.yaml"].filter((p) => typeof p === "string" && p.length > 0);
41312
+ for (const candidate of candidates) {
41313
+ const resolved = fs.resolve(candidate);
41314
+ if (await fs.exists(resolved)) {
41315
+ const content = await fs.readFile(resolved);
41316
+ try {
41317
+ return $parse(content);
41318
+ } catch {}
41319
+ }
41320
+ }
41321
+ return null;
41322
+ }
41323
+ var _nodeFileSystem, nodeBunFactory;
41324
+ var init_runtime_node_bun = __esm(() => {
41325
+ init_dist2();
41326
+ init_config();
41327
+ init_db_errors();
41328
+ init_file_system_node();
41329
+ init_process_executor();
41330
+ nodeBunFactory = {
41331
+ runtimeName: "node-bun",
41332
+ capabilities: {
41333
+ hasFilesystem: true,
41334
+ hasProcessExecution: true,
41335
+ hasPersistentStorage: true,
41336
+ hasSqlDatabase: true
41337
+ },
41338
+ createFileSystem: () => getNodeFileSystem(),
41339
+ createProcessExecutor: (config2) => new NodeProcessExecutor(config2),
41340
+ async loadConfig(options2) {
41341
+ return loadNodeConfig(options2);
41342
+ },
41343
+ async createDbAdapter(config2) {
41344
+ const tsDbSpec = "@gobing-ai/ts-db";
41345
+ let mod;
41346
+ try {
41347
+ mod = await import(tsDbSpec);
41348
+ } catch (cause) {
41349
+ throw new DbModuleNotInstalledError(undefined, { cause });
41350
+ }
41351
+ if (typeof mod.createDbAdapter !== "function") {
41352
+ throw new DbModuleNotInstalledError("@gobing-ai/ts-db is installed but does not export createDbAdapter \u2014 the installed version may be incompatible or partial.");
41353
+ }
41354
+ return mod.createDbAdapter({ driver: "bun-sqlite", url: config2.url });
41355
+ }
41285
41356
  };
41286
41357
  });
41287
41358
 
41288
- // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.8+228fd7a6ff60553a/node_modules/@gobing-ai/ts-runtime/dist/context.js
41359
+ // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.9+887bd90ab9d8a051/node_modules/@gobing-ai/ts-runtime/dist/context.js
41289
41360
  class RuntimeContext {
41290
41361
  scope;
41291
41362
  runtimeName;
@@ -41303,7 +41374,7 @@ class RuntimeContext {
41303
41374
  this.register("config", options2.services?.config ?? buildConfigFromObject({}));
41304
41375
  this.register("fileSystem", options2.services?.fileSystem ?? createNodeFileSystem());
41305
41376
  if (this.capabilities.hasProcessExecution && options2.services?.processExecutor === undefined) {
41306
- this.register("processExecutor", new ProcessExecutor);
41377
+ this.register("processExecutor", nodeBunFactory.createProcessExecutor());
41307
41378
  }
41308
41379
  for (const [key, value] of Object.entries(options2.services ?? {})) {
41309
41380
  if (value !== undefined) {
@@ -41352,10 +41423,10 @@ function isDisposable(value) {
41352
41423
  var init_context2 = __esm(() => {
41353
41424
  init_config();
41354
41425
  init_file_system_node();
41355
- init_process_executor();
41426
+ init_runtime_node_bun();
41356
41427
  });
41357
41428
 
41358
- // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.8+228fd7a6ff60553a/node_modules/@gobing-ai/ts-runtime/dist/path.js
41429
+ // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.9+887bd90ab9d8a051/node_modules/@gobing-ai/ts-runtime/dist/path.js
41359
41430
  function normalizeSeparators(path6) {
41360
41431
  return path6.replaceAll("\\", "/");
41361
41432
  }
@@ -41387,21 +41458,20 @@ var init_path = __esm(() => {
41387
41458
  SEP = globalThis.process?.platform === "win32" ? "\\" : "/";
41388
41459
  });
41389
41460
 
41390
- // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.8+228fd7a6ff60553a/node_modules/@gobing-ai/ts-runtime/dist/schema-validation.js
41461
+ // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.9+887bd90ab9d8a051/node_modules/@gobing-ai/ts-runtime/dist/schema-validation.js
41391
41462
  var REMOTE_SCHEMA_MAX_BYTES;
41392
41463
  var init_schema_validation = __esm(() => {
41393
41464
  init_dist2();
41394
41465
  REMOTE_SCHEMA_MAX_BYTES = 5 * 1024 * 1024;
41395
41466
  });
41396
41467
 
41397
- // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.8+228fd7a6ff60553a/node_modules/@gobing-ai/ts-runtime/dist/types.js
41468
+ // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.9+887bd90ab9d8a051/node_modules/@gobing-ai/ts-runtime/dist/types.js
41398
41469
  var init_types3 = () => {};
41399
41470
 
41400
- // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.8+228fd7a6ff60553a/node_modules/@gobing-ai/ts-runtime/dist/index.js
41471
+ // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.9+887bd90ab9d8a051/node_modules/@gobing-ai/ts-runtime/dist/index.js
41401
41472
  var init_dist4 = __esm(() => {
41402
41473
  init_file_system_node();
41403
- init_process_executor();
41404
- init_process_executor();
41474
+ init_runtime_node_bun();
41405
41475
  init_config();
41406
41476
  init_context2();
41407
41477
  init_path();
@@ -41409,7 +41479,7 @@ var init_dist4 = __esm(() => {
41409
41479
  init_types3();
41410
41480
  });
41411
41481
 
41412
- // ../../node_modules/.bun/@gobing-ai+ts-ai-runner@0.4.8+5a4f8cc6c6b198a4/node_modules/@gobing-ai/ts-ai-runner/dist/identity.js
41482
+ // ../../node_modules/.bun/@gobing-ai+ts-ai-runner@0.4.9+f538f5927c5652e6/node_modules/@gobing-ai/ts-ai-runner/dist/identity.js
41413
41483
  function buildIdentityPreamble(ctx) {
41414
41484
  const sections = [
41415
41485
  `You are agent \`${ctx.agentId}\` (${ctx.agentType}) in workspace \`${ctx.workspace}\`.`
@@ -41451,7 +41521,7 @@ function buildIdentityPreamble(ctx) {
41451
41521
  }
41452
41522
  var init_identity2 = () => {};
41453
41523
 
41454
- // ../../node_modules/.bun/@gobing-ai+ts-ai-runner@0.4.8+5a4f8cc6c6b198a4/node_modules/@gobing-ai/ts-ai-runner/dist/slash-command.js
41524
+ // ../../node_modules/.bun/@gobing-ai+ts-ai-runner@0.4.9+f538f5927c5652e6/node_modules/@gobing-ai/ts-ai-runner/dist/slash-command.js
41455
41525
  function translateSlashCommand(agent, input) {
41456
41526
  const match = SLASH_COMMAND_RE.exec(input);
41457
41527
  if (!match)
@@ -41476,19 +41546,22 @@ var init_slash_command = __esm(() => {
41476
41546
  SLASH_COMMAND_RE = /^\/([a-zA-Z0-9._-]+):([a-zA-Z0-9._-]+)(\s.*)?$/;
41477
41547
  });
41478
41548
 
41479
- // ../../node_modules/.bun/@gobing-ai+ts-ai-runner@0.4.8+5a4f8cc6c6b198a4/node_modules/@gobing-ai/ts-ai-runner/dist/ai-runner.js
41549
+ // ../../node_modules/.bun/@gobing-ai+ts-ai-runner@0.4.9+f538f5927c5652e6/node_modules/@gobing-ai/ts-ai-runner/dist/ai-runner.js
41480
41550
  class AiRunner {
41481
41551
  processExecutor;
41482
41552
  defaultCwd;
41483
41553
  defaultTimeout;
41484
41554
  logger;
41485
41555
  events;
41556
+ processEvents;
41486
41557
  constructor(options2 = {}) {
41487
- this.processExecutor = options2.processExecutor ?? new NodeProcessExecutor({
41488
- ...options2.processEvents !== undefined ? {
41558
+ const processEvents = options2.processEvents ?? (options2.lifecycleBus ? new EventBus({ lifecycleBus: options2.lifecycleBus }) : undefined);
41559
+ const events = options2.events ?? (options2.lifecycleBus ? new EventBus({ lifecycleBus: options2.lifecycleBus }) : undefined);
41560
+ this.processExecutor = options2.processExecutor ?? nodeBunFactory.createProcessExecutor({
41561
+ ...processEvents !== undefined ? {
41489
41562
  events: {
41490
41563
  emit: (event, detail) => {
41491
- options2.processEvents?.emit(event, detail);
41564
+ processEvents?.emit(event, detail);
41492
41565
  }
41493
41566
  }
41494
41567
  } : {},
@@ -41499,7 +41572,8 @@ class AiRunner {
41499
41572
  this.defaultCwd = options2.defaultCwd;
41500
41573
  this.defaultTimeout = options2.defaultTimeout;
41501
41574
  this.logger = options2.logger ?? getLogger2("ai-runner");
41502
- this.events = options2.events;
41575
+ this.events = events;
41576
+ this.processEvents = processEvents;
41503
41577
  }
41504
41578
  runHelpCommand(agent, options2 = {}) {
41505
41579
  return this.invoke(agent, "help", getAgentShim(agent).getHelpCommand(), options2, true);
@@ -41590,10 +41664,10 @@ var init_ai_runner = __esm(() => {
41590
41664
  init_slash_command();
41591
41665
  });
41592
41666
 
41593
- // ../../node_modules/.bun/@gobing-ai+ts-ai-runner@0.4.8+5a4f8cc6c6b198a4/node_modules/@gobing-ai/ts-ai-runner/dist/agent-detector.js
41667
+ // ../../node_modules/.bun/@gobing-ai+ts-ai-runner@0.4.9+f538f5927c5652e6/node_modules/@gobing-ai/ts-ai-runner/dist/agent-detector.js
41594
41668
  var init_agent_detector = () => {};
41595
41669
 
41596
- // ../../node_modules/.bun/@gobing-ai+ts-ai-runner@0.4.8+5a4f8cc6c6b198a4/node_modules/@gobing-ai/ts-ai-runner/dist/agent-spec.js
41670
+ // ../../node_modules/.bun/@gobing-ai+ts-ai-runner@0.4.9+f538f5927c5652e6/node_modules/@gobing-ai/ts-ai-runner/dist/agent-spec.js
41597
41671
  function validateAgentId(id) {
41598
41672
  if (!/^[a-z][a-z0-9_-]{1,63}$/.test(id)) {
41599
41673
  throw new ValueError(`Invalid agent id "${id}": expected 2-64 chars, lowercase alphanumeric, "_" or "-"`);
@@ -41668,10 +41742,10 @@ var init_agent_spec = __esm(() => {
41668
41742
  };
41669
41743
  });
41670
41744
 
41671
- // ../../node_modules/.bun/@gobing-ai+ts-ai-runner@0.4.8+5a4f8cc6c6b198a4/node_modules/@gobing-ai/ts-ai-runner/dist/agents/auth-shims.js
41745
+ // ../../node_modules/.bun/@gobing-ai+ts-ai-runner@0.4.9+f538f5927c5652e6/node_modules/@gobing-ai/ts-ai-runner/dist/agents/auth-shims.js
41672
41746
  var init_auth_shims = () => {};
41673
41747
 
41674
- // ../../node_modules/.bun/@gobing-ai+ts-ai-runner@0.4.8+5a4f8cc6c6b198a4/node_modules/@gobing-ai/ts-ai-runner/dist/model-health-probe.js
41748
+ // ../../node_modules/.bun/@gobing-ai+ts-ai-runner@0.4.9+f538f5927c5652e6/node_modules/@gobing-ai/ts-ai-runner/dist/model-health-probe.js
41675
41749
  class ModelHealthProbeRegistry {
41676
41750
  probes = new Map;
41677
41751
  register(providerPrefix, probe) {
@@ -41685,18 +41759,18 @@ class ModelHealthProbeRegistry {
41685
41759
  }
41686
41760
  var init_model_health_probe = () => {};
41687
41761
 
41688
- // ../../node_modules/.bun/@gobing-ai+ts-ai-runner@0.4.8+5a4f8cc6c6b198a4/node_modules/@gobing-ai/ts-ai-runner/dist/doctor-runner.js
41762
+ // ../../node_modules/.bun/@gobing-ai+ts-ai-runner@0.4.9+f538f5927c5652e6/node_modules/@gobing-ai/ts-ai-runner/dist/doctor-runner.js
41689
41763
  var init_doctor_runner = () => {};
41690
41764
 
41691
- // ../../node_modules/.bun/@gobing-ai+ts-ai-runner@0.4.8+5a4f8cc6c6b198a4/node_modules/@gobing-ai/ts-ai-runner/dist/events.js
41765
+ // ../../node_modules/.bun/@gobing-ai+ts-ai-runner@0.4.9+f538f5927c5652e6/node_modules/@gobing-ai/ts-ai-runner/dist/events.js
41692
41766
  var init_events = () => {};
41693
41767
 
41694
- // ../../node_modules/.bun/@gobing-ai+ts-ai-runner@0.4.8+5a4f8cc6c6b198a4/node_modules/@gobing-ai/ts-ai-runner/dist/messages.js
41768
+ // ../../node_modules/.bun/@gobing-ai+ts-ai-runner@0.4.9+f538f5927c5652e6/node_modules/@gobing-ai/ts-ai-runner/dist/messages.js
41695
41769
  function formatMessage(msg) {
41696
41770
  return `[task from=${msg.fromId ?? "operator"} id=${msg.id}] ${msg.body}`;
41697
41771
  }
41698
41772
 
41699
- // ../../node_modules/.bun/@gobing-ai+ts-ai-runner@0.4.8+5a4f8cc6c6b198a4/node_modules/@gobing-ai/ts-ai-runner/dist/team-agent-process.js
41773
+ // ../../node_modules/.bun/@gobing-ai+ts-ai-runner@0.4.9+f538f5927c5652e6/node_modules/@gobing-ai/ts-ai-runner/dist/team-agent-process.js
41700
41774
  import { Buffer as Buffer5 } from "buffer";
41701
41775
 
41702
41776
  class TeamAgentProcess {
@@ -41715,7 +41789,7 @@ class TeamAgentProcess {
41715
41789
  this.command = options2.command;
41716
41790
  this.env = options2.env;
41717
41791
  this.cwd = options2.cwd ?? options2.spec.workspace;
41718
- this.processExecutor = options2.processExecutor ?? new ProcessExecutor;
41792
+ this.processExecutor = options2.processExecutor ?? nodeBunFactory.createProcessExecutor();
41719
41793
  this.logger = options2.logger ?? getLogger2("team-agent");
41720
41794
  }
41721
41795
  async start() {
@@ -41830,7 +41904,7 @@ var init_team_agent_process = __esm(() => {
41830
41904
  init_dist4();
41831
41905
  });
41832
41906
 
41833
- // ../../node_modules/.bun/@gobing-ai+ts-ai-runner@0.4.8+5a4f8cc6c6b198a4/node_modules/@gobing-ai/ts-ai-runner/dist/team-orchestrator.js
41907
+ // ../../node_modules/.bun/@gobing-ai+ts-ai-runner@0.4.9+f538f5927c5652e6/node_modules/@gobing-ai/ts-ai-runner/dist/team-orchestrator.js
41834
41908
  class TeamOrchestrator {
41835
41909
  configDir;
41836
41910
  inbox;
@@ -41842,7 +41916,7 @@ class TeamOrchestrator {
41842
41916
  this.configDir = configDir;
41843
41917
  this.inbox = inbox;
41844
41918
  this.processFactory = options2.processFactory ?? ((processOptions) => new TeamAgentProcess(processOptions));
41845
- this.events = options2.events ?? new EventBus;
41919
+ this.events = options2.events ?? (options2.lifecycleBus ? new EventBus({ lifecycleBus: options2.lifecycleBus }) : new EventBus);
41846
41920
  }
41847
41921
  async loadSpecs() {
41848
41922
  this.specs = await loadAgentSpecs(this.configDir);
@@ -41959,7 +42033,7 @@ var init_team_orchestrator = __esm(() => {
41959
42033
  init_team_agent_process();
41960
42034
  });
41961
42035
 
41962
- // ../../node_modules/.bun/@gobing-ai+ts-ai-runner@0.4.8+5a4f8cc6c6b198a4/node_modules/@gobing-ai/ts-ai-runner/dist/index.js
42036
+ // ../../node_modules/.bun/@gobing-ai+ts-ai-runner@0.4.9+f538f5927c5652e6/node_modules/@gobing-ai/ts-ai-runner/dist/index.js
41963
42037
  var init_dist5 = __esm(() => {
41964
42038
  init_agent_detector();
41965
42039
  init_agent_spec();
@@ -91042,7 +91116,10 @@ var init_src = __esm(() => {
91042
91116
  init_targets();
91043
91117
  });
91044
91118
 
91045
- // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.8+25c63b82bf4f1018/node_modules/@gobing-ai/ts-runtime/dist/config.js
91119
+ // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.9+e21cf95445198d4f/node_modules/@gobing-ai/ts-runtime/dist/config.js
91120
+ function getProcessEnv2() {
91121
+ return process.env;
91122
+ }
91046
91123
  function interpolateEnv2(value) {
91047
91124
  return value.replace(ENV_INTERPOLATION_RE2, (_match, name) => process.env[name] ?? `\${${name}}`);
91048
91125
  }
@@ -91117,7 +91194,7 @@ var init_config2 = __esm(() => {
91117
91194
  };
91118
91195
  });
91119
91196
 
91120
- // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.8+25c63b82bf4f1018/node_modules/@gobing-ai/ts-runtime/dist/file-system-node.js
91197
+ // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.9+e21cf95445198d4f/node_modules/@gobing-ai/ts-runtime/dist/file-system-node.js
91121
91198
  import { appendFileSync as appendFileSync3, cpSync as cpSync3, createReadStream as createReadStream3, createWriteStream as createWriteStream3, existsSync as existsSync12, mkdirSync as mkdirSync6, readdirSync as readdirSync4, readFileSync as readFileSync11, realpathSync as realpathSync2, renameSync as renameSync2, rmSync as rmSync5, statSync as statSync6, writeFileSync as writeFileSync6 } from "fs";
91122
91199
  import { dirname as dirname7, resolve as resolvePath3 } from "path";
91123
91200
  function createNodeFileSystem2(root) {
@@ -91204,10 +91281,21 @@ function findProjectRoot2(startDir) {
91204
91281
  }
91205
91282
  var init_file_system_node2 = () => {};
91206
91283
 
91207
- // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.8+25c63b82bf4f1018/node_modules/@gobing-ai/ts-runtime/dist/process-executor.js
91284
+ // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.9+e21cf95445198d4f/node_modules/@gobing-ai/ts-runtime/dist/db-errors.js
91285
+ var DbModuleNotInstalledError3;
91286
+ var init_db_errors2 = __esm(() => {
91287
+ DbModuleNotInstalledError3 = class DbModuleNotInstalledError3 extends Error {
91288
+ constructor(message = "@gobing-ai/ts-db is not installed. It is an optional peer of @gobing-ai/ts-runtime, required only for createDbAdapter on node-bun. Install it (`bun add @gobing-ai/ts-db`) or, when bundling, mark `@gobing-ai/ts-db` external.", options2) {
91289
+ super(message, options2);
91290
+ this.name = "DbModuleNotInstalledError";
91291
+ }
91292
+ };
91293
+ });
91294
+
91295
+ // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.9+e21cf95445198d4f/node_modules/@gobing-ai/ts-runtime/dist/process-executor.js
91208
91296
  import { isatty as isatty2 } from "tty";
91209
91297
 
91210
- class ProcessExecutor2 {
91298
+ class NodeProcessExecutor3 {
91211
91299
  config;
91212
91300
  constructor(config3 = {}) {
91213
91301
  this.config = config3;
@@ -91444,7 +91532,67 @@ var init_process_executor2 = __esm(() => {
91444
91532
  init_execa();
91445
91533
  });
91446
91534
 
91447
- // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.8+25c63b82bf4f1018/node_modules/@gobing-ai/ts-runtime/dist/context.js
91535
+ // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.9+e21cf95445198d4f/node_modules/@gobing-ai/ts-runtime/dist/runtime-node-bun.js
91536
+ function getNodeFileSystem2() {
91537
+ if (!_nodeFileSystem2)
91538
+ _nodeFileSystem2 = createNodeFileSystem2();
91539
+ return _nodeFileSystem2;
91540
+ }
91541
+ async function loadNodeConfig2(options2) {
91542
+ const fs4 = getNodeFileSystem2();
91543
+ const raw = await readYamlConfig2(fs4);
91544
+ return buildConfigFromObject2(raw ?? {}, options2);
91545
+ }
91546
+ async function readYamlConfig2(fs4) {
91547
+ const candidates = [getProcessEnv2().CONFIG_PATH, "config/config.yaml", "config/config.example.yaml"].filter((p) => typeof p === "string" && p.length > 0);
91548
+ for (const candidate of candidates) {
91549
+ const resolved = fs4.resolve(candidate);
91550
+ if (await fs4.exists(resolved)) {
91551
+ const content = await fs4.readFile(resolved);
91552
+ try {
91553
+ return $parse(content);
91554
+ } catch {}
91555
+ }
91556
+ }
91557
+ return null;
91558
+ }
91559
+ var _nodeFileSystem2, nodeBunFactory2;
91560
+ var init_runtime_node_bun2 = __esm(() => {
91561
+ init_dist2();
91562
+ init_config2();
91563
+ init_db_errors2();
91564
+ init_file_system_node2();
91565
+ init_process_executor2();
91566
+ nodeBunFactory2 = {
91567
+ runtimeName: "node-bun",
91568
+ capabilities: {
91569
+ hasFilesystem: true,
91570
+ hasProcessExecution: true,
91571
+ hasPersistentStorage: true,
91572
+ hasSqlDatabase: true
91573
+ },
91574
+ createFileSystem: () => getNodeFileSystem2(),
91575
+ createProcessExecutor: (config3) => new NodeProcessExecutor3(config3),
91576
+ async loadConfig(options2) {
91577
+ return loadNodeConfig2(options2);
91578
+ },
91579
+ async createDbAdapter(config3) {
91580
+ const tsDbSpec = "@gobing-ai/ts-db";
91581
+ let mod;
91582
+ try {
91583
+ mod = await import(tsDbSpec);
91584
+ } catch (cause) {
91585
+ throw new DbModuleNotInstalledError3(undefined, { cause });
91586
+ }
91587
+ if (typeof mod.createDbAdapter !== "function") {
91588
+ throw new DbModuleNotInstalledError3("@gobing-ai/ts-db is installed but does not export createDbAdapter \u2014 the installed version may be incompatible or partial.");
91589
+ }
91590
+ return mod.createDbAdapter({ driver: "bun-sqlite", url: config3.url });
91591
+ }
91592
+ };
91593
+ });
91594
+
91595
+ // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.9+e21cf95445198d4f/node_modules/@gobing-ai/ts-runtime/dist/context.js
91448
91596
  class RuntimeContext2 {
91449
91597
  scope;
91450
91598
  runtimeName;
@@ -91462,7 +91610,7 @@ class RuntimeContext2 {
91462
91610
  this.register("config", options2.services?.config ?? buildConfigFromObject2({}));
91463
91611
  this.register("fileSystem", options2.services?.fileSystem ?? createNodeFileSystem2());
91464
91612
  if (this.capabilities.hasProcessExecution && options2.services?.processExecutor === undefined) {
91465
- this.register("processExecutor", new ProcessExecutor2);
91613
+ this.register("processExecutor", nodeBunFactory2.createProcessExecutor());
91466
91614
  }
91467
91615
  for (const [key, value] of Object.entries(options2.services ?? {})) {
91468
91616
  if (value !== undefined) {
@@ -91511,10 +91659,10 @@ function isDisposable2(value) {
91511
91659
  var init_context3 = __esm(() => {
91512
91660
  init_config2();
91513
91661
  init_file_system_node2();
91514
- init_process_executor2();
91662
+ init_runtime_node_bun2();
91515
91663
  });
91516
91664
 
91517
- // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.8+25c63b82bf4f1018/node_modules/@gobing-ai/ts-runtime/dist/path.js
91665
+ // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.9+e21cf95445198d4f/node_modules/@gobing-ai/ts-runtime/dist/path.js
91518
91666
  function normalizeSeparators2(path11) {
91519
91667
  return path11.replaceAll("\\", "/");
91520
91668
  }
@@ -91575,17 +91723,17 @@ var init_path2 = __esm(() => {
91575
91723
  SEP2 = globalThis.process?.platform === "win32" ? "\\" : "/";
91576
91724
  });
91577
91725
 
91578
- // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.8+25c63b82bf4f1018/node_modules/@gobing-ai/ts-runtime/dist/schema-validation.js
91726
+ // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.9+e21cf95445198d4f/node_modules/@gobing-ai/ts-runtime/dist/schema-validation.js
91579
91727
  var REMOTE_SCHEMA_MAX_BYTES2;
91580
91728
  var init_schema_validation2 = __esm(() => {
91581
91729
  init_dist2();
91582
91730
  REMOTE_SCHEMA_MAX_BYTES2 = 5 * 1024 * 1024;
91583
91731
  });
91584
91732
 
91585
- // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.8+25c63b82bf4f1018/node_modules/@gobing-ai/ts-runtime/dist/types.js
91733
+ // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.9+e21cf95445198d4f/node_modules/@gobing-ai/ts-runtime/dist/types.js
91586
91734
  var init_types4 = () => {};
91587
91735
 
91588
- // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.8+25c63b82bf4f1018/node_modules/@gobing-ai/ts-runtime/dist/index.js
91736
+ // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.9+e21cf95445198d4f/node_modules/@gobing-ai/ts-runtime/dist/index.js
91589
91737
  var init_dist10 = __esm(() => {
91590
91738
  init_config2();
91591
91739
  init_context3();
@@ -91594,7 +91742,7 @@ var init_dist10 = __esm(() => {
91594
91742
  init_types4();
91595
91743
  });
91596
91744
 
91597
- // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.8+25c63b82bf4f1018/node_modules/@gobing-ai/ts-runtime/dist/bun-sqlite.js
91745
+ // ../../node_modules/.bun/@gobing-ai+ts-runtime@0.4.9+e21cf95445198d4f/node_modules/@gobing-ai/ts-runtime/dist/bun-sqlite.js
91598
91746
  import { Database } from "bun:sqlite";
91599
91747
  var init_bun_sqlite = () => {};
91600
91748
 
@@ -96024,7 +96172,7 @@ var init_bun_sqlite2 = __esm(() => {
96024
96172
  init_session2();
96025
96173
  });
96026
96174
 
96027
- // ../../node_modules/.bun/@gobing-ai+ts-db@0.4.8+674fa168abb02076/node_modules/@gobing-ai/ts-db/dist/schema/inbox-messages.js
96175
+ // ../../node_modules/.bun/@gobing-ai+ts-db@0.4.9+2f8a7bf8467b52cd/node_modules/@gobing-ai/ts-db/dist/schema/inbox-messages.js
96028
96176
  var inboxMessages;
96029
96177
  var init_inbox_messages = __esm(() => {
96030
96178
  init_sqlite_core();
@@ -96043,7 +96191,7 @@ var init_inbox_messages = __esm(() => {
96043
96191
  }, (table2) => [index("idx_inbox_messages_to_status").on(table2.toId, table2.status)]);
96044
96192
  });
96045
96193
 
96046
- // ../../node_modules/.bun/@gobing-ai+ts-db@0.4.8+674fa168abb02076/node_modules/@gobing-ai/ts-db/dist/schema/common.js
96194
+ // ../../node_modules/.bun/@gobing-ai+ts-db@0.4.9+2f8a7bf8467b52cd/node_modules/@gobing-ai/ts-db/dist/schema/common.js
96047
96195
  function nowTimestamp() {
96048
96196
  return Date.now();
96049
96197
  }
@@ -96072,7 +96220,7 @@ var init_common3 = __esm(() => {
96072
96220
  appendOnlyColumns = buildAppendOnlyColumns();
96073
96221
  });
96074
96222
 
96075
- // ../../node_modules/.bun/@gobing-ai+ts-db@0.4.8+674fa168abb02076/node_modules/@gobing-ai/ts-db/dist/schema/queue-jobs.js
96223
+ // ../../node_modules/.bun/@gobing-ai+ts-db@0.4.9+2f8a7bf8467b52cd/node_modules/@gobing-ai/ts-db/dist/schema/queue-jobs.js
96076
96224
  var queueJobs;
96077
96225
  var init_queue_jobs = __esm(() => {
96078
96226
  init_sqlite_core();
@@ -96092,7 +96240,7 @@ var init_queue_jobs = __esm(() => {
96092
96240
  }, (table2) => [index("queue_jobs_ready_idx").on(table2.status, table2.nextRetryAt, table2.createdAt)]);
96093
96241
  });
96094
96242
 
96095
- // ../../node_modules/.bun/@gobing-ai+ts-db@0.4.8+674fa168abb02076/node_modules/@gobing-ai/ts-db/dist/schema/runtime.js
96243
+ // ../../node_modules/.bun/@gobing-ai+ts-db@0.4.9+2f8a7bf8467b52cd/node_modules/@gobing-ai/ts-db/dist/schema/runtime.js
96096
96244
  var exports_runtime = {};
96097
96245
  __export(exports_runtime, {
96098
96246
  queueJobs: () => queueJobs,
@@ -96103,7 +96251,7 @@ var init_runtime = __esm(() => {
96103
96251
  init_queue_jobs();
96104
96252
  });
96105
96253
 
96106
- // ../../node_modules/.bun/@gobing-ai+ts-db@0.4.8+674fa168abb02076/node_modules/@gobing-ai/ts-db/dist/adapters/bun-sqlite.js
96254
+ // ../../node_modules/.bun/@gobing-ai+ts-db@0.4.9+2f8a7bf8467b52cd/node_modules/@gobing-ai/ts-db/dist/adapters/bun-sqlite.js
96107
96255
  var exports_bun_sqlite = {};
96108
96256
  __export(exports_bun_sqlite, {
96109
96257
  BunSqliteAdapter: () => BunSqliteAdapter
@@ -96412,7 +96560,7 @@ var init_d1 = __esm(() => {
96412
96560
  init_session3();
96413
96561
  });
96414
96562
 
96415
- // ../../node_modules/.bun/@gobing-ai+ts-db@0.4.8+674fa168abb02076/node_modules/@gobing-ai/ts-db/dist/adapters/d1.js
96563
+ // ../../node_modules/.bun/@gobing-ai+ts-db@0.4.9+2f8a7bf8467b52cd/node_modules/@gobing-ai/ts-db/dist/adapters/d1.js
96416
96564
  var exports_d1 = {};
96417
96565
  __export(exports_d1, {
96418
96566
  D1Adapter: () => D1Adapter
@@ -96476,7 +96624,7 @@ var init_d12 = __esm(() => {
96476
96624
  init_runtime();
96477
96625
  });
96478
96626
 
96479
- // ../../node_modules/.bun/@gobing-ai+ts-db@0.4.8+674fa168abb02076/node_modules/@gobing-ai/ts-db/dist/adapter.js
96627
+ // ../../node_modules/.bun/@gobing-ai+ts-db@0.4.9+2f8a7bf8467b52cd/node_modules/@gobing-ai/ts-db/dist/adapter.js
96480
96628
  async function createDbAdapter(config4) {
96481
96629
  switch (config4.driver) {
96482
96630
  case "bun-sqlite": {
@@ -96510,7 +96658,7 @@ var init_drizzle_orm = __esm(() => {
96510
96658
  init_view_common();
96511
96659
  });
96512
96660
 
96513
- // ../../node_modules/.bun/@gobing-ai+ts-db@0.4.8+674fa168abb02076/node_modules/@gobing-ai/ts-db/dist/query-spec.js
96661
+ // ../../node_modules/.bun/@gobing-ai+ts-db@0.4.9+2f8a7bf8467b52cd/node_modules/@gobing-ai/ts-db/dist/query-spec.js
96514
96662
  function compilePredicate(predicate) {
96515
96663
  if ("and" in predicate) {
96516
96664
  const parts = predicate.and.map(compilePredicate).filter((p) => p !== undefined);
@@ -96548,7 +96696,7 @@ var init_query_spec = __esm(() => {
96548
96696
  };
96549
96697
  });
96550
96698
 
96551
- // ../../node_modules/.bun/@gobing-ai+ts-db@0.4.8+674fa168abb02076/node_modules/@gobing-ai/ts-db/dist/base-dao.js
96699
+ // ../../node_modules/.bun/@gobing-ai+ts-db@0.4.9+2f8a7bf8467b52cd/node_modules/@gobing-ai/ts-db/dist/base-dao.js
96552
96700
  function asSelectQuery(query) {
96553
96701
  return query;
96554
96702
  }
@@ -96590,7 +96738,7 @@ var init_base_dao = __esm(() => {
96590
96738
  init_query_spec();
96591
96739
  });
96592
96740
 
96593
- // ../../node_modules/.bun/@gobing-ai+ts-db@0.4.8+674fa168abb02076/node_modules/@gobing-ai/ts-db/dist/entity-dao.js
96741
+ // ../../node_modules/.bun/@gobing-ai+ts-db@0.4.9+2f8a7bf8467b52cd/node_modules/@gobing-ai/ts-db/dist/entity-dao.js
96594
96742
  var EntityDao;
96595
96743
  var init_entity_dao = __esm(() => {
96596
96744
  init_drizzle_orm();
@@ -96752,7 +96900,7 @@ var init_entity_dao = __esm(() => {
96752
96900
  };
96753
96901
  });
96754
96902
 
96755
- // ../../node_modules/.bun/@gobing-ai+ts-db@0.4.8+674fa168abb02076/node_modules/@gobing-ai/ts-db/dist/index.js
96903
+ // ../../node_modules/.bun/@gobing-ai+ts-db@0.4.9+2f8a7bf8467b52cd/node_modules/@gobing-ai/ts-db/dist/index.js
96756
96904
  var init_dist11 = __esm(() => {
96757
96905
  init_entity_dao();
96758
96906
  });
@@ -97020,7 +97168,7 @@ var init_drizzle_zod = __esm(() => {
97020
97168
  };
97021
97169
  });
97022
97170
 
97023
- // ../../node_modules/.bun/@gobing-ai+ts-db@0.4.8+674fa168abb02076/node_modules/@gobing-ai/ts-db/dist/schema/drizzle-internals.js
97171
+ // ../../node_modules/.bun/@gobing-ai+ts-db@0.4.9+2f8a7bf8467b52cd/node_modules/@gobing-ai/ts-db/dist/schema/drizzle-internals.js
97024
97172
  function sqlExpressionToText(value) {
97025
97173
  if (typeof value !== "object" || value === null || !("queryChunks" in value)) {
97026
97174
  return;
@@ -97043,7 +97191,7 @@ function getDrizzleTableName(table3) {
97043
97191
  return String(table3[nameSym]);
97044
97192
  }
97045
97193
 
97046
- // ../../node_modules/.bun/@gobing-ai+ts-db@0.4.8+674fa168abb02076/node_modules/@gobing-ai/ts-db/dist/schema/ddl.js
97194
+ // ../../node_modules/.bun/@gobing-ai+ts-db@0.4.9+2f8a7bf8467b52cd/node_modules/@gobing-ai/ts-db/dist/schema/ddl.js
97047
97195
  function quoteIdent(name) {
97048
97196
  return `"${name.replace(/"/g, '""')}"`;
97049
97197
  }
@@ -97137,7 +97285,7 @@ var init_ddl = __esm(() => {
97137
97285
  init_sqlite_core();
97138
97286
  });
97139
97287
 
97140
- // ../../node_modules/.bun/@gobing-ai+ts-db@0.4.8+674fa168abb02076/node_modules/@gobing-ai/ts-db/dist/schema/define-table.js
97288
+ // ../../node_modules/.bun/@gobing-ai+ts-db@0.4.9+2f8a7bf8467b52cd/node_modules/@gobing-ai/ts-db/dist/schema/define-table.js
97141
97289
  function defineTable(name, columns2) {
97142
97290
  const table3 = sqliteTable(name, columns2);
97143
97291
  let insert2;
@@ -97171,7 +97319,7 @@ var init_define_table = __esm(() => {
97171
97319
  init_ddl();
97172
97320
  });
97173
97321
 
97174
- // ../../node_modules/.bun/@gobing-ai+ts-db@0.4.8+674fa168abb02076/node_modules/@gobing-ai/ts-db/dist/schema/index.js
97322
+ // ../../node_modules/.bun/@gobing-ai+ts-db@0.4.9+2f8a7bf8467b52cd/node_modules/@gobing-ai/ts-db/dist/schema/index.js
97175
97323
  var init_schema = __esm(() => {
97176
97324
  init_sqlite_core();
97177
97325
  init_define_table();
@@ -99387,7 +99535,11 @@ var SOURCE_PATTERNS = [
99387
99535
  /Source:\s*\[?[^\n]+\]?/i,
99388
99536
  /Sources:\s*\n\s*-\s*\[?[^\n]+\]/i,
99389
99537
  /https?:\/\/[^\s)]+/i,
99390
- /\*\*Source\*\*:\s*[^\n]+/i
99538
+ /\*\*Source\*\*:\s*[^\n]+/i,
99539
+ /\b[a-zA-Z][a-zA-Z0-9_-]*\.[a-zA-Z0-9]+:\d+(?:-\d+)?/,
99540
+ /\bexit\s+code\s+\d+/i,
99541
+ /\bexit\s+\d+/i,
99542
+ /\b\d+\s+pass(?:ed)?\s+(?:\/|and)\s+\d+\s+fail(?:ed)?\b/i
99391
99543
  ];
99392
99544
  var CONFIDENCE_PATTERNS = [
99393
99545
  /Confidence:\s*(HIGH|MEDIUM|LOW)/i,
@@ -99549,7 +99701,9 @@ function hasRedFlags(text3) {
99549
99701
  return foundFlags;
99550
99702
  }
99551
99703
  var STRONG_CLAIM_PATTERNS = [
99552
- /\bv?\d+\.\d+(?:\.\d+)?\b/,
99704
+ /\bv\d+(?:\.\d+)+\b/i,
99705
+ /\b(?:version|release|semver)\s+v?\d+\.\d+/i,
99706
+ /(?<![\d.])\d+\.\d+\.\d+(?![\d.])(?!\s*%)/,
99553
99707
  /https?:\/\//,
99554
99708
  /recent\s+(?:change|update|release)/i,
99555
99709
  /\b(?:was|were|is|are)\s+(?:introduced|added|deprecated|removed|renamed|released)\b/i,
@@ -99600,7 +99754,7 @@ if (false) {}
99600
99754
  // package.json
99601
99755
  var package_default = {
99602
99756
  name: "@gobing-ai/superskill",
99603
- version: "0.3.0",
99757
+ version: "0.3.1",
99604
99758
  description: "A manager for multi-agent skill, slash command, subagent, hook, MCP and etc.",
99605
99759
  keywords: [
99606
99760
  "cli",
@@ -99637,9 +99791,9 @@ var package_default = {
99637
99791
  typecheck: "tsc --noEmit"
99638
99792
  },
99639
99793
  dependencies: {
99640
- "@gobing-ai/ts-ai-runner": "^0.4.8",
99641
- "@gobing-ai/ts-db": "^0.4.8",
99642
- "@gobing-ai/ts-utils": "^0.4.8",
99794
+ "@gobing-ai/ts-ai-runner": "^0.4.9",
99795
+ "@gobing-ai/ts-db": "^0.4.9",
99796
+ "@gobing-ai/ts-utils": "^0.4.9",
99643
99797
  commander: "^14.0.0",
99644
99798
  "drizzle-orm": "^0.44.0",
99645
99799
  "drizzle-zod": "^0.7.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gobing-ai/superskill",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "A manager for multi-agent skill, slash command, subagent, hook, MCP and etc.",
5
5
  "keywords": [
6
6
  "cli",
@@ -37,9 +37,9 @@
37
37
  "typecheck": "tsc --noEmit"
38
38
  },
39
39
  "dependencies": {
40
- "@gobing-ai/ts-ai-runner": "^0.4.8",
41
- "@gobing-ai/ts-db": "^0.4.8",
42
- "@gobing-ai/ts-utils": "^0.4.8",
40
+ "@gobing-ai/ts-ai-runner": "^0.4.9",
41
+ "@gobing-ai/ts-db": "^0.4.9",
42
+ "@gobing-ai/ts-utils": "^0.4.9",
43
43
  "commander": "^14.0.0",
44
44
  "drizzle-orm": "^0.44.0",
45
45
  "drizzle-zod": "^0.7.0",