bitfab-cli 0.2.436 → 0.2.438

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 (2) hide show
  1. package/dist/index.js +15 -6
  2. package/package.json +2 -3
package/dist/index.js CHANGED
@@ -28601,6 +28601,14 @@ var GET_TRACES_DEFAULT_SPAN_LIMIT = 50;
28601
28601
  var SPAN_READ_MAX_RESPONSE_CHARS = 32e3;
28602
28602
  var GET_TRACES_MAX_SPAN_LIMIT = 200;
28603
28603
  var GET_TRACES_MAX_SPAN_NAMES = 50;
28604
+ var spanTypeSchema = external_exports.enum([
28605
+ "llm",
28606
+ "agent",
28607
+ "function",
28608
+ "guardrail",
28609
+ "handoff",
28610
+ "custom"
28611
+ ]);
28604
28612
  var spanFieldSchema = external_exports.enum([
28605
28613
  "input",
28606
28614
  "output",
@@ -28741,12 +28749,13 @@ var searchTraces = {
28741
28749
  var getTraces = {
28742
28750
  name: "get_traces",
28743
28751
  title: "Get Traces",
28744
- description: `Read one or more traces by ID. Includes inputs, outputs, status, environment tag, trace-level duration (ms), token usage (in/out/cached/total), and model (when available). Use these to compare latency and cost between a trace and its replay. Returns span details (input, output, reasoning, content, context, errors) plus per-span duration, tokens, time-to-first-token, and model when available. Use \`scope: "summary"\` when scanning many traces to keep the response small; \`scope: "full"\` when you need the complete untruncated detail of a few traces. Spans come back one page at a time (${GET_TRACES_DEFAULT_SPAN_LIMIT} per trace by default) and the whole response is capped in size, so it always fits in context. When a trace has more spans than one page, the response lists every span name with its count and says which spanOffset reads the next page: narrow with spanNames (only spans with those names) and spanFields (only those fields) rather than paging through thousands of spans, and fetch any one truncated field in full with get_span_field. To load only labels + annotations for many traces at once (no span content), use get_trace_labels instead.`,
28752
+ description: `Read one or more traces by ID. Includes inputs, outputs, status, environment tag, trace-level duration (ms), token usage (in/out/cached/total), and model (when available). Use these to compare latency and cost between a trace and its replay. Returns span details (input, output, reasoning, content, context, errors) plus per-span duration, tokens, time-to-first-token, and model when available. Use \`scope: "summary"\` when scanning many traces to keep the response small; \`scope: "full"\` when you need the complete untruncated detail of a few traces. Spans come back one page at a time (${GET_TRACES_DEFAULT_SPAN_LIMIT} per trace by default) and the whole response is capped in size, so it always fits in context. When a trace has more spans than one page, the response lists every span name and span type with its count and says which spanOffset reads the next page: narrow with spanNames (only spans with those names), spanTypes (only spans of those types, e.g. ["llm"] for the model calls) and spanFields (only those fields) rather than paging through thousands of spans, and fetch any one truncated field in full with get_span_field. To load only labels + annotations for many traces at once (no span content), use get_trace_labels instead.`,
28745
28753
  inputSchema: {
28746
28754
  traceIds: external_exports.preprocess(parseJsonString, external_exports.array(external_exports.uuid()).min(1).max(10)).describe("Trace IDs to read (1-10)"),
28747
28755
  scope: external_exports.enum(["summary", "full"]).optional().default("summary").describe('Level of span detail. "summary" (default) renders the same span structure as full but caps each span (its fields share a ~1500-char budget) and each trace-level field (~2000 chars), and leaves out any span field over 10k chars, printing its size instead (name it in spanFields to preview it anyway, or read it in full with get_span_field): prefer it when scanning or identifying candidate traces. "full" renders every field untruncated up to 10k chars each, with no per-span ceiling, until the response size cap: use it when you need complete detail on a handful of spans, ideally narrowed with spanNames.'),
28748
28756
  spanNames: external_exports.preprocess(parseJsonString, external_exports.array(external_exports.string().min(1)).min(1).max(GET_TRACES_MAX_SPAN_NAMES)).optional().describe("Only show spans whose name exactly matches one of these. A trace with more spans than one page lists its span names and counts, so read that list first and pass the names you need. Omit to show every span."),
28749
- spanOffset: external_exports.preprocess(parseJsonString, external_exports.number().int().min(0)).optional().describe("Skip this many spans in each trace, counted after the spanNames filter (default 0). The response says which offset reads the next page."),
28757
+ spanTypes: external_exports.preprocess(parseJsonString, external_exports.array(spanTypeSchema).min(1).max(spanTypeSchema.options.length)).optional().describe('Only show spans of these types: llm (model calls), agent, function, guardrail, handoff, custom. Pass ["llm"] with spanLimit: 1 to read just the first model call, including its input. Combined with spanNames, a span must match both. Omit to show every type.'),
28758
+ spanOffset: external_exports.preprocess(parseJsonString, external_exports.number().int().min(0)).optional().describe("Skip this many spans in each trace, counted after the spanNames and spanTypes filters (default 0). The response says which offset reads the next page."),
28750
28759
  spanLimit: external_exports.preprocess(parseJsonString, external_exports.number().int().min(1).max(GET_TRACES_MAX_SPAN_LIMIT)).optional().describe(`Show at most this many spans per trace (default ${GET_TRACES_DEFAULT_SPAN_LIMIT}, max ${GET_TRACES_MAX_SPAN_LIMIT}). The response size cap can stop a page early, and says so when it does.`),
28751
28760
  spanFields: external_exports.preprocess(parseJsonString, external_exports.array(spanFieldSchema).max(6)).optional().describe("Only show these span fields (input, output, reasoning, content, errors, contexts). Omit to show all of them, with fields over 10k chars left out in summary scope. A field named here is previewed even when it is large. Pass [] to list spans with only their name, ID, duration, tokens, and model, which is the cheapest way to see a large trace's shape.")
28752
28761
  }
@@ -29921,10 +29930,10 @@ var semver3 = __toESM(require_semver2(), 1);
29921
29930
 
29922
29931
  // ../bitfab-plugin-lib/dist/bakedSdkVersions.js
29923
29932
  var BAKED_SDK_VERSIONS = {
29924
- typescript: "0.64.18",
29925
- python: "0.64.18",
29926
- ruby: "0.64.16",
29927
- go: "0.64.17"
29933
+ typescript: "0.64.20",
29934
+ python: "0.64.19",
29935
+ ruby: "0.64.17",
29936
+ go: "0.64.18"
29928
29937
  };
29929
29938
 
29930
29939
  // ../bitfab-plugin-lib/dist/installedSdk.js
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bitfab-cli",
3
- "version": "0.2.436",
3
+ "version": "0.2.438",
4
4
  "description": "Install and configure the Bitfab plugin in Claude Code, Codex, or Cursor, or the Bitfab skill pack in Amp (Alpha).",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -36,8 +36,7 @@
36
36
  "lint:fix": "biome check --write",
37
37
  "tsc": "tsc --noEmit",
38
38
  "knip": "knip",
39
- "madge": "madge --ts-config ./tsconfig.json --extensions ts --circular ./src",
40
- "validate": "pnpm lint && pnpm tsc && pnpm knip && pnpm madge && pnpm build"
39
+ "validate": "pnpm lint && pnpm tsc && pnpm knip && pnpm build"
41
40
  },
42
41
  "author": "Bitfab",
43
42
  "license": "MIT",