@kelpie/ui 0.3.1 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/resources/account.d.ts +5 -0
- package/dist/api/resources/account.d.ts.map +1 -1
- package/dist/api/resources/account.js +11 -0
- package/dist/api/resources/account.js.map +1 -1
- package/dist/api/resources/apiKeys.d.ts +15 -0
- package/dist/api/resources/apiKeys.d.ts.map +1 -0
- package/dist/api/resources/apiKeys.js +50 -0
- package/dist/api/resources/apiKeys.js.map +1 -0
- package/dist/app/KelpieApp.d.ts.map +1 -1
- package/dist/app/KelpieApp.js +18 -1
- package/dist/app/KelpieApp.js.map +1 -1
- package/dist/components/ActivitiesPanel.d.ts.map +1 -1
- package/dist/components/ActivitiesPanel.js +10 -7
- package/dist/components/ActivitiesPanel.js.map +1 -1
- package/dist/components/ApiKeysPanel.d.ts +20 -0
- package/dist/components/ApiKeysPanel.d.ts.map +1 -0
- package/dist/components/ApiKeysPanel.js +70 -0
- package/dist/components/ApiKeysPanel.js.map +1 -0
- package/dist/components/DecisionsPanel.d.ts.map +1 -1
- package/dist/components/DecisionsPanel.js +3 -1
- package/dist/components/DecisionsPanel.js.map +1 -1
- package/dist/components/NotesPanel.d.ts.map +1 -1
- package/dist/components/NotesPanel.js +3 -1
- package/dist/components/NotesPanel.js.map +1 -1
- package/dist/components/Shell.d.ts.map +1 -1
- package/dist/components/Shell.js +4 -16
- package/dist/components/Shell.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/dates.d.ts +25 -5
- package/dist/lib/dates.d.ts.map +1 -1
- package/dist/lib/dates.js +49 -20
- package/dist/lib/dates.js.map +1 -1
- package/dist/pages/DecisionsPage.d.ts.map +1 -1
- package/dist/pages/DecisionsPage.js +4 -2
- package/dist/pages/DecisionsPage.js.map +1 -1
- package/dist/pages/HiringPage.d.ts.map +1 -1
- package/dist/pages/HiringPage.js +3 -1
- package/dist/pages/HiringPage.js.map +1 -1
- package/dist/pages/PlanningPage.js +1 -1
- package/dist/pages/PlanningPage.js.map +1 -1
- package/dist/pages/account/AccountLayout.d.ts.map +1 -1
- package/dist/pages/account/AccountLayout.js +16 -7
- package/dist/pages/account/AccountLayout.js.map +1 -1
- package/dist/pages/account/PersonalApiKeysPage.d.ts +9 -0
- package/dist/pages/account/PersonalApiKeysPage.d.ts.map +1 -0
- package/dist/pages/account/PersonalApiKeysPage.js +14 -0
- package/dist/pages/account/PersonalApiKeysPage.js.map +1 -0
- package/dist/pages/account/PreferencesPage.js +1 -1
- package/dist/pages/account/PreferencesPage.js.map +1 -1
- package/dist/pages/account/SecurityPage.d.ts.map +1 -1
- package/dist/pages/account/SecurityPage.js +3 -2
- package/dist/pages/account/SecurityPage.js.map +1 -1
- package/dist/pages/admin/ApiKeysPage.d.ts +9 -0
- package/dist/pages/admin/ApiKeysPage.d.ts.map +1 -0
- package/dist/pages/admin/ApiKeysPage.js +20 -0
- package/dist/pages/admin/ApiKeysPage.js.map +1 -0
- package/dist/pages/admin/McpPage.d.ts.map +1 -1
- package/dist/pages/admin/McpPage.js +6 -3
- package/dist/pages/admin/McpPage.js.map +1 -1
- package/dist/pages/admin/WebhookDeliveries.d.ts.map +1 -1
- package/dist/pages/admin/WebhookDeliveries.js +4 -2
- package/dist/pages/admin/WebhookDeliveries.js.map +1 -1
- package/dist/pages/admin/WebhooksPage.d.ts.map +1 -1
- package/dist/pages/admin/WebhooksPage.js +5 -3
- package/dist/pages/admin/WebhooksPage.js.map +1 -1
- package/dist/pages/dashboard/DashboardPage.d.ts.map +1 -1
- package/dist/pages/dashboard/DashboardPage.js +6 -4
- package/dist/pages/dashboard/DashboardPage.js.map +1 -1
- package/dist/pages/dashboard/sections.d.ts +6 -3
- package/dist/pages/dashboard/sections.d.ts.map +1 -1
- package/dist/pages/dashboard/sections.js +6 -6
- package/dist/pages/dashboard/sections.js.map +1 -1
- package/dist/pages/forms/SubmissionsTable.d.ts.map +1 -1
- package/dist/pages/forms/SubmissionsTable.js +3 -1
- package/dist/pages/forms/SubmissionsTable.js.map +1 -1
- package/dist/pages/handbook/HandbookPage.d.ts.map +1 -1
- package/dist/pages/handbook/HandbookPage.js +3 -1
- package/dist/pages/handbook/HandbookPage.js.map +1 -1
- package/dist/registry/context.d.ts +1 -2
- package/dist/registry/context.d.ts.map +1 -1
- package/dist/registry/context.js +0 -3
- package/dist/registry/context.js.map +1 -1
- package/dist/registry/contributions.d.ts +1 -12
- package/dist/registry/contributions.d.ts.map +1 -1
- package/dist/registry/contributions.js +0 -7
- package/dist/registry/contributions.js.map +1 -1
- package/dist/registry/registry.d.ts +1 -3
- package/dist/registry/registry.d.ts.map +1 -1
- package/dist/registry/registry.js +0 -6
- package/dist/registry/registry.js.map +1 -1
- package/dist/registry/visibleNav.d.ts +3 -0
- package/dist/registry/visibleNav.d.ts.map +1 -0
- package/dist/registry/visibleNav.js +27 -0
- package/dist/registry/visibleNav.js.map +1 -0
- package/package.json +2 -2
- package/src/api/resources/account.ts +13 -0
- package/src/api/resources/apiKeys.ts +60 -0
- package/src/app/KelpieApp.tsx +30 -1
- package/src/components/ActivitiesPanel.tsx +15 -4
- package/src/components/ApiKeysPanel.tsx +307 -0
- package/src/components/DecisionsPanel.tsx +5 -2
- package/src/components/NotesPanel.tsx +4 -1
- package/src/components/Shell.tsx +4 -22
- package/src/index.ts +1 -4
- package/src/lib/dates.ts +54 -20
- package/src/pages/DecisionsPage.tsx +6 -2
- package/src/pages/HiringPage.tsx +3 -1
- package/src/pages/PlanningPage.tsx +1 -1
- package/src/pages/account/AccountLayout.tsx +21 -9
- package/src/pages/account/PersonalApiKeysPage.tsx +27 -0
- package/src/pages/account/PreferencesPage.tsx +1 -1
- package/src/pages/account/SecurityPage.tsx +4 -1
- package/src/pages/admin/ApiKeysPage.tsx +43 -0
- package/src/pages/admin/McpPage.tsx +7 -4
- package/src/pages/admin/WebhookDeliveries.tsx +4 -2
- package/src/pages/admin/WebhooksPage.tsx +5 -3
- package/src/pages/dashboard/DashboardPage.tsx +14 -4
- package/src/pages/dashboard/sections.tsx +9 -3
- package/src/pages/forms/SubmissionsTable.tsx +3 -1
- package/src/pages/handbook/HandbookPage.tsx +3 -1
- package/src/registry/context.ts +0 -5
- package/src/registry/contributions.ts +1 -20
- package/src/registry/registry.ts +0 -11
- package/src/registry/visibleNav.ts +38 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { ApiKeysPanel } from '../../components/ApiKeysPanel.js';
|
|
3
|
+
import { PageHeader } from '../../components/PageHeader.js';
|
|
4
|
+
/**
|
|
5
|
+
* Personal keys: act as the signed-in member against the public API and MCP.
|
|
6
|
+
*
|
|
7
|
+
* No role gate. `GET /v1/api-keys?kind=personal` scopes itself to the caller —
|
|
8
|
+
* every member manages their own, and an admin cannot see or revoke a
|
|
9
|
+
* colleague's; removing their membership is how you cut that off.
|
|
10
|
+
*/
|
|
11
|
+
export function PersonalApiKeysPage() {
|
|
12
|
+
return (_jsxs("div", { className: "animate-slide-in space-y-4", children: [_jsx(PageHeader, { title: "API keys", description: "Personal keys act as you against the public API and MCP. Workspace keys live under Admin." }), _jsx(ApiKeysPanel, { kind: "personal", namePlaceholder: "Laptop Claude", createTitle: "Create personal API key", emptyMessage: "No personal API keys yet." })] }));
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=PersonalApiKeysPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PersonalApiKeysPage.js","sourceRoot":"","sources":["../../../src/pages/account/PersonalApiKeysPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAmC,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAiC,CAAA;AAE5D;;;;;;GAMG;AAEH,MAAM,UAAU,mBAAmB;IACjC,OAAO,CACL,eAAK,SAAS,EAAC,4BAA4B,aACzC,KAAC,UAAU,IACT,KAAK,EAAC,UAAU,EAChB,WAAW,EAAC,2FAA2F,GACvG,EACF,KAAC,YAAY,IACX,IAAI,EAAC,UAAU,EACf,eAAe,EAAC,eAAe,EAC/B,WAAW,EAAC,yBAAyB,EACrC,YAAY,EAAC,2BAA2B,GACxC,IACE,CACP,CAAA;AACH,CAAC"}
|
|
@@ -82,7 +82,7 @@ function PreferencesForm({ preferences, }) {
|
|
|
82
82
|
theme === value
|
|
83
83
|
? 'bg-surface-sunken font-medium text-ink'
|
|
84
84
|
: 'text-ink-muted hover:text-ink',
|
|
85
|
-
].join(' '), children: THEME_LABELS[value] }, value))) }), _jsx("p", { className: "mt-1 text-[11px] text-ink-faint", children: "Saved to your account as you click, and applied in every browser you sign in to." })] }), _jsx("div", { className: "max-w-md", children: _jsx(Field, { label: "Timezone", hint: "Stored on your account.
|
|
85
|
+
].join(' '), children: THEME_LABELS[value] }, value))) }), _jsx("p", { className: "mt-1 text-[11px] text-ink-faint", children: "Saved to your account as you click, and applied in every browser you sign in to." })] }), _jsx("div", { className: "max-w-md", children: _jsx(Field, { label: "Timezone", hint: "Stored on your account. Dates across Kelpie use this zone.", children: _jsx(EntitySearch, { options: zones.map((zone) => ({ id: zone, label: zone })), value: timezone, onChange: setTimezone, placeholder: "Search time zones\u2026", limit: 20, required: true, size: "md" }) }) }), _jsxs("fieldset", { className: "space-y-2", children: [_jsx("legend", { className: "text-[12px] font-medium text-ink", children: "Email notifications" }), _jsx("p", { className: "max-w-lg text-[11px] text-ink-faint", children: "Kelpie does not send these emails yet. Your choices are saved and will apply when it does." }), _jsx(Toggle, { checked: emailDigest, onChange: setEmailDigest, label: "Weekly digest", description: "Summary of deals, decisions, and activity." }), _jsx(Toggle, { checked: mentionEmails, onChange: setMentionEmails, label: "Mentions and assignments", description: "When someone mentions you or assigns a Plan item." }), _jsx(Toggle, { checked: productUpdates, onChange: setProductUpdates, label: "Product updates", description: "Occasional notes about Kelpie releases." })] }), update.error !== null && (_jsx("div", { className: "max-w-lg", children: _jsx(ErrorPanel, { error: update.error }) })), _jsx("button", { type: "submit", disabled: update.isPending, className: "rounded-md bg-accent px-3 py-1.5 text-[12px] font-medium text-accent-fg transition hover:bg-accent-hover disabled:opacity-50", children: update.isPending ? 'Saving…' : saved ? 'Saved' : 'Save preferences' })] })] }));
|
|
86
86
|
}
|
|
87
87
|
function Toggle({ checked, onChange, label, description, }) {
|
|
88
88
|
return (_jsxs("label", { className: "flex max-w-lg cursor-pointer items-start gap-3 rounded-md border border-border px-3 py-2.5", children: [_jsx("input", { type: "checkbox", checked: checked, onChange: (event) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PreferencesPage.js","sourceRoot":"","sources":["../../../src/pages/account/PreferencesPage.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PreferencesPage.js","sourceRoot":"","sources":["../../../src/pages/account/PreferencesPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SecurityPage.d.ts","sourceRoot":"","sources":["../../../src/pages/account/SecurityPage.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SecurityPage.d.ts","sourceRoot":"","sources":["../../../src/pages/account/SecurityPage.tsx"],"names":[],"mappings":"AAeA;;;;;;;;GAQG;AAEH,wBAAgB,YAAY,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAQhD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { MINIMUM_PASSWORD_LENGTH } from '@kelpie/schemas';
|
|
3
3
|
import { useState } from 'react';
|
|
4
|
-
import { useAccountSessions, useChangePassword, useRevokeAccountSession, } from '../../api/resources/account.js';
|
|
4
|
+
import { useAccountSessions, useChangePassword, useRevokeAccountSession, useTimezone, } from '../../api/resources/account.js';
|
|
5
5
|
import { PageHeader } from '../../components/PageHeader.js';
|
|
6
6
|
import { ErrorPanel, LoadingPanel } from '../../components/QueryState.js';
|
|
7
7
|
import { formatDateTime } from '../../lib/dates.js';
|
|
@@ -73,6 +73,7 @@ function SessionList() {
|
|
|
73
73
|
}, isRevoking: revoke.isPending }, session.id))) })] }) })), revoke.error !== null && (_jsx("div", { className: "mt-3 max-w-xl", children: _jsx(ErrorPanel, { error: revoke.error }) }))] }));
|
|
74
74
|
}
|
|
75
75
|
function SessionRow({ session, onRevoke, isRevoking, }) {
|
|
76
|
-
|
|
76
|
+
const timezone = useTimezone();
|
|
77
|
+
return (_jsxs("tr", { className: "border-b border-border last:border-0", children: [_jsxs("td", { className: "px-4 py-3", children: [_jsx("div", { className: "font-medium break-all text-ink", children: session.device ?? 'Unknown device' }), session.current && _jsx("span", { className: "text-[11px] font-medium text-success", children: "This device" })] }), _jsx("td", { className: "px-4 py-3 text-ink-muted", children: session.location ?? 'Unknown' }), _jsx("td", { className: "px-4 py-3 text-ink-muted", children: formatDateTime(session.lastActiveAt, timezone) }), _jsx("td", { className: "px-4 py-3 text-right", children: !session.current && (_jsx("button", { type: "button", onClick: onRevoke, disabled: isRevoking, className: "text-[12px] font-medium text-danger hover:underline disabled:opacity-50", children: "Revoke" })) })] }));
|
|
77
78
|
}
|
|
78
79
|
//# sourceMappingURL=SecurityPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SecurityPage.js","sourceRoot":"","sources":["../../../src/pages/account/SecurityPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAGhC,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"SecurityPage.js","sourceRoot":"","sources":["../../../src/pages/account/SecurityPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAGhC,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,WAAW,GACZ,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAiC,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gCAAiC,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD;;;;;;;;GAQG;AAEH,MAAM,UAAU,YAAY;IAC1B,OAAO,CACL,eAAK,SAAS,EAAC,4BAA4B,aACzC,KAAC,UAAU,IAAC,KAAK,EAAC,UAAU,EAAC,WAAW,EAAC,4CAA4C,GAAG,EACxF,KAAC,kBAAkB,KAAG,EACtB,KAAC,WAAW,KAAG,IACX,CACP,CAAA;AACH,CAAC;AAED,MAAM,UAAU,GACd,mJAAmJ,CAAA;AAErJ,SAAS,kBAAkB;IACzB,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAA;IAClC,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC1D,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAClD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IACpD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IACjE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE7C;;;;OAIG;IACH,SAAS,YAAY;QACnB,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7D,OAAO,sCAAsC,CAAA;QAC/C,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;YACjD,OAAO,iCAAiC,MAAM,CAAC,uBAAuB,CAAC,cAAc,CAAA;QACvF,CAAC;QAED,OAAO,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,6CAA6C,CAAA;IAC5F,CAAC;IAED,SAAS,MAAM,CAAC,KAAgB;QAC9B,KAAK,CAAC,cAAc,EAAE,CAAA;QACtB,UAAU,CAAC,KAAK,CAAC,CAAA;QAEjB,MAAM,OAAO,GAAG,YAAY,EAAE,CAAA;QAE9B,aAAa,CAAC,OAAO,CAAC,CAAA;QAEtB,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,OAAM;QACR,CAAC;QAED,MAAM;aACH,QAAQ,CAAC,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC;aAC1C,IAAI,CAAC,GAAG,EAAE;YACT,kBAAkB,CAAC,EAAE,CAAC,CAAA;YACtB,cAAc,CAAC,EAAE,CAAC,CAAA;YAClB,eAAe,CAAC,EAAE,CAAC,CAAA;YACnB,UAAU,CAAC,IAAI,CAAC,CAAA;QAClB,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;IAC3B,CAAC;IAED,OAAO,CACL,gBAAM,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAC,WAAW,aAC3C,aAAI,SAAS,EAAC,oCAAoC,gCAAqB,EACvE,YAAG,SAAS,EAAC,qCAAqC,qFAE9C,EAEJ,iBAAO,SAAS,EAAC,gBAAgB,aAC/B,eAAM,SAAS,EAAC,+CAA+C,iCAAwB,EACvF,gBACE,IAAI,EAAC,UAAU,EACf,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;4BAClB,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;wBACxC,CAAC,EACD,YAAY,EAAC,kBAAkB,EAC/B,SAAS,EAAE,UAAU,GACrB,IACI,EAER,iBAAO,SAAS,EAAC,gBAAgB,aAC/B,eAAM,SAAS,EAAC,+CAA+C,6BAAoB,EACnF,gBACE,IAAI,EAAC,UAAU,EACf,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;4BAClB,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;wBACpC,CAAC,EACD,YAAY,EAAC,cAAc,EAC3B,SAAS,EAAE,UAAU,GACrB,EACF,gBAAM,SAAS,EAAC,uCAAuC,0BAC3C,uBAAuB,oBAC5B,IACD,EAER,iBAAO,SAAS,EAAC,gBAAgB,aAC/B,eAAM,SAAS,EAAC,+CAA+C,qCAA4B,EAC3F,gBACE,IAAI,EAAC,UAAU,EACf,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;4BAClB,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;wBACrC,CAAC,EACD,YAAY,EAAC,cAAc,EAC3B,SAAS,EAAE,UAAU,GACrB,IACI,EAEP,UAAU,KAAK,IAAI,IAAI,YAAG,SAAS,EAAC,yBAAyB,YAAE,UAAU,GAAK,EAC9E,MAAM,CAAC,KAAK,KAAK,IAAI,IAAI,CACxB,cAAK,SAAS,EAAC,UAAU,YACvB,KAAC,UAAU,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,GAAI,GAC/B,CACP,EAED,iBACE,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,MAAM,CAAC,SAAS,EAC1B,SAAS,EAAC,gIAAgI,YAEzI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,GAC3E,IACJ,CACR,CAAA;AACH,CAAC;AAED,SAAS,WAAW;IAClB,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,kBAAkB,EAAE,CAAA;IAC3D,MAAM,MAAM,GAAG,uBAAuB,EAAE,CAAA;IAExC,OAAO,CACL,8BACE,aAAI,SAAS,EAAC,yCAAyC,yBAAc,EAEpE,KAAK,KAAK,IAAI,IAAI,KAAC,UAAU,IAAC,KAAK,EAAE,KAAK,GAAI,EAC9C,KAAK,KAAK,IAAI,IAAI,SAAS,IAAI,KAAC,YAAY,IAAC,KAAK,EAAC,wBAAmB,GAAG,EAIzE,KAAK,KAAK,IAAI,IAAI,CAAC,SAAS,IAAI,CAC/B,cAAK,SAAS,EAAC,iDAAiD,YAC9D,iBAAO,SAAS,EAAC,8BAA8B,aAC7C,0BACE,cAAI,SAAS,EAAC,oGAAoG,aAChH,aAAI,SAAS,EAAC,aAAa,uBAAY,EACvC,aAAI,SAAS,EAAC,aAAa,yBAAc,EACzC,aAAI,SAAS,EAAC,aAAa,4BAAiB,EAC5C,aAAI,SAAS,EAAC,wBAAwB,wBAAa,IAChD,GACC,EACR,0BACG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CACzB,KAAC,UAAU,IAET,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,GAAG,EAAE;oCACb,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;gCACxB,CAAC,EACD,UAAU,EAAE,MAAM,CAAC,SAAS,IALvB,OAAO,CAAC,EAAE,CAMf,CACH,CAAC,GACI,IACF,GACJ,CACP,EAEA,MAAM,CAAC,KAAK,KAAK,IAAI,IAAI,CACxB,cAAK,SAAS,EAAC,eAAe,YAC5B,KAAC,UAAU,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,GAAI,GAC/B,CACP,IACO,CACX,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,EAClB,OAAO,EACP,QAAQ,EACR,UAAU,GAKX;IACC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAE9B,OAAO,CACL,cAAI,SAAS,EAAC,sCAAsC,aAClD,cAAI,SAAS,EAAC,WAAW,aACvB,cAAK,SAAS,EAAC,gCAAgC,YAAE,OAAO,CAAC,MAAM,IAAI,gBAAgB,GAAO,EACzF,OAAO,CAAC,OAAO,IAAI,eAAM,SAAS,EAAC,sCAAsC,4BAAmB,IAC1F,EAKL,aAAI,SAAS,EAAC,0BAA0B,YAAE,OAAO,CAAC,QAAQ,IAAI,SAAS,GAAM,EAC7E,aAAI,SAAS,EAAC,0BAA0B,YAAE,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,GAAM,EAC9F,aAAI,SAAS,EAAC,sBAAsB,YACjC,CAAC,OAAO,CAAC,OAAO,IAAI,CACnB,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAC,yEAAyE,uBAG5E,CACV,GACE,IACF,CACN,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workspace keys, for shared agents and CI.
|
|
3
|
+
*
|
|
4
|
+
* `GET /v1/api-keys?kind=workspace` needs the admin role; the server answers
|
|
5
|
+
* `403` to anyone else. This page shows that plainly instead of rendering an
|
|
6
|
+
* empty table, the same shape `WebhooksPage` uses for the same reason.
|
|
7
|
+
*/
|
|
8
|
+
export declare function ApiKeysPage(): React.JSX.Element;
|
|
9
|
+
//# sourceMappingURL=ApiKeysPage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiKeysPage.d.ts","sourceRoot":"","sources":["../../../src/pages/admin/ApiKeysPage.tsx"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAEH,wBAAgB,WAAW,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAsB/C"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useSession } from '../../api/resources/session.js';
|
|
3
|
+
import { ApiKeysPanel } from '../../components/ApiKeysPanel.js';
|
|
4
|
+
import { PageHeader } from '../../components/PageHeader.js';
|
|
5
|
+
/**
|
|
6
|
+
* Workspace keys, for shared agents and CI.
|
|
7
|
+
*
|
|
8
|
+
* `GET /v1/api-keys?kind=workspace` needs the admin role; the server answers
|
|
9
|
+
* `403` to anyone else. This page shows that plainly instead of rendering an
|
|
10
|
+
* empty table, the same shape `WebhooksPage` uses for the same reason.
|
|
11
|
+
*/
|
|
12
|
+
export function ApiKeysPage() {
|
|
13
|
+
const { session } = useSession();
|
|
14
|
+
const isAdmin = session?.role === 'owner' || session?.role === 'admin';
|
|
15
|
+
return (_jsxs("div", { className: "animate-slide-in mx-auto max-w-4xl space-y-4", children: [_jsx(PageHeader, { title: "API keys", description: "Workspace keys for shared agents and CI. Personal keys live under Account \u2192 API keys." }), isAdmin ? (_jsx(ApiKeysPanel, { kind: "workspace", namePlaceholder: "CI pipeline", createTitle: "Create API key", emptyMessage: "No API keys yet." })) : (_jsx(MemberNotice, {}))] }));
|
|
16
|
+
}
|
|
17
|
+
function MemberNotice() {
|
|
18
|
+
return (_jsx("p", { className: "rounded-md border border-border px-4 py-3 text-[13px] text-ink-muted", children: "Workspace keys are managed by workspace admins." }));
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=ApiKeysPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiKeysPage.js","sourceRoot":"","sources":["../../../src/pages/admin/ApiKeysPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAmC,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAiC,CAAA;AAE5D;;;;;;GAMG;AAEH,MAAM,UAAU,WAAW;IACzB,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,CAAA;IAChC,MAAM,OAAO,GAAG,OAAO,EAAE,IAAI,KAAK,OAAO,IAAI,OAAO,EAAE,IAAI,KAAK,OAAO,CAAA;IAEtE,OAAO,CACL,eAAK,SAAS,EAAC,8CAA8C,aAC3D,KAAC,UAAU,IACT,KAAK,EAAC,UAAU,EAChB,WAAW,EAAC,4FAAuF,GACnG,EACD,OAAO,CAAC,CAAC,CAAC,CACT,KAAC,YAAY,IACX,IAAI,EAAC,WAAW,EAChB,eAAe,EAAC,aAAa,EAC7B,WAAW,EAAC,gBAAgB,EAC5B,YAAY,EAAC,kBAAkB,GAC/B,CACH,CAAC,CAAC,CAAC,CACF,KAAC,YAAY,KAAG,CACjB,IACG,CACP,CAAA;AACH,CAAC;AAED,SAAS,YAAY;IACnB,OAAO,CACL,YAAG,SAAS,EAAC,sEAAsE,gEAE/E,CACL,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"McpPage.d.ts","sourceRoot":"","sources":["../../../src/pages/admin/McpPage.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"McpPage.d.ts","sourceRoot":"","sources":["../../../src/pages/admin/McpPage.tsx"],"names":[],"mappings":"AAmDA,wBAAgB,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CA0E3C"}
|
|
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { AGENT_RUN_STATUS_LABELS } from '@kelpie/schemas';
|
|
3
3
|
import { useMemo, useState } from 'react';
|
|
4
4
|
import { Link } from 'react-router';
|
|
5
|
+
import { useTimezone } from '../../api/resources/account.js';
|
|
5
6
|
import { useAgentRuns, useAgents, useAllAgentTasks, useCreateAgent, useDeleteAgent, } from '../../api/resources/agentTasks.js';
|
|
6
7
|
import { useMcpTools } from '../../api/resources/mcpTools.js';
|
|
7
8
|
import { PageHeader } from '../../components/PageHeader.js';
|
|
@@ -46,7 +47,7 @@ export function McpPage() {
|
|
|
46
47
|
}
|
|
47
48
|
}
|
|
48
49
|
}`;
|
|
49
|
-
return (_jsxs("div", { className: "animate-slide-in mx-auto max-w-4xl space-y-6", children: [_jsx(PageHeader, { title: "MCP", description: "Connect agents to this workspace over Streamable HTTP." }), _jsxs("section", { className: "rounded-md border border-border p-5", children: [_jsx("h2", { className: "text-[15px] font-semibold text-ink", children: "How agents use Kelpie" }), _jsx("p", { className: "mt-2 max-w-2xl text-[13px] leading-relaxed text-ink-muted", children: "Kelpie is a CRM and a company brain. Every REST operation is also an MCP tool over Streamable HTTP, so an agent reads and writes the same records the app does, through the same API. Point Claude, Cursor, or any MCP client at this workspace. There is no bundled AI: bring your own agent." }), _jsxs("ul", { className: "mt-4 space-y-2 text-[13px] text-ink", children: [_jsxs("li", { className: "flex gap-2", children: [_jsx("span", { className: "text-accent", children: "\u2192" }), "An API key is bound to one workspace, so a client sees that workspace and no other."] }), _jsxs("li", { className: "flex gap-2", children: [_jsx("span", { className: "text-accent", children: "\u2192" }), "A tool refuses exactly what the endpoint behind it refuses, with the same message."] }), _jsxs("li", { className: "flex gap-2", children: [_jsx("span", { className: "text-accent", children: "\u2192" }), "Signing in with a browser session does not work here. The endpoint takes bearer keys only."] })] })] }), _jsxs("section", { className: "rounded-md border border-border p-5", children: [_jsxs("div", { className: "flex items-center justify-between gap-3", children: [_jsx("h2", { className: "text-[13px] font-semibold text-ink", children: "Streamable HTTP endpoint" }), _jsx(CopyButton, { value: endpoint, label: "Copy the endpoint URL" })] }), _jsx("code", { className: "mt-3 block rounded-md border border-border bg-surface px-3 py-2.5 font-mono text-[13px] break-all text-ink", children: endpoint })] }), _jsxs("section", { className: "rounded-md border border-border p-5", children: [_jsxs("div", { className: "flex items-center justify-between gap-3", children: [_jsx("h2", { className: "text-[13px] font-semibold text-ink", children: "Claude / Cursor config" }), _jsx(CopyButton, { value: config, label: "Copy the client config" })] }), _jsxs("p", { className: "mt-1 text-[12px] text-ink-muted", children: ["Paste into your MCP client config, and replace the bearer token with a workspace key from", ' ', _jsx(Link, { to: "/admin/
|
|
50
|
+
return (_jsxs("div", { className: "animate-slide-in mx-auto max-w-4xl space-y-6", children: [_jsx(PageHeader, { title: "MCP", description: "Connect agents to this workspace over Streamable HTTP." }), _jsxs("section", { className: "rounded-md border border-border p-5", children: [_jsx("h2", { className: "text-[15px] font-semibold text-ink", children: "How agents use Kelpie" }), _jsx("p", { className: "mt-2 max-w-2xl text-[13px] leading-relaxed text-ink-muted", children: "Kelpie is a CRM and a company brain. Every REST operation is also an MCP tool over Streamable HTTP, so an agent reads and writes the same records the app does, through the same API. Point Claude, Cursor, or any MCP client at this workspace. There is no bundled AI: bring your own agent." }), _jsxs("ul", { className: "mt-4 space-y-2 text-[13px] text-ink", children: [_jsxs("li", { className: "flex gap-2", children: [_jsx("span", { className: "text-accent", children: "\u2192" }), "An API key is bound to one workspace, so a client sees that workspace and no other."] }), _jsxs("li", { className: "flex gap-2", children: [_jsx("span", { className: "text-accent", children: "\u2192" }), "A tool refuses exactly what the endpoint behind it refuses, with the same message."] }), _jsxs("li", { className: "flex gap-2", children: [_jsx("span", { className: "text-accent", children: "\u2192" }), "Signing in with a browser session does not work here. The endpoint takes bearer keys only."] })] })] }), _jsxs("section", { className: "rounded-md border border-border p-5", children: [_jsxs("div", { className: "flex items-center justify-between gap-3", children: [_jsx("h2", { className: "text-[13px] font-semibold text-ink", children: "Streamable HTTP endpoint" }), _jsx(CopyButton, { value: endpoint, label: "Copy the endpoint URL" })] }), _jsx("code", { className: "mt-3 block rounded-md border border-border bg-surface px-3 py-2.5 font-mono text-[13px] break-all text-ink", children: endpoint })] }), _jsxs("section", { className: "rounded-md border border-border p-5", children: [_jsxs("div", { className: "flex items-center justify-between gap-3", children: [_jsx("h2", { className: "text-[13px] font-semibold text-ink", children: "Claude / Cursor config" }), _jsx(CopyButton, { value: config, label: "Copy the client config" })] }), _jsxs("p", { className: "mt-1 text-[12px] text-ink-muted", children: ["Paste into your MCP client config, and replace the bearer token with a workspace key from", ' ', _jsx(Link, { to: "/admin/api-keys", className: "text-accent hover:underline", children: "API keys" }), "."] }), _jsx("pre", { className: "bg-code-bg text-code-fg mt-3 overflow-x-auto rounded-md border border-border p-4 font-mono text-[12px] leading-relaxed", children: config })] }), _jsx(RegisteredAgents, {}), _jsx(RecentRuns, {}), _jsx(ToolCatalog, {})] }));
|
|
50
51
|
}
|
|
51
52
|
/**
|
|
52
53
|
* Bring-your-own agents that Run dispatches to. Any member reads this list —
|
|
@@ -57,6 +58,7 @@ function RegisteredAgents() {
|
|
|
57
58
|
const { records, isLoading, error } = useAgents();
|
|
58
59
|
const createAgent = useCreateAgent();
|
|
59
60
|
const deleteAgent = useDeleteAgent();
|
|
61
|
+
const timezone = useTimezone();
|
|
60
62
|
const [adding, setAdding] = useState(false);
|
|
61
63
|
const [name, setName] = useState('');
|
|
62
64
|
const [endpoint, setEndpoint] = useState('');
|
|
@@ -89,7 +91,7 @@ function RegisteredAgents() {
|
|
|
89
91
|
setAuthHeader(event.target.value);
|
|
90
92
|
}, placeholder: "Bearer \u2026", className: "mt-1 w-full rounded-md border border-border bg-surface px-2.5 py-1.5 font-mono text-[12px] text-ink outline-none focus:border-accent" })] }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsx("button", { type: "submit", disabled: createAgent.isPending, className: "rounded-md bg-accent px-3 py-1.5 text-[12px] font-semibold text-accent-fg hover:bg-accent-hover disabled:opacity-50", children: "Register agent" }), createAgent.error !== null && (_jsx("span", { className: "text-[12px] text-danger", children: createAgent.error.message }))] })] })), error !== null && _jsx("div", { className: "mt-4", children: _jsx(ErrorPanel, { error: error }) }), isLoading && _jsx(LoadingPanel, { label: "Loading agents\u2026" }), !isLoading && error === null && records.length === 0 && (_jsx("p", { className: "mt-4 text-[12px] text-ink-faint", children: "No agents registered. Copy prompt works without one; Run needs somewhere to send the task." })), records.length > 0 && (_jsx("ul", { className: "mt-4 divide-y divide-border rounded-md border border-border", children: records.map((agent) => (_jsxs("li", { className: "flex flex-wrap items-center justify-between gap-3 px-3 py-2.5", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "text-[13px] font-medium text-ink", children: agent.name }), _jsx("code", { className: "font-mono text-[11px] break-all text-ink-muted", children: agent.endpoint })] }), _jsxs("div", { className: "flex shrink-0 items-center gap-3 text-[11px] text-ink-faint", children: [agent.hasAuthHeader && _jsx("span", { children: "Auth header set" }), _jsx("span", { children: agent.lastRunAt === null
|
|
91
93
|
? 'Never run'
|
|
92
|
-
: `Last run ${formatRelativeTime(agent.lastRunAt)}` }), _jsx("button", { type: "button", onClick: () => {
|
|
94
|
+
: `Last run ${formatRelativeTime(agent.lastRunAt, timezone)}` }), _jsx("button", { type: "button", onClick: () => {
|
|
93
95
|
deleteAgent.run(agent.id);
|
|
94
96
|
}, className: "font-medium text-danger hover:underline", children: "Remove" })] })] }, agent.id))) })), deleteAgent.error !== null && (_jsx("p", { className: "mt-2 text-[12px] text-danger", children: deleteAgent.error.message }))] }));
|
|
95
97
|
}
|
|
@@ -99,13 +101,14 @@ function RecentRuns() {
|
|
|
99
101
|
const { records: runs, isLoading, error } = useAgentRuns();
|
|
100
102
|
const catalog = useAllAgentTasks();
|
|
101
103
|
const agents = useAgents();
|
|
104
|
+
const timezone = useTimezone();
|
|
102
105
|
const taskLabels = useMemo(() => new Map(catalog.records.map((task) => [task.id, task.label])), [catalog.records]);
|
|
103
106
|
const agentNames = useMemo(() => new Map(agents.records.map((agent) => [agent.id, agent.name])), [agents.records]);
|
|
104
107
|
function describeRun(run) {
|
|
105
108
|
const agentName = agentNames.get(run.agentId) ?? 'a removed agent';
|
|
106
109
|
return `${run.targetType}/${run.targetId} → ${agentName}`;
|
|
107
110
|
}
|
|
108
|
-
return (_jsxs("section", { className: "rounded-md border border-border p-5", children: [_jsx("h2", { className: "text-[13px] font-semibold text-ink", children: "Recent runs" }), _jsx("p", { className: "mt-1 text-[12px] text-ink-muted", children: "Each run records the dispatch: queued, then succeeded or failed with the reason. What the agent did afterwards is on the records themselves." }), error !== null && _jsx("div", { className: "mt-4", children: _jsx(ErrorPanel, { error: error }) }), isLoading && _jsx(LoadingPanel, { label: "Loading runs\u2026" }), !isLoading && error === null && runs.length === 0 && (_jsx("p", { className: "mt-4 text-[12px] text-ink-faint", children: "No runs yet. Run an agent task from any record page." })), runs.length > 0 && (_jsx("ul", { className: "mt-4 divide-y divide-border rounded-md border border-border", children: runs.slice(0, RUN_LOG_ROWS).map((run) => (_jsxs("li", { className: "flex flex-wrap items-center justify-between gap-3 px-3 py-2.5", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "text-[13px] font-medium text-ink", children: taskLabels.get(run.taskId) ?? run.taskId }), _jsx("div", { className: "text-[11px] text-ink-muted", children: describeRun(run) }), run.failureReason !== null && (_jsx("div", { className: "text-[11px] text-danger", children: run.failureReason }))] }), _jsxs("div", { className: "flex shrink-0 items-center gap-3 text-[11px]", children: [_jsx("span", { className: run.status === 'failed' ? 'font-medium text-danger' : 'text-ink-muted', children: AGENT_RUN_STATUS_LABELS[run.status] }), _jsx("span", { className: "text-ink-faint", children: formatRelativeTime(run.updatedAt) })] })] }, run.id))) }))] }));
|
|
111
|
+
return (_jsxs("section", { className: "rounded-md border border-border p-5", children: [_jsx("h2", { className: "text-[13px] font-semibold text-ink", children: "Recent runs" }), _jsx("p", { className: "mt-1 text-[12px] text-ink-muted", children: "Each run records the dispatch: queued, then succeeded or failed with the reason. What the agent did afterwards is on the records themselves." }), error !== null && _jsx("div", { className: "mt-4", children: _jsx(ErrorPanel, { error: error }) }), isLoading && _jsx(LoadingPanel, { label: "Loading runs\u2026" }), !isLoading && error === null && runs.length === 0 && (_jsx("p", { className: "mt-4 text-[12px] text-ink-faint", children: "No runs yet. Run an agent task from any record page." })), runs.length > 0 && (_jsx("ul", { className: "mt-4 divide-y divide-border rounded-md border border-border", children: runs.slice(0, RUN_LOG_ROWS).map((run) => (_jsxs("li", { className: "flex flex-wrap items-center justify-between gap-3 px-3 py-2.5", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "text-[13px] font-medium text-ink", children: taskLabels.get(run.taskId) ?? run.taskId }), _jsx("div", { className: "text-[11px] text-ink-muted", children: describeRun(run) }), run.failureReason !== null && (_jsx("div", { className: "text-[11px] text-danger", children: run.failureReason }))] }), _jsxs("div", { className: "flex shrink-0 items-center gap-3 text-[11px]", children: [_jsx("span", { className: run.status === 'failed' ? 'font-medium text-danger' : 'text-ink-muted', children: AGENT_RUN_STATUS_LABELS[run.status] }), _jsx("span", { className: "text-ink-faint", children: formatRelativeTime(run.updatedAt, timezone) })] })] }, run.id))) }))] }));
|
|
109
112
|
}
|
|
110
113
|
/**
|
|
111
114
|
* What this deployment actually registered, read from the endpoint's own registry.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"McpPage.js","sourceRoot":"","sources":["../../../src/pages/admin/McpPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAEzD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAEnC,OAAO,EACL,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,cAAc,GACf,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAiC,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gCAAiC,CAAA;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAiC,CAAA;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAEvD;;;;;;;;;;;;;GAaG;AAEH;;;GAGG;AACH,SAAS,OAAO,CAAC,IAAa,EAAE,IAAY;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAExC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CACL,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;QACxC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAChD,CAAA;AACH,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAA;IACnE,MAAM,MAAM,GAAG;;;gBAGD,QAAQ;;;;;;EAMtB,CAAA;IAEA,OAAO,CACL,eAAK,SAAS,EAAC,8CAA8C,aAC3D,KAAC,UAAU,IAAC,KAAK,EAAC,KAAK,EAAC,WAAW,EAAC,wDAAwD,GAAG,EAE/F,mBAAS,SAAS,EAAC,qCAAqC,aACtD,aAAI,SAAS,EAAC,oCAAoC,sCAA2B,EAC7E,YAAG,SAAS,EAAC,2DAA2D,+SAKpE,EACJ,cAAI,SAAS,EAAC,qCAAqC,aACjD,cAAI,SAAS,EAAC,YAAY,aACxB,eAAM,SAAS,EAAC,aAAa,uBAAS,2FAEnC,EACL,cAAI,SAAS,EAAC,YAAY,aACxB,eAAM,SAAS,EAAC,aAAa,uBAAS,0FAEnC,EACL,cAAI,SAAS,EAAC,YAAY,aACxB,eAAM,SAAS,EAAC,aAAa,uBAAS,kGAGnC,IACF,IACG,EAEV,mBAAS,SAAS,EAAC,qCAAqC,aACtD,eAAK,SAAS,EAAC,yCAAyC,aACtD,aAAI,SAAS,EAAC,oCAAoC,yCAA8B,EAChF,KAAC,UAAU,IAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAC,uBAAuB,GAAG,IACzD,EACN,eAAM,SAAS,EAAC,4GAA4G,YACzH,QAAQ,GACJ,IACC,EAEV,mBAAS,SAAS,EAAC,qCAAqC,aACtD,eAAK,SAAS,EAAC,yCAAyC,aACtD,aAAI,SAAS,EAAC,oCAAoC,uCAA4B,EAC9E,KAAC,UAAU,IAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAC,wBAAwB,GAAG,IACxD,EACN,aAAG,SAAS,EAAC,iCAAiC,0GAC8C,GAAG,EAC7F,KAAC,IAAI,IAAC,EAAE,EAAC,
|
|
1
|
+
{"version":3,"file":"McpPage.js","sourceRoot":"","sources":["../../../src/pages/admin/McpPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebhookDeliveries.d.ts","sourceRoot":"","sources":["../../../src/pages/admin/WebhookDeliveries.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WebhookDeliveries.d.ts","sourceRoot":"","sources":["../../../src/pages/admin/WebhookDeliveries.tsx"],"names":[],"mappings":"AAqCA,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA4HlG"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useState } from 'react';
|
|
3
|
+
import { useTimezone } from '../../api/resources/account.js';
|
|
3
4
|
import { useWebhookDeliveries } from '../../api/resources/webhooks.js';
|
|
4
5
|
import { Chip } from '../../components/Chip.js';
|
|
5
6
|
import { DataTable } from '../../components/DataTable.js';
|
|
@@ -18,6 +19,7 @@ const STATUS_TONES = {
|
|
|
18
19
|
export function WebhookDeliveries({ webhookId }) {
|
|
19
20
|
const [status, setStatus] = useState('all');
|
|
20
21
|
const [openPayloadId, setOpenPayloadId] = useState(null);
|
|
22
|
+
const timezone = useTimezone();
|
|
21
23
|
const deliveries = useWebhookDeliveries(webhookId, {
|
|
22
24
|
status: status === 'all' ? undefined : status,
|
|
23
25
|
});
|
|
@@ -44,7 +46,7 @@ export function WebhookDeliveries({ webhookId }) {
|
|
|
44
46
|
key: 'sent',
|
|
45
47
|
header: 'Sent',
|
|
46
48
|
className: 'w-32',
|
|
47
|
-
render: (delivery) => (_jsx("span", { className: "font-mono text-[12px] text-ink-muted", children: formatDateTime(delivery.createdAt) })),
|
|
49
|
+
render: (delivery) => (_jsx("span", { className: "font-mono text-[12px] text-ink-muted", children: formatDateTime(delivery.createdAt, timezone) })),
|
|
48
50
|
},
|
|
49
51
|
{
|
|
50
52
|
key: 'delivered',
|
|
@@ -52,7 +54,7 @@ export function WebhookDeliveries({ webhookId }) {
|
|
|
52
54
|
className: 'w-32',
|
|
53
55
|
// Null for a delivery that exhausted its attempts, which is the row a
|
|
54
56
|
// reader is looking for. An em dash says "never" without claiming a time.
|
|
55
|
-
render: (delivery) => (_jsx("span", { className: "font-mono text-[12px] text-ink-muted", children: delivery.deliveredAt === null ? '—' : formatDateTime(delivery.deliveredAt) })),
|
|
57
|
+
render: (delivery) => (_jsx("span", { className: "font-mono text-[12px] text-ink-muted", children: delivery.deliveredAt === null ? '—' : formatDateTime(delivery.deliveredAt, timezone) })),
|
|
56
58
|
},
|
|
57
59
|
{
|
|
58
60
|
key: 'payload',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebhookDeliveries.js","sourceRoot":"","sources":["../../../src/pages/admin/WebhookDeliveries.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AACtE,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA2B,CAAA;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,+BAAgC,CAAA;AAE1D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gCAAiC,CAAA;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAuC,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAenD,MAAM,cAAc,GAAG;IACrB,EAAE,EAAE,EAAE,KAAc,EAAE,KAAK,EAAE,KAAK,EAAE;IACpC,EAAE,EAAE,EAAE,SAAkB,EAAE,KAAK,EAAE,SAAS,EAAE;IAC5C,EAAE,EAAE,EAAE,QAAiB,EAAE,KAAK,EAAE,QAAQ,EAAE;CAC3C,CAAA;AAED,MAAM,YAAY,GAAsD;IACtE,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;CACjB,CAAA;AAED,MAAM,UAAU,iBAAiB,CAAC,EAAE,SAAS,EAAkC;IAC7E,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAe,KAAK,CAAC,CAAA;IACzD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IACvE,MAAM,UAAU,GAAG,oBAAoB,CAAC,SAAS,EAAE;QACjD,MAAM,EAAE,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;KAC9C,CAAC,CAAA;IACF,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,aAAa,CAAC,CAAA;IAEjF,MAAM,OAAO,GAAuC;QAClD;YACE,GAAG,EAAE,OAAO;YACZ,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,eAAM,SAAS,EAAC,gCAAgC,YAAE,QAAQ,CAAC,KAAK,GAAQ;SAC/F;QACD;YACE,GAAG,EAAE,QAAQ;YACb,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,MAAM;YACjB,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAC,IAAI,IAAC,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAG,QAAQ,CAAC,MAAM,GAAQ;SAC1F;QACD;YACE,GAAG,EAAE,UAAU;YACf,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,MAAM;YACjB,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CACpB,eAAM,SAAS,EAAC,4BAA4B,YAAE,QAAQ,CAAC,QAAQ,GAAQ,CACxE;SACF;QACD;YACE,GAAG,EAAE,MAAM;YACX,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,MAAM;YACjB,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CACpB,eAAM,SAAS,EAAC,sCAAsC,YACnD,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"WebhookDeliveries.js","sourceRoot":"","sources":["../../../src/pages/admin/WebhookDeliveries.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebhooksPage.d.ts","sourceRoot":"","sources":["../../../src/pages/admin/WebhooksPage.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WebhooksPage.d.ts","sourceRoot":"","sources":["../../../src/pages/admin/WebhooksPage.tsx"],"names":[],"mappings":"AA0CA,wBAAgB,YAAY,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAUhD"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { WEBHOOK_EVENTS, WEBHOOK_SECRET_OVERLAP_HOURS, WEBHOOK_STATUS_LABELS, } from '@kelpie/schemas';
|
|
3
3
|
import { useState } from 'react';
|
|
4
|
+
import { useTimezone } from '../../api/resources/account.js';
|
|
4
5
|
import { useSession } from '../../api/resources/session.js';
|
|
5
6
|
import { useCreateWebhook, useDeleteWebhook, useRotateWebhookSecret, useUpdateWebhook, useWebhooks, } from '../../api/resources/webhooks.js';
|
|
6
7
|
import { Chip } from '../../components/Chip.js';
|
|
@@ -95,6 +96,7 @@ function WebhookRow({ webhook, onRotated, }) {
|
|
|
95
96
|
const updateWebhook = useUpdateWebhook();
|
|
96
97
|
const deleteWebhook = useDeleteWebhook();
|
|
97
98
|
const rotateSecret = useRotateWebhookSecret();
|
|
99
|
+
const timezone = useTimezone();
|
|
98
100
|
const [isConfirmingRemoval, setIsConfirmingRemoval] = useState(false);
|
|
99
101
|
const [isShowingDeliveries, setIsShowingDeliveries] = useState(false);
|
|
100
102
|
const [isRotating, setIsRotating] = useState(false);
|
|
@@ -110,7 +112,7 @@ function WebhookRow({ webhook, onRotated, }) {
|
|
|
110
112
|
deleteWebhook.run(webhook.id);
|
|
111
113
|
}, className: "rounded-md bg-danger px-2.5 py-1 text-[12px] font-semibold text-danger-fg transition hover:opacity-90 disabled:opacity-50", children: deleteWebhook.isPending ? 'Removing…' : 'Remove' })] })) : (_jsx("button", { type: "button", onClick: () => {
|
|
112
114
|
setIsConfirmingRemoval(true);
|
|
113
|
-
}, className: "text-[12px] font-medium text-danger hover:underline", children: "Remove" }))] })] }), _jsxs("div", { className: "mt-3 flex flex-wrap items-center gap-4 text-[11px] text-ink-faint", children: [_jsxs("span", { className: "font-mono", children: ["Secret ", webhook.secretPrefix] }), _jsxs("span", { children: ["Last delivery: ", describeLastDelivery(webhook)] }), _jsx("button", { type: "button", "aria-expanded": isShowingDeliveries, onClick: () => {
|
|
115
|
+
}, className: "text-[12px] font-medium text-danger hover:underline", children: "Remove" }))] })] }), _jsxs("div", { className: "mt-3 flex flex-wrap items-center gap-4 text-[11px] text-ink-faint", children: [_jsxs("span", { className: "font-mono", children: ["Secret ", webhook.secretPrefix] }), _jsxs("span", { children: ["Last delivery: ", describeLastDelivery(webhook, timezone)] }), _jsx("button", { type: "button", "aria-expanded": isShowingDeliveries, onClick: () => {
|
|
114
116
|
setIsShowingDeliveries((current) => !current);
|
|
115
117
|
}, className: "font-medium text-accent hover:underline", children: isShowingDeliveries ? 'Hide deliveries' : 'Deliveries' }), _jsx("button", { type: "button", "aria-expanded": isRotating, onClick: () => {
|
|
116
118
|
setIsRotating((current) => !current);
|
|
@@ -143,10 +145,10 @@ function RotatePanel({ isPending, onRotate, }) {
|
|
|
143
145
|
}, className: "mt-3 rounded-md bg-accent px-3 py-1.5 text-[12px] font-semibold text-accent-fg transition hover:bg-accent-hover disabled:opacity-50", children: isPending ? 'Rotating…' : 'Rotate secret' })] }));
|
|
144
146
|
}
|
|
145
147
|
/** Both fields are null together until the first delivery settles. */
|
|
146
|
-
function describeLastDelivery(webhook) {
|
|
148
|
+
function describeLastDelivery(webhook, timezone) {
|
|
147
149
|
if (webhook.lastDeliveryAt === null || webhook.lastDeliveryStatus === null) {
|
|
148
150
|
return 'Never';
|
|
149
151
|
}
|
|
150
|
-
return `${formatDateTime(webhook.lastDeliveryAt)} (${webhook.lastDeliveryStatus})`;
|
|
152
|
+
return `${formatDateTime(webhook.lastDeliveryAt, timezone)} (${webhook.lastDeliveryStatus})`;
|
|
151
153
|
}
|
|
152
154
|
//# sourceMappingURL=WebhooksPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebhooksPage.js","sourceRoot":"","sources":["../../../src/pages/admin/WebhooksPage.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"WebhooksPage.js","sourceRoot":"","sources":["../../../src/pages/admin/WebhooksPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardPage.d.ts","sourceRoot":"","sources":["../../../src/pages/dashboard/DashboardPage.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DashboardPage.d.ts","sourceRoot":"","sources":["../../../src/pages/dashboard/DashboardPage.tsx"],"names":[],"mappings":"AA+BA,wBAAgB,aAAa,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAwBjD"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useTimezone } from '../../api/resources/account.js';
|
|
2
3
|
import { useDashboard } from '../../api/resources/dashboard.js';
|
|
3
4
|
import { useMembers } from '../../api/resources/members.js';
|
|
4
5
|
import { useWorkspace } from '../../api/resources/workspace.js';
|
|
@@ -17,7 +18,7 @@ import { ActivityFeed, AttentionList, DecisionsList, NotesList } from './section
|
|
|
17
18
|
*/
|
|
18
19
|
/** The heading date, written in the workspace's own day rather than the browser's. */
|
|
19
20
|
function briefHeading(dashboard) {
|
|
20
|
-
return new Intl.DateTimeFormat(
|
|
21
|
+
return new Intl.DateTimeFormat(undefined, {
|
|
21
22
|
weekday: 'long',
|
|
22
23
|
month: 'short',
|
|
23
24
|
day: 'numeric',
|
|
@@ -28,13 +29,14 @@ export function DashboardPage() {
|
|
|
28
29
|
const { dashboard, isLoading, error } = useDashboard();
|
|
29
30
|
const { workspace } = useWorkspace();
|
|
30
31
|
const { nameById } = useMembers();
|
|
31
|
-
|
|
32
|
+
const timezone = useTimezone();
|
|
33
|
+
return (_jsxs("div", { className: "animate-fade-in", children: [_jsx(PageHeader, { title: "Dashboard", description: "What needs attention across this workspace." }), error !== null && _jsx(ErrorPanel, { error: error }), isLoading && _jsx(LoadingPanel, { label: "Loading the workspace\u2026" }), dashboard !== undefined && (_jsx(DashboardBody, { dashboard: dashboard, workspaceId: workspace?.id, workspaceName: workspace?.name ?? 'This workspace', nameById: nameById, timezone: timezone }))] }));
|
|
32
34
|
}
|
|
33
|
-
function DashboardBody({ dashboard, workspaceId, workspaceName, nameById, }) {
|
|
35
|
+
function DashboardBody({ dashboard, workspaceId, workspaceName, nameById, timezone, }) {
|
|
34
36
|
// `generatedAt` rather than a fresh `new Date()`: every relative time on the
|
|
35
37
|
// page is then measured from the same instant the counts were, so a tab left
|
|
36
38
|
// open does not creep towards "2 hours ago" on rows that never moved.
|
|
37
39
|
const now = dashboard.generatedAt;
|
|
38
|
-
return (_jsxs("div", { children: [_jsxs("section", { className: "mb-8 border-b border-border pb-6", children: [_jsxs("div", { className: "flex flex-wrap items-start justify-between gap-3", children: [_jsxs("div", { children: [_jsx("p", { className: "text-[11px] text-ink-faint", children: "Daily brief" }), _jsxs("h2", { className: "mt-0.5 text-[15px] font-semibold tracking-tight text-ink", children: [workspaceName, " \u00B7 ", briefHeading(dashboard)] }), _jsx("p", { className: "mt-1 text-[12px] text-ink-muted", children: "Assembled from overdue Plans, partnership touchpoints, and contacts going cold." })] }), workspaceId !== undefined && (_jsx(AgentTasks, { targetType: "workspace", targetId: workspaceId, targetLabel: workspaceName }))] }), _jsx("ul", { className: "mt-4 space-y-1.5", children: briefLines(dashboard).map((line) => (_jsxs("li", { className: "flex gap-2 text-[13px] leading-relaxed text-ink", children: [_jsx("span", { className: "mt-[9px] h-1 w-1 shrink-0 rounded-full bg-accent" }), _jsx("span", { children: line })] }, line))) })] }), _jsxs("div", { className: "mb-8 grid gap-8 lg:grid-cols-2", children: [_jsx(AttentionList, { rows: attentionRows(dashboard) }), _jsx(ActivityFeed, { activities: dashboard.recentActivity, nameById: nameById, now: now })] }), _jsxs("div", { className: "grid gap-8 lg:grid-cols-2", children: [_jsx(NotesList, { notes: dashboard.recentNotes, nameById: nameById, now: now }), _jsx(DecisionsList, { decisions: dashboard.recentDecisions, nameById: nameById })] })] }));
|
|
40
|
+
return (_jsxs("div", { children: [_jsxs("section", { className: "mb-8 border-b border-border pb-6", children: [_jsxs("div", { className: "flex flex-wrap items-start justify-between gap-3", children: [_jsxs("div", { children: [_jsx("p", { className: "text-[11px] text-ink-faint", children: "Daily brief" }), _jsxs("h2", { className: "mt-0.5 text-[15px] font-semibold tracking-tight text-ink", children: [workspaceName, " \u00B7 ", briefHeading(dashboard)] }), _jsx("p", { className: "mt-1 text-[12px] text-ink-muted", children: "Assembled from overdue Plans, partnership touchpoints, and contacts going cold." })] }), workspaceId !== undefined && (_jsx(AgentTasks, { targetType: "workspace", targetId: workspaceId, targetLabel: workspaceName }))] }), _jsx("ul", { className: "mt-4 space-y-1.5", children: briefLines(dashboard).map((line) => (_jsxs("li", { className: "flex gap-2 text-[13px] leading-relaxed text-ink", children: [_jsx("span", { className: "mt-[9px] h-1 w-1 shrink-0 rounded-full bg-accent" }), _jsx("span", { children: line })] }, line))) })] }), _jsxs("div", { className: "mb-8 grid gap-8 lg:grid-cols-2", children: [_jsx(AttentionList, { rows: attentionRows(dashboard) }), _jsx(ActivityFeed, { activities: dashboard.recentActivity, nameById: nameById, now: now, timezone: timezone })] }), _jsxs("div", { className: "grid gap-8 lg:grid-cols-2", children: [_jsx(NotesList, { notes: dashboard.recentNotes, nameById: nameById, now: now, timezone: timezone }), _jsx(DecisionsList, { decisions: dashboard.recentDecisions, nameById: nameById, timezone: timezone })] })] }));
|
|
39
41
|
}
|
|
40
42
|
//# sourceMappingURL=DashboardPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardPage.js","sourceRoot":"","sources":["../../../src/pages/dashboard/DashboardPage.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAiC,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAiC,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gCAAiC,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,eAAgB,CAAA;AAEtF;;;;;;;GAOG;AAEH,sFAAsF;AACtF,SAAS,YAAY,CAAC,SAAoB;IACxC,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"DashboardPage.js","sourceRoot":"","sources":["../../../src/pages/dashboard/DashboardPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,18 +3,21 @@ import type { AttentionRow } from './attention.ts';
|
|
|
3
3
|
export declare function AttentionList({ rows }: {
|
|
4
4
|
readonly rows: readonly AttentionRow[];
|
|
5
5
|
}): React.JSX.Element;
|
|
6
|
-
export declare function ActivityFeed({ activities, nameById, now, }: {
|
|
6
|
+
export declare function ActivityFeed({ activities, nameById, now, timezone, }: {
|
|
7
7
|
readonly activities: readonly DashboardActivity[];
|
|
8
8
|
readonly nameById: ReadonlyMap<string, string>;
|
|
9
9
|
readonly now: Date;
|
|
10
|
+
readonly timezone: string;
|
|
10
11
|
}): React.JSX.Element;
|
|
11
|
-
export declare function NotesList({ notes, nameById, now, }: {
|
|
12
|
+
export declare function NotesList({ notes, nameById, now, timezone, }: {
|
|
12
13
|
readonly notes: readonly DashboardNote[];
|
|
13
14
|
readonly nameById: ReadonlyMap<string, string>;
|
|
14
15
|
readonly now: Date;
|
|
16
|
+
readonly timezone: string;
|
|
15
17
|
}): React.JSX.Element;
|
|
16
|
-
export declare function DecisionsList({ decisions, nameById, }: {
|
|
18
|
+
export declare function DecisionsList({ decisions, nameById, timezone, }: {
|
|
17
19
|
readonly decisions: readonly DashboardDecision[];
|
|
18
20
|
readonly nameById: ReadonlyMap<string, string>;
|
|
21
|
+
readonly timezone: string;
|
|
19
22
|
}): React.JSX.Element;
|
|
20
23
|
//# sourceMappingURL=sections.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sections.d.ts","sourceRoot":"","sources":["../../../src/pages/dashboard/sections.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EAEd,MAAM,iBAAiB,CAAA;AAQxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAyDlD,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,YAAY,EAAE,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA+BrG;AAED,wBAAgB,YAAY,CAAC,EAC3B,UAAU,EACV,QAAQ,EACR,GAAG,
|
|
1
|
+
{"version":3,"file":"sections.d.ts","sourceRoot":"","sources":["../../../src/pages/dashboard/sections.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EAEd,MAAM,iBAAiB,CAAA;AAQxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAyDlD,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,YAAY,EAAE,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA+BrG;AAED,wBAAgB,YAAY,CAAC,EAC3B,UAAU,EACV,QAAQ,EACR,GAAG,EACH,QAAQ,GACT,EAAE;IACD,QAAQ,CAAC,UAAU,EAAE,SAAS,iBAAiB,EAAE,CAAA;IACjD,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9C,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAA;IAClB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAqDpB;AAiBD,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,QAAQ,EACR,GAAG,EACH,QAAQ,GACT,EAAE;IACD,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAA;IACxC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9C,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAA;IAClB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA+BpB;AAED,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,QAAQ,CAAC,SAAS,EAAE,SAAS,iBAAiB,EAAE,CAAA;IAChD,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAuCpB"}
|
|
@@ -38,8 +38,8 @@ function EmptyOr({ isEmpty, empty, children, }) {
|
|
|
38
38
|
export function AttentionList({ rows }) {
|
|
39
39
|
return (_jsxs("section", { children: [_jsx(SectionHeader, { title: "Needs attention", description: "The signals behind the brief." }), _jsx(EmptyOr, { isEmpty: rows.length === 0, empty: "Nothing urgent right now.", children: _jsx("ul", { className: "divide-y divide-border border-y border-border", children: rows.map((row) => (_jsxs("li", { className: "py-3", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsx(Chip, { tone: row.tone, children: row.label }), _jsx("span", { className: "text-[11px] text-ink-faint", children: row.meta })] }), row.href === undefined ? (_jsx("p", { className: "mt-1.5 text-[13px] font-medium text-ink", children: row.title })) : (_jsx(Link, { to: row.href, className: "mt-1.5 block text-[13px] font-medium text-ink hover:text-accent", children: row.title })), row.detail !== '' && (_jsx("p", { className: "mt-0.5 line-clamp-2 text-[12px] text-ink-muted", children: row.detail }))] }, row.id))) }) })] }));
|
|
40
40
|
}
|
|
41
|
-
export function ActivityFeed({ activities, nameById, now, }) {
|
|
42
|
-
return (_jsxs("section", { children: [_jsx(SectionHeader, { title: "Recent activity", description: "The latest events across people, companies, and pipelines." }), _jsx(EmptyOr, { isEmpty: activities.length === 0, empty: "No activity yet.", children: _jsx("ol", { className: "divide-y divide-border border-y border-border", children: activities.map((activity, index) => (_jsxs("li", { className: "flex gap-2 py-3", children: [_jsxs("div", { className: "relative flex w-5 shrink-0 justify-center", children: [index < activities.length - 1 && (_jsx("span", { "aria-hidden": true, className: "absolute top-5 bottom-[-12px] left-1/2 w-px -translate-x-1/2 bg-border" })), _jsx("div", { className: "relative z-10 flex h-5 w-5 items-center justify-center rounded border border-border bg-surface text-[9px] font-medium tracking-wide text-ink-muted uppercase", title: activity.kind, children: KIND_GLYPHS[activity.kind] })] }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "flex items-baseline justify-between gap-3", children: [_jsxs("p", { className: "min-w-0 text-[12px] leading-snug text-ink", children: [_jsx("span", { className: "font-semibold", children: actorNameFor(activity, nameById) }), ' ', _jsx("span", { className: "text-ink-muted", children: activity.action })] }), _jsx("time", { dateTime: activity.createdAt.toISOString(), className: "shrink-0 text-[11px] text-ink-faint", children: formatRelativeTime(activity.createdAt, now) })] }), _jsxs("p", { className: "text-[11px] leading-snug text-ink-faint", children: ["on ", _jsx("span", { className: "text-ink-muted", children: targetTypeLabel(activity.targetType) }), ' · ', _jsx(TargetLink, { target: activity })] }), activity.detail !== null && (_jsx("p", { className: "text-[11px] leading-snug text-ink-faint", children: activity.detail }))] })] }, activity.id))) }) })] }));
|
|
41
|
+
export function ActivityFeed({ activities, nameById, now, timezone, }) {
|
|
42
|
+
return (_jsxs("section", { children: [_jsx(SectionHeader, { title: "Recent activity", description: "The latest events across people, companies, and pipelines." }), _jsx(EmptyOr, { isEmpty: activities.length === 0, empty: "No activity yet.", children: _jsx("ol", { className: "divide-y divide-border border-y border-border", children: activities.map((activity, index) => (_jsxs("li", { className: "flex gap-2 py-3", children: [_jsxs("div", { className: "relative flex w-5 shrink-0 justify-center", children: [index < activities.length - 1 && (_jsx("span", { "aria-hidden": true, className: "absolute top-5 bottom-[-12px] left-1/2 w-px -translate-x-1/2 bg-border" })), _jsx("div", { className: "relative z-10 flex h-5 w-5 items-center justify-center rounded border border-border bg-surface text-[9px] font-medium tracking-wide text-ink-muted uppercase", title: activity.kind, children: KIND_GLYPHS[activity.kind] })] }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "flex items-baseline justify-between gap-3", children: [_jsxs("p", { className: "min-w-0 text-[12px] leading-snug text-ink", children: [_jsx("span", { className: "font-semibold", children: actorNameFor(activity, nameById) }), ' ', _jsx("span", { className: "text-ink-muted", children: activity.action })] }), _jsx("time", { dateTime: activity.createdAt.toISOString(), className: "shrink-0 text-[11px] text-ink-faint", children: formatRelativeTime(activity.createdAt, timezone, now) })] }), _jsxs("p", { className: "text-[11px] leading-snug text-ink-faint", children: ["on ", _jsx("span", { className: "text-ink-muted", children: targetTypeLabel(activity.targetType) }), ' · ', _jsx(TargetLink, { target: activity })] }), activity.detail !== null && (_jsx("p", { className: "text-[11px] leading-snug text-ink-faint", children: activity.detail }))] })] }, activity.id))) }) })] }));
|
|
43
43
|
}
|
|
44
44
|
/**
|
|
45
45
|
* Exactly one of the two actor columns is set. `actorLabel` carries the display
|
|
@@ -51,10 +51,10 @@ function actorNameFor(activity, nameById) {
|
|
|
51
51
|
}
|
|
52
52
|
return nameById.get(activity.actorMemberId) ?? 'Unknown';
|
|
53
53
|
}
|
|
54
|
-
export function NotesList({ notes, nameById, now, }) {
|
|
55
|
-
return (_jsxs("section", { children: [_jsx(SectionHeader, { title: "Recent notes", description: "Pinned notes surface first." }), _jsx(EmptyOr, { isEmpty: notes.length === 0, empty: "No notes yet.", children: _jsx("ul", { className: "divide-y divide-border border-y border-border", children: notes.map((note) => (_jsxs("li", { className: "py-3", children: [_jsxs("div", { className: "flex items-start justify-between gap-2", children: [_jsx("p", { className: "line-clamp-3 text-[13px] leading-relaxed text-ink", children: note.body }), note.pinned && (_jsx("span", { className: "shrink-0 text-[10px] font-medium tracking-wide text-accent uppercase", children: "Pinned" }))] }), _jsxs("div", { className: "mt-2 flex flex-wrap items-center gap-2 text-[11px] text-ink-faint", children: [_jsx(TargetLink, { target: note }), _jsx("span", { children: "\u00B7" }), _jsx("span", { children: targetTypeLabel(note.targetType) }), _jsx("span", { children: "\u00B7" }), _jsx("span", { children: note.authorId === null ? 'System' : (nameById.get(note.authorId) ?? 'Unknown') }), _jsx("span", { children: "\u00B7" }), _jsx("span", { children: formatRelativeTime(note.createdAt, now) })] })] }, note.id))) }) })] }));
|
|
54
|
+
export function NotesList({ notes, nameById, now, timezone, }) {
|
|
55
|
+
return (_jsxs("section", { children: [_jsx(SectionHeader, { title: "Recent notes", description: "Pinned notes surface first." }), _jsx(EmptyOr, { isEmpty: notes.length === 0, empty: "No notes yet.", children: _jsx("ul", { className: "divide-y divide-border border-y border-border", children: notes.map((note) => (_jsxs("li", { className: "py-3", children: [_jsxs("div", { className: "flex items-start justify-between gap-2", children: [_jsx("p", { className: "line-clamp-3 text-[13px] leading-relaxed text-ink", children: note.body }), note.pinned && (_jsx("span", { className: "shrink-0 text-[10px] font-medium tracking-wide text-accent uppercase", children: "Pinned" }))] }), _jsxs("div", { className: "mt-2 flex flex-wrap items-center gap-2 text-[11px] text-ink-faint", children: [_jsx(TargetLink, { target: note }), _jsx("span", { children: "\u00B7" }), _jsx("span", { children: targetTypeLabel(note.targetType) }), _jsx("span", { children: "\u00B7" }), _jsx("span", { children: note.authorId === null ? 'System' : (nameById.get(note.authorId) ?? 'Unknown') }), _jsx("span", { children: "\u00B7" }), _jsx("span", { children: formatRelativeTime(note.createdAt, timezone, now) })] })] }, note.id))) }) })] }));
|
|
56
56
|
}
|
|
57
|
-
export function DecisionsList({ decisions, nameById, }) {
|
|
58
|
-
return (_jsxs("section", { children: [_jsxs("div", { className: "mb-3 flex items-start justify-between gap-2", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("h2", { className: "text-[13px] font-semibold text-ink", children: "Recent decisions" }), _jsx("p", { className: "mt-0.5 text-[11px] text-ink-faint", children: "Commitments agents should not contradict." })] }), _jsx(Link, { to: "/decisions", className: "shrink-0 text-[12px] font-medium text-accent hover:underline", children: "View all" })] }), _jsx(EmptyOr, { isEmpty: decisions.length === 0, empty: "No decisions yet.", children: _jsx("ul", { className: "divide-y divide-border border-y border-border", children: decisions.map((decision) => (_jsxs("li", { className: "py-3", children: [_jsx("p", { className: "text-[13px] font-medium text-ink", children: decision.body }), decision.rationale !== null && (_jsx("p", { className: "mt-0.5 line-clamp-2 text-[12px] text-ink-muted", children: decision.rationale })), _jsxs("div", { className: "mt-2 flex flex-wrap items-center gap-2 text-[11px] text-ink-faint", children: [_jsx(TargetLink, { target: decision }), _jsx("span", { children: "\u00B7" }), _jsx("span", { children: formatDate(decision.decidedAt) }), _jsx("span", { children: "\u00B7" }), _jsx("span", { children: decision.ownerId === null ? '—' : (nameById.get(decision.ownerId) ?? 'Unknown') })] })] }, decision.id))) }) })] }));
|
|
57
|
+
export function DecisionsList({ decisions, nameById, timezone, }) {
|
|
58
|
+
return (_jsxs("section", { children: [_jsxs("div", { className: "mb-3 flex items-start justify-between gap-2", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("h2", { className: "text-[13px] font-semibold text-ink", children: "Recent decisions" }), _jsx("p", { className: "mt-0.5 text-[11px] text-ink-faint", children: "Commitments agents should not contradict." })] }), _jsx(Link, { to: "/decisions", className: "shrink-0 text-[12px] font-medium text-accent hover:underline", children: "View all" })] }), _jsx(EmptyOr, { isEmpty: decisions.length === 0, empty: "No decisions yet.", children: _jsx("ul", { className: "divide-y divide-border border-y border-border", children: decisions.map((decision) => (_jsxs("li", { className: "py-3", children: [_jsx("p", { className: "text-[13px] font-medium text-ink", children: decision.body }), decision.rationale !== null && (_jsx("p", { className: "mt-0.5 line-clamp-2 text-[12px] text-ink-muted", children: decision.rationale })), _jsxs("div", { className: "mt-2 flex flex-wrap items-center gap-2 text-[11px] text-ink-faint", children: [_jsx(TargetLink, { target: decision }), _jsx("span", { children: "\u00B7" }), _jsx("span", { children: formatDate(decision.decidedAt, timezone) }), _jsx("span", { children: "\u00B7" }), _jsx("span", { children: decision.ownerId === null ? '—' : (nameById.get(decision.ownerId) ?? 'Unknown') })] })] }, decision.id))) }) })] }));
|
|
59
59
|
}
|
|
60
60
|
//# sourceMappingURL=sections.js.map
|