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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import { parseGAII } from '../utils/gaii.js';
|
|
3
|
+
import { parseGAII, isSameOwner } from '../utils/gaii.js';
|
|
4
4
|
import { annotationsFor } from './annotations.js';
|
|
5
5
|
import { descriptionFor } from './catalog/shape.js';
|
|
6
6
|
import { validateMemoryWrite } from '../services/schema-validator.js';
|
|
@@ -10,11 +10,17 @@ import { importWorkspace } from '../services/workspace-import.js';
|
|
|
10
10
|
import { ZipSecurityError } from '../services/safe-zip.js';
|
|
11
11
|
import { updateWorkspaceMeta, WorkspaceMetaError } from '../services/workspace-meta.js';
|
|
12
12
|
import { recordSecurityIncident } from '../services/security-incident.js';
|
|
13
|
+
import { emitChange } from '../services/event-bus.js';
|
|
13
14
|
export function registerWorkspaceTools(mcp, storage, config, getAgentGaii, _emitResourceUpdated, _emitResourceListChanged) {
|
|
14
15
|
const agentGaii = getAgentGaii();
|
|
15
16
|
const parsed = parseGAII(agentGaii);
|
|
16
17
|
const ownerName = parsed ? parsed.owner : agentGaii;
|
|
17
18
|
const ownerGhii = `${ownerName}@${config.nodeId}`;
|
|
19
|
+
// The identity that AUTHORS content: an agent's own GAII when an agent is calling (so the activity
|
|
20
|
+
// feed + participants attribute the work to the AGENT, not its owner — the MCP-serve path used to
|
|
21
|
+
// write everything under ownerGhii, collapsing every agent action onto the owner), else the owner
|
|
22
|
+
// GHII. Workspace META (manifest / registry / schemas / sections) stays under ownerGhii.
|
|
23
|
+
const writerGaii = parsed ? agentGaii : ownerGhii;
|
|
18
24
|
const wsRoot = (orgId, ws) => `organism.${orgId}.w.${ws}`;
|
|
19
25
|
const ok = (obj) => ({ content: [{ type: 'text', text: JSON.stringify(obj, null, 2) }] });
|
|
20
26
|
const fail = (msg) => ({ content: [{ type: 'text', text: msg }], isError: true });
|
|
@@ -54,10 +60,20 @@ export function registerWorkspaceTools(mcp, storage, config, getAgentGaii, _emit
|
|
|
54
60
|
const m = await storage.getMembership(orgId, ownerName);
|
|
55
61
|
return m && m.status === 'active' ? null : 'Not an active member of this organism';
|
|
56
62
|
}
|
|
57
|
-
|
|
63
|
+
/** Find an existing record at an EXACT key regardless of which same-owner identity owns it. Memory
|
|
64
|
+
* is keyed by (ownerGaii, key), so rewriting under a different identity would create a DUPLICATE;
|
|
65
|
+
* the writer reuses the existing record's owner instead. */
|
|
66
|
+
const findByKey = async (key) => {
|
|
67
|
+
const { items } = await storage.listAllMemory({ prefix: key, limit: 5 });
|
|
68
|
+
return items.find(r => r.key === key) ?? null;
|
|
69
|
+
};
|
|
70
|
+
/** Write content. A NEW record is authored by `owner` (defaults to the calling agent — attribution);
|
|
71
|
+
* a rewrite preserves the existing record's owner so it doesn't fork into a duplicate. Pass
|
|
72
|
+
* `owner: ownerGhii` for workspace META that should stay owned by the creator. */
|
|
73
|
+
const writeRecord = async (key, value, prev, owner = writerGaii) => {
|
|
58
74
|
const now = new Date().toISOString();
|
|
59
75
|
await storage.setMemory({
|
|
60
|
-
key, ownerGaii:
|
|
76
|
+
key, ownerGaii: prev?.ownerGaii ?? owner, value, visibility: prev?.visibility ?? 'private', tags: prev?.tags ?? [], ttlHours: null,
|
|
61
77
|
version: prev ? prev.version + 1 : 1, createdAt: prev?.createdAt ?? now, updatedAt: now,
|
|
62
78
|
});
|
|
63
79
|
};
|
|
@@ -77,11 +93,37 @@ export function registerWorkspaceTools(mcp, storage, config, getAgentGaii, _emit
|
|
|
77
93
|
}
|
|
78
94
|
return null;
|
|
79
95
|
};
|
|
96
|
+
/** Read a workspace's manifest from whichever member created it (aggregates across registries), so a
|
|
97
|
+
* member who didn't create the workspace can still resolve its spaces to write/delete records. */
|
|
98
|
+
const readManifest = async (orgId, ws) => {
|
|
99
|
+
const key = `${wsRoot(orgId, ws)}.meta.manifest`;
|
|
100
|
+
const { items } = await storage.listAllMemory({ prefix: key, limit: 100 });
|
|
101
|
+
const rec = items.find(r => r.key === key);
|
|
102
|
+
return rec ? rec.value : null;
|
|
103
|
+
};
|
|
80
104
|
/** Active membership role of the agent's owner in an org, or null. */
|
|
81
105
|
const roleOf = async (orgId) => {
|
|
82
106
|
const m = await storage.getMembership(orgId, ownerName);
|
|
83
107
|
return m && m.status === 'active' ? m.role : null;
|
|
84
108
|
};
|
|
109
|
+
/** May the caller WRITE this workspace's content? The creator's own owner (incl. its agents) always
|
|
110
|
+
* can; another member needs a granted workspace-contribution consent. Mirrors workspaceAccessMiddleware
|
|
111
|
+
* so the MCP-serve write path enforces the SAME per-workspace gate as the REST path (no looser side). */
|
|
112
|
+
const canWriteWs = async (orgId, ws) => {
|
|
113
|
+
const entry = await findWsEntry(orgId, ws);
|
|
114
|
+
if (!entry)
|
|
115
|
+
return true; // no registry yet (bootstrap) — membership already checked
|
|
116
|
+
if (entry.createdBy === ownerName)
|
|
117
|
+
return true; // the workspace's own creator (or its agent)
|
|
118
|
+
// Write requires the creator's 'contributor' role grant — and ONLY that, so the creator can
|
|
119
|
+
// revoke write by removing the grant. A 'viewer' grant gives read only (not matched here). The
|
|
120
|
+
// role is granted to the OWNER (recipient ghii:owner@node), so all the owner's agents inherit it.
|
|
121
|
+
const creatorGhii = `${entry.createdBy}@${config.nodeId}`;
|
|
122
|
+
const myRecipient = `ghii:${ownerName}@${config.nodeId}`;
|
|
123
|
+
const pattern = `organism.${orgId}.w.${ws}.**`;
|
|
124
|
+
const grants = await storage.listConsents(creatorGhii, { status: 'active' });
|
|
125
|
+
return grants.some(c => c.purpose === 'workspace-contributor' && c.dataPattern === pattern && c.recipient === myRecipient);
|
|
126
|
+
};
|
|
85
127
|
/** Create a consent grant if no equivalent active one exists (idempotent). */
|
|
86
128
|
const ensureConsent = async (owner, dataPattern, recipient, purpose) => {
|
|
87
129
|
const existing = await storage.listConsents(owner, { status: 'active' });
|
|
@@ -90,6 +132,26 @@ export function registerWorkspaceTools(mcp, storage, config, getAgentGaii, _emit
|
|
|
90
132
|
const now = new Date().toISOString();
|
|
91
133
|
await storage.createConsent({ id: randomUUID(), ownerGaii: owner, dataPattern, recipient, purpose, scope: 'private', expires: null, status: 'active', grantedAt: now, revokedAt: null });
|
|
92
134
|
};
|
|
135
|
+
// ── Workspace member roles (mirrors the REST routes): viewer = read, contributor = read+write,
|
|
136
|
+
// as a consent the workspace CREATOR owns on organism.{id}.w.{ws}.**. See the routes for the model. ──
|
|
137
|
+
const WS_ROLE_PURPOSES = ['workspace-viewer', 'workspace-contributor', 'workspace-access'];
|
|
138
|
+
const setWsRole = async (creatorGhii, orgId, ws, granteeOwner, role) => {
|
|
139
|
+
const recipient = `ghii:${granteeOwner}@${config.nodeId}`;
|
|
140
|
+
const pattern = `organism.${orgId}.w.${ws}.**`;
|
|
141
|
+
const now = new Date().toISOString();
|
|
142
|
+
const prior = (await storage.listConsents(creatorGhii, { status: 'active' })).filter(c => c.dataPattern === pattern && c.recipient === recipient && WS_ROLE_PURPOSES.includes(c.purpose));
|
|
143
|
+
for (const g of prior)
|
|
144
|
+
await storage.updateConsent(g.id, { status: 'revoked', revokedAt: now });
|
|
145
|
+
await storage.createConsent({ id: randomUUID(), ownerGaii: creatorGhii, dataPattern: pattern, recipient, purpose: role === 'contributor' ? 'workspace-contributor' : 'workspace-viewer', scope: 'private', expires: null, status: 'active', grantedAt: now, revokedAt: null });
|
|
146
|
+
};
|
|
147
|
+
const revokeWsRole = async (creatorGhii, orgId, ws, granteeOwner) => {
|
|
148
|
+
const recipient = `ghii:${granteeOwner}@${config.nodeId}`;
|
|
149
|
+
const pattern = `organism.${orgId}.w.${ws}.**`;
|
|
150
|
+
const now = new Date().toISOString();
|
|
151
|
+
const grants = (await storage.listConsents(creatorGhii, { status: 'active' })).filter(c => c.dataPattern === pattern && c.recipient === recipient && WS_ROLE_PURPOSES.includes(c.purpose));
|
|
152
|
+
for (const g of grants)
|
|
153
|
+
await storage.updateConsent(g.id, { status: 'revoked', revokedAt: now });
|
|
154
|
+
};
|
|
93
155
|
// ── aimeat_workspace_list ──
|
|
94
156
|
mcp.tool('aimeat_workspace_list', descriptionFor('aimeat_workspace_list'), { organism_id: z.string().describe('Organism id') }, annotationsFor('aimeat_workspace_list'), async ({ organism_id }) => {
|
|
95
157
|
const deny = await denyReason(organism_id);
|
|
@@ -125,22 +187,23 @@ export function registerWorkspaceTools(mcp, storage, config, getAgentGaii, _emit
|
|
|
125
187
|
if (deny)
|
|
126
188
|
return fail(deny);
|
|
127
189
|
const root = wsRoot(organism_id, ws);
|
|
128
|
-
//
|
|
129
|
-
//
|
|
190
|
+
// A workspace is SHARED: authorization is at the workspace level, not per record. If the caller
|
|
191
|
+
// can read the manifest (creator / same-owner agent / a viewer|contributor grant), they see ALL
|
|
192
|
+
// of the workspace's content whoever wrote it — so a contributor's writes are visible to the
|
|
193
|
+
// creator + other members. Otherwise nothing (org membership alone is discovery-only).
|
|
130
194
|
const { items } = await storage.listAllMemory({ prefix: `${root}.`, limit: 5000 });
|
|
131
|
-
const
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
195
|
+
const manRec = items.find(r => r.key === `${root}.meta.manifest`);
|
|
196
|
+
let canRead = false;
|
|
197
|
+
if (manRec) {
|
|
198
|
+
canRead = manRec.ownerGaii === ownerGhii || isSameOwner(manRec.ownerGaii, ownerGhii);
|
|
199
|
+
if (!canRead) {
|
|
200
|
+
const d = await authorizeRead(storage, config, { ownerGaii: manRec.ownerGaii, accessorGaii: ownerGhii, resourceKey: manRec.key, visibility: manRec.visibility, groupId: manRec.groupId, action: 'read' });
|
|
201
|
+
canRead = d.allowed;
|
|
136
202
|
}
|
|
137
|
-
const d = await authorizeRead(storage, config, { ownerGaii: r.ownerGaii, accessorGaii: ownerGhii, resourceKey: r.key, visibility: r.visibility, groupId: r.groupId, action: 'read' });
|
|
138
|
-
if (d.allowed)
|
|
139
|
-
mine.push(r);
|
|
140
203
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
204
|
+
if (!manRec || !canRead)
|
|
205
|
+
return fail(`No manifest at ${root}.meta.manifest — empty workspace, wrong ws id, or no access (request access with aimeat_workspace_access).`);
|
|
206
|
+
const mine = items; // workspace-level read: a reader sees ALL content
|
|
144
207
|
const manifest = manRec.value;
|
|
145
208
|
const objects = {};
|
|
146
209
|
const drafts = {};
|
|
@@ -178,7 +241,7 @@ export function registerWorkspaceTools(mcp, storage, config, getAgentGaii, _emit
|
|
|
178
241
|
// ── aimeat_workspace_write_draft ──
|
|
179
242
|
mcp.tool('aimeat_workspace_write', descriptionFor('aimeat_workspace_write'), {
|
|
180
243
|
organism_id: z.string(), ws: z.string(),
|
|
181
|
-
space: z.string().describe("The objectType (space) NAME — e.g. '
|
|
244
|
+
space: z.string().describe("The objectType (space) NAME — e.g. 'feedback' or 'task' (the manifest's objectTypes[].name, NOT its namespace like 'shared.feedback'). The tool resolves whether it is a records or document space."),
|
|
182
245
|
// z.any(): some clients JSON-stringify an object param — coerceValue parses it back so records
|
|
183
246
|
// validate and documents aren't stored corrupt. (A z.record/union here breaks the MCP SDK.)
|
|
184
247
|
value: z.any().describe('The content as a JSON OBJECT (not a string). For a records space, the record (matching its schema). For a document space, { title, markdown }.'),
|
|
@@ -188,11 +251,18 @@ export function registerWorkspaceTools(mcp, storage, config, getAgentGaii, _emit
|
|
|
188
251
|
const deny = await denyReason(organism_id);
|
|
189
252
|
if (deny)
|
|
190
253
|
return fail(deny);
|
|
254
|
+
if (!(await canWriteWs(organism_id, ws)))
|
|
255
|
+
return fail('You are not approved to write to this workspace. Request access with aimeat_workspace_access(action:"request") and wait for the creator to approve.');
|
|
191
256
|
const root = wsRoot(organism_id, ws);
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
257
|
+
// Aggregate the manifest across members so a member who didn't create the workspace can write,
|
|
258
|
+
// and accept either the space NAME or its namespace (small models often pass the namespace).
|
|
259
|
+
const man = await readManifest(organism_id, ws);
|
|
260
|
+
const types = (man?.objectTypes ?? []);
|
|
261
|
+
const ot = types.find(o => o.name === space || o.namespace === space);
|
|
262
|
+
if (!ot || !ot.namespace) {
|
|
263
|
+
const names = types.map(o => o.name).filter(Boolean).join(', ');
|
|
264
|
+
return fail(`No space named "${space}" in this workspace. Available spaces: ${names || '(none)'}. Pass the space NAME, not its namespace.`);
|
|
265
|
+
}
|
|
196
266
|
const isDoc = ot.mode === 'document';
|
|
197
267
|
let instanceId = (id && String(id).trim()) || (value && typeof value === 'object' && !Array.isArray(value) ? String(value.id ?? '').trim() : '');
|
|
198
268
|
if (!instanceId && isDoc)
|
|
@@ -204,17 +274,18 @@ export function registerWorkspaceTools(mcp, storage, config, getAgentGaii, _emit
|
|
|
204
274
|
const valid = await validateMemoryWrite(key, v, storage);
|
|
205
275
|
if (!valid.valid)
|
|
206
276
|
return fail('Draft rejected by schema: ' + JSON.stringify(valid.errors));
|
|
207
|
-
await writeRecord(key, v, await
|
|
277
|
+
await writeRecord(key, v, await findByKey(key)); // content → authored by the calling agent
|
|
208
278
|
if (isDoc && section) {
|
|
209
279
|
const secKey = `${root}.meta.sections.${ot.name}`;
|
|
210
|
-
const secRec = await
|
|
280
|
+
const secRec = await findByKey(secKey);
|
|
211
281
|
const sections = (secRec?.value?.sections) ?? [];
|
|
212
282
|
const target = sections.find(s => s.id === section || s.name === section);
|
|
213
283
|
if (target) {
|
|
214
284
|
target.documents = [...(target.documents ?? []).filter(d => d !== instanceId), instanceId];
|
|
215
|
-
await writeRecord(secKey, { sections }, secRec);
|
|
216
|
-
}
|
|
285
|
+
await writeRecord(secKey, { sections }, secRec, ownerGhii);
|
|
286
|
+
} // section tree = creator meta
|
|
217
287
|
}
|
|
288
|
+
emitChange('organisms');
|
|
218
289
|
return ok({ written: key, id: instanceId, space, mode: ot.mode ?? 'records', section: section ?? null });
|
|
219
290
|
});
|
|
220
291
|
// ── aimeat_workspace_publish ──
|
|
@@ -228,7 +299,9 @@ export function registerWorkspaceTools(mcp, storage, config, getAgentGaii, _emit
|
|
|
228
299
|
return fail('Publishing requires human approval (the publish gate is on). Leave it as a draft for the owner to review and publish.');
|
|
229
300
|
const base = `${wsRoot(organism_id, ws)}.${namespace}.${id}`;
|
|
230
301
|
const { items } = await storage.listAllMemory({ prefix: `${base}.`, limit: 2000 });
|
|
231
|
-
|
|
302
|
+
// The draft may have been written by a sibling agent of the same owner (shell/REST path
|
|
303
|
+
// stores under the agent's own GAII), so accept any same-owner draft, not just ownerGhii's.
|
|
304
|
+
const draft = items.find(r => r.key === `${base}.draft` && (r.ownerGaii === ownerGhii || isSameOwner(r.ownerGaii, ownerGhii)));
|
|
232
305
|
if (!draft)
|
|
233
306
|
return fail(`No draft at ${base}.draft`);
|
|
234
307
|
const valid = await validateMemoryWrite(`${base}.latest`, draft.value, storage);
|
|
@@ -245,10 +318,14 @@ export function registerWorkspaceTools(mcp, storage, config, getAgentGaii, _emit
|
|
|
245
318
|
const n = maxN + 1;
|
|
246
319
|
const now = new Date().toISOString();
|
|
247
320
|
const tags = draft.tags ?? [];
|
|
248
|
-
|
|
321
|
+
// The published version is attributed to the PUBLISHER (writerGaii). The .latest pointer
|
|
322
|
+
// preserves any existing record's owner so it doesn't fork into a duplicate (memory is keyed
|
|
323
|
+
// by (ownerGaii, key)); the per-publish author lives in the immutable .version.N records.
|
|
324
|
+
await storage.setMemory({ key: `${base}.version.${n}`, ownerGaii: writerGaii, value: draft.value, visibility: draft.visibility, tags, ttlHours: null, version: 1, createdAt: now, updatedAt: now });
|
|
249
325
|
const existingLatest = items.find(r => r.key === `${base}.latest`);
|
|
250
|
-
await storage.setMemory({ key: `${base}.latest`, ownerGaii:
|
|
251
|
-
await storage.deleteMemory(
|
|
326
|
+
await storage.setMemory({ key: `${base}.latest`, ownerGaii: existingLatest?.ownerGaii ?? writerGaii, value: draft.value, visibility: draft.visibility, tags, ttlHours: null, version: (existingLatest?.version ?? 0) + 1, createdAt: existingLatest?.createdAt ?? now, updatedAt: now });
|
|
327
|
+
await storage.deleteMemory(draft.ownerGaii, `${base}.draft`);
|
|
328
|
+
emitChange('organisms');
|
|
252
329
|
return ok({ published: base, version: n });
|
|
253
330
|
});
|
|
254
331
|
// ── aimeat_workspace_update ──
|
|
@@ -257,19 +334,23 @@ export function registerWorkspaceTools(mcp, storage, config, getAgentGaii, _emit
|
|
|
257
334
|
ws: z.string(),
|
|
258
335
|
name: z.string().optional().describe('New workspace name (synced to the manifest + the registry)'),
|
|
259
336
|
readme: z.string().optional().describe('New markdown readme/intro (replaces the current one)'),
|
|
260
|
-
|
|
337
|
+
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. Use this to provision spaces instead of sending the whole manifest. Cannot remove/rename — use `manifest` for that.'),
|
|
338
|
+
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. To only ADD spaces, prefer `add_spaces`.'),
|
|
261
339
|
schemas: z.any().optional().describe('Map of namespace → JSON Schema (object) to lock (strict) for a records space.'),
|
|
262
|
-
}, annotationsFor('aimeat_workspace_update'), async ({ organism_id, ws, name, readme, manifest, schemas }) => {
|
|
340
|
+
}, annotationsFor('aimeat_workspace_update'), async ({ organism_id, ws, name, readme, add_spaces, manifest, schemas }) => {
|
|
263
341
|
const role = await roleOf(organism_id);
|
|
264
342
|
if (!role)
|
|
265
343
|
return fail('You are not a member of this organism.');
|
|
266
344
|
try {
|
|
345
|
+
const addParsed = parseObj(add_spaces);
|
|
267
346
|
const result = await updateWorkspaceMeta(storage, config, {
|
|
268
347
|
orgId: organism_id, ws, callerOwner: ownerName,
|
|
269
348
|
isAdmin: role === 'admin' || role === 'creator', name, readme,
|
|
349
|
+
addObjectTypes: Array.isArray(addParsed) ? addParsed : undefined,
|
|
270
350
|
manifest: parseObj(manifest),
|
|
271
351
|
schemas: parseObj(schemas),
|
|
272
352
|
});
|
|
353
|
+
emitChange('organisms');
|
|
273
354
|
return ok(result);
|
|
274
355
|
}
|
|
275
356
|
catch (e) {
|
|
@@ -288,19 +369,20 @@ export function registerWorkspaceTools(mcp, storage, config, getAgentGaii, _emit
|
|
|
288
369
|
const { items } = await storage.listAllMemory({ prefix: `${base}.`, limit: 2000 });
|
|
289
370
|
let deleted = 0;
|
|
290
371
|
for (const r of items) {
|
|
291
|
-
|
|
372
|
+
// Own + same-owner records (a sibling agent's writes) are deletable; cross-owner are not.
|
|
373
|
+
if (r.ownerGaii !== ownerGhii && !isSameOwner(r.ownerGaii, ownerGhii))
|
|
292
374
|
continue;
|
|
293
375
|
const role = r.key.slice(base.length + 1); // after `${base}.`
|
|
294
376
|
if (role === 'draft' || role === 'latest' || /^version\.\d+$/.test(role)) {
|
|
295
|
-
if (await storage.deleteMemory(
|
|
377
|
+
if (await storage.deleteMemory(r.ownerGaii, r.key))
|
|
296
378
|
deleted++;
|
|
297
379
|
}
|
|
298
380
|
}
|
|
299
381
|
if (deleted === 0)
|
|
300
382
|
return fail(`Nothing to delete at ${base} (no draft/latest/version).`);
|
|
301
383
|
// Best-effort: unfile the id from the document section tree (find the type by namespace).
|
|
302
|
-
const man = await
|
|
303
|
-
const ot = (man?.
|
|
384
|
+
const man = await readManifest(organism_id, ws);
|
|
385
|
+
const ot = (man?.objectTypes ?? []).find(o => o.namespace === namespace);
|
|
304
386
|
if (ot) {
|
|
305
387
|
const secKey = `${root}.meta.sections.${ot.name}`;
|
|
306
388
|
const secRec = await storage.getMemory(ownerGhii, secKey);
|
|
@@ -314,9 +396,10 @@ export function registerWorkspaceTools(mcp, storage, config, getAgentGaii, _emit
|
|
|
314
396
|
}
|
|
315
397
|
}
|
|
316
398
|
if (changed)
|
|
317
|
-
await writeRecord(secKey, { sections }, secRec);
|
|
399
|
+
await writeRecord(secKey, { sections }, secRec, ownerGhii); // section tree = creator meta
|
|
318
400
|
}
|
|
319
401
|
}
|
|
402
|
+
emitChange('organisms');
|
|
320
403
|
return ok({ deleted: base, keys: deleted });
|
|
321
404
|
});
|
|
322
405
|
// ── aimeat_workspace_create ──
|
|
@@ -351,15 +434,16 @@ export function registerWorkspaceTools(mcp, storage, config, getAgentGaii, _emit
|
|
|
351
434
|
const valid = await validateMemoryWrite(mkey, manifestValue, storage);
|
|
352
435
|
if (!valid.valid)
|
|
353
436
|
return fail('Manifest rejected by schema: ' + JSON.stringify(valid.errors));
|
|
354
|
-
await writeRecord(mkey, manifestValue, null);
|
|
437
|
+
await writeRecord(mkey, manifestValue, null, ownerGhii); // manifest = creator meta
|
|
355
438
|
// 3. Readme.
|
|
356
439
|
const summary = man.summary;
|
|
357
|
-
await writeRecord(`${root}.meta.readme`, readme || `# ${String(man.name || name)}\n\n${typeof summary === 'string' ? summary : ''}`, null);
|
|
440
|
+
await writeRecord(`${root}.meta.readme`, readme || `# ${String(man.name || name)}\n\n${typeof summary === 'string' ? summary : ''}`, null, ownerGhii);
|
|
358
441
|
// 4. Register in the workspace registry.
|
|
359
442
|
const regKey = `organism.${organism_id}.meta.workspaces`;
|
|
360
443
|
const regRec = await storage.getMemory(ownerGhii, regKey);
|
|
361
444
|
const workspaces = (regRec?.value?.workspaces) ?? [];
|
|
362
|
-
await writeRecord(regKey, { workspaces: [...workspaces, { id: wsId, name: String(name || 'Workspace').trim() || 'Workspace', createdAt: now, createdBy: ownerName }] }, regRec);
|
|
445
|
+
await writeRecord(regKey, { workspaces: [...workspaces, { id: wsId, name: String(name || 'Workspace').trim() || 'Workspace', createdAt: now, createdBy: ownerName }] }, regRec, ownerGhii);
|
|
446
|
+
emitChange('organisms');
|
|
363
447
|
return ok({ created: true, ws: wsId, types: man.objectTypes.map(o => o.name), schemas_locked: Object.keys(schemaMap) });
|
|
364
448
|
});
|
|
365
449
|
// ── aimeat_workspace_request_access ──
|
|
@@ -380,39 +464,50 @@ export function registerWorkspaceTools(mcp, storage, config, getAgentGaii, _emit
|
|
|
380
464
|
if (action === 'request') {
|
|
381
465
|
if (entry.createdBy === ownerName)
|
|
382
466
|
return fail('You created this workspace.');
|
|
383
|
-
await writeRecord(`organism.${organism_id}.w.${ws}.access.request.${ownerName}`, { ws, requester: ownerName, requester_gaii: ownerGhii, message: message ?? '', status: 'pending', createdAt: new Date().toISOString() }, null);
|
|
467
|
+
await writeRecord(`organism.${organism_id}.w.${ws}.access.request.${ownerName}`, { ws, requester: ownerName, requester_gaii: ownerGhii, message: message ?? '', status: 'pending', createdAt: new Date().toISOString() }, null, ownerGhii);
|
|
384
468
|
await ensureConsent(ownerGhii, `organism.${organism_id}.w.${ws}.**`, `organism.${organism_id}`, 'workspace-contribution');
|
|
469
|
+
emitChange('organisms');
|
|
385
470
|
return ok({ status: 'requested', ws, workspace_creator: entry.createdBy });
|
|
386
471
|
}
|
|
387
472
|
if (action === 'list') {
|
|
388
473
|
if (!(await isManager()))
|
|
389
474
|
return fail('Only the workspace creator or an org admin can see access requests.');
|
|
390
475
|
const creatorGhii = `${entry.createdBy}@${config.nodeId}`;
|
|
391
|
-
const
|
|
392
|
-
const
|
|
476
|
+
const roleByOwner = new Map();
|
|
477
|
+
for (const c of await storage.listConsents(creatorGhii, { status: 'active' })) {
|
|
478
|
+
if (c.dataPattern !== `organism.${organism_id}.w.${ws}.**` || !WS_ROLE_PURPOSES.includes(c.purpose))
|
|
479
|
+
continue;
|
|
480
|
+
const o = c.recipient.replace(/^ghii:/, '').split('@')[0];
|
|
481
|
+
if (c.purpose === 'workspace-contributor')
|
|
482
|
+
roleByOwner.set(o, 'contributor');
|
|
483
|
+
else if (!roleByOwner.has(o))
|
|
484
|
+
roleByOwner.set(o, 'viewer');
|
|
485
|
+
}
|
|
393
486
|
const { items } = await storage.listAllMemory({ prefix: `organism.${organism_id}.w.${ws}.access.request.`, limit: 1000 });
|
|
394
487
|
const requests = items.map(r => {
|
|
395
488
|
const v = r.value;
|
|
396
489
|
const req = v.requester ?? bareOwner(r.ownerGaii);
|
|
397
|
-
return { requester: req, message: v.message ?? '', created_at: v.createdAt, status:
|
|
490
|
+
return { requester: req, message: v.message ?? '', created_at: v.createdAt, status: roleByOwner.has(req) ? 'approved' : 'pending', role: roleByOwner.get(req) ?? null };
|
|
398
491
|
});
|
|
399
|
-
|
|
492
|
+
const members = [...roleByOwner.entries()].map(([owner, role]) => ({ owner, role }));
|
|
493
|
+
return ok({ ws, requests, members });
|
|
400
494
|
}
|
|
401
495
|
if (action === 'decide') {
|
|
402
496
|
if (!requester)
|
|
403
497
|
return fail("action='decide' needs a requester.");
|
|
404
498
|
if (!(await isManager()))
|
|
405
499
|
return fail('Only the workspace creator or an org admin can decide access.');
|
|
406
|
-
|
|
407
|
-
const
|
|
500
|
+
// Grants are owned by the workspace CREATOR (so reads resolve via the content owner).
|
|
501
|
+
const creatorGhii = `${entry.createdBy}@${config.nodeId}`;
|
|
408
502
|
if (decision === 'deny') {
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
await storage.updateConsent(g.id, { status: 'revoked', revokedAt: new Date().toISOString() });
|
|
503
|
+
await revokeWsRole(creatorGhii, organism_id, ws, requester);
|
|
504
|
+
emitChange('organisms');
|
|
412
505
|
return ok({ status: 'denied', ws, requester });
|
|
413
506
|
}
|
|
414
|
-
|
|
415
|
-
|
|
507
|
+
const role = decision === 'viewer' ? 'viewer' : 'contributor'; // approve|contributor → contributor
|
|
508
|
+
await setWsRole(creatorGhii, organism_id, ws, requester, role);
|
|
509
|
+
emitChange('organisms');
|
|
510
|
+
return ok({ status: 'approved', ws, requester, role });
|
|
416
511
|
}
|
|
417
512
|
return fail("action must be 'request', 'list' or 'decide'.");
|
|
418
513
|
});
|
|
@@ -448,6 +543,7 @@ export function registerWorkspaceTools(mcp, storage, config, getAgentGaii, _emit
|
|
|
448
543
|
return fail('zip_base64 is empty or invalid.');
|
|
449
544
|
try {
|
|
450
545
|
const result = await importWorkspace(storage, config, { orgId: organism_id, importerGaii: ownerGhii, importerOwner: ownerName, zip: buf });
|
|
546
|
+
emitChange('organisms');
|
|
451
547
|
return ok(result);
|
|
452
548
|
}
|
|
453
549
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../../src/mcp/workspaces.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../../src/mcp/workspaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,11 @@
|
|
|
10
10
|
* @version-history
|
|
11
11
|
* v1.0.0 -- 2026-02 -- Phase 2.3 organism workspace access control.
|
|
12
12
|
* v1.1.0 -- 2026-06-07 -- Key the membership lookup by bare owner name (was full GHII → 403'd members).
|
|
13
|
+
* v1.2.0 -- 2026-06-09 -- A same-owner agent (the workspace creator's own agent) bypasses the consent
|
|
14
|
+
* check, like the human owner session — so a CrewAI sub-agent can write to its owner's workspace.
|
|
15
|
+
* v1.3.0 -- 2026-06-09 -- Workspace CONTENT writes require the creator's 'contributor' role grant only
|
|
16
|
+
* (revocable); 'viewer' is read-only. Flat organism namespaces still use the writer's own contribution
|
|
17
|
+
* consent. Splits the consent check by workspace key vs flat key.
|
|
13
18
|
*/
|
|
14
19
|
import type { RequestHandler } from 'express';
|
|
15
20
|
import type { AimeatConfig } from '../config.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-access.d.ts","sourceRoot":"","sources":["../../../src/middleware/workspace-access.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"workspace-access.d.ts","sourceRoot":"","sources":["../../../src/middleware/workspace-access.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGvD;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,GACf,cAAc,CA0JhB"}
|