@agimon-ai/po-ui 0.0.0-alpha.0
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/LICENSE +21 -0
- package/README.md +37 -0
- package/dist/apiContracts.cjs +17 -0
- package/dist/apiContracts.cjs.map +1 -0
- package/dist/apiContracts.d.mts +53 -0
- package/dist/apiContracts.d.mts.map +1 -0
- package/dist/apiContracts.mjs +13 -0
- package/dist/apiContracts.mjs.map +1 -0
- package/dist/config.cjs +62 -0
- package/dist/config.d.mts +2 -0
- package/dist/config.mjs +2 -0
- package/dist/extensionName.cjs +59 -0
- package/dist/extensionName.cjs.map +1 -0
- package/dist/extensionName.d.mts +14 -0
- package/dist/extensionName.d.mts.map +1 -0
- package/dist/extensionName.mjs +54 -0
- package/dist/extensionName.mjs.map +1 -0
- package/dist/extensions/mcp-ui.mjs +46 -0
- package/dist/extensions/mcp-ui.mjs.map +1 -0
- package/dist/extensions/mcp.cjs +79 -0
- package/dist/extensions/mcp.cjs.map +1 -0
- package/dist/extensions/mcp.d.mts +5 -0
- package/dist/extensions/mcp.d.mts.map +1 -0
- package/dist/extensions/mcp.mjs +74 -0
- package/dist/extensions/mcp.mjs.map +1 -0
- package/dist/extensions/server.cjs +137 -0
- package/dist/extensions/server.cjs.map +1 -0
- package/dist/extensions/server.d.mts +5 -0
- package/dist/extensions/server.d.mts.map +1 -0
- package/dist/extensions/server.mjs +132 -0
- package/dist/extensions/server.mjs.map +1 -0
- package/dist/extensions/web.mjs +332 -0
- package/dist/extensions/web.mjs.map +1 -0
- package/dist/footer.cjs +26 -0
- package/dist/footer.d.mts +2 -0
- package/dist/footer.mjs +2 -0
- package/dist/harnessMetadata-CzsdGAxL.d.mts +21 -0
- package/dist/harnessMetadata-CzsdGAxL.d.mts.map +1 -0
- package/dist/harnessMetadata-DkMSJutN.mjs +25 -0
- package/dist/harnessMetadata-DkMSJutN.mjs.map +1 -0
- package/dist/harnessMetadata-Dw9Rb1nW.cjs +30 -0
- package/dist/harnessMetadata-Dw9Rb1nW.cjs.map +1 -0
- package/dist/harnessMetadata.cjs +3 -0
- package/dist/harnessMetadata.d.mts +2 -0
- package/dist/harnessMetadata.mjs +2 -0
- package/dist/index-Bx49wmE7.d.mts +30 -0
- package/dist/index-Bx49wmE7.d.mts.map +1 -0
- package/dist/index-Dpzvl-vg.d.mts +103 -0
- package/dist/index-Dpzvl-vg.d.mts.map +1 -0
- package/dist/index.cjs +12 -0
- package/dist/index.d.mts +8 -0
- package/dist/index.mjs +5 -0
- package/dist/leader.cjs +0 -0
- package/dist/leader.d.mts +2 -0
- package/dist/leader.mjs +1 -0
- package/dist/leaderRegistry.cjs +515 -0
- package/dist/leaderRegistry.cjs.map +1 -0
- package/dist/leaderRegistry.d.mts +59 -0
- package/dist/leaderRegistry.d.mts.map +1 -0
- package/dist/leaderRegistry.mjs +514 -0
- package/dist/leaderRegistry.mjs.map +1 -0
- package/dist/logSinkTelemetry.cjs +4 -0
- package/dist/logSinkTelemetry.d.mts +2 -0
- package/dist/logSinkTelemetry.mjs +2 -0
- package/dist/rolldown-runtime-VH7oDXx4.cjs +28 -0
- package/dist/skills.cjs +38 -0
- package/dist/skills.d.mts +2 -0
- package/dist/skills.mjs +2 -0
- package/dist/telemetry--EgKB9ei.mjs +36 -0
- package/dist/telemetry--EgKB9ei.mjs.map +1 -0
- package/dist/telemetry-DMR6cIT1.cjs +47 -0
- package/dist/telemetry-DMR6cIT1.cjs.map +1 -0
- package/dist/theme-2wveit5V.cjs +166 -0
- package/dist/theme-2wveit5V.cjs.map +1 -0
- package/dist/theme-Byj_dBlT.mjs +134 -0
- package/dist/theme-Byj_dBlT.mjs.map +1 -0
- package/dist/theme.cjs +7 -0
- package/dist/theme.d.mts +2 -0
- package/dist/theme.mjs +2 -0
- package/dist/toolInventory.cjs +20 -0
- package/dist/toolInventory.d.mts +2 -0
- package/dist/toolInventory.mjs +2 -0
- package/dist/uiState-Binu4nUb.d.mts +40 -0
- package/dist/uiState-Binu4nUb.d.mts.map +1 -0
- package/dist/uiState-G_Pso-5i.mjs +57 -0
- package/dist/uiState-G_Pso-5i.mjs.map +1 -0
- package/dist/uiState-rUwgKslb.cjs +68 -0
- package/dist/uiState-rUwgKslb.cjs.map +1 -0
- package/dist/uiState.cjs +4 -0
- package/dist/uiState.d.mts +2 -0
- package/dist/uiState.mjs +2 -0
- package/package.json +196 -0
- package/themes/po-dark.json +88 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
let _agimon_ai_po_core_toolInventory = require("@agimon-ai/po-core/toolInventory");
|
|
3
|
+
Object.defineProperty(exports, "buildToolSources", {
|
|
4
|
+
enumerable: true,
|
|
5
|
+
get: function() {
|
|
6
|
+
return _agimon_ai_po_core_toolInventory.buildToolSources;
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
Object.defineProperty(exports, "tokensForSource", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function() {
|
|
12
|
+
return _agimon_ai_po_core_toolInventory.tokensForSource;
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(exports, "tokensForTool", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function() {
|
|
18
|
+
return _agimon_ai_po_core_toolInventory.tokensForTool;
|
|
19
|
+
}
|
|
20
|
+
});
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { CountTokens, McpServerStatus, ToolCost, ToolEntry, ToolInventoryInput, ToolSource, ToolSourceKind, buildToolSources, tokensForSource, tokensForTool } from "@agimon-ai/po-core/toolInventory";
|
|
2
|
+
export { type CountTokens, type McpServerStatus, type ToolCost, type ToolEntry, type ToolInventoryInput, type ToolSource, type ToolSourceKind, buildToolSources, tokensForSource, tokensForTool };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { LeaderTone } from "@agimon-ai/po-core/leader";
|
|
2
|
+
import { MinorModeRecord, ModeTextColor } from "@agimon-ai/po-minor-mode";
|
|
3
|
+
//#region src/models/uiState.d.ts
|
|
4
|
+
interface LeaderOption {
|
|
5
|
+
key: string;
|
|
6
|
+
label: string;
|
|
7
|
+
detail?: string;
|
|
8
|
+
tone?: LeaderTone;
|
|
9
|
+
}
|
|
10
|
+
interface LeaderSnapshot {
|
|
11
|
+
active: boolean;
|
|
12
|
+
prefix: string[];
|
|
13
|
+
label: string;
|
|
14
|
+
options: LeaderOption[];
|
|
15
|
+
rootOptions?: LeaderOption[];
|
|
16
|
+
}
|
|
17
|
+
interface UiMinorModeStatus {
|
|
18
|
+
source: string;
|
|
19
|
+
id: string;
|
|
20
|
+
label: string;
|
|
21
|
+
detail?: string;
|
|
22
|
+
color?: ModeTextColor;
|
|
23
|
+
order: number;
|
|
24
|
+
}
|
|
25
|
+
type StateListener = (snapshot: LeaderSnapshot) => void;
|
|
26
|
+
declare function projectMinorModeRecords(records: readonly MinorModeRecord[]): UiMinorModeStatus[];
|
|
27
|
+
declare class DoomUiState {
|
|
28
|
+
private snapshot;
|
|
29
|
+
private modes;
|
|
30
|
+
private readonly listeners;
|
|
31
|
+
getSnapshot(): LeaderSnapshot;
|
|
32
|
+
getModes(): readonly UiMinorModeStatus[];
|
|
33
|
+
setModes(modes: readonly UiMinorModeStatus[]): void;
|
|
34
|
+
setLeader(snapshot: LeaderSnapshot): void;
|
|
35
|
+
reset(): void;
|
|
36
|
+
subscribe(listener: StateListener): () => void;
|
|
37
|
+
}
|
|
38
|
+
//#endregion
|
|
39
|
+
export { projectMinorModeRecords as a, UiMinorModeStatus as i, LeaderOption as n, LeaderSnapshot as r, DoomUiState as t };
|
|
40
|
+
//# sourceMappingURL=uiState-Binu4nUb.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uiState-Binu4nUb.d.mts","names":[],"sources":["../src/models/uiState.ts"],"mappings":";;;UAGiB;EACf;EACA;EACA;EACA,OAAO;;UAGQ;EACf;EACA;EACA;EACA,SAAS;EACT,cAAc;;UAGC;EACf;EACA;EACA;EACA;EACA,QAAQ;EACR;;KAGG,iBAAiB,UAAU;iBAmBhB,wBAAwB,kBAAkB,oBAAoB;cAiBjE;UACH;UACA;mBACS;EAEjB,eAAe;EAIf,qBAAqB;EAIrB,SAAS,gBAAgB;EAKzB,UAAU,UAAU;EAKpB;EAKA,UAAU,UAAU"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
//#region src/models/uiState.ts
|
|
2
|
+
const INACTIVE_SNAPSHOT = {
|
|
3
|
+
active: false,
|
|
4
|
+
prefix: [],
|
|
5
|
+
label: "",
|
|
6
|
+
options: []
|
|
7
|
+
};
|
|
8
|
+
function cloneSnapshot(snapshot) {
|
|
9
|
+
return {
|
|
10
|
+
active: snapshot.active,
|
|
11
|
+
prefix: [...snapshot.prefix],
|
|
12
|
+
label: snapshot.label,
|
|
13
|
+
options: snapshot.options.map((option) => ({ ...option })),
|
|
14
|
+
...snapshot.rootOptions ? { rootOptions: snapshot.rootOptions.map((option) => ({ ...option })) } : {}
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
function projectMinorModeRecords(records) {
|
|
18
|
+
return records.filter(({ state }) => state.activation !== "inactive").map(({ descriptor, state }) => ({
|
|
19
|
+
source: descriptor.source,
|
|
20
|
+
id: descriptor.id,
|
|
21
|
+
label: descriptor.label,
|
|
22
|
+
order: descriptor.order,
|
|
23
|
+
...state.detail ? { detail: state.detail } : {},
|
|
24
|
+
...state.color ? { color: state.color } : {}
|
|
25
|
+
})).sort((left, right) => left.order - right.order || left.source.localeCompare(right.source) || left.id.localeCompare(right.id));
|
|
26
|
+
}
|
|
27
|
+
var DoomUiState = class {
|
|
28
|
+
snapshot = INACTIVE_SNAPSHOT;
|
|
29
|
+
modes = [];
|
|
30
|
+
listeners = /* @__PURE__ */ new Set();
|
|
31
|
+
getSnapshot() {
|
|
32
|
+
return cloneSnapshot(this.snapshot);
|
|
33
|
+
}
|
|
34
|
+
getModes() {
|
|
35
|
+
return this.modes;
|
|
36
|
+
}
|
|
37
|
+
setModes(modes) {
|
|
38
|
+
this.modes = modes.map((mode) => ({ ...mode }));
|
|
39
|
+
for (const listener of this.listeners) listener(this.getSnapshot());
|
|
40
|
+
}
|
|
41
|
+
setLeader(snapshot) {
|
|
42
|
+
this.snapshot = cloneSnapshot(snapshot);
|
|
43
|
+
for (const listener of this.listeners) listener(this.getSnapshot());
|
|
44
|
+
}
|
|
45
|
+
reset() {
|
|
46
|
+
this.modes = [];
|
|
47
|
+
this.setLeader(INACTIVE_SNAPSHOT);
|
|
48
|
+
}
|
|
49
|
+
subscribe(listener) {
|
|
50
|
+
this.listeners.add(listener);
|
|
51
|
+
return () => this.listeners.delete(listener);
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
//#endregion
|
|
55
|
+
export { projectMinorModeRecords as n, DoomUiState as t };
|
|
56
|
+
|
|
57
|
+
//# sourceMappingURL=uiState-G_Pso-5i.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uiState-G_Pso-5i.mjs","names":[],"sources":["../src/models/uiState.ts"],"sourcesContent":["import type { LeaderTone } from '@agimon-ai/po-core/leader';\nimport type { MinorModeRecord, ModeTextColor } from '@agimon-ai/po-minor-mode';\n\nexport interface LeaderOption {\n key: string;\n label: string;\n detail?: string;\n tone?: LeaderTone;\n}\n\nexport interface LeaderSnapshot {\n active: boolean;\n prefix: string[];\n label: string;\n options: LeaderOption[];\n rootOptions?: LeaderOption[];\n}\n\nexport interface UiMinorModeStatus {\n source: string;\n id: string;\n label: string;\n detail?: string;\n color?: ModeTextColor;\n order: number;\n}\n\ntype StateListener = (snapshot: LeaderSnapshot) => void;\n\nconst INACTIVE_SNAPSHOT: LeaderSnapshot = {\n active: false,\n prefix: [],\n label: '',\n options: [],\n};\n\nfunction cloneSnapshot(snapshot: LeaderSnapshot): LeaderSnapshot {\n return {\n active: snapshot.active,\n prefix: [...snapshot.prefix],\n label: snapshot.label,\n options: snapshot.options.map((option) => ({ ...option })),\n ...(snapshot.rootOptions ? { rootOptions: snapshot.rootOptions.map((option) => ({ ...option })) } : {}),\n };\n}\n\nexport function projectMinorModeRecords(records: readonly MinorModeRecord[]): UiMinorModeStatus[] {\n return records\n .filter(({ state }) => state.activation !== 'inactive')\n .map(({ descriptor, state }) => ({\n source: descriptor.source,\n id: descriptor.id,\n label: descriptor.label,\n order: descriptor.order,\n ...(state.detail ? { detail: state.detail } : {}),\n ...(state.color ? { color: state.color } : {}),\n }))\n .sort(\n (left, right) =>\n left.order - right.order || left.source.localeCompare(right.source) || left.id.localeCompare(right.id),\n );\n}\n\nexport class DoomUiState {\n private snapshot = INACTIVE_SNAPSHOT;\n private modes: readonly UiMinorModeStatus[] = [];\n private readonly listeners = new Set<StateListener>();\n\n getSnapshot(): LeaderSnapshot {\n return cloneSnapshot(this.snapshot);\n }\n\n getModes(): readonly UiMinorModeStatus[] {\n return this.modes;\n }\n\n setModes(modes: readonly UiMinorModeStatus[]): void {\n this.modes = modes.map((mode) => ({ ...mode }));\n for (const listener of this.listeners) listener(this.getSnapshot());\n }\n\n setLeader(snapshot: LeaderSnapshot): void {\n this.snapshot = cloneSnapshot(snapshot);\n for (const listener of this.listeners) listener(this.getSnapshot());\n }\n\n reset(): void {\n this.modes = [];\n this.setLeader(INACTIVE_SNAPSHOT);\n }\n\n subscribe(listener: StateListener): () => void {\n this.listeners.add(listener);\n return () => this.listeners.delete(listener);\n }\n}\n"],"mappings":";AA6BA,MAAM,oBAAoC;CACxC,QAAQ;CACR,QAAQ,CAAC;CACT,OAAO;CACP,SAAS,CAAC;AACZ;AAEA,SAAS,cAAc,UAA0C;CAC/D,OAAO;EACL,QAAQ,SAAS;EACjB,QAAQ,CAAC,GAAG,SAAS,MAAM;EAC3B,OAAO,SAAS;EAChB,SAAS,SAAS,QAAQ,KAAK,YAAY,EAAE,GAAG,OAAO,EAAE;EACzD,GAAI,SAAS,cAAc,EAAE,aAAa,SAAS,YAAY,KAAK,YAAY,EAAE,GAAG,OAAO,EAAE,EAAE,IAAI,CAAC;CACvG;AACF;AAEA,SAAgB,wBAAwB,SAA0D;CAChG,OAAO,QACJ,QAAQ,EAAE,YAAY,MAAM,eAAe,UAAU,CAAC,CACtD,KAAK,EAAE,YAAY,aAAa;EAC/B,QAAQ,WAAW;EACnB,IAAI,WAAW;EACf,OAAO,WAAW;EAClB,OAAO,WAAW;EAClB,GAAI,MAAM,SAAS,EAAE,QAAQ,MAAM,OAAO,IAAI,CAAC;EAC/C,GAAI,MAAM,QAAQ,EAAE,OAAO,MAAM,MAAM,IAAI,CAAC;CAC9C,EAAE,CAAC,CACF,MACE,MAAM,UACL,KAAK,QAAQ,MAAM,SAAS,KAAK,OAAO,cAAc,MAAM,MAAM,KAAK,KAAK,GAAG,cAAc,MAAM,EAAE,CACzG;AACJ;AAEA,IAAa,cAAb,MAAyB;CACvB,WAAmB;CACnB,QAA8C,CAAC;CAC/C,4BAA6B,IAAI,IAAmB;CAEpD,cAA8B;EAC5B,OAAO,cAAc,KAAK,QAAQ;CACpC;CAEA,WAAyC;EACvC,OAAO,KAAK;CACd;CAEA,SAAS,OAA2C;EAClD,KAAK,QAAQ,MAAM,KAAK,UAAU,EAAE,GAAG,KAAK,EAAE;EAC9C,KAAK,MAAM,YAAY,KAAK,WAAW,SAAS,KAAK,YAAY,CAAC;CACpE;CAEA,UAAU,UAAgC;EACxC,KAAK,WAAW,cAAc,QAAQ;EACtC,KAAK,MAAM,YAAY,KAAK,WAAW,SAAS,KAAK,YAAY,CAAC;CACpE;CAEA,QAAc;EACZ,KAAK,QAAQ,CAAC;EACd,KAAK,UAAU,iBAAiB;CAClC;CAEA,UAAU,UAAqC;EAC7C,KAAK,UAAU,IAAI,QAAQ;EAC3B,aAAa,KAAK,UAAU,OAAO,QAAQ;CAC7C;AACF"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
//#region src/models/uiState.ts
|
|
2
|
+
const INACTIVE_SNAPSHOT = {
|
|
3
|
+
active: false,
|
|
4
|
+
prefix: [],
|
|
5
|
+
label: "",
|
|
6
|
+
options: []
|
|
7
|
+
};
|
|
8
|
+
function cloneSnapshot(snapshot) {
|
|
9
|
+
return {
|
|
10
|
+
active: snapshot.active,
|
|
11
|
+
prefix: [...snapshot.prefix],
|
|
12
|
+
label: snapshot.label,
|
|
13
|
+
options: snapshot.options.map((option) => ({ ...option })),
|
|
14
|
+
...snapshot.rootOptions ? { rootOptions: snapshot.rootOptions.map((option) => ({ ...option })) } : {}
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
function projectMinorModeRecords(records) {
|
|
18
|
+
return records.filter(({ state }) => state.activation !== "inactive").map(({ descriptor, state }) => ({
|
|
19
|
+
source: descriptor.source,
|
|
20
|
+
id: descriptor.id,
|
|
21
|
+
label: descriptor.label,
|
|
22
|
+
order: descriptor.order,
|
|
23
|
+
...state.detail ? { detail: state.detail } : {},
|
|
24
|
+
...state.color ? { color: state.color } : {}
|
|
25
|
+
})).sort((left, right) => left.order - right.order || left.source.localeCompare(right.source) || left.id.localeCompare(right.id));
|
|
26
|
+
}
|
|
27
|
+
var DoomUiState = class {
|
|
28
|
+
snapshot = INACTIVE_SNAPSHOT;
|
|
29
|
+
modes = [];
|
|
30
|
+
listeners = /* @__PURE__ */ new Set();
|
|
31
|
+
getSnapshot() {
|
|
32
|
+
return cloneSnapshot(this.snapshot);
|
|
33
|
+
}
|
|
34
|
+
getModes() {
|
|
35
|
+
return this.modes;
|
|
36
|
+
}
|
|
37
|
+
setModes(modes) {
|
|
38
|
+
this.modes = modes.map((mode) => ({ ...mode }));
|
|
39
|
+
for (const listener of this.listeners) listener(this.getSnapshot());
|
|
40
|
+
}
|
|
41
|
+
setLeader(snapshot) {
|
|
42
|
+
this.snapshot = cloneSnapshot(snapshot);
|
|
43
|
+
for (const listener of this.listeners) listener(this.getSnapshot());
|
|
44
|
+
}
|
|
45
|
+
reset() {
|
|
46
|
+
this.modes = [];
|
|
47
|
+
this.setLeader(INACTIVE_SNAPSHOT);
|
|
48
|
+
}
|
|
49
|
+
subscribe(listener) {
|
|
50
|
+
this.listeners.add(listener);
|
|
51
|
+
return () => this.listeners.delete(listener);
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
//#endregion
|
|
55
|
+
Object.defineProperty(exports, "DoomUiState", {
|
|
56
|
+
enumerable: true,
|
|
57
|
+
get: function() {
|
|
58
|
+
return DoomUiState;
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
Object.defineProperty(exports, "projectMinorModeRecords", {
|
|
62
|
+
enumerable: true,
|
|
63
|
+
get: function() {
|
|
64
|
+
return projectMinorModeRecords;
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
//# sourceMappingURL=uiState-rUwgKslb.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uiState-rUwgKslb.cjs","names":[],"sources":["../src/models/uiState.ts"],"sourcesContent":["import type { LeaderTone } from '@agimon-ai/po-core/leader';\nimport type { MinorModeRecord, ModeTextColor } from '@agimon-ai/po-minor-mode';\n\nexport interface LeaderOption {\n key: string;\n label: string;\n detail?: string;\n tone?: LeaderTone;\n}\n\nexport interface LeaderSnapshot {\n active: boolean;\n prefix: string[];\n label: string;\n options: LeaderOption[];\n rootOptions?: LeaderOption[];\n}\n\nexport interface UiMinorModeStatus {\n source: string;\n id: string;\n label: string;\n detail?: string;\n color?: ModeTextColor;\n order: number;\n}\n\ntype StateListener = (snapshot: LeaderSnapshot) => void;\n\nconst INACTIVE_SNAPSHOT: LeaderSnapshot = {\n active: false,\n prefix: [],\n label: '',\n options: [],\n};\n\nfunction cloneSnapshot(snapshot: LeaderSnapshot): LeaderSnapshot {\n return {\n active: snapshot.active,\n prefix: [...snapshot.prefix],\n label: snapshot.label,\n options: snapshot.options.map((option) => ({ ...option })),\n ...(snapshot.rootOptions ? { rootOptions: snapshot.rootOptions.map((option) => ({ ...option })) } : {}),\n };\n}\n\nexport function projectMinorModeRecords(records: readonly MinorModeRecord[]): UiMinorModeStatus[] {\n return records\n .filter(({ state }) => state.activation !== 'inactive')\n .map(({ descriptor, state }) => ({\n source: descriptor.source,\n id: descriptor.id,\n label: descriptor.label,\n order: descriptor.order,\n ...(state.detail ? { detail: state.detail } : {}),\n ...(state.color ? { color: state.color } : {}),\n }))\n .sort(\n (left, right) =>\n left.order - right.order || left.source.localeCompare(right.source) || left.id.localeCompare(right.id),\n );\n}\n\nexport class DoomUiState {\n private snapshot = INACTIVE_SNAPSHOT;\n private modes: readonly UiMinorModeStatus[] = [];\n private readonly listeners = new Set<StateListener>();\n\n getSnapshot(): LeaderSnapshot {\n return cloneSnapshot(this.snapshot);\n }\n\n getModes(): readonly UiMinorModeStatus[] {\n return this.modes;\n }\n\n setModes(modes: readonly UiMinorModeStatus[]): void {\n this.modes = modes.map((mode) => ({ ...mode }));\n for (const listener of this.listeners) listener(this.getSnapshot());\n }\n\n setLeader(snapshot: LeaderSnapshot): void {\n this.snapshot = cloneSnapshot(snapshot);\n for (const listener of this.listeners) listener(this.getSnapshot());\n }\n\n reset(): void {\n this.modes = [];\n this.setLeader(INACTIVE_SNAPSHOT);\n }\n\n subscribe(listener: StateListener): () => void {\n this.listeners.add(listener);\n return () => this.listeners.delete(listener);\n }\n}\n"],"mappings":";AA6BA,MAAM,oBAAoC;CACxC,QAAQ;CACR,QAAQ,CAAC;CACT,OAAO;CACP,SAAS,CAAC;AACZ;AAEA,SAAS,cAAc,UAA0C;CAC/D,OAAO;EACL,QAAQ,SAAS;EACjB,QAAQ,CAAC,GAAG,SAAS,MAAM;EAC3B,OAAO,SAAS;EAChB,SAAS,SAAS,QAAQ,KAAK,YAAY,EAAE,GAAG,OAAO,EAAE;EACzD,GAAI,SAAS,cAAc,EAAE,aAAa,SAAS,YAAY,KAAK,YAAY,EAAE,GAAG,OAAO,EAAE,EAAE,IAAI,CAAC;CACvG;AACF;AAEA,SAAgB,wBAAwB,SAA0D;CAChG,OAAO,QACJ,QAAQ,EAAE,YAAY,MAAM,eAAe,UAAU,CAAC,CACtD,KAAK,EAAE,YAAY,aAAa;EAC/B,QAAQ,WAAW;EACnB,IAAI,WAAW;EACf,OAAO,WAAW;EAClB,OAAO,WAAW;EAClB,GAAI,MAAM,SAAS,EAAE,QAAQ,MAAM,OAAO,IAAI,CAAC;EAC/C,GAAI,MAAM,QAAQ,EAAE,OAAO,MAAM,MAAM,IAAI,CAAC;CAC9C,EAAE,CAAC,CACF,MACE,MAAM,UACL,KAAK,QAAQ,MAAM,SAAS,KAAK,OAAO,cAAc,MAAM,MAAM,KAAK,KAAK,GAAG,cAAc,MAAM,EAAE,CACzG;AACJ;AAEA,IAAa,cAAb,MAAyB;CACvB,WAAmB;CACnB,QAA8C,CAAC;CAC/C,4BAA6B,IAAI,IAAmB;CAEpD,cAA8B;EAC5B,OAAO,cAAc,KAAK,QAAQ;CACpC;CAEA,WAAyC;EACvC,OAAO,KAAK;CACd;CAEA,SAAS,OAA2C;EAClD,KAAK,QAAQ,MAAM,KAAK,UAAU,EAAE,GAAG,KAAK,EAAE;EAC9C,KAAK,MAAM,YAAY,KAAK,WAAW,SAAS,KAAK,YAAY,CAAC;CACpE;CAEA,UAAU,UAAgC;EACxC,KAAK,WAAW,cAAc,QAAQ;EACtC,KAAK,MAAM,YAAY,KAAK,WAAW,SAAS,KAAK,YAAY,CAAC;CACpE;CAEA,QAAc;EACZ,KAAK,QAAQ,CAAC;EACd,KAAK,UAAU,iBAAiB;CAClC;CAEA,UAAU,UAAqC;EAC7C,KAAK,UAAU,IAAI,QAAQ;EAC3B,aAAa,KAAK,UAAU,OAAO,QAAQ;CAC7C;AACF"}
|
package/dist/uiState.cjs
ADDED
package/dist/uiState.mjs
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@agimon-ai/po-ui",
|
|
3
|
+
"version": "0.0.0-alpha.0",
|
|
4
|
+
"description": "Leader-key menus, themes, and TUI components for Po and Pi extensions.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"ai",
|
|
7
|
+
"coding-agent",
|
|
8
|
+
"developer-tools",
|
|
9
|
+
"leader-key",
|
|
10
|
+
"pi-extension",
|
|
11
|
+
"pi-package",
|
|
12
|
+
"pi-tui",
|
|
13
|
+
"po",
|
|
14
|
+
"terminal-ui",
|
|
15
|
+
"tui"
|
|
16
|
+
],
|
|
17
|
+
"homepage": "https://agimon.ai",
|
|
18
|
+
"bugs": {
|
|
19
|
+
"url": "https://github.com/AgiFlow/po/issues"
|
|
20
|
+
},
|
|
21
|
+
"license": "MIT",
|
|
22
|
+
"author": "Vuong Ngo",
|
|
23
|
+
"repository": {
|
|
24
|
+
"type": "git",
|
|
25
|
+
"url": "git+https://github.com/AgiFlow/po.git",
|
|
26
|
+
"directory": "packages/foundations/po-ui"
|
|
27
|
+
},
|
|
28
|
+
"files": [
|
|
29
|
+
"dist",
|
|
30
|
+
"themes"
|
|
31
|
+
],
|
|
32
|
+
"type": "module",
|
|
33
|
+
"main": "./dist/index.cjs",
|
|
34
|
+
"module": "./dist/index.mjs",
|
|
35
|
+
"types": "./dist/index.d.mts",
|
|
36
|
+
"jsnext:main": "./dist/index.mjs",
|
|
37
|
+
"exports": {
|
|
38
|
+
".": {
|
|
39
|
+
"types": "./dist/index.d.mts",
|
|
40
|
+
"import": "./dist/index.mjs",
|
|
41
|
+
"require": "./dist/index.cjs"
|
|
42
|
+
},
|
|
43
|
+
"./config": {
|
|
44
|
+
"types": "./dist/config.d.mts",
|
|
45
|
+
"import": "./dist/config.mjs",
|
|
46
|
+
"require": "./dist/config.cjs"
|
|
47
|
+
},
|
|
48
|
+
"./extensionName": {
|
|
49
|
+
"types": "./dist/extensionName.d.mts",
|
|
50
|
+
"import": "./dist/extensionName.mjs",
|
|
51
|
+
"require": "./dist/extensionName.cjs"
|
|
52
|
+
},
|
|
53
|
+
"./extensions/server": {
|
|
54
|
+
"types": "./dist/extensions/server.d.mts",
|
|
55
|
+
"import": "./dist/extensions/server.mjs",
|
|
56
|
+
"require": "./dist/extensions/server.cjs"
|
|
57
|
+
},
|
|
58
|
+
"./extensions/web": {
|
|
59
|
+
"import": "./dist/extensions/web.mjs"
|
|
60
|
+
},
|
|
61
|
+
"./footer": {
|
|
62
|
+
"types": "./dist/footer.d.mts",
|
|
63
|
+
"import": "./dist/footer.mjs",
|
|
64
|
+
"require": "./dist/footer.cjs"
|
|
65
|
+
},
|
|
66
|
+
"./harnessMetadata": {
|
|
67
|
+
"types": "./dist/harnessMetadata.d.mts",
|
|
68
|
+
"import": "./dist/harnessMetadata.mjs",
|
|
69
|
+
"require": "./dist/harnessMetadata.cjs"
|
|
70
|
+
},
|
|
71
|
+
"./leader": {
|
|
72
|
+
"types": "./dist/leader.d.mts",
|
|
73
|
+
"import": "./dist/leader.mjs",
|
|
74
|
+
"require": "./dist/leader.cjs"
|
|
75
|
+
},
|
|
76
|
+
"./leaderRegistry": {
|
|
77
|
+
"types": "./dist/leaderRegistry.d.mts",
|
|
78
|
+
"import": "./dist/leaderRegistry.mjs",
|
|
79
|
+
"require": "./dist/leaderRegistry.cjs"
|
|
80
|
+
},
|
|
81
|
+
"./logSinkTelemetry": {
|
|
82
|
+
"types": "./dist/logSinkTelemetry.d.mts",
|
|
83
|
+
"import": "./dist/logSinkTelemetry.mjs",
|
|
84
|
+
"require": "./dist/logSinkTelemetry.cjs"
|
|
85
|
+
},
|
|
86
|
+
"./skills": {
|
|
87
|
+
"types": "./dist/skills.d.mts",
|
|
88
|
+
"import": "./dist/skills.mjs",
|
|
89
|
+
"require": "./dist/skills.cjs"
|
|
90
|
+
},
|
|
91
|
+
"./theme": {
|
|
92
|
+
"types": "./dist/theme.d.mts",
|
|
93
|
+
"import": "./dist/theme.mjs",
|
|
94
|
+
"require": "./dist/theme.cjs"
|
|
95
|
+
},
|
|
96
|
+
"./themes/po-dark.json": "./themes/po-dark.json",
|
|
97
|
+
"./toolInventory": {
|
|
98
|
+
"types": "./dist/toolInventory.d.mts",
|
|
99
|
+
"import": "./dist/toolInventory.mjs",
|
|
100
|
+
"require": "./dist/toolInventory.cjs"
|
|
101
|
+
},
|
|
102
|
+
"./uiState": {
|
|
103
|
+
"types": "./dist/uiState.d.mts",
|
|
104
|
+
"import": "./dist/uiState.mjs",
|
|
105
|
+
"require": "./dist/uiState.cjs"
|
|
106
|
+
},
|
|
107
|
+
"./package.json": "./package.json"
|
|
108
|
+
},
|
|
109
|
+
"publishConfig": {
|
|
110
|
+
"access": "public"
|
|
111
|
+
},
|
|
112
|
+
"dependencies": {
|
|
113
|
+
"@agimon-ai/po-core": "0.0.0-alpha.0",
|
|
114
|
+
"@agimon-ai/po-hashline": "0.0.0-alpha.0",
|
|
115
|
+
"@agimon-ai/po-minor-mode": "0.0.0-alpha.0",
|
|
116
|
+
"@agimon-ai/po-telemetry": "0.0.0-alpha.0",
|
|
117
|
+
"@agimon-ai/po-web-components": "0.0.0-alpha.0",
|
|
118
|
+
"@deepseek-ai/cordis": "4.0.4",
|
|
119
|
+
"yaml": "2.9.1"
|
|
120
|
+
},
|
|
121
|
+
"devDependencies": {
|
|
122
|
+
"@agimon-ai/po-build": "0.0.0-alpha.0",
|
|
123
|
+
"@agimon-ai/po-core": "0.0.0-alpha.0",
|
|
124
|
+
"@agimon-ai/po-web-components": "0.0.0-alpha.0",
|
|
125
|
+
"@earendil-works/pi-coding-agent": "1.0.2",
|
|
126
|
+
"@tanstack/react-store": "0.11.2",
|
|
127
|
+
"@tanstack/store": "0.11.2",
|
|
128
|
+
"@types/node": "26.6.4",
|
|
129
|
+
"@types/react": "19.3.0",
|
|
130
|
+
"@vitest/coverage-v8": "5.0.3",
|
|
131
|
+
"react": "19.3.0",
|
|
132
|
+
"react-dom": "19.3.0",
|
|
133
|
+
"tsdown": "0.23.0",
|
|
134
|
+
"typescript": "7.0.2",
|
|
135
|
+
"vitest": "5.0.3"
|
|
136
|
+
},
|
|
137
|
+
"peerDependencies": {
|
|
138
|
+
"@agimon-ai/po-core": "0.0.0-alpha.0",
|
|
139
|
+
"@agimon-ai/po-web-components": "0.0.0-alpha.0",
|
|
140
|
+
"@earendil-works/pi-coding-agent": "1.0.2"
|
|
141
|
+
},
|
|
142
|
+
"peerDependenciesMeta": {
|
|
143
|
+
"@agimon-ai/po-web-components": {
|
|
144
|
+
"optional": true
|
|
145
|
+
},
|
|
146
|
+
"@agimon-ai/po-core": {
|
|
147
|
+
"optional": true
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
"engines": {
|
|
151
|
+
"node": ">=24"
|
|
152
|
+
},
|
|
153
|
+
"poMcp": {
|
|
154
|
+
"entry": "./generated/mcp.ts",
|
|
155
|
+
"dist": "./dist/extensions/mcp.mjs",
|
|
156
|
+
"scopes": [
|
|
157
|
+
"session"
|
|
158
|
+
],
|
|
159
|
+
"ui": {
|
|
160
|
+
"entry": "./generated/mcp-ui.ts",
|
|
161
|
+
"dist": "./dist/extensions/mcp-ui.mjs",
|
|
162
|
+
"widgets": [
|
|
163
|
+
"@agimon-ai/po-ui/find",
|
|
164
|
+
"@agimon-ai/po-ui/ls",
|
|
165
|
+
"@agimon-ai/po-ui/write"
|
|
166
|
+
]
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
"poServer": {
|
|
170
|
+
"entry": "./generated/server.ts",
|
|
171
|
+
"dist": "./dist/extensions/server.mjs",
|
|
172
|
+
"scopes": [
|
|
173
|
+
"session"
|
|
174
|
+
],
|
|
175
|
+
"contracts": {
|
|
176
|
+
"entry": "./src/exports/apiContracts.ts",
|
|
177
|
+
"dist": "./dist/apiContracts.mjs"
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
"poWeb": {
|
|
181
|
+
"pluginId": "builtin-tools",
|
|
182
|
+
"channels": [],
|
|
183
|
+
"client": "./dist/extensions/web.mjs",
|
|
184
|
+
"scopes": [
|
|
185
|
+
"session"
|
|
186
|
+
]
|
|
187
|
+
},
|
|
188
|
+
"scripts": {
|
|
189
|
+
"build": "tsdown && tsdown --config tsdown.mcp.config.ts",
|
|
190
|
+
"build:mcp": "tsdown --config tsdown.mcp.config.ts",
|
|
191
|
+
"test": "vitest --run",
|
|
192
|
+
"typecheck": "tsc --noEmit && tsc --noEmit -p tsconfig.web.json && tsc --noEmit -p tsconfig.mcp.json",
|
|
193
|
+
"lint": "oxlint . && oxfmt . --check",
|
|
194
|
+
"fixcode": "oxlint . --fix && oxfmt ."
|
|
195
|
+
}
|
|
196
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
|
|
3
|
+
"name": "po-dark",
|
|
4
|
+
"vars": {
|
|
5
|
+
"bg": "#1c1c1c",
|
|
6
|
+
"bgAlt": "#171717",
|
|
7
|
+
"bgActive": "#2b2b2b",
|
|
8
|
+
"bgHover": "#2b2b2b",
|
|
9
|
+
"fg": "#dedede",
|
|
10
|
+
"fgAlt": "#b0b0b0",
|
|
11
|
+
"grey": "#343434",
|
|
12
|
+
"greyAlt": "#555555",
|
|
13
|
+
"blue": "#8cb5cc",
|
|
14
|
+
"darkBlue": "#284b64",
|
|
15
|
+
"cyan": "#8fc8c7",
|
|
16
|
+
"green": "#81cca3",
|
|
17
|
+
"lightGreen": "#a5d9b5",
|
|
18
|
+
"teal": "#8ec1ab",
|
|
19
|
+
"orange": "#d3ad83",
|
|
20
|
+
"red": "#e99185",
|
|
21
|
+
"violet": "#b0a0ce",
|
|
22
|
+
"magenta": "#c19aae",
|
|
23
|
+
"yellow": "#d6be82",
|
|
24
|
+
"lightYellow": "#e1cf9e",
|
|
25
|
+
"comment": "#a4a4a4",
|
|
26
|
+
"diffAddedBg": "#152d20",
|
|
27
|
+
"diffRemovedBg": "#35201b"
|
|
28
|
+
},
|
|
29
|
+
"colors": {
|
|
30
|
+
"accent": "green",
|
|
31
|
+
"border": "greyAlt",
|
|
32
|
+
"borderAccent": "green",
|
|
33
|
+
"borderMuted": "grey",
|
|
34
|
+
"success": "green",
|
|
35
|
+
"error": "red",
|
|
36
|
+
"warning": "yellow",
|
|
37
|
+
"muted": "fgAlt",
|
|
38
|
+
"dim": "comment",
|
|
39
|
+
"text": "fg",
|
|
40
|
+
"thinkingText": "fgAlt",
|
|
41
|
+
"selectedBg": "bgHover",
|
|
42
|
+
"userMessageBg": "bgActive",
|
|
43
|
+
"userMessageText": "fg",
|
|
44
|
+
"customMessageBg": "#292c2a",
|
|
45
|
+
"customMessageText": "fg",
|
|
46
|
+
"customMessageLabel": "green",
|
|
47
|
+
"toolPendingBg": "bgAlt",
|
|
48
|
+
"toolSuccessBg": "diffAddedBg",
|
|
49
|
+
"toolErrorBg": "diffRemovedBg",
|
|
50
|
+
"toolTitle": "green",
|
|
51
|
+
"toolOutput": "fg",
|
|
52
|
+
"mdHeading": "magenta",
|
|
53
|
+
"mdLink": "blue",
|
|
54
|
+
"mdLinkUrl": "comment",
|
|
55
|
+
"mdCode": "cyan",
|
|
56
|
+
"mdCodeBlock": "lightYellow",
|
|
57
|
+
"mdCodeBlockBorder": "greyAlt",
|
|
58
|
+
"mdQuote": "fgAlt",
|
|
59
|
+
"mdQuoteBorder": "greyAlt",
|
|
60
|
+
"mdHr": "greyAlt",
|
|
61
|
+
"mdListBullet": "green",
|
|
62
|
+
"toolDiffAdded": "lightGreen",
|
|
63
|
+
"toolDiffRemoved": "red",
|
|
64
|
+
"toolDiffContext": "fgAlt",
|
|
65
|
+
"syntaxComment": "comment",
|
|
66
|
+
"syntaxKeyword": "blue",
|
|
67
|
+
"syntaxFunction": "magenta",
|
|
68
|
+
"syntaxVariable": "violet",
|
|
69
|
+
"syntaxString": "green",
|
|
70
|
+
"syntaxNumber": "orange",
|
|
71
|
+
"syntaxType": "yellow",
|
|
72
|
+
"syntaxOperator": "orange",
|
|
73
|
+
"syntaxPunctuation": "fgAlt",
|
|
74
|
+
"thinkingOff": "grey",
|
|
75
|
+
"thinkingMinimal": "fgAlt",
|
|
76
|
+
"thinkingLow": "darkBlue",
|
|
77
|
+
"thinkingMedium": "blue",
|
|
78
|
+
"thinkingHigh": "teal",
|
|
79
|
+
"thinkingXhigh": "magenta",
|
|
80
|
+
"thinkingMax": "red",
|
|
81
|
+
"bashMode": "lightGreen"
|
|
82
|
+
},
|
|
83
|
+
"export": {
|
|
84
|
+
"pageBg": "bg",
|
|
85
|
+
"cardBg": "bgAlt",
|
|
86
|
+
"infoBg": "#3b3526"
|
|
87
|
+
}
|
|
88
|
+
}
|