@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.
Files changed (93) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +37 -0
  3. package/dist/apiContracts.cjs +17 -0
  4. package/dist/apiContracts.cjs.map +1 -0
  5. package/dist/apiContracts.d.mts +53 -0
  6. package/dist/apiContracts.d.mts.map +1 -0
  7. package/dist/apiContracts.mjs +13 -0
  8. package/dist/apiContracts.mjs.map +1 -0
  9. package/dist/config.cjs +62 -0
  10. package/dist/config.d.mts +2 -0
  11. package/dist/config.mjs +2 -0
  12. package/dist/extensionName.cjs +59 -0
  13. package/dist/extensionName.cjs.map +1 -0
  14. package/dist/extensionName.d.mts +14 -0
  15. package/dist/extensionName.d.mts.map +1 -0
  16. package/dist/extensionName.mjs +54 -0
  17. package/dist/extensionName.mjs.map +1 -0
  18. package/dist/extensions/mcp-ui.mjs +46 -0
  19. package/dist/extensions/mcp-ui.mjs.map +1 -0
  20. package/dist/extensions/mcp.cjs +79 -0
  21. package/dist/extensions/mcp.cjs.map +1 -0
  22. package/dist/extensions/mcp.d.mts +5 -0
  23. package/dist/extensions/mcp.d.mts.map +1 -0
  24. package/dist/extensions/mcp.mjs +74 -0
  25. package/dist/extensions/mcp.mjs.map +1 -0
  26. package/dist/extensions/server.cjs +137 -0
  27. package/dist/extensions/server.cjs.map +1 -0
  28. package/dist/extensions/server.d.mts +5 -0
  29. package/dist/extensions/server.d.mts.map +1 -0
  30. package/dist/extensions/server.mjs +132 -0
  31. package/dist/extensions/server.mjs.map +1 -0
  32. package/dist/extensions/web.mjs +332 -0
  33. package/dist/extensions/web.mjs.map +1 -0
  34. package/dist/footer.cjs +26 -0
  35. package/dist/footer.d.mts +2 -0
  36. package/dist/footer.mjs +2 -0
  37. package/dist/harnessMetadata-CzsdGAxL.d.mts +21 -0
  38. package/dist/harnessMetadata-CzsdGAxL.d.mts.map +1 -0
  39. package/dist/harnessMetadata-DkMSJutN.mjs +25 -0
  40. package/dist/harnessMetadata-DkMSJutN.mjs.map +1 -0
  41. package/dist/harnessMetadata-Dw9Rb1nW.cjs +30 -0
  42. package/dist/harnessMetadata-Dw9Rb1nW.cjs.map +1 -0
  43. package/dist/harnessMetadata.cjs +3 -0
  44. package/dist/harnessMetadata.d.mts +2 -0
  45. package/dist/harnessMetadata.mjs +2 -0
  46. package/dist/index-Bx49wmE7.d.mts +30 -0
  47. package/dist/index-Bx49wmE7.d.mts.map +1 -0
  48. package/dist/index-Dpzvl-vg.d.mts +103 -0
  49. package/dist/index-Dpzvl-vg.d.mts.map +1 -0
  50. package/dist/index.cjs +12 -0
  51. package/dist/index.d.mts +8 -0
  52. package/dist/index.mjs +5 -0
  53. package/dist/leader.cjs +0 -0
  54. package/dist/leader.d.mts +2 -0
  55. package/dist/leader.mjs +1 -0
  56. package/dist/leaderRegistry.cjs +515 -0
  57. package/dist/leaderRegistry.cjs.map +1 -0
  58. package/dist/leaderRegistry.d.mts +59 -0
  59. package/dist/leaderRegistry.d.mts.map +1 -0
  60. package/dist/leaderRegistry.mjs +514 -0
  61. package/dist/leaderRegistry.mjs.map +1 -0
  62. package/dist/logSinkTelemetry.cjs +4 -0
  63. package/dist/logSinkTelemetry.d.mts +2 -0
  64. package/dist/logSinkTelemetry.mjs +2 -0
  65. package/dist/rolldown-runtime-VH7oDXx4.cjs +28 -0
  66. package/dist/skills.cjs +38 -0
  67. package/dist/skills.d.mts +2 -0
  68. package/dist/skills.mjs +2 -0
  69. package/dist/telemetry--EgKB9ei.mjs +36 -0
  70. package/dist/telemetry--EgKB9ei.mjs.map +1 -0
  71. package/dist/telemetry-DMR6cIT1.cjs +47 -0
  72. package/dist/telemetry-DMR6cIT1.cjs.map +1 -0
  73. package/dist/theme-2wveit5V.cjs +166 -0
  74. package/dist/theme-2wveit5V.cjs.map +1 -0
  75. package/dist/theme-Byj_dBlT.mjs +134 -0
  76. package/dist/theme-Byj_dBlT.mjs.map +1 -0
  77. package/dist/theme.cjs +7 -0
  78. package/dist/theme.d.mts +2 -0
  79. package/dist/theme.mjs +2 -0
  80. package/dist/toolInventory.cjs +20 -0
  81. package/dist/toolInventory.d.mts +2 -0
  82. package/dist/toolInventory.mjs +2 -0
  83. package/dist/uiState-Binu4nUb.d.mts +40 -0
  84. package/dist/uiState-Binu4nUb.d.mts.map +1 -0
  85. package/dist/uiState-G_Pso-5i.mjs +57 -0
  86. package/dist/uiState-G_Pso-5i.mjs.map +1 -0
  87. package/dist/uiState-rUwgKslb.cjs +68 -0
  88. package/dist/uiState-rUwgKslb.cjs.map +1 -0
  89. package/dist/uiState.cjs +4 -0
  90. package/dist/uiState.d.mts +2 -0
  91. package/dist/uiState.mjs +2 -0
  92. package/package.json +196 -0
  93. 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,2 @@
1
+ import { buildToolSources, tokensForSource, tokensForTool } from "@agimon-ai/po-core/toolInventory";
2
+ export { 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"}
@@ -0,0 +1,4 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_uiState = require("./uiState-rUwgKslb.cjs");
3
+ exports.DoomUiState = require_uiState.DoomUiState;
4
+ exports.projectMinorModeRecords = require_uiState.projectMinorModeRecords;
@@ -0,0 +1,2 @@
1
+ import { a as projectMinorModeRecords, i as UiMinorModeStatus, n as LeaderOption, r as LeaderSnapshot, t as DoomUiState } from "./uiState-Binu4nUb.mjs";
2
+ export { DoomUiState, type LeaderOption, type LeaderSnapshot, type UiMinorModeStatus, projectMinorModeRecords };
@@ -0,0 +1,2 @@
1
+ import { n as projectMinorModeRecords, t as DoomUiState } from "./uiState-G_Pso-5i.mjs";
2
+ export { DoomUiState, projectMinorModeRecords };
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
+ }