bitfab-cli 0.2.487 → 0.2.489

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 +23 -7
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -31139,10 +31139,10 @@ var semver2 = __toESM(require_semver2(), 1);
31139
31139
 
31140
31140
  // ../bitfab-plugin-lib/dist/bakedSdkVersions.js
31141
31141
  var BAKED_SDK_VERSIONS = {
31142
- typescript: "0.68.8",
31143
- python: "0.68.7",
31144
- ruby: "0.67.2",
31145
- go: "0.67.3"
31142
+ typescript: "0.68.9",
31143
+ python: "0.68.8",
31144
+ ruby: "0.67.3",
31145
+ go: "0.67.4"
31146
31146
  };
31147
31147
 
31148
31148
  // ../bitfab-plugin-lib/dist/installedSdk.js
@@ -34599,6 +34599,18 @@ var FRAMEWORKS = [
34599
34599
  signals: {
34600
34600
  ts: "`ai`, `wrapLanguageModel`, `streamText`, `generateText`"
34601
34601
  }
34602
+ },
34603
+ {
34604
+ id: "pi",
34605
+ label: "Pi agent harness",
34606
+ docsPath: "/frameworks/pi",
34607
+ handlerKind: "callbackHandler",
34608
+ handlerNoun: "integration",
34609
+ handler: { ts: "getPiIntegration" },
34610
+ autoCapture: { modelCall: "withSpan", child: "withSpan" },
34611
+ signals: {
34612
+ ts: "`@earendil-works/pi-agent-core`, `@mariozechner/pi-agent-core`, `@earendil-works/pi-coding-agent` (`createAgentSession`); instrument with `getPiIntegration(key).instrument(agent)`"
34613
+ }
34602
34614
  }
34603
34615
  ];
34604
34616
  var code = (s2) => `\`${s2}\``;
@@ -34675,17 +34687,21 @@ var AUTO_CAPTURE_ROLE_LABEL = {
34675
34687
  modelCall: "model-call",
34676
34688
  child: "tool / retriever / read / side-effect"
34677
34689
  };
34690
+ var WRAPPED_ROLE_REPLAY_DEFAULT = {
34691
+ modelCall: "though re-run live by default",
34692
+ child: "and answered from the recording by default"
34693
+ };
34678
34694
  function frameworkMockabilityBullets() {
34679
34695
  return FRAMEWORKS.map((f) => {
34680
34696
  const roles = Object.entries(f.autoCapture);
34681
34697
  const observed = roles.filter(([, m]) => m === "observed").map(([role]) => AUTO_CAPTURE_ROLE_LABEL[role]);
34682
- const wrapped = roles.filter(([, m]) => m === "withSpan").map(([role]) => AUTO_CAPTURE_ROLE_LABEL[role]);
34698
+ const wrapped = roles.filter(([, m]) => m === "withSpan").map(([role]) => role);
34683
34699
  const clauses = [];
34684
34700
  if (observed.length > 0) {
34685
34701
  clauses.push(`${observed.join(" and ")} spans are observed via its ${f.handlerNoun}, so they are NOT mockable`);
34686
34702
  }
34687
- if (wrapped.length > 0) {
34688
- clauses.push(`${wrapped.join(" and ")} spans run through \`withSpan\` via its ${f.handlerNoun}, so they ARE mockable (though re-run live by default)`);
34703
+ for (const role of wrapped) {
34704
+ clauses.push(`${AUTO_CAPTURE_ROLE_LABEL[role]} spans run through \`withSpan\` via its ${f.handlerNoun}, so they ARE mockable (${WRAPPED_ROLE_REPLAY_DEFAULT[role]})`);
34689
34705
  }
34690
34706
  if (f.experimentalToolReplay) {
34691
34707
  clauses.push(`${f.experimentalToolReplay.spans} configured through its Experimental (alpha) ${namePair(f.experimentalToolReplay.factory)} integration ARE mockable; callback-only tool spans remain NOT mockable`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bitfab-cli",
3
- "version": "0.2.487",
3
+ "version": "0.2.489",
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",