@almadar/ui 4.44.1 → 4.46.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/dist/avl/index.cjs +249 -174
- package/dist/avl/index.js +250 -175
- package/dist/components/atoms/index.d.ts +1 -1
- package/dist/components/index.cjs +185 -131
- package/dist/components/index.js +186 -132
- package/dist/components/molecules/game/ResourceBar.d.ts +1 -1
- package/dist/components/organisms/game/three/index.cjs +18 -15
- package/dist/components/organisms/game/three/index.js +18 -15
- package/dist/components/organisms/layout/{MasterDetail.d.ts → MasterDetailLayout.d.ts} +3 -3
- package/dist/components/organisms/layout/index.d.ts +1 -1
- package/dist/context/index.cjs +17 -12
- package/dist/context/index.js +17 -12
- package/dist/docs/index.cjs +2 -2
- package/dist/docs/index.js +2 -2
- package/dist/hooks/index.cjs +52 -40
- package/dist/hooks/index.js +52 -40
- package/dist/lib/debug.d.ts +15 -22
- package/dist/lib/index.cjs +61 -47
- package/dist/lib/index.js +62 -48
- package/dist/marketing/index.cjs +2 -2
- package/dist/marketing/index.js +2 -2
- package/dist/providers/EventBusProvider.d.ts +6 -2
- package/dist/providers/index.cjs +184 -115
- package/dist/providers/index.js +184 -115
- package/dist/renderer/index.cjs +57 -56
- package/dist/renderer/index.js +57 -56
- package/dist/runtime/index.cjs +174 -100
- package/dist/runtime/index.js +175 -101
- package/package.json +3 -3
- /package/dist/components/atoms/{StatCard.d.ts → MarketingStatCard.d.ts} +0 -0
|
@@ -1076,7 +1076,7 @@ var init_useEventBus = __esm({
|
|
|
1076
1076
|
try {
|
|
1077
1077
|
handler(event);
|
|
1078
1078
|
} catch (error) {
|
|
1079
|
-
|
|
1079
|
+
log.error("Error in listener", { type, error: error instanceof Error ? error : String(error) });
|
|
1080
1080
|
}
|
|
1081
1081
|
});
|
|
1082
1082
|
}
|
|
@@ -1084,7 +1084,7 @@ var init_useEventBus = __esm({
|
|
|
1084
1084
|
try {
|
|
1085
1085
|
handler(event);
|
|
1086
1086
|
} catch (error) {
|
|
1087
|
-
|
|
1087
|
+
log.error("Error in onAny listener", { type, error: error instanceof Error ? error : String(error) });
|
|
1088
1088
|
}
|
|
1089
1089
|
});
|
|
1090
1090
|
},
|
|
@@ -3137,6 +3137,7 @@ var BUILT_IN_THEMES, ThemeContext;
|
|
|
3137
3137
|
var init_ThemeContext = __esm({
|
|
3138
3138
|
"context/ThemeContext.tsx"() {
|
|
3139
3139
|
"use client";
|
|
3140
|
+
logger.createLogger("almadar:ui:theme");
|
|
3140
3141
|
BUILT_IN_THEMES = [
|
|
3141
3142
|
{
|
|
3142
3143
|
name: "wireframe",
|
|
@@ -4472,8 +4473,8 @@ var init_SectionHeader = __esm({
|
|
|
4472
4473
|
}
|
|
4473
4474
|
});
|
|
4474
4475
|
var sizeClasses4; exports.MarketingStatCard = void 0;
|
|
4475
|
-
var
|
|
4476
|
-
"components/atoms/
|
|
4476
|
+
var init_MarketingStatCard = __esm({
|
|
4477
|
+
"components/atoms/MarketingStatCard.tsx"() {
|
|
4477
4478
|
init_cn();
|
|
4478
4479
|
init_Stack();
|
|
4479
4480
|
init_Typography();
|
|
@@ -8339,7 +8340,7 @@ function ActionButton({
|
|
|
8339
8340
|
disabled: isDisabled,
|
|
8340
8341
|
onClick,
|
|
8341
8342
|
className: cn(
|
|
8342
|
-
"relative inline-flex items-center gap-1.5 rounded-md border font-medium
|
|
8343
|
+
"relative inline-flex items-center gap-1.5 rounded-md border font-medium overflow-hidden transition-colors duration-150",
|
|
8343
8344
|
sizes.button,
|
|
8344
8345
|
variantStyles7[variant],
|
|
8345
8346
|
isDisabled && "opacity-60 cursor-not-allowed",
|
|
@@ -8349,7 +8350,7 @@ function ActionButton({
|
|
|
8349
8350
|
onCooldown && /* @__PURE__ */ jsxRuntime.jsx(
|
|
8350
8351
|
"div",
|
|
8351
8352
|
{
|
|
8352
|
-
className: "absolute inset-0 bg-
|
|
8353
|
+
className: "absolute inset-0 bg-foreground/40 pointer-events-none",
|
|
8353
8354
|
style: {
|
|
8354
8355
|
clipPath: `conic-gradient(from 0deg, transparent ${360 - cooldownDeg}deg, black ${360 - cooldownDeg}deg)`,
|
|
8355
8356
|
WebkitClipPath: `conic-gradient(from 0deg, transparent ${360 - cooldownDeg}deg, black ${360 - cooldownDeg}deg)`,
|
|
@@ -8357,13 +8358,16 @@ function ActionButton({
|
|
|
8357
8358
|
}
|
|
8358
8359
|
}
|
|
8359
8360
|
),
|
|
8360
|
-
icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("flex-shrink-0", sizes.icon), children: icon
|
|
8361
|
+
icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("flex-shrink-0", sizes.icon), children: typeof icon === "string" ? (() => {
|
|
8362
|
+
const I = resolveIcon(icon);
|
|
8363
|
+
return I ? /* @__PURE__ */ jsxRuntime.jsx(I, { className: "w-4 h-4" }) : null;
|
|
8364
|
+
})() : icon }),
|
|
8361
8365
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "relative z-10", children: label }),
|
|
8362
8366
|
hotkey && /* @__PURE__ */ jsxRuntime.jsx(
|
|
8363
8367
|
"span",
|
|
8364
8368
|
{
|
|
8365
8369
|
className: cn(
|
|
8366
|
-
"absolute top-0.5 right-0.5 bg-
|
|
8370
|
+
"absolute top-0.5 right-0.5 bg-foreground/30 text-primary-foreground rounded font-mono leading-tight",
|
|
8367
8371
|
sizes.hotkey
|
|
8368
8372
|
),
|
|
8369
8373
|
children: hotkey
|
|
@@ -8377,15 +8381,16 @@ var sizeMap, variantStyles7;
|
|
|
8377
8381
|
var init_ActionButton = __esm({
|
|
8378
8382
|
"components/atoms/game/ActionButton.tsx"() {
|
|
8379
8383
|
init_cn();
|
|
8384
|
+
init_Icon();
|
|
8380
8385
|
sizeMap = {
|
|
8381
8386
|
sm: { button: "px-3 py-1.5 text-xs", hotkey: "text-[9px] px-1", icon: "text-xs" },
|
|
8382
8387
|
md: { button: "px-4 py-2 text-sm", hotkey: "text-[10px] px-1.5", icon: "text-sm" },
|
|
8383
8388
|
lg: { button: "px-5 py-2.5 text-base", hotkey: "text-xs px-2", icon: "text-base" }
|
|
8384
8389
|
};
|
|
8385
8390
|
variantStyles7 = {
|
|
8386
|
-
primary: "bg-
|
|
8387
|
-
secondary: "bg-
|
|
8388
|
-
danger: "bg-
|
|
8391
|
+
primary: "bg-primary text-primary-foreground hover:bg-primary-hover border-primary",
|
|
8392
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary-hover border-border",
|
|
8393
|
+
danger: "bg-error text-error-foreground hover:bg-error/90 border-error"
|
|
8389
8394
|
};
|
|
8390
8395
|
ActionButton.displayName = "ActionButton";
|
|
8391
8396
|
}
|
|
@@ -8454,12 +8459,15 @@ function ControlButton({
|
|
|
8454
8459
|
sizeMap2[size] ?? sizeMap2.md,
|
|
8455
8460
|
shapeMap[shape] ?? shapeMap.circle,
|
|
8456
8461
|
variantMap[variant] ?? variantMap.secondary,
|
|
8457
|
-
actualPressed && "scale-95 brightness-110 border-
|
|
8462
|
+
actualPressed && "scale-95 brightness-110 border-foreground",
|
|
8458
8463
|
disabled && "opacity-50 cursor-not-allowed",
|
|
8459
8464
|
className
|
|
8460
8465
|
),
|
|
8461
8466
|
children: [
|
|
8462
|
-
icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-2xl", children: icon
|
|
8467
|
+
icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-2xl", children: typeof icon === "string" ? (() => {
|
|
8468
|
+
const I = resolveIcon(icon);
|
|
8469
|
+
return I ? /* @__PURE__ */ jsxRuntime.jsx(I, { className: "w-6 h-6" }) : null;
|
|
8470
|
+
})() : icon }),
|
|
8463
8471
|
label && !icon && /* @__PURE__ */ jsxRuntime.jsx("span", { children: label })
|
|
8464
8472
|
]
|
|
8465
8473
|
}
|
|
@@ -8471,6 +8479,7 @@ var init_ControlButton = __esm({
|
|
|
8471
8479
|
"use client";
|
|
8472
8480
|
init_cn();
|
|
8473
8481
|
init_useEventBus();
|
|
8482
|
+
init_Icon();
|
|
8474
8483
|
sizeMap2 = {
|
|
8475
8484
|
sm: "w-10 h-10 text-sm",
|
|
8476
8485
|
md: "w-14 h-14 text-base",
|
|
@@ -8483,9 +8492,9 @@ var init_ControlButton = __esm({
|
|
|
8483
8492
|
square: "rounded-md"
|
|
8484
8493
|
};
|
|
8485
8494
|
variantMap = {
|
|
8486
|
-
primary: "bg-
|
|
8487
|
-
secondary: "bg-
|
|
8488
|
-
ghost: "bg-transparent text-
|
|
8495
|
+
primary: "bg-primary text-primary-foreground border-primary hover:bg-primary-hover",
|
|
8496
|
+
secondary: "bg-secondary text-secondary-foreground border-border hover:bg-secondary-hover",
|
|
8497
|
+
ghost: "bg-transparent text-foreground border-border hover:bg-muted"
|
|
8489
8498
|
};
|
|
8490
8499
|
ControlButton.displayName = "ControlButton";
|
|
8491
8500
|
}
|
|
@@ -8951,7 +8960,7 @@ function getTraitSnapshots() {
|
|
|
8951
8960
|
try {
|
|
8952
8961
|
snapshots.push(getter());
|
|
8953
8962
|
} catch (err) {
|
|
8954
|
-
|
|
8963
|
+
log3.error("traitSnapshot getter failed", { trait: traitName, err: String(err) });
|
|
8955
8964
|
}
|
|
8956
8965
|
}
|
|
8957
8966
|
return snapshots;
|
|
@@ -9014,10 +9023,10 @@ function updateAssetStatus(url, status) {
|
|
|
9014
9023
|
window.__orbitalVerification.assetStatus[url] = status;
|
|
9015
9024
|
}
|
|
9016
9025
|
}
|
|
9017
|
-
var
|
|
9026
|
+
var log3;
|
|
9018
9027
|
var init_verificationRegistry = __esm({
|
|
9019
9028
|
"lib/verificationRegistry.ts"() {
|
|
9020
|
-
|
|
9029
|
+
log3 = logger.createLogger("almadar:bridge");
|
|
9021
9030
|
exposeOnWindow();
|
|
9022
9031
|
}
|
|
9023
9032
|
});
|
|
@@ -11045,7 +11054,7 @@ var init_avl_elk_layout = __esm({
|
|
|
11045
11054
|
elk = new ELK__default.default();
|
|
11046
11055
|
}
|
|
11047
11056
|
});
|
|
11048
|
-
var SWIM_GUTTER, CENTER_W; exports.BehaviorView = void 0;
|
|
11057
|
+
var log4, SWIM_GUTTER, CENTER_W; exports.BehaviorView = void 0;
|
|
11049
11058
|
var init_BehaviorView = __esm({
|
|
11050
11059
|
"components/molecules/avl/BehaviorView.tsx"() {
|
|
11051
11060
|
"use client";
|
|
@@ -11054,6 +11063,7 @@ var init_BehaviorView = __esm({
|
|
|
11054
11063
|
init_AvlSwimLane();
|
|
11055
11064
|
init_types();
|
|
11056
11065
|
init_avl_elk_layout();
|
|
11066
|
+
log4 = logger.createLogger("almadar:ui:avl:behavior-view");
|
|
11057
11067
|
SWIM_GUTTER = 120;
|
|
11058
11068
|
CENTER_W = 360;
|
|
11059
11069
|
exports.BehaviorView = ({ data }) => {
|
|
@@ -11063,7 +11073,7 @@ var init_BehaviorView = __esm({
|
|
|
11063
11073
|
const dataKey = React131.useMemo(() => JSON.stringify(traitData), [traitData]);
|
|
11064
11074
|
React131.useEffect(() => {
|
|
11065
11075
|
if (!traitData) return;
|
|
11066
|
-
computeTraitLayout(traitData).then(setLayout).catch(
|
|
11076
|
+
computeTraitLayout(traitData).then(setLayout).catch((err) => log4.error("compute-trait-layout-failed", { error: err instanceof Error ? err : String(err) }));
|
|
11067
11077
|
}, [dataKey]);
|
|
11068
11078
|
if (!traitData) {
|
|
11069
11079
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-lg border border-[var(--color-border)] bg-[var(--color-card)] p-4 text-center text-[var(--color-muted-foreground)] text-sm", children: "No trait data" });
|
|
@@ -11408,7 +11418,7 @@ function computeFoldRegions(code) {
|
|
|
11408
11418
|
}
|
|
11409
11419
|
return regions.sort((a, b) => a.start - b.start);
|
|
11410
11420
|
}
|
|
11411
|
-
var orbStyleOverrides, orbStyle, loloStyleOverrides, loloStyle, LINE_PROPS_FN, HIDDEN_LINE_NUMBERS; exports.CodeBlock = void 0;
|
|
11421
|
+
var orbStyleOverrides, orbStyle, loloStyleOverrides, loloStyle, log5, LINE_PROPS_FN, HIDDEN_LINE_NUMBERS; exports.CodeBlock = void 0;
|
|
11412
11422
|
var init_CodeBlock = __esm({
|
|
11413
11423
|
"components/molecules/markdown/CodeBlock.tsx"() {
|
|
11414
11424
|
init_Box();
|
|
@@ -11485,6 +11495,7 @@ var init_CodeBlock = __esm({
|
|
|
11485
11495
|
"lolo-op-async": { color: syntax.ORB_COLORS.dark.async }
|
|
11486
11496
|
};
|
|
11487
11497
|
loloStyle = { ...dark__default.default, ...loloStyleOverrides };
|
|
11498
|
+
log5 = logger.createLogger("almadar:ui:markdown-code");
|
|
11488
11499
|
LINE_PROPS_FN = (n) => ({ "data-line": String(n - 1) });
|
|
11489
11500
|
HIDDEN_LINE_NUMBERS = { display: "none" };
|
|
11490
11501
|
exports.CodeBlock = React131__namespace.default.memo(
|
|
@@ -11683,7 +11694,7 @@ var init_CodeBlock = __esm({
|
|
|
11683
11694
|
eventBus.emit("UI:COPY_CODE", { language, success: true });
|
|
11684
11695
|
setTimeout(() => setCopied(false), 2e3);
|
|
11685
11696
|
} catch (err) {
|
|
11686
|
-
|
|
11697
|
+
log5.error("Failed to copy code", { error: err instanceof Error ? err : String(err) });
|
|
11687
11698
|
eventBus.emit("UI:COPY_CODE", { language, success: false });
|
|
11688
11699
|
}
|
|
11689
11700
|
};
|
|
@@ -15245,13 +15256,14 @@ function useSafeEventBus2() {
|
|
|
15245
15256
|
} };
|
|
15246
15257
|
}
|
|
15247
15258
|
}
|
|
15248
|
-
exports.ButtonGroup = void 0;
|
|
15259
|
+
var log6; exports.ButtonGroup = void 0;
|
|
15249
15260
|
var init_ButtonGroup = __esm({
|
|
15250
15261
|
"components/molecules/ButtonGroup.tsx"() {
|
|
15251
15262
|
"use client";
|
|
15252
15263
|
init_cn();
|
|
15253
15264
|
init_atoms();
|
|
15254
15265
|
init_useEventBus();
|
|
15266
|
+
log6 = logger.createLogger("almadar:ui:button-group");
|
|
15255
15267
|
exports.ButtonGroup = ({
|
|
15256
15268
|
children,
|
|
15257
15269
|
primary,
|
|
@@ -15324,7 +15336,7 @@ var init_ButtonGroup = __esm({
|
|
|
15324
15336
|
{
|
|
15325
15337
|
variant: "ghost",
|
|
15326
15338
|
onClick: () => {
|
|
15327
|
-
|
|
15339
|
+
log6.debug("Filter clicked", { field: filter.field });
|
|
15328
15340
|
},
|
|
15329
15341
|
children: filter.label
|
|
15330
15342
|
},
|
|
@@ -18102,8 +18114,8 @@ function ChoiceButton({
|
|
|
18102
18114
|
className: cn(
|
|
18103
18115
|
"w-full text-left px-4 py-2.5 rounded-md border transition-all duration-150",
|
|
18104
18116
|
"flex items-center gap-2",
|
|
18105
|
-
selected ? "bg-
|
|
18106
|
-
disabled && "opacity-40 cursor-not-allowed hover:bg-
|
|
18117
|
+
selected ? "bg-accent/15 border-accent text-foreground" : "bg-muted/40 border-border text-foreground hover:bg-muted hover:border-border",
|
|
18118
|
+
disabled && "opacity-40 cursor-not-allowed hover:bg-muted/40 hover:border-border",
|
|
18107
18119
|
className
|
|
18108
18120
|
),
|
|
18109
18121
|
children: [
|
|
@@ -18112,7 +18124,7 @@ function ChoiceButton({
|
|
|
18112
18124
|
{
|
|
18113
18125
|
className: cn(
|
|
18114
18126
|
"flex-shrink-0 font-mono font-bold text-sm",
|
|
18115
|
-
selected ? "text-
|
|
18127
|
+
selected ? "text-accent" : "text-muted-foreground"
|
|
18116
18128
|
),
|
|
18117
18129
|
children: [
|
|
18118
18130
|
index,
|
|
@@ -20316,7 +20328,7 @@ function DataGrid({
|
|
|
20316
20328
|
onClick: handleActionClick(action, itemData),
|
|
20317
20329
|
"data-testid": `action-${action.event}`,
|
|
20318
20330
|
"data-row-id": String(itemData.id),
|
|
20319
|
-
className: "text-error hover:bg-error/10 px-2",
|
|
20331
|
+
className: "text-error hover:text-error hover:bg-error/10 px-2",
|
|
20320
20332
|
children: [
|
|
20321
20333
|
action.icon && /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: action.icon, size: "xs" }),
|
|
20322
20334
|
action.label
|
|
@@ -21580,31 +21592,56 @@ var init_InputGroup = __esm({
|
|
|
21580
21592
|
exports.InputGroup.displayName = "InputGroup";
|
|
21581
21593
|
}
|
|
21582
21594
|
});
|
|
21583
|
-
|
|
21584
|
-
|
|
21595
|
+
function gateEnabled(level, ns = NAMESPACE) {
|
|
21596
|
+
return logger.isLogLevelEnabled(level, ns);
|
|
21597
|
+
}
|
|
21585
21598
|
function isDebugEnabled() {
|
|
21586
|
-
|
|
21587
|
-
return typeof window !== "undefined" && window.__ALMADAR_DEBUG_VERIFY__ === true;
|
|
21599
|
+
return gateEnabled("DEBUG");
|
|
21588
21600
|
}
|
|
21589
21601
|
function debug(...args) {
|
|
21590
|
-
if (
|
|
21591
|
-
|
|
21602
|
+
if (!gateEnabled("DEBUG")) return;
|
|
21603
|
+
const [first, ...rest] = args;
|
|
21604
|
+
const message = typeof first === "string" ? first : "<debug>";
|
|
21605
|
+
if (rest.length === 0 && typeof first === "string") {
|
|
21606
|
+
log7.debug(message);
|
|
21607
|
+
} else {
|
|
21608
|
+
log7.debug(message, { args: rest.length > 0 ? formatArgs(rest) : formatArgs([first]) });
|
|
21592
21609
|
}
|
|
21593
21610
|
}
|
|
21594
21611
|
function debugGroup(label) {
|
|
21595
|
-
if (
|
|
21596
|
-
console.group(`[DEBUG] ${label}`);
|
|
21597
|
-
}
|
|
21612
|
+
if (gateEnabled("DEBUG")) console.group(`[${NAMESPACE}] ${label}`);
|
|
21598
21613
|
}
|
|
21599
21614
|
function debugGroupEnd() {
|
|
21600
|
-
if (
|
|
21601
|
-
|
|
21615
|
+
if (gateEnabled("DEBUG")) console.groupEnd();
|
|
21616
|
+
}
|
|
21617
|
+
function formatArgs(values) {
|
|
21618
|
+
if (values.length === 1) return toLogMetaValue(values[0]);
|
|
21619
|
+
return values.map(toLogMetaValue);
|
|
21620
|
+
}
|
|
21621
|
+
function toLogMetaValue(v) {
|
|
21622
|
+
if (v === null || v === void 0) return v;
|
|
21623
|
+
if (v instanceof Error) return v;
|
|
21624
|
+
const t = typeof v;
|
|
21625
|
+
if (t === "string" || t === "number" || t === "boolean") return v;
|
|
21626
|
+
if (Array.isArray(v)) return v.map(toLogMetaValue);
|
|
21627
|
+
if (t === "object") {
|
|
21628
|
+
const out = {};
|
|
21629
|
+
for (const [k, val] of Object.entries(v)) {
|
|
21630
|
+
out[k] = toLogMetaValue(val);
|
|
21631
|
+
}
|
|
21632
|
+
return out;
|
|
21602
21633
|
}
|
|
21634
|
+
return String(v);
|
|
21603
21635
|
}
|
|
21604
|
-
var
|
|
21636
|
+
var NAMESPACE, log7;
|
|
21605
21637
|
var init_debug = __esm({
|
|
21606
21638
|
"lib/debug.ts"() {
|
|
21607
|
-
|
|
21639
|
+
NAMESPACE = "almadar:ui:debug";
|
|
21640
|
+
log7 = logger.createLogger(NAMESPACE);
|
|
21641
|
+
logger.createLogger("almadar:ui:debug:input");
|
|
21642
|
+
logger.createLogger("almadar:ui:debug:collision");
|
|
21643
|
+
logger.createLogger("almadar:ui:debug:physics");
|
|
21644
|
+
logger.createLogger("almadar:ui:debug:game-state");
|
|
21608
21645
|
}
|
|
21609
21646
|
});
|
|
21610
21647
|
var isRelationsDebugEnabled; exports.RelationSelect = void 0;
|
|
@@ -23033,7 +23070,7 @@ function StatBadge({
|
|
|
23033
23070
|
const I = resolveIcon(icon);
|
|
23034
23071
|
return I ? /* @__PURE__ */ jsxRuntime.jsx(I, { className: "w-4 h-4" }) : icon;
|
|
23035
23072
|
})() : icon }),
|
|
23036
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
23073
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground font-medium", children: label }),
|
|
23037
23074
|
format === "hearts" && max && /* @__PURE__ */ jsxRuntime.jsx(
|
|
23038
23075
|
HealthBar,
|
|
23039
23076
|
{
|
|
@@ -23060,7 +23097,7 @@ function StatBadge({
|
|
|
23060
23097
|
animated: true
|
|
23061
23098
|
}
|
|
23062
23099
|
),
|
|
23063
|
-
format === "text" && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-bold text-
|
|
23100
|
+
format === "text" && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-bold text-foreground", children: value })
|
|
23064
23101
|
]
|
|
23065
23102
|
}
|
|
23066
23103
|
);
|
|
@@ -23078,11 +23115,11 @@ var init_StatBadge = __esm({
|
|
|
23078
23115
|
lg: "text-base px-4 py-2"
|
|
23079
23116
|
};
|
|
23080
23117
|
variantMap2 = {
|
|
23081
|
-
default: "bg-
|
|
23082
|
-
primary: "bg-
|
|
23083
|
-
success: "bg-
|
|
23084
|
-
warning: "bg-
|
|
23085
|
-
danger: "bg-
|
|
23118
|
+
default: "bg-card/80 border-border text-foreground",
|
|
23119
|
+
primary: "bg-primary/15 border-primary/40 text-foreground",
|
|
23120
|
+
success: "bg-success/15 border-success/40 text-foreground",
|
|
23121
|
+
warning: "bg-warning/15 border-warning/40 text-foreground",
|
|
23122
|
+
danger: "bg-error/15 border-error/40 text-foreground"
|
|
23086
23123
|
};
|
|
23087
23124
|
StatBadge.displayName = "StatBadge";
|
|
23088
23125
|
}
|
|
@@ -35991,9 +36028,45 @@ var init_List = __esm({
|
|
|
35991
36028
|
exports.List.displayName = "List";
|
|
35992
36029
|
}
|
|
35993
36030
|
});
|
|
35994
|
-
|
|
36031
|
+
function MasterDetail({
|
|
36032
|
+
entity,
|
|
36033
|
+
masterFields,
|
|
36034
|
+
detailFields: _detailFields,
|
|
36035
|
+
// Captured but not used here - detail handled separately
|
|
36036
|
+
loading: externalLoading,
|
|
36037
|
+
isLoading: externalIsLoading,
|
|
36038
|
+
error: externalError,
|
|
36039
|
+
className,
|
|
36040
|
+
...rest
|
|
36041
|
+
}) {
|
|
36042
|
+
const loading = externalLoading ?? false;
|
|
36043
|
+
const isLoading = externalIsLoading ?? false;
|
|
36044
|
+
const error = externalError ?? null;
|
|
36045
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
36046
|
+
DataTable,
|
|
36047
|
+
{
|
|
36048
|
+
fields: masterFields,
|
|
36049
|
+
columns: masterFields,
|
|
36050
|
+
entity,
|
|
36051
|
+
isLoading: loading || isLoading,
|
|
36052
|
+
error,
|
|
36053
|
+
className,
|
|
36054
|
+
emptyTitle: "No items found",
|
|
36055
|
+
emptyDescription: "Create your first item to get started.",
|
|
36056
|
+
...rest
|
|
36057
|
+
}
|
|
36058
|
+
);
|
|
36059
|
+
}
|
|
35995
36060
|
var init_MasterDetail = __esm({
|
|
35996
|
-
"components/organisms/
|
|
36061
|
+
"components/organisms/MasterDetail.tsx"() {
|
|
36062
|
+
"use client";
|
|
36063
|
+
init_DataTable();
|
|
36064
|
+
MasterDetail.displayName = "MasterDetail";
|
|
36065
|
+
}
|
|
36066
|
+
});
|
|
36067
|
+
var DefaultEmptyDetail; exports.MasterDetailLayout = void 0;
|
|
36068
|
+
var init_MasterDetailLayout = __esm({
|
|
36069
|
+
"components/organisms/layout/MasterDetailLayout.tsx"() {
|
|
35997
36070
|
init_cn();
|
|
35998
36071
|
init_Typography();
|
|
35999
36072
|
DefaultEmptyDetail = () => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center h-full border-2 border-dashed border-border", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -36004,7 +36077,7 @@ var init_MasterDetail = __esm({
|
|
|
36004
36077
|
children: "Select an item to view details"
|
|
36005
36078
|
}
|
|
36006
36079
|
) });
|
|
36007
|
-
|
|
36080
|
+
exports.MasterDetailLayout = ({
|
|
36008
36081
|
master,
|
|
36009
36082
|
detail,
|
|
36010
36083
|
emptyDetail,
|
|
@@ -36039,7 +36112,7 @@ var init_MasterDetail = __esm({
|
|
|
36039
36112
|
}
|
|
36040
36113
|
);
|
|
36041
36114
|
};
|
|
36042
|
-
|
|
36115
|
+
exports.MasterDetailLayout.displayName = "MasterDetailLayout";
|
|
36043
36116
|
}
|
|
36044
36117
|
});
|
|
36045
36118
|
var COLUMN_CLASSES, ASPECT_CLASSES; exports.MediaGallery = void 0;
|
|
@@ -38576,7 +38649,7 @@ function getAllEvents(traits2) {
|
|
|
38576
38649
|
}
|
|
38577
38650
|
function EventDispatcherTab({ traits: traits2, schema }) {
|
|
38578
38651
|
const eventBus = useEventBus();
|
|
38579
|
-
const [
|
|
38652
|
+
const [log18, setLog] = React131__namespace.useState([]);
|
|
38580
38653
|
const prevStatesRef = React131__namespace.useRef(/* @__PURE__ */ new Map());
|
|
38581
38654
|
React131__namespace.useEffect(() => {
|
|
38582
38655
|
for (const trait of traits2) {
|
|
@@ -38640,9 +38713,9 @@ function EventDispatcherTab({ traits: traits2, schema }) {
|
|
|
38640
38713
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-1", children: "Other Events (not available from current state)" }),
|
|
38641
38714
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1", children: unavailableEvents.map((event) => /* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: "default", size: "sm", className: "opacity-50", children: event }, event)) })
|
|
38642
38715
|
] }),
|
|
38643
|
-
|
|
38716
|
+
log18.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
38644
38717
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-1", children: "Recent Transitions" }),
|
|
38645
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Stack, { gap: "xs", children:
|
|
38718
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Stack, { gap: "xs", children: log18.map((entry, i) => /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "font-mono text-xs", children: [
|
|
38646
38719
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-purple-400", children: entry.traitName }),
|
|
38647
38720
|
" ",
|
|
38648
38721
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-500", children: entry.from }),
|
|
@@ -40853,7 +40926,7 @@ var init_Sprite = __esm({
|
|
|
40853
40926
|
}
|
|
40854
40927
|
});
|
|
40855
40928
|
exports.StatCard = void 0;
|
|
40856
|
-
var
|
|
40929
|
+
var init_StatCard = __esm({
|
|
40857
40930
|
"components/organisms/StatCard.tsx"() {
|
|
40858
40931
|
"use client";
|
|
40859
40932
|
init_cn();
|
|
@@ -43213,6 +43286,7 @@ var init_component_registry_generated = __esm({
|
|
|
43213
43286
|
init_LoadingState();
|
|
43214
43287
|
init_MarkdownContent();
|
|
43215
43288
|
init_MasterDetail();
|
|
43289
|
+
init_MasterDetailLayout();
|
|
43216
43290
|
init_MatrixQuestion();
|
|
43217
43291
|
init_MediaGallery();
|
|
43218
43292
|
init_Meter();
|
|
@@ -43280,7 +43354,7 @@ var init_component_registry_generated = __esm({
|
|
|
43280
43354
|
init_Stack();
|
|
43281
43355
|
init_StarRating();
|
|
43282
43356
|
init_StatBadge();
|
|
43283
|
-
|
|
43357
|
+
init_StatCard();
|
|
43284
43358
|
init_StatDisplay();
|
|
43285
43359
|
init_StateArchitectBoard();
|
|
43286
43360
|
init_StateIndicator();
|
|
@@ -43507,6 +43581,7 @@ var init_component_registry_generated = __esm({
|
|
|
43507
43581
|
"MapViewPattern": MapViewPattern,
|
|
43508
43582
|
"MarkdownContent": exports.MarkdownContent,
|
|
43509
43583
|
"MasterDetail": MasterDetail,
|
|
43584
|
+
"MasterDetailLayout": exports.MasterDetailLayout,
|
|
43510
43585
|
"MatrixQuestion": exports.MatrixQuestion,
|
|
43511
43586
|
"MediaGallery": exports.MediaGallery,
|
|
43512
43587
|
"Menu": MenuPattern,
|
|
@@ -44606,7 +44681,7 @@ var init_atoms = __esm({
|
|
|
44606
44681
|
init_ConfettiEffect();
|
|
44607
44682
|
init_TypewriterText();
|
|
44608
44683
|
init_SectionHeader();
|
|
44609
|
-
|
|
44684
|
+
init_MarketingStatCard();
|
|
44610
44685
|
init_ContentSection();
|
|
44611
44686
|
init_PatternTile();
|
|
44612
44687
|
init_AnimatedReveal();
|
|
@@ -44623,7 +44698,7 @@ init_molecules();
|
|
|
44623
44698
|
// components/organisms/index.ts
|
|
44624
44699
|
init_types3();
|
|
44625
44700
|
init_DataTable();
|
|
44626
|
-
|
|
44701
|
+
init_StatCard();
|
|
44627
44702
|
init_PageHeader();
|
|
44628
44703
|
init_DetailPanel();
|
|
44629
44704
|
|
|
@@ -44761,41 +44836,7 @@ init_Split();
|
|
|
44761
44836
|
init_Table();
|
|
44762
44837
|
init_List();
|
|
44763
44838
|
init_CardGrid();
|
|
44764
|
-
|
|
44765
|
-
// components/organisms/MasterDetail.tsx
|
|
44766
|
-
init_DataTable();
|
|
44767
|
-
function MasterDetail2({
|
|
44768
|
-
entity,
|
|
44769
|
-
masterFields,
|
|
44770
|
-
detailFields: _detailFields,
|
|
44771
|
-
// Captured but not used here - detail handled separately
|
|
44772
|
-
loading: externalLoading,
|
|
44773
|
-
isLoading: externalIsLoading,
|
|
44774
|
-
error: externalError,
|
|
44775
|
-
className,
|
|
44776
|
-
...rest
|
|
44777
|
-
}) {
|
|
44778
|
-
const loading = externalLoading ?? false;
|
|
44779
|
-
const isLoading = externalIsLoading ?? false;
|
|
44780
|
-
const error = externalError ?? null;
|
|
44781
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
44782
|
-
DataTable,
|
|
44783
|
-
{
|
|
44784
|
-
fields: masterFields,
|
|
44785
|
-
columns: masterFields,
|
|
44786
|
-
entity,
|
|
44787
|
-
isLoading: loading || isLoading,
|
|
44788
|
-
error,
|
|
44789
|
-
className,
|
|
44790
|
-
emptyTitle: "No items found",
|
|
44791
|
-
emptyDescription: "Create your first item to get started.",
|
|
44792
|
-
...rest
|
|
44793
|
-
}
|
|
44794
|
-
);
|
|
44795
|
-
}
|
|
44796
|
-
MasterDetail2.displayName = "MasterDetail";
|
|
44797
|
-
|
|
44798
|
-
// components/organisms/index.ts
|
|
44839
|
+
init_MasterDetail();
|
|
44799
44840
|
init_ConfirmDialog();
|
|
44800
44841
|
init_WizardContainer();
|
|
44801
44842
|
init_OrbitalVisualization();
|
|
@@ -44813,6 +44854,7 @@ init_types2();
|
|
|
44813
44854
|
|
|
44814
44855
|
// components/organisms/layout/index.ts
|
|
44815
44856
|
init_SplitPane();
|
|
44857
|
+
init_MasterDetailLayout();
|
|
44816
44858
|
init_DashboardGrid();
|
|
44817
44859
|
init_TabbedContainer();
|
|
44818
44860
|
|
|
@@ -45942,6 +45984,7 @@ init_AboutPageTemplate();
|
|
|
45942
45984
|
|
|
45943
45985
|
// components/index.ts
|
|
45944
45986
|
init_cn();
|
|
45987
|
+
var log8 = logger.createLogger("almadar:ui:orbital-history");
|
|
45945
45988
|
function useOrbitalHistory(options) {
|
|
45946
45989
|
const { appId, authToken, userId, onHistoryChange, onRevertSuccess } = options;
|
|
45947
45990
|
const getHeaders = React131.useCallback(() => {
|
|
@@ -46003,7 +46046,7 @@ function useOrbitalHistory(options) {
|
|
|
46003
46046
|
setCurrentVersion(mergedTimeline[0].version);
|
|
46004
46047
|
}
|
|
46005
46048
|
} catch (err) {
|
|
46006
|
-
|
|
46049
|
+
log8.error("Failed to load history", { error: err instanceof Error ? err : String(err) });
|
|
46007
46050
|
setError(err instanceof Error ? err.message : "Failed to load history");
|
|
46008
46051
|
} finally {
|
|
46009
46052
|
setIsLoading(false);
|
|
@@ -46036,7 +46079,7 @@ function useOrbitalHistory(options) {
|
|
|
46036
46079
|
error: data.error || "Unknown error during revert"
|
|
46037
46080
|
};
|
|
46038
46081
|
} catch (err) {
|
|
46039
|
-
|
|
46082
|
+
log8.error("Failed to revert", { error: err instanceof Error ? err : String(err) });
|
|
46040
46083
|
return {
|
|
46041
46084
|
success: false,
|
|
46042
46085
|
error: err instanceof Error ? err.message : "Failed to revert"
|
|
@@ -46060,6 +46103,7 @@ function useOrbitalHistory(options) {
|
|
|
46060
46103
|
refresh
|
|
46061
46104
|
};
|
|
46062
46105
|
}
|
|
46106
|
+
var log9 = logger.createLogger("almadar:ui:filesystem");
|
|
46063
46107
|
function useFileSystem() {
|
|
46064
46108
|
const [status, setStatus] = React131.useState("idle");
|
|
46065
46109
|
const [error, setError] = React131.useState(null);
|
|
@@ -46074,7 +46118,7 @@ function useFileSystem() {
|
|
|
46074
46118
|
setError(null);
|
|
46075
46119
|
setIsLoading(true);
|
|
46076
46120
|
try {
|
|
46077
|
-
|
|
46121
|
+
log9.debug("Booting WebContainer");
|
|
46078
46122
|
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
46079
46123
|
setStatus("ready");
|
|
46080
46124
|
} catch (err) {
|
|
@@ -46137,7 +46181,7 @@ function useFileSystem() {
|
|
|
46137
46181
|
setFiles(newTree);
|
|
46138
46182
|
setStatus("running");
|
|
46139
46183
|
} catch (err) {
|
|
46140
|
-
|
|
46184
|
+
log9.error("Failed to mount files", { error: err instanceof Error ? err : String(err) });
|
|
46141
46185
|
} finally {
|
|
46142
46186
|
setIsLoading(false);
|
|
46143
46187
|
}
|
|
@@ -46178,7 +46222,7 @@ function useFileSystem() {
|
|
|
46178
46222
|
const path = contentArg !== void 0 ? pathOrContent : selectedPath;
|
|
46179
46223
|
const content = contentArg !== void 0 ? contentArg : pathOrContent;
|
|
46180
46224
|
if (!path) {
|
|
46181
|
-
|
|
46225
|
+
log9.warn("updateContent called without path and no file selected");
|
|
46182
46226
|
return;
|
|
46183
46227
|
}
|
|
46184
46228
|
setFileContents((prev) => {
|
|
@@ -46194,14 +46238,14 @@ function useFileSystem() {
|
|
|
46194
46238
|
setSelectedFile((prev) => prev ? { ...prev, content, isDirty: true } : null);
|
|
46195
46239
|
}, []);
|
|
46196
46240
|
const refreshTree = React131.useCallback(async () => {
|
|
46197
|
-
|
|
46241
|
+
log9.debug("Refreshing tree");
|
|
46198
46242
|
}, []);
|
|
46199
46243
|
const runCommand = React131.useCallback(async (command) => {
|
|
46200
|
-
|
|
46244
|
+
log9.debug("Running command", { command });
|
|
46201
46245
|
return { exitCode: 0, output: "" };
|
|
46202
46246
|
}, []);
|
|
46203
46247
|
const startDevServer = React131.useCallback(async () => {
|
|
46204
|
-
|
|
46248
|
+
log9.debug("Starting dev server");
|
|
46205
46249
|
setPreviewUrl("http://localhost:5173");
|
|
46206
46250
|
}, []);
|
|
46207
46251
|
return {
|
|
@@ -46224,6 +46268,7 @@ function useFileSystem() {
|
|
|
46224
46268
|
startDevServer
|
|
46225
46269
|
};
|
|
46226
46270
|
}
|
|
46271
|
+
var log10 = logger.createLogger("almadar:ui:extensions");
|
|
46227
46272
|
var defaultManifest = {
|
|
46228
46273
|
languages: {
|
|
46229
46274
|
typescript: { extensions: [".ts", ".tsx"], icon: "ts", color: "#3178c6" },
|
|
@@ -46242,7 +46287,7 @@ function useExtensions(options) {
|
|
|
46242
46287
|
const [isLoading, setIsLoading] = React131.useState(false);
|
|
46243
46288
|
const [error, setError] = React131.useState(null);
|
|
46244
46289
|
const loadExtension = React131.useCallback(async (extensionId) => {
|
|
46245
|
-
|
|
46290
|
+
log10.debug("Loading extension", { extensionId });
|
|
46246
46291
|
}, []);
|
|
46247
46292
|
const loadExtensions = React131.useCallback(async () => {
|
|
46248
46293
|
setIsLoading(true);
|
|
@@ -46314,6 +46359,7 @@ function useExtensions(options) {
|
|
|
46314
46359
|
getExtensionForFile
|
|
46315
46360
|
};
|
|
46316
46361
|
}
|
|
46362
|
+
var log11 = logger.createLogger("almadar:ui:file-editor");
|
|
46317
46363
|
function useFileEditor(options) {
|
|
46318
46364
|
const { extensions, fileSystem, onSchemaUpdate } = options;
|
|
46319
46365
|
const [openFiles, setOpenFiles] = React131.useState([]);
|
|
@@ -46338,7 +46384,7 @@ function useFileEditor(options) {
|
|
|
46338
46384
|
setOpenFiles((prev) => [...prev, newFile]);
|
|
46339
46385
|
setActiveFilePath(path);
|
|
46340
46386
|
} catch (err) {
|
|
46341
|
-
|
|
46387
|
+
log11.error("Failed to open file", { error: err instanceof Error ? err : String(err) });
|
|
46342
46388
|
}
|
|
46343
46389
|
}, [openFiles, fileSystem, extensions]);
|
|
46344
46390
|
const closeFile = React131.useCallback((path) => {
|
|
@@ -46399,7 +46445,7 @@ function useFileEditor(options) {
|
|
|
46399
46445
|
}
|
|
46400
46446
|
}
|
|
46401
46447
|
} catch (err) {
|
|
46402
|
-
|
|
46448
|
+
log11.error("Failed to save file", { error: err instanceof Error ? err : String(err) });
|
|
46403
46449
|
} finally {
|
|
46404
46450
|
setIsSaving(false);
|
|
46405
46451
|
}
|
|
@@ -46428,6 +46474,7 @@ function useFileEditor(options) {
|
|
|
46428
46474
|
saveAllFiles
|
|
46429
46475
|
};
|
|
46430
46476
|
}
|
|
46477
|
+
var log12 = logger.createLogger("almadar:ui:compile");
|
|
46431
46478
|
function useCompile() {
|
|
46432
46479
|
const [isCompiling, setIsCompiling] = React131.useState(false);
|
|
46433
46480
|
const [stage, setStage] = React131.useState("idle");
|
|
@@ -46438,7 +46485,7 @@ function useCompile() {
|
|
|
46438
46485
|
setStage("compiling");
|
|
46439
46486
|
setError(null);
|
|
46440
46487
|
try {
|
|
46441
|
-
|
|
46488
|
+
log12.debug("Compiling schema", { name: schema.name });
|
|
46442
46489
|
const result = {
|
|
46443
46490
|
success: true,
|
|
46444
46491
|
files: []
|
|
@@ -46464,6 +46511,7 @@ function useCompile() {
|
|
|
46464
46511
|
compileSchema
|
|
46465
46512
|
};
|
|
46466
46513
|
}
|
|
46514
|
+
var log13 = logger.createLogger("almadar:ui:preview");
|
|
46467
46515
|
function usePreview(options) {
|
|
46468
46516
|
const [previewUrl, setPreviewUrl] = React131.useState(null);
|
|
46469
46517
|
const [isLoading, setIsLoading] = React131.useState(!!options?.appId);
|
|
@@ -46497,17 +46545,17 @@ function usePreview(options) {
|
|
|
46497
46545
|
setIsLoading(false);
|
|
46498
46546
|
return;
|
|
46499
46547
|
}
|
|
46500
|
-
|
|
46548
|
+
log13.debug("Setting up preview for app", { appId });
|
|
46501
46549
|
setPreviewUrl(`/api/orbitals/${appId}`);
|
|
46502
46550
|
setIsLoading(false);
|
|
46503
46551
|
}, [options?.appId]);
|
|
46504
46552
|
const startPreview = React131.useCallback(async () => {
|
|
46505
|
-
|
|
46553
|
+
log13.debug("startPreview called");
|
|
46506
46554
|
}, []);
|
|
46507
46555
|
const stopPreview = React131.useCallback(async () => {
|
|
46508
46556
|
setIsLoading(true);
|
|
46509
46557
|
try {
|
|
46510
|
-
|
|
46558
|
+
log13.debug("Stopping preview server");
|
|
46511
46559
|
setPreviewUrl(null);
|
|
46512
46560
|
setApp(null);
|
|
46513
46561
|
} finally {
|
|
@@ -46516,15 +46564,15 @@ function usePreview(options) {
|
|
|
46516
46564
|
}, []);
|
|
46517
46565
|
const refresh = React131.useCallback(async () => {
|
|
46518
46566
|
if (!previewUrl) return;
|
|
46519
|
-
|
|
46567
|
+
log13.debug("Refreshing preview");
|
|
46520
46568
|
setPreviewUrl(`${previewUrl.split("?")[0]}?t=${Date.now()}`);
|
|
46521
46569
|
}, [previewUrl]);
|
|
46522
46570
|
const handleRefresh = React131.useCallback(async () => {
|
|
46523
|
-
|
|
46571
|
+
log13.debug("Handle refresh");
|
|
46524
46572
|
await refresh();
|
|
46525
46573
|
}, [refresh]);
|
|
46526
46574
|
const handleReset = React131.useCallback(async () => {
|
|
46527
|
-
|
|
46575
|
+
log13.debug("Resetting preview");
|
|
46528
46576
|
setError(null);
|
|
46529
46577
|
setLoadError(null);
|
|
46530
46578
|
setErrorToast(null);
|
|
@@ -46558,6 +46606,7 @@ function usePreview(options) {
|
|
|
46558
46606
|
dismissErrorToast
|
|
46559
46607
|
};
|
|
46560
46608
|
}
|
|
46609
|
+
var log14 = logger.createLogger("almadar:ui:agent-chat");
|
|
46561
46610
|
function useAgentChat(options) {
|
|
46562
46611
|
const [messages, setMessages] = React131.useState([]);
|
|
46563
46612
|
const [status, setStatus] = React131.useState("idle");
|
|
@@ -46580,7 +46629,7 @@ function useAgentChat(options) {
|
|
|
46580
46629
|
timestamp: Date.now()
|
|
46581
46630
|
};
|
|
46582
46631
|
setMessages((prev) => [...prev, userMessage]);
|
|
46583
|
-
|
|
46632
|
+
log14.debug("Sending message", { content });
|
|
46584
46633
|
const assistantMessage = {
|
|
46585
46634
|
id: (Date.now() + 1).toString(),
|
|
46586
46635
|
role: "assistant",
|
|
@@ -46603,7 +46652,7 @@ function useAgentChat(options) {
|
|
|
46603
46652
|
setError(null);
|
|
46604
46653
|
const skillName = Array.isArray(skill) ? skill[0] : skill;
|
|
46605
46654
|
try {
|
|
46606
|
-
|
|
46655
|
+
log14.debug("Starting generation", () => ({ skillName, prompt, genOptions: JSON.stringify(genOptions) }));
|
|
46607
46656
|
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
46608
46657
|
setStatus("complete");
|
|
46609
46658
|
options?.onComplete?.();
|
|
@@ -46615,10 +46664,10 @@ function useAgentChat(options) {
|
|
|
46615
46664
|
}
|
|
46616
46665
|
}, [options]);
|
|
46617
46666
|
const continueConversation = React131.useCallback(async (message) => {
|
|
46618
|
-
|
|
46667
|
+
log14.debug("Continue conversation", { message: Array.isArray(message) ? message : [message] });
|
|
46619
46668
|
}, []);
|
|
46620
46669
|
const resumeWithDecision = React131.useCallback(async (decisions) => {
|
|
46621
|
-
|
|
46670
|
+
log14.debug("Resume with decision", () => ({ decisions: JSON.stringify(decisions), count: decisions.length }));
|
|
46622
46671
|
setInterrupt(null);
|
|
46623
46672
|
}, []);
|
|
46624
46673
|
const cancel = React131.useCallback(() => {
|
|
@@ -46655,6 +46704,7 @@ function useAgentChat(options) {
|
|
|
46655
46704
|
clearHistory
|
|
46656
46705
|
};
|
|
46657
46706
|
}
|
|
46707
|
+
var log15 = logger.createLogger("almadar:ui:validation");
|
|
46658
46708
|
function useValidation() {
|
|
46659
46709
|
const [result, setResult] = React131.useState(null);
|
|
46660
46710
|
const [isValidating, setIsValidating] = React131.useState(false);
|
|
@@ -46668,7 +46718,7 @@ function useValidation() {
|
|
|
46668
46718
|
setStage("validating");
|
|
46669
46719
|
setProgressMessage("Validating schema...");
|
|
46670
46720
|
try {
|
|
46671
|
-
|
|
46721
|
+
log15.debug("Validating app", { appId });
|
|
46672
46722
|
const validationResult = {
|
|
46673
46723
|
valid: true,
|
|
46674
46724
|
errors: [],
|
|
@@ -46721,6 +46771,7 @@ function useValidation() {
|
|
|
46721
46771
|
reset
|
|
46722
46772
|
};
|
|
46723
46773
|
}
|
|
46774
|
+
var log16 = logger.createLogger("almadar:ui:deep-agent");
|
|
46724
46775
|
function useDeepAgentGeneration() {
|
|
46725
46776
|
const [requests, setRequests] = React131.useState([]);
|
|
46726
46777
|
const [currentRequest, setCurrentRequest] = React131.useState(null);
|
|
@@ -46744,7 +46795,7 @@ function useDeepAgentGeneration() {
|
|
|
46744
46795
|
setCurrentRequest(request);
|
|
46745
46796
|
setRequests((prev) => [...prev, request]);
|
|
46746
46797
|
try {
|
|
46747
|
-
|
|
46798
|
+
log16.debug("Generating from prompt", { prompt });
|
|
46748
46799
|
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
46749
46800
|
request.status = "completed";
|
|
46750
46801
|
setCurrentRequest(request);
|
|
@@ -46764,7 +46815,7 @@ function useDeepAgentGeneration() {
|
|
|
46764
46815
|
}
|
|
46765
46816
|
}, []);
|
|
46766
46817
|
const startGeneration = React131.useCallback(async (skill, prompt, _options) => {
|
|
46767
|
-
|
|
46818
|
+
log16.debug("Starting generation with skill", { skill });
|
|
46768
46819
|
await generate(prompt);
|
|
46769
46820
|
}, [generate]);
|
|
46770
46821
|
const cancelGeneration = React131.useCallback(() => {
|
|
@@ -46786,7 +46837,7 @@ function useDeepAgentGeneration() {
|
|
|
46786
46837
|
setIsComplete(false);
|
|
46787
46838
|
}, []);
|
|
46788
46839
|
const submitInterruptDecisions = React131.useCallback((decisions) => {
|
|
46789
|
-
|
|
46840
|
+
log16.debug("Submitting interrupt decisions", () => ({ decisions: JSON.stringify(decisions), count: decisions.length }));
|
|
46790
46841
|
setInterrupt(null);
|
|
46791
46842
|
}, []);
|
|
46792
46843
|
return {
|
|
@@ -46808,7 +46859,7 @@ function useDeepAgentGeneration() {
|
|
|
46808
46859
|
|
|
46809
46860
|
// hooks/index.ts
|
|
46810
46861
|
init_useEventBus();
|
|
46811
|
-
var
|
|
46862
|
+
var log17 = logger.createLogger("almadar:ui:ui-slots");
|
|
46812
46863
|
var DEFAULT_SOURCE_KEY = "__default__";
|
|
46813
46864
|
var MULTI_SOURCE_STACK_TRAIT = "__multi_source_stack__";
|
|
46814
46865
|
var ALL_SLOTS2 = [
|
|
@@ -46890,7 +46941,7 @@ function useUISlotManager() {
|
|
|
46890
46941
|
try {
|
|
46891
46942
|
callback(slot, content);
|
|
46892
46943
|
} catch (error) {
|
|
46893
|
-
|
|
46944
|
+
log17.error("Subscriber error", { error: error instanceof Error ? error : String(error) });
|
|
46894
46945
|
}
|
|
46895
46946
|
});
|
|
46896
46947
|
}, []);
|
|
@@ -46902,7 +46953,7 @@ function useUISlotManager() {
|
|
|
46902
46953
|
try {
|
|
46903
46954
|
callback(content);
|
|
46904
46955
|
} catch (error) {
|
|
46905
|
-
|
|
46956
|
+
log17.error("Trait subscriber error", { traitName, error: error instanceof Error ? error : String(error) });
|
|
46906
46957
|
}
|
|
46907
46958
|
});
|
|
46908
46959
|
},
|
|
@@ -46953,9 +47004,12 @@ function useUISlotManager() {
|
|
|
46953
47004
|
const slotSources = prev[config.target] ?? {};
|
|
46954
47005
|
const existing = slotSources[sourceKey];
|
|
46955
47006
|
if (existing && existing.priority > content.priority) {
|
|
46956
|
-
|
|
46957
|
-
|
|
46958
|
-
|
|
47007
|
+
log17.warn("Slot already has higher priority content", {
|
|
47008
|
+
slot: config.target,
|
|
47009
|
+
sourceKey,
|
|
47010
|
+
existingPriority: existing.priority,
|
|
47011
|
+
newPriority: content.priority
|
|
47012
|
+
});
|
|
46959
47013
|
return prev;
|
|
46960
47014
|
}
|
|
46961
47015
|
const nextSources = {
|
|
@@ -46967,7 +47021,7 @@ function useUISlotManager() {
|
|
|
46967
47021
|
indexTraitRender(content.sourceTrait, content);
|
|
46968
47022
|
notifyTraitSubscribers(content.sourceTrait, content);
|
|
46969
47023
|
}
|
|
46970
|
-
|
|
47024
|
+
log17.info("slot:written", {
|
|
46971
47025
|
slot: config.target,
|
|
46972
47026
|
sourceKey,
|
|
46973
47027
|
sourceTrait: content.sourceTrait,
|
|
@@ -47012,7 +47066,7 @@ function useUISlotManager() {
|
|
|
47012
47066
|
setSources((prev) => {
|
|
47013
47067
|
const slotSources = prev[slot];
|
|
47014
47068
|
if (!slotSources || !(sourceKey in slotSources)) {
|
|
47015
|
-
|
|
47069
|
+
log17.debug("slot:clear-noop", { slot, sourceTrait, reason: !slotSources ? "no-slot" : "no-source" });
|
|
47016
47070
|
return prev;
|
|
47017
47071
|
}
|
|
47018
47072
|
const content = slotSources[sourceKey];
|
|
@@ -47028,7 +47082,7 @@ function useUISlotManager() {
|
|
|
47028
47082
|
}
|
|
47029
47083
|
const nextSources = { ...slotSources };
|
|
47030
47084
|
delete nextSources[sourceKey];
|
|
47031
|
-
|
|
47085
|
+
log17.info("slot:cleared", { slot, sourceTrait, lastPatternType: content.pattern });
|
|
47032
47086
|
notifySubscribers(slot, aggregateSlot(nextSources));
|
|
47033
47087
|
return { ...prev, [slot]: nextSources };
|
|
47034
47088
|
});
|
|
@@ -47605,7 +47659,7 @@ exports.InventoryPanel = InventoryPanel;
|
|
|
47605
47659
|
exports.IsometricCanvas = IsometricCanvas;
|
|
47606
47660
|
exports.ItemSlot = ItemSlot;
|
|
47607
47661
|
exports.MapView = MapView;
|
|
47608
|
-
exports.MasterDetail =
|
|
47662
|
+
exports.MasterDetail = MasterDetail;
|
|
47609
47663
|
exports.MiniMap = MiniMap;
|
|
47610
47664
|
exports.NegotiatorBoard = NegotiatorBoard;
|
|
47611
47665
|
exports.NotifyListener = NotifyListener;
|