aimeat 1.20.0 → 1.20.2
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/locales/en.json +42 -1
- package/dist/locales/fi.json +42 -1
- package/dist/public/css/views/profile.css +81 -5
- package/dist/public/css/views/public-workspace-viewer.css +206 -0
- package/dist/public/js/services/organisms.js +122 -1
- package/dist/public/llms-template.txt +7 -2
- package/dist/public/spa.html +2 -0
- package/dist/public/views/profile/organisms-tab.js +157 -9
- package/dist/public/views/public-workspace-viewer.js +128 -0
- package/dist/src/cli/connect/mcp/tools/workspaces.d.ts.map +1 -1
- package/dist/src/cli/connect/mcp/tools/workspaces.js +15 -9
- package/dist/src/cli/connect/mcp/tools/workspaces.js.map +1 -1
- package/dist/src/cli/connect/tool-call.d.ts.map +1 -1
- package/dist/src/cli/connect/tool-call.js +10 -6
- package/dist/src/cli/connect/tool-call.js.map +1 -1
- package/dist/src/generated/api-types.d.ts +204 -0
- package/dist/src/generated/api-types.d.ts.map +1 -1
- package/dist/src/mcp/catalog/definitions.d.ts.map +1 -1
- package/dist/src/mcp/catalog/definitions.js +3 -2
- package/dist/src/mcp/catalog/definitions.js.map +1 -1
- package/dist/src/mcp/workspaces.d.ts +19 -0
- package/dist/src/mcp/workspaces.d.ts.map +1 -1
- package/dist/src/mcp/workspaces.js +147 -51
- package/dist/src/mcp/workspaces.js.map +1 -1
- package/dist/src/middleware/workspace-access.d.ts +5 -0
- package/dist/src/middleware/workspace-access.d.ts.map +1 -1
- package/dist/src/middleware/workspace-access.js +52 -15
- package/dist/src/middleware/workspace-access.js.map +1 -1
- package/dist/src/routes/organisms.d.ts +11 -0
- package/dist/src/routes/organisms.d.ts.map +1 -1
- package/dist/src/routes/organisms.js +357 -31
- package/dist/src/routes/organisms.js.map +1 -1
- package/dist/src/routes/portal.d.ts.map +1 -1
- package/dist/src/routes/portal.js +1 -0
- package/dist/src/routes/portal.js.map +1 -1
- package/dist/src/services/handbooks/agent.d.ts +3 -1
- package/dist/src/services/handbooks/agent.d.ts.map +1 -1
- package/dist/src/services/handbooks/agent.js +3 -1
- package/dist/src/services/handbooks/agent.js.map +1 -1
- package/dist/src/services/handbooks/appdev.d.ts +3 -1
- package/dist/src/services/handbooks/appdev.d.ts.map +1 -1
- package/dist/src/services/handbooks/appdev.js +19 -0
- package/dist/src/services/handbooks/appdev.js.map +1 -1
- package/dist/src/services/workspace-meta.d.ts +10 -0
- package/dist/src/services/workspace-meta.d.ts.map +1 -1
- package/dist/src/services/workspace-meta.js +50 -3
- package/dist/src/services/workspace-meta.js.map +1 -1
- package/package.json +1 -1
|
@@ -51,6 +51,15 @@
|
|
|
51
51
|
* (⬆ in the bar, uploads a ZIP → new workspace) buttons.
|
|
52
52
|
* v1.12.0 — 2026-06-09 — Organism-level backup: "Export organism" (whole org ZIP) in the org view +
|
|
53
53
|
* "Import organism" (→ new org) in the My Organisms header.
|
|
54
|
+
* v1.13.0 — 2026-06-09 — Workspace header restyle: parent-organism breadcrumb so you always see
|
|
55
|
+
* which organism the workspace is in; status badge moved inline with the name; the action row
|
|
56
|
+
* became a tinted .pj-toolbar (consistent buttons + vertical separators, review-gate pushed
|
|
57
|
+
* apart); "+ Space" relabelled "+ Document space"; horizontal dividers split header / charts /
|
|
58
|
+
* manifest panels; section-head add-actions sit next to their title and lift off the panel.
|
|
59
|
+
* v1.14.0 — 2026-06-09 — ParticipantsPanel "Manage who can work here" (creator-only): add a member by
|
|
60
|
+
* name with a role (viewer/contributor), switch roles, remove; approve/deny pending requests. New
|
|
61
|
+
* "Create contract agent" AI-prompt button (orgService.buildContractAgentPrompt) copies a full
|
|
62
|
+
* contract-agent build prompt for THIS workspace. See docs/agent-workspace-contracts.md.
|
|
54
63
|
*/
|
|
55
64
|
import { h } from 'preact';
|
|
56
65
|
import { useState, useEffect, useCallback, useRef } from 'preact/hooks';
|
|
@@ -818,6 +827,10 @@ function ActivityPanel({ orgId, wsId }) {
|
|
|
818
827
|
function ParticipantsPanel({ orgId, wsId }) {
|
|
819
828
|
const [data, setData] = useState(null);
|
|
820
829
|
const [show, setShow] = useState(true);
|
|
830
|
+
const [access, setAccess] = useState(null); // { requests, members } — only for the workspace creator
|
|
831
|
+
const [grantee, setGrantee] = useState('');
|
|
832
|
+
const [role, setRole] = useState('contributor');
|
|
833
|
+
const [busy, setBusy] = useState(false);
|
|
821
834
|
useEffect(() => {
|
|
822
835
|
let cancelled = false;
|
|
823
836
|
const fetchIt = () => orgService.getWorkspaceParticipants(orgId, wsId).then(d => { if (!cancelled) setData(d); }).catch(() => {});
|
|
@@ -825,9 +838,20 @@ function ParticipantsPanel({ orgId, wsId }) {
|
|
|
825
838
|
window.addEventListener('aimeat-live-update', fetchIt);
|
|
826
839
|
return () => { cancelled = true; window.removeEventListener('aimeat-live-update', fetchIt); };
|
|
827
840
|
}, [orgId, wsId]);
|
|
841
|
+
const isManager = !!(data && (data.nodes || []).some(n => (n.owners || []).some(o => o.isSelf && o.isCreator)));
|
|
842
|
+
const loadAccess = () => orgService.getWorkspaceAccess(orgId, wsId).then(setAccess).catch(() => {});
|
|
843
|
+
useEffect(() => { if (isManager) loadAccess(); }, [isManager, orgId, wsId, data]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
828
844
|
if (!data || !(data.nodes || []).length) return null;
|
|
829
845
|
const owners = [];
|
|
830
846
|
for (const n of data.nodes) for (const o of (n.owners || [])) owners.push({ ...o, node: n.id, isLocalNode: n.isLocal });
|
|
847
|
+
|
|
848
|
+
const after = async (p) => { setBusy(true); try { await p; await loadAccess(); } catch (e) { /* the row stays so the user can retry */ } finally { setBusy(false); } };
|
|
849
|
+
const doGrant = (g, r) => { const name = (g || '').trim(); if (name) { after(orgService.grantWorkspaceRole(orgId, wsId, name, r)); setGrantee(''); } };
|
|
850
|
+
const doRevoke = (g) => after(orgService.revokeWorkspaceRole(orgId, wsId, g));
|
|
851
|
+
const doDecide = (requester, decision) => after(orgService.decideWorkspaceAccess(orgId, wsId, requester, decision));
|
|
852
|
+
const pending = (access?.requests || []).filter(r => r.status === 'pending');
|
|
853
|
+
const members = access?.members || [];
|
|
854
|
+
|
|
831
855
|
return html`
|
|
832
856
|
<div class="pj-chart">
|
|
833
857
|
<div class="pj-chart-head">
|
|
@@ -856,6 +880,37 @@ function ParticipantsPanel({ orgId, wsId }) {
|
|
|
856
880
|
</div>` : null}
|
|
857
881
|
</div>`)}
|
|
858
882
|
</div>
|
|
883
|
+
${isManager ? html`
|
|
884
|
+
<div class="pj-access">
|
|
885
|
+
<div class="pj-access-title">${t('organisms.manageAccess') || 'Manage who can work here'}</div>
|
|
886
|
+
${pending.map(r => html`<div class="pj-access-row" key=${'req-' + r.requester}>
|
|
887
|
+
<span class="pj-access-who">${'🙋 '}<strong>${escHtml(r.requester)}</strong> <span class="pj-access-note">${t('organisms.requestedAccess') || 'requested access'}</span></span>
|
|
888
|
+
<span class="pj-access-actions">
|
|
889
|
+
<button class="btn-success btn-sm" disabled=${busy} onClick=${() => doDecide(r.requester, 'contributor')}>${t('organisms.addAsContributor') || 'Add as contributor'}</button>
|
|
890
|
+
<button class="btn-outline btn-sm" disabled=${busy} onClick=${() => doDecide(r.requester, 'viewer')}>${t('organisms.addAsViewer') || 'as viewer'}</button>
|
|
891
|
+
<button class="btn-danger btn-sm" disabled=${busy} onClick=${() => doDecide(r.requester, 'deny')}>${t('organisms.deny') || 'Deny'}</button>
|
|
892
|
+
</span>
|
|
893
|
+
</div>`)}
|
|
894
|
+
${members.map(m => html`<div class="pj-access-row" key=${'mem-' + m.owner}>
|
|
895
|
+
<span class="pj-access-who">${'👤 '}<strong>${escHtml(m.owner)}</strong> <span class="badge ${m.role === 'contributor' ? 'badge-success' : 'badge-info'} pj-mini">${m.role === 'contributor' ? (t('organisms.roleContributorShort') || 'contributor') : (t('organisms.roleViewerShort') || 'viewer')}</span></span>
|
|
896
|
+
<span class="pj-access-actions">
|
|
897
|
+
${m.role === 'viewer'
|
|
898
|
+
? html`<button class="btn-outline btn-sm" disabled=${busy} onClick=${() => doGrant(m.owner, 'contributor')}>${t('organisms.makeContributor') || '→ can write'}</button>`
|
|
899
|
+
: html`<button class="btn-outline btn-sm" disabled=${busy} onClick=${() => doGrant(m.owner, 'viewer')}>${t('organisms.makeViewer') || '→ read only'}</button>`}
|
|
900
|
+
<button class="btn-danger btn-sm" disabled=${busy} onClick=${() => doRevoke(m.owner)}>${t('organisms.remove') || 'Remove'}</button>
|
|
901
|
+
</span>
|
|
902
|
+
</div>`)}
|
|
903
|
+
<div class="pj-access-add">
|
|
904
|
+
<input class="pj-access-input" placeholder=${t('organisms.addMemberPlaceholder') || 'owner name (or owner@node / agent#owner@node)'} value=${grantee}
|
|
905
|
+
onInput=${e => setGrantee(e.target.value)} onKeyDown=${e => { if (e.key === 'Enter') doGrant(grantee, role); }} />
|
|
906
|
+
<select class="pj-access-role" value=${role} onChange=${e => setRole(e.target.value)}>
|
|
907
|
+
<option value="contributor">${t('organisms.roleContributor') || 'contributor (read + write)'}</option>
|
|
908
|
+
<option value="viewer">${t('organisms.roleViewer') || 'viewer (read only)'}</option>
|
|
909
|
+
</select>
|
|
910
|
+
<button class="btn-primary btn-sm" disabled=${busy || !grantee.trim()} onClick=${() => doGrant(grantee, role)}>${'+ '}${t('organisms.addMember') || 'Add'}</button>
|
|
911
|
+
</div>
|
|
912
|
+
<div class="pj-access-hint">${t('organisms.accessHint') || 'Members can be a different account; their agents inherit the role. Viewers read; contributors read + write.'}</div>
|
|
913
|
+
</div>` : null}
|
|
859
914
|
</div>` : null}
|
|
860
915
|
</div>`;
|
|
861
916
|
}
|
|
@@ -909,6 +964,9 @@ function Workspace({ org, wsId, showToast, onBack }) {
|
|
|
909
964
|
const [expandedRec, setExpandedRec] = useState({}); // { "type:id": true } — records expanded to view fields
|
|
910
965
|
const [showSpaces, setShowSpaces] = useState(false); // inline add-space form at the workspace top
|
|
911
966
|
const [showFlow, setShowFlow] = useState(true); // the manifest-defined edit-flow chart (first item)
|
|
967
|
+
const [showShare, setShowShare] = useState(false); // public-sharing panel
|
|
968
|
+
const [share, setShare] = useState(null); // { public, spaces, docs } — lazy-loaded when the panel opens
|
|
969
|
+
const [shareBusy, setShareBusy] = useState(false);
|
|
912
970
|
|
|
913
971
|
const load = useCallback(async () => {
|
|
914
972
|
const w = await orgService.getWorkspace(orgId, wsId).catch(() => null);
|
|
@@ -1216,6 +1274,14 @@ function Workspace({ org, wsId, showToast, onBack }) {
|
|
|
1216
1274
|
} catch (e) { showToast((e && e.message) || 'Failed to build prompt'); }
|
|
1217
1275
|
}, [orgId, org, wsId, ws, showToast]);
|
|
1218
1276
|
|
|
1277
|
+
const copyContractPrompt = useCallback(async () => {
|
|
1278
|
+
try {
|
|
1279
|
+
const text = await orgService.buildContractAgentPrompt(orgId, org.name, wsId, ws);
|
|
1280
|
+
await copyToClipboard(text);
|
|
1281
|
+
showToast(t('organisms.contractPromptCopied') || 'Contract-agent prompt copied — paste it to your AI / coding agent.');
|
|
1282
|
+
} catch (e) { showToast((e && e.message) || 'Failed to build prompt'); }
|
|
1283
|
+
}, [orgId, org, wsId, ws, showToast]);
|
|
1284
|
+
|
|
1219
1285
|
// The AI / paste generator — reused for a fresh workspace AND for "restructure" (where, via
|
|
1220
1286
|
// showRegenerate, generate/copyPrompt pass the current manifest so the AI EXTENDS it additively).
|
|
1221
1287
|
const renderGenerator = () => html`
|
|
@@ -1270,7 +1336,12 @@ function Workspace({ org, wsId, showToast, onBack }) {
|
|
|
1270
1336
|
</div>
|
|
1271
1337
|
`;
|
|
1272
1338
|
|
|
1273
|
-
const back = html
|
|
1339
|
+
const back = html`
|
|
1340
|
+
<div class="pj-ws-crumbs">
|
|
1341
|
+
<button class="btn-ghost btn-sm" onClick=${onBack}>${'← '}${t('organisms.backToWorkspaces') || 'Workspaces'}</button>
|
|
1342
|
+
<span class="pj-crumb-sep">/</span>
|
|
1343
|
+
<span class="pj-crumb-org" title=${t('organisms.workspaceOrganism') || 'Organism'}>${'🧬 '}${escHtml(org.name || '')}</span>
|
|
1344
|
+
</div>`;
|
|
1274
1345
|
|
|
1275
1346
|
if (ws === undefined) return html`<div>${back}<${Spinner} text=${t('organisms.loading') || 'Loading...'} /></div>`;
|
|
1276
1347
|
|
|
@@ -1290,6 +1361,34 @@ function Workspace({ org, wsId, showToast, onBack }) {
|
|
|
1290
1361
|
const draftsFor = (name) => (ws.drafts && ws.drafts[name]) || [];
|
|
1291
1362
|
const objectsFor = (name) => (ws.objects && ws.objects[name]) || [];
|
|
1292
1363
|
|
|
1364
|
+
// ── Public sharing (meta.share) — what published document-space pages anyone can read via the
|
|
1365
|
+
// no-login viewer. Independent of the access roles. Lazy-loaded the first time the panel opens. ──
|
|
1366
|
+
const docTypes = types.filter(ot => ot.mode === 'document');
|
|
1367
|
+
const loadShare = async () => {
|
|
1368
|
+
setShareBusy(true);
|
|
1369
|
+
try { setShare(await orgService.getWorkspaceShare(orgId, wsId)); } finally { setShareBusy(false); }
|
|
1370
|
+
};
|
|
1371
|
+
const patchShare = async (patch) => {
|
|
1372
|
+
setShareBusy(true);
|
|
1373
|
+
try { setShare(await orgService.setWorkspaceShare(orgId, wsId, patch)); }
|
|
1374
|
+
catch (e) { showToast((e && e.message) || (t('organisms.shareFailed') || 'Failed to update sharing')); }
|
|
1375
|
+
finally { setShareBusy(false); }
|
|
1376
|
+
};
|
|
1377
|
+
// Effective public state of one doc — mirrors the backend: doc override → space flag → workspace flag.
|
|
1378
|
+
const isDocPublic = (typeName, id) => {
|
|
1379
|
+
if (!share) return false;
|
|
1380
|
+
const dk = `${typeName}/${id}`;
|
|
1381
|
+
if (Object.prototype.hasOwnProperty.call(share.docs || {}, dk)) return !!share.docs[dk];
|
|
1382
|
+
if (Object.prototype.hasOwnProperty.call(share.spaces || {}, typeName)) return !!share.spaces[typeName];
|
|
1383
|
+
return !!share.public;
|
|
1384
|
+
};
|
|
1385
|
+
const anythingPublic = () => !!share && (!!share.public
|
|
1386
|
+
|| Object.values(share.spaces || {}).some(Boolean) || Object.values(share.docs || {}).some(Boolean));
|
|
1387
|
+
const copyShareLink = async (url) => {
|
|
1388
|
+
try { await navigator.clipboard.writeText(window.location.origin + url); showToast(t('organisms.linkCopied') || 'Link copied'); }
|
|
1389
|
+
catch { showToast(t('organisms.copyFailed') || 'Copy failed'); }
|
|
1390
|
+
};
|
|
1391
|
+
|
|
1293
1392
|
// A document-space: left index (section tree + documents, with an Unsorted group) + a main
|
|
1294
1393
|
// area showing the active document (view/edit). Sections nest via parentId; documents are
|
|
1295
1394
|
// tied to a section's documents[] (or unsorted). Edits to the tree persist immediately.
|
|
@@ -1393,23 +1492,29 @@ function Workspace({ org, wsId, showToast, onBack }) {
|
|
|
1393
1492
|
<div class="pj-ws">
|
|
1394
1493
|
<${ConfirmUI} />
|
|
1395
1494
|
${back}
|
|
1396
|
-
<div class="
|
|
1397
|
-
|
|
1495
|
+
<div class="pj-ws-titlerow">
|
|
1496
|
+
<span class="section-title pj-ws-title">${escHtml(ws.manifest?.name || org.name || 'Workspace')}</span>
|
|
1398
1497
|
<span class="badge badge-success">${escHtml(ws.manifest?.status || 'active')}</span>
|
|
1399
|
-
${ws.manifest?.summary ? html` ${escHtml(ws.manifest.summary)}` : null}
|
|
1400
1498
|
</div>
|
|
1499
|
+
${ws.manifest?.summary ? html`<div class="section-desc">${escHtml(ws.manifest.summary)}</div>` : null}
|
|
1500
|
+
|
|
1501
|
+
<div class="pj-divider"></div>
|
|
1401
1502
|
|
|
1402
|
-
<div class="pj-
|
|
1403
|
-
<button class="btn-
|
|
1404
|
-
<button class="btn-
|
|
1503
|
+
<div class="pj-toolbar">
|
|
1504
|
+
<button class="btn-ghost btn-sm" onClick=${() => setShowSettings(s => !s)}>${'⚙ '}${t('organisms.settings') || 'Settings'}</button>
|
|
1505
|
+
<button class="btn-ghost btn-sm" onClick=${() => setShowSpaces(s => !s)}>${'+ '}${t('organisms.addSpaceBtn') || 'Document space'}</button>
|
|
1506
|
+
${docTypes.length > 0 ? html`<button class="btn-ghost btn-sm" title=${t('organisms.shareHint') || 'Publish document pages to a public, no-login link'} onClick=${() => { const n = !showShare; setShowShare(n); if (n && share === null) loadShare(); }}>${'🌐 '}${t('organisms.share') || 'Share'}</button>` : null}
|
|
1507
|
+
<span class="pj-toolbar-sep"></span>
|
|
1405
1508
|
<span class="pj-ai-prompt">
|
|
1406
1509
|
<span class="pj-ai-prompt-label">${'🤖 '}${t('organisms.aiPrompt') || 'AI access prompt:'}</span>
|
|
1407
1510
|
<button class="btn-ghost btn-sm" onClick=${() => copyAccessPrompt('human')}>${t('organisms.aiPromptHuman') || 'For chat'}</button>
|
|
1408
1511
|
<button class="btn-ghost btn-sm" onClick=${() => copyAccessPrompt('agent')}>${t('organisms.aiPromptAgent') || 'For coding agent'}</button>
|
|
1512
|
+
<button class="btn-ghost btn-sm" title=${t('organisms.contractPromptHint') || 'Copy a prompt to build an agent that processes this workspace (reads requests → writes results)'} onClick=${copyContractPrompt}>${'⚙️ '}${t('organisms.contractPrompt') || 'Create contract agent'}</button>
|
|
1409
1513
|
</span>
|
|
1410
|
-
<
|
|
1514
|
+
<span class="pj-toolbar-sep"></span>
|
|
1515
|
+
<label class="pj-gate-label pj-toolbar-gate" title=${t('organisms.publishGateHint') || 'When on, an agent’s publish is held for your review instead of going live'}>
|
|
1411
1516
|
<input type="checkbox" checked=${gateOn} onChange=${toggleGate} disabled=${busy} />
|
|
1412
|
-
${' '}${t('organisms.publishGate') || 'Require review before publishing'}
|
|
1517
|
+
${'🔒 '}${t('organisms.publishGate') || 'Require review before publishing'}
|
|
1413
1518
|
</label>
|
|
1414
1519
|
</div>
|
|
1415
1520
|
|
|
@@ -1428,6 +1533,45 @@ function Workspace({ org, wsId, showToast, onBack }) {
|
|
|
1428
1533
|
</div>
|
|
1429
1534
|
</div>`}
|
|
1430
1535
|
|
|
1536
|
+
${showShare && html`
|
|
1537
|
+
<div class="pj-inbox">
|
|
1538
|
+
<div class="card-h3">${'🌐 '}${t('organisms.sharePublicTitle') || 'Public sharing'}</div>
|
|
1539
|
+
<div class="section-desc">${t('organisms.sharePublicDesc') || 'Make published document-space pages readable by anyone with the link — no login required. Drafts are never shared.'}</div>
|
|
1540
|
+
${!share && shareBusy ? html`<div class="pj-empty">${t('organisms.loading') || 'Loading…'}</div>` : null}
|
|
1541
|
+
${share && docTypes.length === 0 ? html`<div class="pj-empty">${t('organisms.noDocSpaces') || 'This workspace has no document spaces to share.'}</div>` : null}
|
|
1542
|
+
${share ? docTypes.map(ot => {
|
|
1543
|
+
const docs = objectsFor(ot.name);
|
|
1544
|
+
const spaceOn = !!(share.spaces && share.spaces[ot.name]);
|
|
1545
|
+
return html`
|
|
1546
|
+
<div class="pj-share-space" key=${'sh' + ot.name}>
|
|
1547
|
+
<label class="pj-share-row">
|
|
1548
|
+
<input type="checkbox" checked=${spaceOn} disabled=${shareBusy} onChange=${e => patchShare({ spaces: { [ot.name]: e.target.checked } })} />
|
|
1549
|
+
<span class="pj-space-name">${escHtml(ot.name)}</span>
|
|
1550
|
+
<span class="pj-doc-tag">${docs.length} ${t('organisms.docs') || 'docs'}</span>
|
|
1551
|
+
</label>
|
|
1552
|
+
${docs.length === 0
|
|
1553
|
+
? html`<div class="pj-empty pj-share-empty">${t('organisms.noPublishedDocs') || 'No published documents yet — publish a page to share it.'}</div>`
|
|
1554
|
+
: html`<div class="pj-share-docs">
|
|
1555
|
+
${docs.map(d => {
|
|
1556
|
+
const on = isDocPublic(ot.name, d.id);
|
|
1557
|
+
return html`
|
|
1558
|
+
<label class="pj-share-doc" key=${'shd' + d.id}>
|
|
1559
|
+
<input type="checkbox" checked=${on} disabled=${shareBusy} onChange=${e => patchShare({ docs: { [`${ot.name}/${d.id}`]: e.target.checked } })} />
|
|
1560
|
+
<span class="pj-share-doc-title">${escHtml(d.title || d.id)}</span>
|
|
1561
|
+
${on ? html`<a class="pj-share-link" href=${orgService.publicViewerUrl(orgId, wsId, { type: ot.name, id: d.id })} target="_blank" rel="noopener">${t('organisms.openLink') || 'open ↗'}</a>` : null}
|
|
1562
|
+
</label>`;
|
|
1563
|
+
})}
|
|
1564
|
+
</div>`}
|
|
1565
|
+
</div>`;
|
|
1566
|
+
}) : null}
|
|
1567
|
+
${anythingPublic() ? html`
|
|
1568
|
+
<div class="pj-divider"></div>
|
|
1569
|
+
<div class="pj-share-actions">
|
|
1570
|
+
<a class="btn-outline btn-sm" href=${orgService.publicViewerUrl(orgId, wsId)} target="_blank" rel="noopener">${'🔗 '}${t('organisms.openPublicViewer') || 'Open public viewer'}</a>
|
|
1571
|
+
<button class="btn-ghost btn-sm" onClick=${() => copyShareLink(orgService.publicViewerUrl(orgId, wsId))}>${t('organisms.copyLink') || 'Copy link'}</button>
|
|
1572
|
+
</div>` : null}
|
|
1573
|
+
</div>`}
|
|
1574
|
+
|
|
1431
1575
|
${showSettings && html`
|
|
1432
1576
|
<div class="pj-inbox">
|
|
1433
1577
|
<div class="card-h3">${t('organisms.settings') || 'Workspace settings'}</div>
|
|
@@ -1494,6 +1638,8 @@ function Workspace({ org, wsId, showToast, onBack }) {
|
|
|
1494
1638
|
</div>
|
|
1495
1639
|
`}
|
|
1496
1640
|
|
|
1641
|
+
<div class="pj-divider"></div>
|
|
1642
|
+
|
|
1497
1643
|
<${ParticipantsPanel} orgId=${orgId} wsId=${wsId} />
|
|
1498
1644
|
|
|
1499
1645
|
${ws.manifest ? html`
|
|
@@ -1507,6 +1653,8 @@ function Workspace({ org, wsId, showToast, onBack }) {
|
|
|
1507
1653
|
|
|
1508
1654
|
<${ActivityPanel} orgId=${orgId} wsId=${wsId} />
|
|
1509
1655
|
|
|
1656
|
+
${types.length > 0 ? html`<div class="pj-divider"></div>` : null}
|
|
1657
|
+
|
|
1510
1658
|
${types.map(ot => ot.mode === 'document' ? renderDocSpace(ot) : html`
|
|
1511
1659
|
<div class="pj-section" key=${ot.name}>
|
|
1512
1660
|
<div class="pj-section-head">
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file public-workspace-viewer.js
|
|
3
|
+
* @description Public, no-login viewer for an organism workspace's shared document-space pages.
|
|
4
|
+
* Reads the no-auth endpoint GET /v1/organisms/:id/workspace/public/documents?ws=… (which serves
|
|
5
|
+
* only PUBLISHED docs the workspace's meta.share marks public) and renders each page's markdown with
|
|
6
|
+
* the safe Markdown component. A table-of-contents lists the shared pages; [[Wiki links]] jump
|
|
7
|
+
* between them. "Print / Save as PDF" uses the browser's native print (a print stylesheet hides the
|
|
8
|
+
* chrome) — there is no server-side PDF. Deep-link a single page with &type=…&id=….
|
|
9
|
+
* @structure PublicWorkspaceViewer (default export)
|
|
10
|
+
* @usage route /v1/publicworkspaceviewer?org=<id>&ws=<ws>[&type=<space>&id=<docId>]
|
|
11
|
+
* @version-history
|
|
12
|
+
* v1.0.0 — 2026-06-09 — Initial: slice 2 of the workspace public-sharing plan.
|
|
13
|
+
*/
|
|
14
|
+
import { h } from 'preact';
|
|
15
|
+
import { useState, useEffect, useCallback } from 'preact/hooks';
|
|
16
|
+
import htm from 'htm';
|
|
17
|
+
import { t } from '/js/i18n.js';
|
|
18
|
+
import { Markdown } from '/components/Markdown.js';
|
|
19
|
+
import { useViewCSS } from '/components/useViewCSS.js';
|
|
20
|
+
|
|
21
|
+
const html = htm.bind(h);
|
|
22
|
+
|
|
23
|
+
const docKey = (d) => `${d.type}/${d.id}`;
|
|
24
|
+
|
|
25
|
+
function parseParams() {
|
|
26
|
+
const p = new URLSearchParams(window.location.search);
|
|
27
|
+
return { org: p.get('org') || '', ws: p.get('ws') || '', type: p.get('type') || '', id: p.get('id') || '' };
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export default function PublicWorkspaceViewer() {
|
|
31
|
+
useViewCSS('/css/views/public-workspace-viewer.css');
|
|
32
|
+
const { org, ws, type, id } = parseParams();
|
|
33
|
+
const [docs, setDocs] = useState(undefined); // undefined = loading, [] = none/unavailable, array = loaded
|
|
34
|
+
const [selected, setSelected] = useState(null);
|
|
35
|
+
const [error, setError] = useState(null);
|
|
36
|
+
|
|
37
|
+
const load = useCallback(async () => {
|
|
38
|
+
if (!org || !ws) { setDocs([]); return; }
|
|
39
|
+
setError(null);
|
|
40
|
+
try {
|
|
41
|
+
const res = await fetch(`/v1/organisms/${encodeURIComponent(org)}/workspace/public/documents?ws=${encodeURIComponent(ws)}`);
|
|
42
|
+
if (res.status === 404) { setDocs([]); return; }
|
|
43
|
+
if (!res.ok) throw new Error(`HTTP ${res.status}`);
|
|
44
|
+
const body = await res.json();
|
|
45
|
+
const list = Array.isArray(body?.data?.documents) ? body.data.documents : [];
|
|
46
|
+
setDocs(list);
|
|
47
|
+
const want = type && id ? `${type}/${id}` : null;
|
|
48
|
+
setSelected(
|
|
49
|
+
(want && list.some(d => docKey(d) === want)) ? want
|
|
50
|
+
: (list[0] ? docKey(list[0]) : null),
|
|
51
|
+
);
|
|
52
|
+
} catch (e) {
|
|
53
|
+
setError((e && e.message) || 'Failed to load');
|
|
54
|
+
setDocs([]);
|
|
55
|
+
}
|
|
56
|
+
}, [org, ws, type, id]);
|
|
57
|
+
|
|
58
|
+
useEffect(() => { load(); }, [load]);
|
|
59
|
+
|
|
60
|
+
// Mark the body while this view is mounted so the print stylesheet can hide the SPA shell chrome
|
|
61
|
+
// (the global nav lives outside this component) without a `:has()` dependency.
|
|
62
|
+
useEffect(() => {
|
|
63
|
+
document.body.classList.add('pwv-active');
|
|
64
|
+
return () => document.body.classList.remove('pwv-active');
|
|
65
|
+
}, []);
|
|
66
|
+
|
|
67
|
+
const current = Array.isArray(docs) ? docs.find(d => docKey(d) === selected) : null;
|
|
68
|
+
useEffect(() => {
|
|
69
|
+
if (current?.title) document.title = `${current.title} — AIMEAT`;
|
|
70
|
+
}, [current?.title]);
|
|
71
|
+
|
|
72
|
+
// [[Wiki links]] jump to another shared page by (case-insensitive) title.
|
|
73
|
+
const onWikiLink = useCallback((title) => {
|
|
74
|
+
if (!Array.isArray(docs)) return;
|
|
75
|
+
const want = String(title).split('#')[0].trim().toLowerCase();
|
|
76
|
+
const hit = docs.find(d => String(d.title).trim().toLowerCase() === want);
|
|
77
|
+
if (hit) setSelected(docKey(hit));
|
|
78
|
+
}, [docs]);
|
|
79
|
+
|
|
80
|
+
if (docs === undefined) {
|
|
81
|
+
return html`<div class="pwv-container"><div class="pwv-state">${t('pwv.loading') || 'Loading…'}</div></div>`;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
if (error) {
|
|
85
|
+
return html`<div class="pwv-container"><div class="pwv-state pwv-error">${error}</div></div>`;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
if (!org || !ws || docs.length === 0) {
|
|
89
|
+
return html`
|
|
90
|
+
<div class="pwv-container">
|
|
91
|
+
<div class="pwv-empty">
|
|
92
|
+
<div class="pwv-empty-icon">🔒</div>
|
|
93
|
+
<h2>${t('pwv.unavailableTitle') || 'Nothing to show here'}</h2>
|
|
94
|
+
<p>${t('pwv.unavailableDesc') || 'This workspace has no publicly shared documents, or the link is incomplete.'}</p>
|
|
95
|
+
</div>
|
|
96
|
+
</div>
|
|
97
|
+
`;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
return html`
|
|
101
|
+
<div class="pwv-container">
|
|
102
|
+
<aside class="pwv-toc">
|
|
103
|
+
<div class="pwv-toc-head">${t('pwv.sharedDocuments') || 'Shared documents'}</div>
|
|
104
|
+
<nav class="pwv-toc-list">
|
|
105
|
+
${docs.map(d => html`
|
|
106
|
+
<button
|
|
107
|
+
class="pwv-toc-item ${docKey(d) === selected ? 'pwv-active' : ''}"
|
|
108
|
+
onClick=${() => setSelected(docKey(d))}
|
|
109
|
+
>${d.title || d.id}</button>
|
|
110
|
+
`)}
|
|
111
|
+
</nav>
|
|
112
|
+
</aside>
|
|
113
|
+
|
|
114
|
+
<main class="pwv-main">
|
|
115
|
+
<div class="pwv-bar">
|
|
116
|
+
<span class="pwv-badge">${t('pwv.publicBadge') || 'Public document'}</span>
|
|
117
|
+
<button class="btn-outline btn-sm pwv-print" onClick=${() => window.print()}>
|
|
118
|
+
${t('pwv.print') || 'Print / Save as PDF'}
|
|
119
|
+
</button>
|
|
120
|
+
</div>
|
|
121
|
+
${current
|
|
122
|
+
? html`<article class="pwv-doc"><${Markdown} text=${current.markdown || ''} onWikiLink=${onWikiLink} /></article>`
|
|
123
|
+
: html`<div class="pwv-state">${t('pwv.selectDocument') || 'Select a document.'}</div>`
|
|
124
|
+
}
|
|
125
|
+
</main>
|
|
126
|
+
</div>
|
|
127
|
+
`;
|
|
128
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/connect/mcp/tools/workspaces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAI7D,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/connect/mcp/tools/workspaces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAI7D,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAkOpF"}
|
|
@@ -35,11 +35,13 @@ export function registerWorkspaceTools(mcp, registry) {
|
|
|
35
35
|
return v;
|
|
36
36
|
};
|
|
37
37
|
mcp.tool('aimeat_workspace_list', descriptionFor('aimeat_workspace_list'), { organism_id: z.string().describe('Organism id') }, annotationsFor('aimeat_workspace_list'), async ({ organism_id }) => {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
38
|
+
// Membership-gated discovery route (aggregates the registry across all members + resolves access
|
|
39
|
+
// by owner). A raw /v1/memory prefix read is caller-scoped → a sub-agent would see an empty list.
|
|
40
|
+
const resp = await client.get(`/v1/organisms/${encodeURIComponent(organism_id)}/workspaces`);
|
|
41
|
+
if (resp.ok === false)
|
|
42
|
+
return text(resp.error ?? resp, true);
|
|
43
|
+
const workspaces = resp.data?.workspaces ?? [];
|
|
44
|
+
return text({ organism_id, workspaces });
|
|
43
45
|
});
|
|
44
46
|
mcp.tool('aimeat_workspace_read', descriptionFor('aimeat_workspace_read'), { organism_id: z.string(), ws: z.string().describe('Workspace id (from aimeat_workspace_list)') }, annotationsFor('aimeat_workspace_read'), async ({ organism_id, ws }) => {
|
|
45
47
|
const resp = await client.get(`/v1/organisms/${encodeURIComponent(organism_id)}/workspace?ws=${encodeURIComponent(ws)}`);
|
|
@@ -89,22 +91,26 @@ export function registerWorkspaceTools(mcp, registry) {
|
|
|
89
91
|
organism_id: z.string(), ws: z.string(),
|
|
90
92
|
name: z.string().optional().describe('New workspace name (synced to manifest + registry)'),
|
|
91
93
|
readme: z.string().optional().describe('New markdown readme/intro (replaces the current one)'),
|
|
92
|
-
|
|
94
|
+
add_spaces: z.any().optional().describe('ADDITIVE (safe): an ARRAY of objectTypes to UNION into the manifest — the server keeps everything else and skips any whose name/namespace already exists. Pass just { name, namespace, mode } (+ a schema in `schemas`); defaults are filled. Prefer this over `manifest` to add spaces. Cannot remove/rename.'),
|
|
95
|
+
manifest: z.any().optional().describe('FULL replacement manifest (objectTypes + policy/gate + settings) as a JSON OBJECT. For genuine restructuring (rename/remove a space, change policy.alwaysGate). Read the workspace first; the id is preserved.'),
|
|
93
96
|
schemas: z.any().optional().describe('Map of namespace → JSON Schema (object) to lock (strict) for a records space.'),
|
|
94
|
-
}, annotationsFor('aimeat_workspace_update'), async ({ organism_id, ws, name, readme, manifest, schemas }) => {
|
|
97
|
+
}, annotationsFor('aimeat_workspace_update'), async ({ organism_id, ws, name, readme, add_spaces, manifest, schemas }) => {
|
|
95
98
|
const body = {};
|
|
96
99
|
if (typeof name === 'string')
|
|
97
100
|
body.name = name;
|
|
98
101
|
if (typeof readme === 'string')
|
|
99
102
|
body.readme = readme;
|
|
103
|
+
const add = parseObj(add_spaces);
|
|
104
|
+
if (Array.isArray(add))
|
|
105
|
+
body.add_spaces = add;
|
|
100
106
|
const man = parseObj(manifest);
|
|
101
107
|
if (man !== undefined)
|
|
102
108
|
body.manifest = man;
|
|
103
109
|
const sch = parseObj(schemas);
|
|
104
110
|
if (sch !== undefined)
|
|
105
111
|
body.schemas = sch;
|
|
106
|
-
if (body.name === undefined && body.readme === undefined && body.manifest === undefined && body.schemas === undefined)
|
|
107
|
-
return text({ error: 'Provide a name, readme, manifest and/or schemas.' }, true);
|
|
112
|
+
if (body.name === undefined && body.readme === undefined && body.add_spaces === undefined && body.manifest === undefined && body.schemas === undefined)
|
|
113
|
+
return text({ error: 'Provide a name, readme, add_spaces, manifest and/or schemas.' }, true);
|
|
108
114
|
const r = await client.put(`/v1/organisms/${encodeURIComponent(organism_id)}/workspace?ws=${encodeURIComponent(ws)}`, body);
|
|
109
115
|
if (r.ok === false)
|
|
110
116
|
return text({ error: r.error?.message || 'Update failed' }, true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../../../../../src/cli/connect/mcp/tools/workspaces.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../../../../../src/cli/connect/mcp/tools/workspaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-call.d.ts","sourceRoot":"","sources":["../../../../src/cli/connect/tool-call.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,EAA0D,KAAK,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAC/H,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEjE,OAAO,EAA+B,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEpF,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1C,UAAU,wBAAwB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACvC,OAAO,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;CAC9E;AAED,UAAU,eAAe;IACrB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;CACrB;AAkHD,eAAO,MAAM,iBAAiB,EAAE,wBAAwB,
|
|
1
|
+
{"version":3,"file":"tool-call.d.ts","sourceRoot":"","sources":["../../../../src/cli/connect/tool-call.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,EAA0D,KAAK,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAC/H,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEjE,OAAO,EAA+B,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEpF,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1C,UAAU,wBAAwB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACvC,OAAO,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;CAC9E;AAED,UAAU,eAAe;IACrB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;CACrB;AAkHD,eAAO,MAAM,iBAAiB,EAAE,wBAAwB,EA64BvD,CAAC;AAyDF,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAS/D;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAahE;AAED,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAyD5G"}
|
|
@@ -761,15 +761,16 @@ export const CONNECT_CLI_TOOLS = [
|
|
|
761
761
|
// schema validation, the creator-gate, and the publish gate — so authz is unchanged here) ──
|
|
762
762
|
{
|
|
763
763
|
name: 'aimeat_workspace_list',
|
|
764
|
+
// The membership-gated discovery route aggregates the registry across ALL member identities and
|
|
765
|
+
// resolves access by owner — a raw /v1/memory prefix read is caller-scoped, so a sub-agent (whose
|
|
766
|
+
// identity ≠ the owner that wrote the registry) would see an empty list.
|
|
764
767
|
handler: async ({ client }, input) => {
|
|
765
768
|
const orgId = requiredString(input, 'organism_id');
|
|
766
|
-
const
|
|
767
|
-
const resp = await client.get(`/v1/memory${query({ prefix: key })}`);
|
|
769
|
+
const resp = await client.get(`/v1/organisms/${encodeURIComponent(orgId)}/workspaces`);
|
|
768
770
|
if (!resp.ok)
|
|
769
771
|
return resp;
|
|
770
|
-
const
|
|
771
|
-
|
|
772
|
-
return { ok: true, data: { organism_id: orgId, workspaces: reg?.value?.workspaces ?? [] } };
|
|
772
|
+
const workspaces = resp.data?.workspaces ?? [];
|
|
773
|
+
return { ok: true, data: { organism_id: orgId, workspaces } };
|
|
773
774
|
},
|
|
774
775
|
},
|
|
775
776
|
{
|
|
@@ -828,12 +829,15 @@ export const CONNECT_CLI_TOOLS = [
|
|
|
828
829
|
body.name = input.name;
|
|
829
830
|
if (typeof input.readme === 'string')
|
|
830
831
|
body.readme = input.readme;
|
|
832
|
+
const add = coerceObject(input.add_spaces);
|
|
833
|
+
if (Array.isArray(add))
|
|
834
|
+
body.add_spaces = add;
|
|
831
835
|
if (input.manifest !== undefined)
|
|
832
836
|
body.manifest = coerceObject(input.manifest);
|
|
833
837
|
if (input.schemas !== undefined)
|
|
834
838
|
body.schemas = coerceObject(input.schemas);
|
|
835
839
|
if (Object.keys(body).length === 0)
|
|
836
|
-
throw new Error('Provide a name, readme, manifest and/or schemas.');
|
|
840
|
+
throw new Error('Provide a name, readme, add_spaces, manifest and/or schemas.');
|
|
837
841
|
return client.put(`/v1/organisms/${encodeURIComponent(requiredString(input, 'organism_id'))}/workspace${query({ ws: requiredString(input, 'ws') })}`, body);
|
|
838
842
|
},
|
|
839
843
|
},
|