omp-fabric 1.24.2 → 1.25.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.
- package/CHANGELOG.md +17 -0
- package/README.md +1 -1
- package/dist/chunks/{chunk-NCPJZXLM.js → chunk-NOZBB266.js} +8 -4
- package/dist/chunks/chunk-NOZBB266.js.map +7 -0
- package/dist/core/skill-prompt.d.ts.map +1 -1
- package/dist/fabric-runtime-state.js +2 -3
- package/dist/fabric-runtime-state.js.map +2 -2
- package/dist/host-compatibility.d.ts +1 -1
- package/dist/host-compatibility.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +2 -2
- package/dist/judgment/host-judge.d.ts.map +1 -1
- package/dist/providers/omp-session-scope.d.ts.map +1 -1
- package/dist/ui/conversation-chrome.d.ts.map +1 -1
- package/dist/ui/conversation-chrome.js +1 -1
- package/dist/ui/conversation.js +1 -1
- package/docs/certification.md +1 -1
- package/package.json +11 -11
- package/dist/chunks/chunk-NCPJZXLM.js.map +0 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.25.1
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- `MINIMUM_OMP_HOST_VERSION` raised to `18.3.0`. The startup host check still read `18.1.10`, so it stayed quiet on a host that cannot load fabric at all. The README and the certification host pin carried the same stale number.
|
|
8
|
+
|
|
9
|
+
## 1.25.0
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- Fabric runs again on OMP 18.3.x. The host replaced `Settings.instance.get("<path>")` with typed registry handles, so every fabric read through the old accessor threw `Settings.instance.get is not a function` — `fabric_exec` reported it on the first shell call, where `async.enabled` decides whether a guest command may background. Reads now go through `cfgAsyncEnabled`, `cfgSkillful`, `cfgHideThinkingBlock` and `cfgTerminalShowImages`.
|
|
14
|
+
- `resolveJudge` no longer takes a `backend` key; fabric stopped sending one. The host removed the local-model judge selector, so the value was ignored while the call site still claimed it chose the chain.
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
|
|
18
|
+
- Requires OMP 18.3.0 or newer (`@oh-my-pi/*` peer ranges and `MINIMUM_OMP_HOST_VERSION` raised from `18.1.10`). The registry settings modules do not exist on older hosts, so there is no version fabric can satisfy at once.
|
|
19
|
+
|
|
3
20
|
## 1.24.2
|
|
4
21
|
|
|
5
22
|
### Fixed
|
package/README.md
CHANGED
|
@@ -62,7 +62,7 @@ Independent calls run in parallel, and the returned object enters the model cont
|
|
|
62
62
|
|
|
63
63
|
## Install
|
|
64
64
|
|
|
65
|
-
Requires Node.js 24+ and OMP 18.
|
|
65
|
+
Requires Node.js 24+ and OMP 18.3.0+. Fabric also checks a detectable OMP host version at startup and warns when an older host may ignore continuation APIs such as actor `triggerTurn`.
|
|
66
66
|
|
|
67
67
|
```bash
|
|
68
68
|
omp install npm:omp-fabric
|
|
@@ -8,14 +8,18 @@ import { homedir } from "node:os";
|
|
|
8
8
|
import path from "node:path";
|
|
9
9
|
import { Ellipsis, truncateToWidth, visibleWidth } from "@oh-my-pi/pi-tui";
|
|
10
10
|
async function readConversationAppearance(cwd, agentDir, projectTrusted) {
|
|
11
|
-
const { Settings } = await
|
|
11
|
+
const [{ Settings }, { cfgHideThinkingBlock }, { cfgTerminalShowImages }] = await Promise.all([
|
|
12
|
+
import("@oh-my-pi/pi-coding-agent/config/settings"),
|
|
13
|
+
import("@oh-my-pi/pi-coding-agent/session/settings"),
|
|
14
|
+
import("@oh-my-pi/pi-coding-agent/modes/settings")
|
|
15
|
+
]);
|
|
12
16
|
const settings = projectTrusted ? await Settings.loadReadOnly({ cwd, agentDir }) : Settings.isolated();
|
|
13
17
|
return {
|
|
14
18
|
editorPaddingX: 0,
|
|
15
19
|
outputPad: 0,
|
|
16
20
|
codeBlockIndent: " ",
|
|
17
|
-
hideThinkingBlock:
|
|
18
|
-
showImages:
|
|
21
|
+
hideThinkingBlock: cfgHideThinkingBlock.get(settings) === true,
|
|
22
|
+
showImages: cfgTerminalShowImages.get(settings) === true
|
|
19
23
|
};
|
|
20
24
|
}
|
|
21
25
|
var footerPath = (cwd) => {
|
|
@@ -54,4 +58,4 @@ export {
|
|
|
54
58
|
readConversationAppearance,
|
|
55
59
|
conversationFooter
|
|
56
60
|
};
|
|
57
|
-
//# sourceMappingURL=chunk-
|
|
61
|
+
//# sourceMappingURL=chunk-NOZBB266.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/ui/conversation-chrome.ts"],
|
|
4
|
+
"sourcesContent": ["import { homedir } from \"node:os\";\nimport path from \"node:path\";\nimport type { Theme } from \"@oh-my-pi/pi-coding-agent\";\nimport { Ellipsis, truncateToWidth, visibleWidth } from \"@oh-my-pi/pi-tui\";\nimport { formatTokens, safeText } from \"./format.js\";\nimport type { FabricConversationTarget } from \"./conversation.js\";\n\nexport interface FabricConversationAppearance {\n editorPaddingX: number;\n outputPad: 0 | 1;\n codeBlockIndent?: string;\n hideThinkingBlock?: boolean;\n showImages?: boolean;\n imageWidthCells?: number;\n}\n\n/** Read OMP appearance settings; cwd and agentDir apply only to trusted project loading. */\nexport async function readConversationAppearance(cwd: string, agentDir: string, projectTrusted: boolean): Promise<FabricConversationAppearance> {\n const [{ Settings }, { cfgHideThinkingBlock }, { cfgTerminalShowImages }] = await Promise.all([\n import(\"@oh-my-pi/pi-coding-agent/config/settings\"),\n import(\"@oh-my-pi/pi-coding-agent/session/settings\"),\n import(\"@oh-my-pi/pi-coding-agent/modes/settings\"),\n ]);\n const settings = projectTrusted\n ? await Settings.loadReadOnly({ cwd, agentDir })\n : Settings.isolated();\n return {\n editorPaddingX: 0,\n outputPad: 0,\n codeBlockIndent: \" \",\n hideThinkingBlock: cfgHideThinkingBlock.get(settings) === true,\n showImages: cfgTerminalShowImages.get(settings) === true,\n };\n}\n\nconst footerPath = (cwd: string): string => {\n const home = homedir();\n if (cwd === home) return \"~\";\n return cwd.startsWith(`${home}${path.sep}`) ? `~${cwd.slice(home.length)}` : cwd;\n};\n\n/** Native-shaped footer backed by this participant, never by Main's session stats. */\nexport function conversationFooter(target: FabricConversationTarget | undefined, theme: Theme, width: number): string[] {\n if (!target || width <= 0) return [];\n const location = target.cwd ? footerPath(target.cwd) : \"cwd unavailable\";\n const branch = target.branch ? ` (${target.branch})` : \"\";\n const pwd = safeText(`${location}${branch} \u2022 ${target.name}`);\n const stats = [safeText(target.status)];\n if (target.usage) {\n const usage = target.usage;\n // Agent usage is run-scoped; actor values describe the current/last activation.\n stats.push(\"run\", `\u2191${formatTokens(usage.input)}`, `\u2193${formatTokens(usage.output)}`);\n if (usage.cacheRead > 0) stats.push(`R${formatTokens(usage.cacheRead)}`);\n if (usage.cacheWrite > 0) stats.push(`W${formatTokens(usage.cacheWrite)}`);\n if (Number.isFinite(usage.cost)) stats.push(`$${usage.cost.toFixed(3)}`);\n } else {\n stats.push(\"usage unavailable\");\n }\n // Cumulative run tokens are not current context occupancy. Do not invent a percentage.\n stats.push(target.contextWindow ? `?/${formatTokens(target.contextWindow)} ctx` : \"ctx ?\");\n const model = safeText(target.model ?? `${target.runner ?? \"\"} model unavailable`).trim();\n const thinking = target.thinking ? ` \u2022 ${safeText(target.thinking === \"off\" ? \"thinking off\" : target.thinking)}` : \"\";\n const left = truncateToWidth(stats.join(\" \"), width, Ellipsis.Unicode);\n const right = truncateToWidth(`${model}${thinking}`, Math.max(0, width - visibleWidth(left) - 2), \"\");\n const gap = \" \".repeat(Math.max(0, width - visibleWidth(left) - visibleWidth(right)));\n return [\n truncateToWidth(theme.fg(\"dim\", pwd), width, Ellipsis.Unicode),\n theme.fg(\"dim\", `${left}${gap}${right}`),\n ];\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;AAAA,SAAS,eAAe;AACxB,OAAO,UAAU;AAEjB,SAAS,UAAU,iBAAiB,oBAAoB;AAcxD,eAAsB,2BAA2B,KAAa,UAAkB,gBAAgE;AAC9I,QAAM,CAAC,EAAE,SAAS,GAAG,EAAE,qBAAqB,GAAG,EAAE,sBAAsB,CAAC,IAAI,MAAM,QAAQ,IAAI;AAAA,IAC5F,OAAO,2CAA2C;AAAA,IAClD,OAAO,4CAA4C;AAAA,IACnD,OAAO,0CAA0C;AAAA,EACnD,CAAC;AACD,QAAM,WAAW,iBACb,MAAM,SAAS,aAAa,EAAE,KAAK,SAAS,CAAC,IAC7C,SAAS,SAAS;AACtB,SAAO;AAAA,IACL,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,iBAAiB;AAAA,IACjB,mBAAmB,qBAAqB,IAAI,QAAQ,MAAM;AAAA,IAC1D,YAAY,sBAAsB,IAAI,QAAQ,MAAM;AAAA,EACtD;AACF;AAEA,IAAM,aAAa,CAAC,QAAwB;AAC1C,QAAM,OAAO,QAAQ;AACrB,MAAI,QAAQ,KAAM,QAAO;AACzB,SAAO,IAAI,WAAW,GAAG,IAAI,GAAG,KAAK,GAAG,EAAE,IAAI,IAAI,IAAI,MAAM,KAAK,MAAM,CAAC,KAAK;AAC/E;AAGO,SAAS,mBAAmB,QAA8C,OAAc,OAAyB;AACtH,MAAI,CAAC,UAAU,SAAS,EAAG,QAAO,CAAC;AACnC,QAAM,WAAW,OAAO,MAAM,WAAW,OAAO,GAAG,IAAI;AACvD,QAAM,SAAS,OAAO,SAAS,KAAK,OAAO,MAAM,MAAM;AACvD,QAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,WAAM,OAAO,IAAI,EAAE;AAC5D,QAAM,QAAQ,CAAC,SAAS,OAAO,MAAM,CAAC;AACtC,MAAI,OAAO,OAAO;AAChB,UAAM,QAAQ,OAAO;AAErB,UAAM,KAAK,OAAO,SAAI,aAAa,MAAM,KAAK,CAAC,IAAI,SAAI,aAAa,MAAM,MAAM,CAAC,EAAE;AACnF,QAAI,MAAM,YAAY,EAAG,OAAM,KAAK,IAAI,aAAa,MAAM,SAAS,CAAC,EAAE;AACvE,QAAI,MAAM,aAAa,EAAG,OAAM,KAAK,IAAI,aAAa,MAAM,UAAU,CAAC,EAAE;AACzE,QAAI,OAAO,SAAS,MAAM,IAAI,EAAG,OAAM,KAAK,IAAI,MAAM,KAAK,QAAQ,CAAC,CAAC,EAAE;AAAA,EACzE,OAAO;AACL,UAAM,KAAK,mBAAmB;AAAA,EAChC;AAEA,QAAM,KAAK,OAAO,gBAAgB,KAAK,aAAa,OAAO,aAAa,CAAC,SAAS,OAAO;AACzF,QAAM,QAAQ,SAAS,OAAO,SAAS,GAAG,OAAO,UAAU,EAAE,oBAAoB,EAAE,KAAK;AACxF,QAAM,WAAW,OAAO,WAAW,WAAM,SAAS,OAAO,aAAa,QAAQ,iBAAiB,OAAO,QAAQ,CAAC,KAAK;AACpH,QAAM,OAAO,gBAAgB,MAAM,KAAK,GAAG,GAAG,OAAO,SAAS,OAAO;AACrE,QAAM,QAAQ,gBAAgB,GAAG,KAAK,GAAG,QAAQ,IAAI,KAAK,IAAI,GAAG,QAAQ,aAAa,IAAI,IAAI,CAAC,GAAG,EAAE;AACpG,QAAM,MAAM,IAAI,OAAO,KAAK,IAAI,GAAG,QAAQ,aAAa,IAAI,IAAI,aAAa,KAAK,CAAC,CAAC;AACpF,SAAO;AAAA,IACL,gBAAgB,MAAM,GAAG,OAAO,GAAG,GAAG,OAAO,SAAS,OAAO;AAAA,IAC7D,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,EAAE;AAAA,EACzC;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-prompt.d.ts","sourceRoot":"","sources":["../../src/core/skill-prompt.ts"],"names":[],"mappings":"AACA,OAAO,EAA6B,KAAK,KAAK,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"skill-prompt.d.ts","sourceRoot":"","sources":["../../src/core/skill-prompt.ts"],"names":[],"mappings":"AACA,OAAO,EAA6B,KAAK,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAclF,eAAO,MAAM,YAAY,QAAO,SAAS,KAAK,EAAuB,CAAC;AAEtE,eAAO,MAAM,cAAc,GAAI,QAAQ,SAAS,KAAK,EAAE,KAAG,SAAS,KAAK,EAOvE,CAAC;AAEF,eAAO,MAAM,8BAA8B,GACzC,cAAc,MAAM,EACpB,QAAQ,SAAS,KAAK,EAAE,KACvB,MAYF,CAAC"}
|
|
@@ -8857,7 +8857,6 @@ var FabricJudgmentLane = class {
|
|
|
8857
8857
|
};
|
|
8858
8858
|
|
|
8859
8859
|
// src/judgment/host-judge.ts
|
|
8860
|
-
var ONLINE_JUDGMENT_BACKEND = "online";
|
|
8861
8860
|
var resolveHostJudge = async (context) => {
|
|
8862
8861
|
if (context.modelRegistry === void 0) return void 0;
|
|
8863
8862
|
const [judgment, settingsModule] = await Promise.all([
|
|
@@ -8870,7 +8869,6 @@ var resolveHostJudge = async (context) => {
|
|
|
8870
8869
|
return resolveJudge({
|
|
8871
8870
|
settings,
|
|
8872
8871
|
registry: context.modelRegistry,
|
|
8873
|
-
backend: ONLINE_JUDGMENT_BACKEND,
|
|
8874
8872
|
...context.model !== void 0 ? { sessionModel: context.model } : {},
|
|
8875
8873
|
...context.sessionId !== void 0 ? { sessionId: context.sessionId } : {}
|
|
8876
8874
|
});
|
|
@@ -10659,6 +10657,7 @@ var createPreviewWriteToolDefinition = (cwd, session) => {
|
|
|
10659
10657
|
// src/providers/omp-session-scope.ts
|
|
10660
10658
|
import { AgentRegistry } from "@oh-my-pi/pi-coding-agent";
|
|
10661
10659
|
import { isSettingsInitialized, Settings } from "@oh-my-pi/pi-coding-agent/config/settings";
|
|
10660
|
+
import { cfgAsyncEnabled } from "@oh-my-pi/pi-coding-agent/tools/settings";
|
|
10662
10661
|
var liveOwner = (sessionId) => {
|
|
10663
10662
|
if (!sessionId) return void 0;
|
|
10664
10663
|
for (const ref of AgentRegistry.global().list()) {
|
|
@@ -10677,7 +10676,7 @@ var ompJobScope = (getSessionId) => {
|
|
|
10677
10676
|
agentId: () => liveOwner(getSessionId())?.agentId ?? null
|
|
10678
10677
|
};
|
|
10679
10678
|
};
|
|
10680
|
-
var hostAsyncEnabled = () => isSettingsInitialized() ?
|
|
10679
|
+
var hostAsyncEnabled = () => isSettingsInitialized() ? cfgAsyncEnabled.get(Settings.instance) : true;
|
|
10681
10680
|
var shellBackgroundSettings = (jobs, asyncEnabled = hostAsyncEnabled) => ({
|
|
10682
10681
|
"async.enabled": jobs ? asyncEnabled() : false,
|
|
10683
10682
|
"bash.autoBackground.enabled": false
|