omp-fabric 1.25.4 → 1.25.6

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/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.25.6
4
+
5
+ ### Fixed
6
+
7
+ - A finished `fabric_exec` card rendered its call and its result as two transcript blocks. The host emergency layout then kept every finished card active and collapsed the session to one line per turn, which is the flat `Fabric` / `Task` / `Wait` stream. The card now sets `mergeCallAndResult`, the result keeps `display.name`, and the border shell no longer substitutes an empty container for a finished result.
8
+
9
+
10
+ ## 1.25.5
11
+
12
+ ### Fixed
13
+
14
+ - `docs/providers.md` now names the symptom of the one surviving `omp.wait()` failure mode. A session that gains an owner after its provider was built can start an async job it can never collect: a `bash` call naming a `cwd` runs `async: true`, the job is running, and the result still reaches the agent as a follow-up, while `omp.wait()` reports that nothing is running. Nothing errors, and the guidance a program author had was only the general instruction to start a new session. The behaviour is unchanged; the documentation now says how to recognise it.
15
+ - `skills/fabric-exec/SKILL.md` states its job-scope precondition once instead of twice in consecutive sentences.
16
+
3
17
  ## 1.25.4
4
18
 
5
19
  ### Fixed
@@ -1 +1 @@
1
- {"version":3,"file":"fabric-exec-tool.d.ts","sourceRoot":"","sources":["../src/fabric-exec-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,cAAc,EAA2B,MAAM,2BAA2B,CAAC;AAWhG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EACL,KAAK,wBAAwB,EAG9B,MAAM,4BAA4B,CAAC;AASpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AASrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AA8CjE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AA6HxE,eAAO,MAAM,oBAAoB,GAC/B,OAAO,WAAW,EAClB,qBAAqB,mBAAmB,EACxC,iBAAiB,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAClD,gBAAe,wBAA+C,EAC9D,cAAc,2BAA2B,KACxC,cAAc,CAAC,GAAG,EAAE,GAAG,CAs0BzB,CAAC"}
1
+ {"version":3,"file":"fabric-exec-tool.d.ts","sourceRoot":"","sources":["../src/fabric-exec-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,cAAc,EAA2B,MAAM,2BAA2B,CAAC;AAYhG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EACL,KAAK,wBAAwB,EAG9B,MAAM,4BAA4B,CAAC;AASpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AASrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AA8CjE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AA6HxE,eAAO,MAAM,oBAAoB,GAC/B,OAAO,WAAW,EAClB,qBAAqB,mBAAmB,EACxC,iBAAiB,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAClD,gBAAe,wBAA+C,EAC9D,cAAc,2BAA2B,KACxC,cAAc,CAAC,GAAG,EAAE,GAAG,CA20BzB,CAAC"}
package/dist/index.js CHANGED
@@ -484,9 +484,9 @@ var withCodePreviewShell = (tool, options = {}) => {
484
484
  const renderOptions = { ...options2, renderContext: context };
485
485
  return originalRenderCall ? originalRenderCall.call(tool, args, renderOptions, theme) : new Text(theme.fg("toolTitle", theme.bold(tool.label || tool.name)), 0, 0);
486
486
  };
487
- const renderResult = (result, resultOptions, theme, context) => {
487
+ const renderResult = (result, resultOptions, theme, context, args) => {
488
488
  const renderOptions = { ...resultOptions, renderContext: context };
489
- return originalRenderResult ? originalRenderResult.call(tool, result, renderOptions, theme) : new Container();
489
+ return originalRenderResult ? originalRenderResult.call(tool, result, renderOptions, theme, args) : new Container();
490
490
  };
491
491
  return {
492
492
  ...tool,
@@ -537,7 +537,7 @@ var withCodePreviewShell = (tool, options = {}) => {
537
537
  state.codePreviewBorderTheme = theme;
538
538
  return shell;
539
539
  },
540
- renderResult(result, resultOptions, theme) {
540
+ renderResult(result, resultOptions, theme, args) {
541
541
  const renderOptions = resultOptions ?? {};
542
542
  const supplied = renderOptions.renderContext && typeof renderOptions.renderContext === "object" ? renderOptions.renderContext : renderOptions;
543
543
  const context = buildRenderContext(
@@ -552,7 +552,7 @@ var withCodePreviewShell = (tool, options = {}) => {
552
552
  return renderTimedResult(
553
553
  context,
554
554
  theme,
555
- (next) => renderResult(result, resultOptions, theme, next),
555
+ (next) => renderResult(result, resultOptions, theme, next, args),
556
556
  label
557
557
  );
558
558
  }
@@ -561,7 +561,7 @@ var withCodePreviewShell = (tool, options = {}) => {
561
561
  const component = timingOnly && state.codePreviewBorderResultComponent ? state.codePreviewBorderResultComponent : renderResult(result, resultOptions, theme, {
562
562
  ...context,
563
563
  lastComponent: state.codePreviewBorderResultComponent
564
- });
564
+ }, args);
565
565
  state.codePreviewBorderResultComponent = component;
566
566
  const shell = state.codePreviewBorderShell instanceof BorderedToolCall && state.codePreviewBorderTheme === theme ? state.codePreviewBorderShell : new BorderedToolCall(theme, state);
567
567
  shell.setCall(state.codePreviewBorderCallComponent);
@@ -570,7 +570,7 @@ var withCodePreviewShell = (tool, options = {}) => {
570
570
  shell.setTimingLabel(label);
571
571
  state.codePreviewBorderShell = shell;
572
572
  state.codePreviewBorderTheme = theme;
573
- return shouldRenderResultSeparately(state, optionsRecord.isPartial) ? component : new Container();
573
+ return shouldRenderResultSeparately(state, optionsRecord.isPartial) ? component : state.codePreviewBorderShell ?? component;
574
574
  }
575
575
  };
576
576
  };
@@ -3002,6 +3002,7 @@ var createFabricExecTool = (state, codePreviewSettings, pendingHandoffs, decorat
3002
3002
  name: "fabric_exec",
3003
3003
  label: "Fabric",
3004
3004
  readsSkillUris: true,
3005
+ mergeCallAndResult: true,
3005
3006
  description: "Execute type-checked TypeScript through Fabric's configured executor for OMP tools, MCP, Fabric providers, discovery, and extensions. QuickJS is isolated by default; the optional Node/Bun process is an unsafe trusted-code escape hatch. In full code mode, and always in Schema enforce mode, this is the exclusive model tool path.",
3006
3007
  promptGuidelines: [
3007
3008
  "Batch independent operations in one `fabric_exec` program (`Promise.all` for parallel, sequential `await` for ordered), not one call per tool; keep dependent/conditional steps sequential. Coalesce non-dependent replacements from one file snapshot into one `omp.edit({path, edits:[...]})`; use `all:true` only for intentional repeated exact anchors. Return only the compact final value; intermediate results stay in the sandbox.",
@@ -3377,10 +3378,10 @@ ${preview}` : ""}${hiddenHint}`,
3377
3378
  const lines = safeTerminalText(output).split(nl);
3378
3379
  const limit = expanded ? Math.min(lines.length, 200) : 12;
3379
3380
  const shown = lines.slice(0, limit);
3381
+ const displayName = normalizeRunDisplay(params?.display)?.name;
3382
+ const title = displayName ? theme.fg("toolTitle", theme.bold(safeTerminalText(displayName))) : compact ? theme.fg(failed ? "error" : "success", failed ? "\u2717 Failed" : "\u2713 Evaluated") : "";
3380
3383
  let text2 = styleOutputLines(shown).join(nl);
3381
- if (compact) {
3382
- text2 = theme.fg(failed ? "error" : "success", failed ? "\u2717 Failed" : "\u2713 Evaluated") + nl + text2;
3383
- }
3384
+ if (title) text2 = title + nl + text2;
3384
3385
  if (lines.length > shown.length) {
3385
3386
  text2 += nl + theme.fg("dim", `\u2026 ${countLabel(lines.length - shown.length, "line")}`);
3386
3387
  if (!expanded) text2 += theme.fg("dim", " \xB7 ") + expandHint(theme);