aimeat 1.36.0 → 1.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.env.example +6 -0
- package/dist/locales/en.json +186 -25
- package/dist/locales/fi.json +186 -25
- package/dist/public/components/Markdown.js +9 -0
- package/dist/public/components/MemoryEmbed.js +151 -0
- package/dist/public/components/Mermaid.js +4 -1
- package/dist/public/components/NotificationBell.js +45 -19
- package/dist/public/css/components/markdown.css +15 -0
- package/dist/public/css/views/agents-detail.css +17 -0
- package/dist/public/css/views/portfolio.css +51 -0
- package/dist/public/css/views/profile.css +31 -0
- package/dist/public/js/services/agents.js +9 -0
- package/dist/public/js/services/organisms.js +37 -1
- package/dist/public/llms-template.txt +278 -0
- package/dist/public/spa.html +34 -1
- package/dist/public/sw.js +50 -34
- package/dist/public/views/portfolio.js +267 -44
- package/dist/public/views/profile/agents/agent-card.js +4 -0
- package/dist/public/views/profile/agents/tab-contracts.js +112 -0
- package/dist/public/views/profile/landing-page.js +10 -1
- package/dist/public/views/profile/memory-tab.js +6 -2
- package/dist/public/views/profile/notifications-tab.js +9 -1
- package/dist/public/views/profile/organisms/home.js +23 -3
- package/dist/public/views/profile/organisms/participants-panel.js +89 -17
- package/dist/public/views/profile/organisms/workspace-apps.js +130 -0
- package/dist/public/views/profile/organisms/workspace.js +5 -0
- package/dist/public/views/profile/organisms-tab.js +1 -1
- package/dist/src/cli/init-wizard.d.ts.map +1 -1
- package/dist/src/cli/init-wizard.js +32 -0
- package/dist/src/cli/init-wizard.js.map +1 -1
- package/dist/src/config.d.ts +13 -0
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +9 -0
- package/dist/src/config.js.map +1 -1
- package/dist/src/data/aimeat-iam-package.d.ts +10 -2
- package/dist/src/data/aimeat-iam-package.d.ts.map +1 -1
- package/dist/src/data/aimeat-iam-package.js +39 -10
- package/dist/src/data/aimeat-iam-package.js.map +1 -1
- package/dist/src/generated/api-types.d.ts +328 -23
- package/dist/src/generated/api-types.d.ts.map +1 -1
- package/dist/src/generated/prisma-postgres/edge.js +4 -3
- package/dist/src/generated/prisma-postgres/index-browser.js +1 -0
- package/dist/src/generated/prisma-postgres/index.d.ts +30 -1
- package/dist/src/generated/prisma-postgres/index.js +4 -3
- package/dist/src/generated/prisma-postgres/package.json +1 -1
- package/dist/src/generated/prisma-postgres/schema.prisma +1 -0
- package/dist/src/generated/prisma-postgres/wasm.js +4 -3
- package/dist/src/mcp/annotations.d.ts.map +1 -1
- package/dist/src/mcp/annotations.js +1 -0
- package/dist/src/mcp/annotations.js.map +1 -1
- package/dist/src/mcp/catalog/definitions.d.ts +3 -0
- package/dist/src/mcp/catalog/definitions.d.ts.map +1 -1
- package/dist/src/mcp/catalog/definitions.js +21 -7
- package/dist/src/mcp/catalog/definitions.js.map +1 -1
- package/dist/src/mcp/catalog/surfaces.js +1 -1
- package/dist/src/mcp/catalog/surfaces.js.map +1 -1
- package/dist/src/mcp/core.js +1 -1
- package/dist/src/mcp/core.js.map +1 -1
- package/dist/src/mcp/extensions.d.ts.map +1 -1
- package/dist/src/mcp/extensions.js +21 -0
- package/dist/src/mcp/extensions.js.map +1 -1
- package/dist/src/mcp/memory-extended.js +1 -1
- package/dist/src/mcp/memory-extended.js.map +1 -1
- package/dist/src/mcp/organisms.d.ts +1 -0
- package/dist/src/mcp/organisms.d.ts.map +1 -1
- package/dist/src/mcp/organisms.js +23 -6
- package/dist/src/mcp/organisms.js.map +1 -1
- package/dist/src/mcp/workspaces.d.ts +3 -0
- package/dist/src/mcp/workspaces.d.ts.map +1 -1
- package/dist/src/mcp/workspaces.js +7 -2
- package/dist/src/mcp/workspaces.js.map +1 -1
- package/dist/src/middleware/subdomain.d.ts +9 -0
- package/dist/src/middleware/subdomain.d.ts.map +1 -1
- package/dist/src/middleware/subdomain.js +24 -3
- package/dist/src/middleware/subdomain.js.map +1 -1
- package/dist/src/models/schemas.d.ts +2 -0
- package/dist/src/models/schemas.d.ts.map +1 -1
- package/dist/src/models/schemas.js +2 -2
- package/dist/src/models/schemas.js.map +1 -1
- package/dist/src/routes/admin-features.js +1 -1
- package/dist/src/routes/admin-features.js.map +1 -1
- package/dist/src/routes/agent-onboarding.d.ts.map +1 -1
- package/dist/src/routes/agent-onboarding.js +44 -7
- package/dist/src/routes/agent-onboarding.js.map +1 -1
- package/dist/src/routes/agents.d.ts +1 -0
- package/dist/src/routes/agents.d.ts.map +1 -1
- package/dist/src/routes/agents.js +43 -0
- package/dist/src/routes/agents.js.map +1 -1
- package/dist/src/routes/app-grants.d.ts +5 -0
- package/dist/src/routes/app-grants.d.ts.map +1 -1
- package/dist/src/routes/app-grants.js +52 -20
- package/dist/src/routes/app-grants.js.map +1 -1
- package/dist/src/routes/boards.d.ts.map +1 -1
- package/dist/src/routes/boards.js +4 -1
- package/dist/src/routes/boards.js.map +1 -1
- package/dist/src/routes/bootstrap.d.ts +2 -0
- package/dist/src/routes/bootstrap.d.ts.map +1 -1
- package/dist/src/routes/bootstrap.js +5 -0
- package/dist/src/routes/bootstrap.js.map +1 -1
- package/dist/src/routes/capabilities.d.ts.map +1 -1
- package/dist/src/routes/capabilities.js +4 -1
- package/dist/src/routes/capabilities.js.map +1 -1
- package/dist/src/routes/catalogue.d.ts.map +1 -1
- package/dist/src/routes/catalogue.js +5 -4
- package/dist/src/routes/catalogue.js.map +1 -1
- package/dist/src/routes/extensions.d.ts.map +1 -1
- package/dist/src/routes/extensions.js +11 -0
- package/dist/src/routes/extensions.js.map +1 -1
- package/dist/src/routes/ghii.d.ts.map +1 -1
- package/dist/src/routes/ghii.js +65 -17
- package/dist/src/routes/ghii.js.map +1 -1
- package/dist/src/routes/lib-editor.d.ts +26 -0
- package/dist/src/routes/lib-editor.d.ts.map +1 -0
- package/dist/src/routes/lib-editor.js +215 -0
- package/dist/src/routes/lib-editor.js.map +1 -0
- package/dist/src/routes/lib-markdown.d.ts +16 -1
- package/dist/src/routes/lib-markdown.d.ts.map +1 -1
- package/dist/src/routes/lib-markdown.js +281 -2
- package/dist/src/routes/lib-markdown.js.map +1 -1
- package/dist/src/routes/lib-organism.d.ts +28 -0
- package/dist/src/routes/lib-organism.d.ts.map +1 -0
- package/dist/src/routes/lib-organism.js +298 -0
- package/dist/src/routes/lib-organism.js.map +1 -0
- package/dist/src/routes/lib-portfolio-standalone.d.ts +22 -0
- package/dist/src/routes/lib-portfolio-standalone.d.ts.map +1 -0
- package/dist/src/routes/lib-portfolio-standalone.js +68 -0
- package/dist/src/routes/lib-portfolio-standalone.js.map +1 -0
- package/dist/src/routes/libs.d.ts +4 -0
- package/dist/src/routes/libs.d.ts.map +1 -1
- package/dist/src/routes/libs.js +60 -1
- package/dist/src/routes/libs.js.map +1 -1
- package/dist/src/routes/memory.d.ts +3 -0
- package/dist/src/routes/memory.d.ts.map +1 -1
- package/dist/src/routes/memory.js +58 -4
- package/dist/src/routes/memory.js.map +1 -1
- package/dist/src/routes/notifications.d.ts +5 -1
- package/dist/src/routes/notifications.d.ts.map +1 -1
- package/dist/src/routes/notifications.js +68 -3
- package/dist/src/routes/notifications.js.map +1 -1
- package/dist/src/routes/organisms.d.ts +2 -0
- package/dist/src/routes/organisms.d.ts.map +1 -1
- package/dist/src/routes/organisms.js +171 -11
- package/dist/src/routes/organisms.js.map +1 -1
- package/dist/src/routes/owners.d.ts.map +1 -1
- package/dist/src/routes/owners.js +12 -8
- package/dist/src/routes/owners.js.map +1 -1
- package/dist/src/routes/portfolio.d.ts +41 -1
- package/dist/src/routes/portfolio.d.ts.map +1 -1
- package/dist/src/routes/portfolio.js +94 -30
- package/dist/src/routes/portfolio.js.map +1 -1
- package/dist/src/routes/push.d.ts +15 -0
- package/dist/src/routes/push.d.ts.map +1 -1
- package/dist/src/routes/push.js +16 -1
- package/dist/src/routes/push.js.map +1 -1
- package/dist/src/routes/subdomains.d.ts +5 -0
- package/dist/src/routes/subdomains.d.ts.map +1 -1
- package/dist/src/routes/subdomains.js +56 -0
- package/dist/src/routes/subdomains.js.map +1 -1
- package/dist/src/server-bootstrap/routes-loader.d.ts.map +1 -1
- package/dist/src/server-bootstrap/routes-loader.js +2 -0
- package/dist/src/server-bootstrap/routes-loader.js.map +1 -1
- package/dist/src/server-bootstrap/static-files.d.ts.map +1 -1
- package/dist/src/server-bootstrap/static-files.js +9 -4
- package/dist/src/server-bootstrap/static-files.js.map +1 -1
- package/dist/src/services/access-guard.d.ts.map +1 -1
- package/dist/src/services/access-guard.js +7 -0
- package/dist/src/services/access-guard.js.map +1 -1
- package/dist/src/services/ecosystem-access.d.ts +24 -8
- package/dist/src/services/ecosystem-access.d.ts.map +1 -1
- package/dist/src/services/ecosystem-access.js +27 -5
- package/dist/src/services/ecosystem-access.js.map +1 -1
- package/dist/src/services/iam/app-commands.d.ts +75 -0
- package/dist/src/services/iam/app-commands.d.ts.map +1 -0
- package/dist/src/services/iam/app-commands.js +55 -0
- package/dist/src/services/iam/app-commands.js.map +1 -0
- package/dist/src/services/iam/define-app-iam.d.ts +45 -0
- package/dist/src/services/iam/define-app-iam.d.ts.map +1 -0
- package/dist/src/services/iam/define-app-iam.js +75 -0
- package/dist/src/services/iam/define-app-iam.js.map +1 -0
- package/dist/src/services/iam/model.d.ts +113 -0
- package/dist/src/services/iam/model.d.ts.map +1 -0
- package/dist/src/services/iam/model.js +115 -0
- package/dist/src/services/iam/model.js.map +1 -0
- package/dist/src/services/mailbox-notification.d.ts +1 -0
- package/dist/src/services/mailbox-notification.d.ts.map +1 -1
- package/dist/src/services/mailbox-notification.js +3 -0
- package/dist/src/services/mailbox-notification.js.map +1 -1
- package/dist/src/services/notify.d.ts +11 -1
- package/dist/src/services/notify.d.ts.map +1 -1
- package/dist/src/services/notify.js +39 -2
- package/dist/src/services/notify.js.map +1 -1
- package/dist/src/services/organism-privacy.d.ts +46 -0
- package/dist/src/services/organism-privacy.d.ts.map +1 -0
- package/dist/src/services/organism-privacy.js +42 -0
- package/dist/src/services/organism-privacy.js.map +1 -0
- package/dist/src/services/prompt-defaults.d.ts +2 -0
- package/dist/src/services/prompt-defaults.d.ts.map +1 -1
- package/dist/src/services/prompt-defaults.js +5 -0
- package/dist/src/services/prompt-defaults.js.map +1 -1
- package/dist/src/services/scheduler.d.ts.map +1 -1
- package/dist/src/services/scheduler.js +11 -3
- package/dist/src/services/scheduler.js.map +1 -1
- package/dist/src/services/workspace-access.d.ts +2 -0
- package/dist/src/services/workspace-access.d.ts.map +1 -1
- package/dist/src/services/workspace-access.js +20 -8
- package/dist/src/services/workspace-access.js.map +1 -1
- package/dist/src/services/workspace-engagements.d.ts +65 -0
- package/dist/src/services/workspace-engagements.d.ts.map +1 -0
- package/dist/src/services/workspace-engagements.js +92 -0
- package/dist/src/services/workspace-engagements.js.map +1 -0
- package/dist/src/services/workspace-meta.d.ts +9 -2
- package/dist/src/services/workspace-meta.d.ts.map +1 -1
- package/dist/src/services/workspace-meta.js +22 -2
- package/dist/src/services/workspace-meta.js.map +1 -1
- package/dist/src/storage/interface.d.ts +8 -1
- package/dist/src/storage/interface.d.ts.map +1 -1
- package/dist/src/storage/interface.js.map +1 -1
- package/dist/src/storage/providers/mongodb/index.js +2 -2
- package/dist/src/storage/providers/mongodb/index.js.map +1 -1
- package/dist/src/storage/providers/sqlite/index.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/index.js +5 -4
- package/dist/src/storage/providers/sqlite/index.js.map +1 -1
- package/dist/src/storage/providers/sqlite/schema.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/schema.js +3 -0
- package/dist/src/storage/providers/sqlite/schema.js.map +1 -1
- package/dist/src/utils/env-config.d.ts.map +1 -1
- package/dist/src/utils/env-config.js +12 -0
- package/dist/src/utils/env-config.js.map +1 -1
- package/dist/src/utils/env-validator.d.ts.map +1 -1
- package/dist/src/utils/env-validator.js +8 -0
- package/dist/src/utils/env-validator.js.map +1 -1
- package/dist/static/app-catalog.html +8 -2
- package/dist/static/icons/badge-96.png +0 -0
- package/dist/static/icons/icon-192.png +0 -0
- package/dist/static/icons/icon-512.png +0 -0
- package/dist/static/manifest.json +19 -17
- package/dist/static/sw.js +13 -11
- package/package.json +1 -1
- package/prisma/schema.postgres.prisma +1 -0
- package/prisma/schema.prisma +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aimeat-iam-package.d.ts","sourceRoot":"","sources":["../../../src/data/aimeat-iam-package.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"aimeat-iam-package.d.ts","sourceRoot":"","sources":["../../../src/data/aimeat-iam-package.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AA0U/D,wBAAgB,gBAAgB,IAAI,iBAAiB,CAkBpD"}
|
|
@@ -1,15 +1,30 @@
|
|
|
1
1
|
// ── Extension `iam` — server-side enforcement (V8 sandbox: export default async (ctx, input)) ──
|
|
2
2
|
const SCRIPT_CHECK = `export default async function (ctx, input) {
|
|
3
|
-
const permission = input && input.permission;
|
|
4
|
-
if (!permission) return { allowed: false, error: 'permission required' };
|
|
5
3
|
const config = (await ctx.memory.get('iam.config')) || {};
|
|
6
4
|
const roles = (await ctx.memory.get('iam.roles')) || {};
|
|
5
|
+
const levels = (await ctx.memory.get('iam.levels')) || {};
|
|
6
|
+
const commands = (await ctx.memory.get('iam.commands')) || [];
|
|
7
7
|
const assignments = (await ctx.memory.get('iam.assignments')) || {};
|
|
8
8
|
const caller = ctx.caller && ctx.caller.gaii;
|
|
9
9
|
const role = (caller && assignments[caller]) || config.defaultRole || null;
|
|
10
10
|
const perms = (role && roles[role]) || [];
|
|
11
|
-
const
|
|
12
|
-
|
|
11
|
+
const level = (role && Object.prototype.hasOwnProperty.call(levels, role)) ? levels[role] : null;
|
|
12
|
+
const has = function (cap) { return perms.indexOf('*') !== -1 || perms.indexOf(cap) !== -1; };
|
|
13
|
+
// Command mode: check { command } — resolve the command's required capability + mutation tier so the
|
|
14
|
+
// caller (a human GHII or an agent GAII, identically) knows whether it may run + when to confirm.
|
|
15
|
+
if (input && input.command) {
|
|
16
|
+
let cmd = null;
|
|
17
|
+
for (let i = 0; i < commands.length; i++) { if (commands[i] && commands[i].id === input.command) { cmd = commands[i]; break; } }
|
|
18
|
+
if (!cmd) return { allowed: false, error: 'unknown command', command: input.command, role: role, level: level };
|
|
19
|
+
return {
|
|
20
|
+
allowed: has(cmd.capability), role: role, level: level, command: cmd.id, capability: cmd.capability,
|
|
21
|
+
tier: cmd.tier || 'write', needsConfirmation: cmd.tier === 'irreversible',
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
// Permission mode (legacy — unchanged shape): check { permission }.
|
|
25
|
+
const permission = input && input.permission;
|
|
26
|
+
if (!permission) return { allowed: false, error: 'permission or command required' };
|
|
27
|
+
return { allowed: has(permission), role: role, permission: permission, level: level };
|
|
13
28
|
}`;
|
|
14
29
|
const SCRIPT_ADMIN = `export default async function (ctx, input) {
|
|
15
30
|
const caller = ctx.caller && ctx.caller.gaii;
|
|
@@ -21,6 +36,12 @@ const SCRIPT_ADMIN = `export default async function (ctx, input) {
|
|
|
21
36
|
roles = { admin: ['*'], editor: ['read', 'create', 'edit'], viewer: ['read'] };
|
|
22
37
|
await ctx.memory.set('iam.roles', roles);
|
|
23
38
|
}
|
|
39
|
+
let levels = await ctx.memory.get('iam.levels');
|
|
40
|
+
if (!levels) {
|
|
41
|
+
levels = { admin: 0, editor: 10, viewer: 20 }; // BBS ordinal, lower = more power
|
|
42
|
+
await ctx.memory.set('iam.levels', levels);
|
|
43
|
+
}
|
|
44
|
+
let commands = (await ctx.memory.get('iam.commands')) || [];
|
|
24
45
|
if (op === 'claim') {
|
|
25
46
|
if (!config.ownerGhii) {
|
|
26
47
|
config.ownerGhii = caller;
|
|
@@ -31,7 +52,7 @@ const SCRIPT_ADMIN = `export default async function (ctx, input) {
|
|
|
31
52
|
}
|
|
32
53
|
const isOwner = !config.ownerGhii || config.ownerGhii === caller;
|
|
33
54
|
if (op === 'getState') {
|
|
34
|
-
return { ok: true, ownerGhii: config.ownerGhii || null, isOwner: isOwner, config: config, roles: roles, assignments: assignments };
|
|
55
|
+
return { ok: true, ownerGhii: config.ownerGhii || null, isOwner: isOwner, config: config, roles: roles, levels: levels, commands: commands, assignments: assignments };
|
|
35
56
|
}
|
|
36
57
|
if (!isOwner) return { ok: false, error: 'forbidden: owner only' };
|
|
37
58
|
if (op === 'setConfig') {
|
|
@@ -43,6 +64,14 @@ const SCRIPT_ADMIN = `export default async function (ctx, input) {
|
|
|
43
64
|
if (input.roles && typeof input.roles === 'object') { roles = input.roles; await ctx.memory.set('iam.roles', roles); }
|
|
44
65
|
return { ok: true, roles: roles };
|
|
45
66
|
}
|
|
67
|
+
if (op === 'setLevels') {
|
|
68
|
+
if (input.levels && typeof input.levels === 'object') { levels = input.levels; await ctx.memory.set('iam.levels', levels); }
|
|
69
|
+
return { ok: true, levels: levels };
|
|
70
|
+
}
|
|
71
|
+
if (op === 'setCommands') {
|
|
72
|
+
if (Array.isArray(input.commands)) { commands = input.commands; await ctx.memory.set('iam.commands', commands); }
|
|
73
|
+
return { ok: true, commands: commands };
|
|
74
|
+
}
|
|
46
75
|
if (op === 'assign') {
|
|
47
76
|
if (input.ghii && input.role) { assignments[input.ghii] = input.role; await ctx.memory.set('iam.assignments', assignments); }
|
|
48
77
|
return { ok: true, assignments: assignments };
|
|
@@ -57,8 +86,8 @@ const EXTENSION_IAM = JSON.stringify({
|
|
|
57
86
|
manifest: [
|
|
58
87
|
'metadata:',
|
|
59
88
|
' name: iam',
|
|
60
|
-
' version: 1.
|
|
61
|
-
' description: In-app role & permission management with server-side enforcement.',
|
|
89
|
+
' version: 1.1.0',
|
|
90
|
+
' description: In-app role & permission management with server-side enforcement (BBS levels + command manifest).',
|
|
62
91
|
' author: operator',
|
|
63
92
|
'required_apis:',
|
|
64
93
|
' - memory',
|
|
@@ -66,9 +95,9 @@ const EXTENSION_IAM = JSON.stringify({
|
|
|
66
95
|
' - id: check',
|
|
67
96
|
' method: POST',
|
|
68
97
|
' path: /check',
|
|
69
|
-
' description: Check whether the
|
|
70
|
-
' input_schema: { type: object, properties: { permission: { type: string }
|
|
71
|
-
' output_schema: { type: object, properties: { allowed: { type: boolean }, role: { type: string } } }',
|
|
98
|
+
' description: Check whether the caller may do something — pass { permission } for a raw capability or { command } to resolve an app command (returns its mutation tier + needsConfirmation). Any authenticated user.',
|
|
99
|
+
' input_schema: { type: object, properties: { permission: { type: string }, command: { type: string } } }',
|
|
100
|
+
' output_schema: { type: object, properties: { allowed: { type: boolean }, role: { type: string }, level: { type: number }, tier: { type: string }, needsConfirmation: { type: boolean } } }',
|
|
72
101
|
' script: check.js',
|
|
73
102
|
' - id: admin',
|
|
74
103
|
' method: POST',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aimeat-iam-package.js","sourceRoot":"","sources":["../../../src/data/aimeat-iam-package.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"aimeat-iam-package.js","sourceRoot":"","sources":["../../../src/data/aimeat-iam-package.ts"],"names":[],"mappings":"AAgCA,kGAAkG;AAElG,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BnB,CAAC;AAEH,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuDnB,CAAC;AAEH,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;IACnC,QAAQ,EAAE;QACR,WAAW;QACX,aAAa;QACb,kBAAkB;QAClB,kHAAkH;QAClH,oBAAoB;QACpB,gBAAgB;QAChB,YAAY;QACZ,UAAU;QACV,eAAe;QACf,kBAAkB;QAClB,kBAAkB;QAClB,yNAAyN;QACzN,6GAA6G;QAC7G,gMAAgM;QAChM,sBAAsB;QACtB,eAAe;QACf,kBAAkB;QAClB,kBAAkB;QAClB,oFAAoF;QACpF,0FAA0F;QAC1F,4EAA4E;QAC5E,sBAAsB;KACvB,CAAC,IAAI,CAAC,IAAI,CAAC;IACZ,OAAO,EAAE;QACP,UAAU,EAAE,YAAY;QACxB,UAAU,EAAE,YAAY;KACzB;CACF,CAAC,CAAC;AAEH,qGAAqG;AAErG,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA4Md,CAAC;AAET,wEAAwE;AAExE,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,yUAAyU;QACtV,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,UAAU,CAAC;QAC3E,UAAU,EAAE,QAAQ;QACpB,UAAU,EAAE;YACV,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,2BAA2B,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE,EAAE;YACxH,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,eAAe,CAAC,EAAE;SACtH;QACD,eAAe,EAAE;YACf,KAAK,EAAE,kCAAkC;YACzC,WAAW,EAAE,8cAA8c;YAC3d,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,gBAAgB,CAAC;SAChE;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1250,6 +1250,28 @@ export interface paths {
|
|
|
1250
1250
|
patch: operations["updateAgentTags"];
|
|
1251
1251
|
trace?: never;
|
|
1252
1252
|
};
|
|
1253
|
+
"/v1/agents/{name}/engagements": {
|
|
1254
|
+
parameters: {
|
|
1255
|
+
query?: never;
|
|
1256
|
+
header?: never;
|
|
1257
|
+
path?: never;
|
|
1258
|
+
cookie?: never;
|
|
1259
|
+
};
|
|
1260
|
+
/**
|
|
1261
|
+
* List an agent's contract engagements across all workspaces (same-owner)
|
|
1262
|
+
* @description The agent's contract engagements (active + retired) across every organism/workspace, enriched
|
|
1263
|
+
* with organism + workspace display names — powers the agent-detail Contracts tab. Same-owner
|
|
1264
|
+
* gated: only the owner sees where their agent works.
|
|
1265
|
+
*/
|
|
1266
|
+
get: operations["listAgentEngagements"];
|
|
1267
|
+
put?: never;
|
|
1268
|
+
post?: never;
|
|
1269
|
+
delete?: never;
|
|
1270
|
+
options?: never;
|
|
1271
|
+
head?: never;
|
|
1272
|
+
patch?: never;
|
|
1273
|
+
trace?: never;
|
|
1274
|
+
};
|
|
1253
1275
|
"/v1/checkin": {
|
|
1254
1276
|
parameters: {
|
|
1255
1277
|
query?: never;
|
|
@@ -5736,11 +5758,13 @@ export interface paths {
|
|
|
5736
5758
|
cookie?: never;
|
|
5737
5759
|
};
|
|
5738
5760
|
/**
|
|
5739
|
-
* Search the people directory
|
|
5740
|
-
* @description Search the people directory with faceted filtering
|
|
5741
|
-
*
|
|
5742
|
-
*
|
|
5743
|
-
*
|
|
5761
|
+
* Search the people directory (the member "phone book")
|
|
5762
|
+
* @description Search the people directory with faceted filtering (type, city, area, country,
|
|
5763
|
+
* interests, geo-radius) with facet counts.
|
|
5764
|
+
*
|
|
5765
|
+
* Privacy (2026-07-03): **requires authentication** — you must be a signed-in user to
|
|
5766
|
+
* browse the directory (the anonymous internet is rejected). Entries are opt-in: only
|
|
5767
|
+
* profiles that chose to be listed appear.
|
|
5744
5768
|
*/
|
|
5745
5769
|
get: operations["searchDirectory"];
|
|
5746
5770
|
put?: never;
|
|
@@ -5924,6 +5948,10 @@ export interface paths {
|
|
|
5924
5948
|
* enumerable only by the member themself (authenticated as that owner or
|
|
5925
5949
|
* one of their agents) or an operator — for anyone else the member filter
|
|
5926
5950
|
* degrades to public organisms only (no private-membership disclosure).
|
|
5951
|
+
*
|
|
5952
|
+
* Roster privacy: each returned organism's `members`/`agentGaiis` arrays are
|
|
5953
|
+
* redacted to `[]` when the caller is below that organism's `member_visibility`
|
|
5954
|
+
* tier; `member_count` (pre-redaction) and `members_hidden` are attached per item.
|
|
5927
5955
|
*/
|
|
5928
5956
|
get: operations["listOrganisms"];
|
|
5929
5957
|
put?: never;
|
|
@@ -5951,6 +5979,11 @@ export interface paths {
|
|
|
5951
5979
|
* Get organism detail
|
|
5952
5980
|
* @description Get detailed information about a specific organism including
|
|
5953
5981
|
* member count and board reference.
|
|
5982
|
+
*
|
|
5983
|
+
* Roster privacy: when the caller is below the organism's `member_visibility`
|
|
5984
|
+
* tier, `organism.members`/`organism.agentGaiis` come back as `[]` and
|
|
5985
|
+
* `members_hidden: true` is set. `your_membership` ({ role, status } or null)
|
|
5986
|
+
* always answers "am I a member" for the caller; `member_count` stays.
|
|
5954
5987
|
*/
|
|
5955
5988
|
get: operations["getOrganism"];
|
|
5956
5989
|
/**
|
|
@@ -6022,9 +6055,12 @@ export interface paths {
|
|
|
6022
6055
|
};
|
|
6023
6056
|
/**
|
|
6024
6057
|
* List organism members
|
|
6025
|
-
* @description List
|
|
6026
|
-
*
|
|
6027
|
-
*
|
|
6058
|
+
* @description List an organism's members, gated by the organism's `member_visibility`
|
|
6059
|
+
* tier ('public' | 'authenticated' (default) | 'members' | 'admins').
|
|
6060
|
+
* Below the tier the listing shrinks to the ACCOUNTABILITY rows — the
|
|
6061
|
+
* creator/admin rows plus the caller's own row — with `members_hidden: true`
|
|
6062
|
+
* and the TRUE `total` (a count is not an identity). Creator/admins and
|
|
6063
|
+
* operators always see the full roster.
|
|
6028
6064
|
*
|
|
6029
6065
|
* When the caller is an ACTIVE member of the organism (or an operator),
|
|
6030
6066
|
* each member row additionally carries `agents: [{gaii, name}]` — the
|
|
@@ -6064,11 +6100,13 @@ export interface paths {
|
|
|
6064
6100
|
*/
|
|
6065
6101
|
get: operations["getOrganismWorkspace"];
|
|
6066
6102
|
/**
|
|
6067
|
-
* Update a workspace's
|
|
6068
|
-
* @description Update a workspace
|
|
6069
|
-
*
|
|
6070
|
-
*
|
|
6071
|
-
*
|
|
6103
|
+
* Update a workspace's definition in place (name/readme/structure/schemas/apps)
|
|
6104
|
+
* @description Update a workspace **in place** — its `name`, `readme`, its whole structure (a full
|
|
6105
|
+
* replacement `manifest`, or safe additive `add_spaces`), record `schemas`, and/or the `apps`
|
|
6106
|
+
* pinned to it — without changing its id (so nothing that references it gets orphaned). The
|
|
6107
|
+
* name is kept in sync across both places it lives: the manifest (`meta.manifest.name`) and
|
|
6108
|
+
* the organism's workspace registry (`meta.workspaces[].name`). App bindings live in their own
|
|
6109
|
+
* `…meta.apps` record, so a manifest replace never clobbers them.
|
|
6072
6110
|
* Creator-only (or an org admin). Mirrors the `aimeat_workspace_update` MCP tool.
|
|
6073
6111
|
*/
|
|
6074
6112
|
put: operations["updateOrganismWorkspace"];
|
|
@@ -6282,6 +6320,56 @@ export interface paths {
|
|
|
6282
6320
|
patch?: never;
|
|
6283
6321
|
trace?: never;
|
|
6284
6322
|
};
|
|
6323
|
+
"/v1/organisms/{id}/workspace/engagements": {
|
|
6324
|
+
parameters: {
|
|
6325
|
+
query?: never;
|
|
6326
|
+
header?: never;
|
|
6327
|
+
path?: never;
|
|
6328
|
+
cookie?: never;
|
|
6329
|
+
};
|
|
6330
|
+
/**
|
|
6331
|
+
* List a workspace's contract engagements (active + retired)
|
|
6332
|
+
* @description The first-class binding between an agent's contract capability and a workspace, with an
|
|
6333
|
+
* active/retired lifecycle — distinct from the derived "active here" record trace. Member-gated.
|
|
6334
|
+
*/
|
|
6335
|
+
get: operations["listWorkspaceEngagements"];
|
|
6336
|
+
put?: never;
|
|
6337
|
+
/**
|
|
6338
|
+
* Adopt (activate) a contract engagement for one of your agents
|
|
6339
|
+
* @description Writes an ACTIVE engagement for (agent × contract × workspace) — the source of truth an agent's
|
|
6340
|
+
* processing loop obeys. The caller must own the agent and be an organism member. Typically paired
|
|
6341
|
+
* with the adopt-contract task so the agent provisions the contract's spaces itself.
|
|
6342
|
+
*/
|
|
6343
|
+
post: operations["activateWorkspaceEngagement"];
|
|
6344
|
+
delete?: never;
|
|
6345
|
+
options?: never;
|
|
6346
|
+
head?: never;
|
|
6347
|
+
patch?: never;
|
|
6348
|
+
trace?: never;
|
|
6349
|
+
};
|
|
6350
|
+
"/v1/organisms/{id}/workspace/engagements/retire": {
|
|
6351
|
+
parameters: {
|
|
6352
|
+
query?: never;
|
|
6353
|
+
header?: never;
|
|
6354
|
+
path?: never;
|
|
6355
|
+
cookie?: never;
|
|
6356
|
+
};
|
|
6357
|
+
get?: never;
|
|
6358
|
+
put?: never;
|
|
6359
|
+
/**
|
|
6360
|
+
* Retire a contract engagement (real off-switch)
|
|
6361
|
+
* @description Flips an engagement to `retired` (kept as history: who served here, until when). The agent's
|
|
6362
|
+
* processing loop then skips this workspace. Allowed for the agent's OWNER or the workspace
|
|
6363
|
+
* creator/admin. Creates a retired marker even with no prior active engagement, so an agent that
|
|
6364
|
+
* started working before contracts were first-class can still be retired.
|
|
6365
|
+
*/
|
|
6366
|
+
post: operations["retireWorkspaceEngagement"];
|
|
6367
|
+
delete?: never;
|
|
6368
|
+
options?: never;
|
|
6369
|
+
head?: never;
|
|
6370
|
+
patch?: never;
|
|
6371
|
+
trace?: never;
|
|
6372
|
+
};
|
|
6285
6373
|
"/v1/organisms/{id}/workspace/export": {
|
|
6286
6374
|
parameters: {
|
|
6287
6375
|
query?: never;
|
|
@@ -6595,7 +6683,19 @@ export interface paths {
|
|
|
6595
6683
|
*/
|
|
6596
6684
|
get: operations["listNotifications"];
|
|
6597
6685
|
put?: never;
|
|
6598
|
-
|
|
6686
|
+
/**
|
|
6687
|
+
* Notify the caller's own owner (bell + browser push)
|
|
6688
|
+
* @description Create a notification for the CALLER's OWN owner — self-targeted only; there is no way to
|
|
6689
|
+
* notify an arbitrary owner. The notification lands in the header bell and, when the owner
|
|
6690
|
+
* has a web-push subscription, is mirrored as a browser push whose click opens `link`.
|
|
6691
|
+
*
|
|
6692
|
+
* Owner sessions may always call this. Agent sessions need the `notifications:send` scope.
|
|
6693
|
+
* App-grant sessions (role `app`) need `notifications:send` in their grant; an app
|
|
6694
|
+
* notification gets the app's name prefixed to the title (provenance) and `link` defaults to
|
|
6695
|
+
* the app's own open URL (`/v1/apps/{owner}/{file}?mode=inline`) so the click reopens the app.
|
|
6696
|
+
* Delivery is best-effort (`created: true` confirms acceptance, not push delivery).
|
|
6697
|
+
*/
|
|
6698
|
+
post: operations["createNotification"];
|
|
6599
6699
|
delete?: never;
|
|
6600
6700
|
options?: never;
|
|
6601
6701
|
head?: never;
|
|
@@ -12117,10 +12217,11 @@ export interface components {
|
|
|
12117
12217
|
/** @enum {string} */
|
|
12118
12218
|
DisputeStatus: "open" | "contested" | "escalated" | "resolved";
|
|
12119
12219
|
/**
|
|
12220
|
+
* @description Access level. `members` (any logged-in user of this node) and `group` apply to memory records; storage files accept private/owner/public only.
|
|
12120
12221
|
* @default private
|
|
12121
12222
|
* @enum {string}
|
|
12122
12223
|
*/
|
|
12123
|
-
Visibility: "private" | "owner" | "group" | "public";
|
|
12224
|
+
Visibility: "private" | "owner" | "group" | "members" | "public";
|
|
12124
12225
|
/** @enum {string} */
|
|
12125
12226
|
DisputeEventType: "dispute_opened" | "counter_dispute" | "message" | "re_delivery" | "accept_redelivery" | "withdraw_dispute" | "accept_fault" | "partial_offer" | "partial_accepted" | "partial_rejected" | "escalated" | "operator_ruled" | "timeout_resolved";
|
|
12126
12227
|
AimeatEnvelope: {
|
|
@@ -14980,7 +15081,7 @@ export interface operations {
|
|
|
14980
15081
|
/** @description Optional key prefix filter. */
|
|
14981
15082
|
prefix?: string;
|
|
14982
15083
|
/** @description Optional visibility filter. */
|
|
14983
|
-
visibility?: "private" | "owner" | "group" | "public";
|
|
15084
|
+
visibility?: "private" | "owner" | "group" | "members" | "public";
|
|
14984
15085
|
};
|
|
14985
15086
|
header?: never;
|
|
14986
15087
|
path: {
|
|
@@ -16930,6 +17031,29 @@ export interface operations {
|
|
|
16930
17031
|
404: components["responses"]["NotFound"];
|
|
16931
17032
|
};
|
|
16932
17033
|
};
|
|
17034
|
+
listAgentEngagements: {
|
|
17035
|
+
parameters: {
|
|
17036
|
+
query?: never;
|
|
17037
|
+
header?: never;
|
|
17038
|
+
path: {
|
|
17039
|
+
/** @description Agent name or URL-encoded GAII */
|
|
17040
|
+
name: string;
|
|
17041
|
+
};
|
|
17042
|
+
cookie?: never;
|
|
17043
|
+
};
|
|
17044
|
+
requestBody?: never;
|
|
17045
|
+
responses: {
|
|
17046
|
+
/** @description { agent, engagements: [{ organism_id, ws, agent, contract, state, adoptedAt, retiredAt, organismName, wsName }] } */
|
|
17047
|
+
200: {
|
|
17048
|
+
headers: {
|
|
17049
|
+
[name: string]: unknown;
|
|
17050
|
+
};
|
|
17051
|
+
content?: never;
|
|
17052
|
+
};
|
|
17053
|
+
403: components["responses"]["Forbidden"];
|
|
17054
|
+
404: components["responses"]["NotFound"];
|
|
17055
|
+
};
|
|
17056
|
+
};
|
|
16933
17057
|
agentCheckin: {
|
|
16934
17058
|
parameters: {
|
|
16935
17059
|
query?: never;
|
|
@@ -17657,7 +17781,7 @@ export interface operations {
|
|
|
17657
17781
|
query?: {
|
|
17658
17782
|
page?: components["parameters"]["Pagination"];
|
|
17659
17783
|
per_page?: components["parameters"]["PerPage"];
|
|
17660
|
-
visibility?: "private" | "owner" | "group" | "public";
|
|
17784
|
+
visibility?: "private" | "owner" | "group" | "members" | "public";
|
|
17661
17785
|
/** @description Comma-separated tag filter */
|
|
17662
17786
|
tags?: string;
|
|
17663
17787
|
/** @description Filter keys by prefix (e.g. "shared:" returns all shared:* keys) */
|
|
@@ -17831,7 +17955,7 @@ export interface operations {
|
|
|
17831
17955
|
query: {
|
|
17832
17956
|
/** @description Search query */
|
|
17833
17957
|
q: string;
|
|
17834
|
-
visibility?: "private" | "owner" | "group" | "public";
|
|
17958
|
+
visibility?: "private" | "owner" | "group" | "members" | "public";
|
|
17835
17959
|
/** @description Exclude entries with flagCount exceeding this value (Phase 1.5 data quality filter) */
|
|
17836
17960
|
max_flags?: number;
|
|
17837
17961
|
/** @description Scope the search to keys beginning with this prefix (e.g. a namespace/group like "organism.{id}.") */
|
|
@@ -17888,7 +18012,7 @@ export interface operations {
|
|
|
17888
18012
|
key: string;
|
|
17889
18013
|
value: unknown;
|
|
17890
18014
|
/** @enum {string} */
|
|
17891
|
-
visibility?: "private" | "owner" | "group" | "public";
|
|
18015
|
+
visibility?: "private" | "owner" | "group" | "members" | "public";
|
|
17892
18016
|
tags?: string[];
|
|
17893
18017
|
ttl_hours?: number;
|
|
17894
18018
|
}[];
|
|
@@ -18451,7 +18575,7 @@ export interface operations {
|
|
|
18451
18575
|
* @default private
|
|
18452
18576
|
* @enum {string}
|
|
18453
18577
|
*/
|
|
18454
|
-
visibility?: "private" | "owner" | "group" | "public";
|
|
18578
|
+
visibility?: "private" | "owner" | "group" | "members" | "public";
|
|
18455
18579
|
};
|
|
18456
18580
|
};
|
|
18457
18581
|
};
|
|
@@ -24734,6 +24858,12 @@ export interface operations {
|
|
|
24734
24858
|
* @enum {string}
|
|
24735
24859
|
*/
|
|
24736
24860
|
visibility?: "public" | "unlisted" | "private";
|
|
24861
|
+
/**
|
|
24862
|
+
* @description Who may see the member ROSTER (the members/agentGaiis fields and the /members listing). Unset = authenticated (any signed-in caller) — the anonymous internet never sees rosters. 'public' is a deliberate opt-in. Creator + admins stay visible at every tier (accountability); admins/operator always see the roster.
|
|
24863
|
+
* @default authenticated
|
|
24864
|
+
* @enum {string}
|
|
24865
|
+
*/
|
|
24866
|
+
member_visibility?: "public" | "authenticated" | "members" | "admins";
|
|
24737
24867
|
};
|
|
24738
24868
|
};
|
|
24739
24869
|
};
|
|
@@ -24773,7 +24903,17 @@ export interface operations {
|
|
|
24773
24903
|
};
|
|
24774
24904
|
content: {
|
|
24775
24905
|
"application/json": components["schemas"]["AimeatEnvelope"] & {
|
|
24776
|
-
data?:
|
|
24906
|
+
data?: {
|
|
24907
|
+
organism?: components["schemas"]["OrganismRecord"];
|
|
24908
|
+
member_count?: number;
|
|
24909
|
+
readme?: string | null;
|
|
24910
|
+
/** @description True when the roster was redacted for this caller */
|
|
24911
|
+
members_hidden?: boolean;
|
|
24912
|
+
your_membership?: {
|
|
24913
|
+
role?: string;
|
|
24914
|
+
status?: string;
|
|
24915
|
+
} | null;
|
|
24916
|
+
};
|
|
24777
24917
|
};
|
|
24778
24918
|
};
|
|
24779
24919
|
};
|
|
@@ -24812,6 +24952,11 @@ export interface operations {
|
|
|
24812
24952
|
joinPolicy?: "open" | "approval" | "invite";
|
|
24813
24953
|
/** @enum {string} */
|
|
24814
24954
|
visibility?: "public" | "unlisted" | "private";
|
|
24955
|
+
/**
|
|
24956
|
+
* @description Who may see the member roster. 'public' = anyone (deliberate opt-in), 'authenticated' = signed-in callers (the default), 'members' = active members, 'admins' = creator/admins only.
|
|
24957
|
+
* @enum {string}
|
|
24958
|
+
*/
|
|
24959
|
+
member_visibility?: "public" | "authenticated" | "members" | "admins";
|
|
24815
24960
|
};
|
|
24816
24961
|
};
|
|
24817
24962
|
};
|
|
@@ -25012,6 +25157,15 @@ export interface operations {
|
|
|
25012
25157
|
manifest?: Record<string, never> | null;
|
|
25013
25158
|
/** @description Markdown readme at organism.{id}.meta.readme */
|
|
25014
25159
|
readme?: unknown;
|
|
25160
|
+
/** @description Apps pinned to this workspace (the `…meta.apps` binding record; empty when none). Pinning is presentation/launch-context only — workspace data access stays gated per call. */
|
|
25161
|
+
apps?: {
|
|
25162
|
+
/** @description Publishing owner of the app */
|
|
25163
|
+
owner?: string;
|
|
25164
|
+
/** @description App filename under /v1/apps/{owner}/{filename} */
|
|
25165
|
+
filename?: string;
|
|
25166
|
+
/** @description Optional display label override */
|
|
25167
|
+
label?: string;
|
|
25168
|
+
}[];
|
|
25015
25169
|
/** @description Records keyed by the manifest's objectType name */
|
|
25016
25170
|
objects?: {
|
|
25017
25171
|
[key: string]: unknown[];
|
|
@@ -25047,6 +25201,20 @@ export interface operations {
|
|
|
25047
25201
|
name?: string;
|
|
25048
25202
|
/** @description New markdown readme/intro (replaces the current one) */
|
|
25049
25203
|
readme?: string;
|
|
25204
|
+
/** @description FULL replacement manifest (objectTypes + policy/gate + settings). For genuine restructuring; to only add spaces prefer `add_spaces`. */
|
|
25205
|
+
manifest?: Record<string, never>;
|
|
25206
|
+
/** @description ADDITIVE objectTypes to UNION into the manifest (skip-if-exists, defaults filled). Alias `add_object_types` is also accepted. */
|
|
25207
|
+
add_spaces?: Record<string, never>[];
|
|
25208
|
+
/** @description Map of namespace → JSON Schema, locked (strict) for that space's records. */
|
|
25209
|
+
schemas?: {
|
|
25210
|
+
[key: string]: Record<string, never>;
|
|
25211
|
+
};
|
|
25212
|
+
/** @description FULL replacement list of apps pinned to this workspace (`[]` clears; max 50). Each entry references a published app (/v1/apps/{owner}/{filename}). Pinning is presentation/launch-context only — workspace data access stays gated per call. */
|
|
25213
|
+
apps?: {
|
|
25214
|
+
owner: string;
|
|
25215
|
+
filename: string;
|
|
25216
|
+
label?: string;
|
|
25217
|
+
}[];
|
|
25050
25218
|
};
|
|
25051
25219
|
};
|
|
25052
25220
|
};
|
|
@@ -25059,7 +25227,7 @@ export interface operations {
|
|
|
25059
25227
|
content: {
|
|
25060
25228
|
"application/json": components["schemas"]["AimeatEnvelope"] & {
|
|
25061
25229
|
data?: {
|
|
25062
|
-
/** @description Which records changed: manifest / registry / readme */
|
|
25230
|
+
/** @description Which records changed: manifest / registry / readme / schemas / apps */
|
|
25063
25231
|
updated?: string[];
|
|
25064
25232
|
creator?: string;
|
|
25065
25233
|
name?: string;
|
|
@@ -25352,7 +25520,7 @@ export interface operations {
|
|
|
25352
25520
|
* @description `enrichment` folds the per-workspace getWorkspace+activity+participants fan-out into this one
|
|
25353
25521
|
* response: each readable workspace gains `enrichment: { hasManifest, recs, docs,
|
|
25354
25522
|
* lastEvent:{type,instance,action,at}|null, participants:[{owner,node,isLocalNode,isCreator,isSelf,agentsCount}],
|
|
25355
|
-
* pendingReviews }`. Workspaces with `access:none` carry no enrichment.
|
|
25523
|
+
* pendingReviews, apps:[{owner,filename,label?}] }`. Workspaces with `access:none` carry no enrichment.
|
|
25356
25524
|
*/
|
|
25357
25525
|
include?: "enrichment";
|
|
25358
25526
|
};
|
|
@@ -25475,6 +25643,103 @@ export interface operations {
|
|
|
25475
25643
|
404: components["responses"]["NotFound"];
|
|
25476
25644
|
};
|
|
25477
25645
|
};
|
|
25646
|
+
listWorkspaceEngagements: {
|
|
25647
|
+
parameters: {
|
|
25648
|
+
query: {
|
|
25649
|
+
/** @description Workspace id */
|
|
25650
|
+
ws: string;
|
|
25651
|
+
};
|
|
25652
|
+
header?: never;
|
|
25653
|
+
path: {
|
|
25654
|
+
/** @description Organism ID */
|
|
25655
|
+
id: string;
|
|
25656
|
+
};
|
|
25657
|
+
cookie?: never;
|
|
25658
|
+
};
|
|
25659
|
+
requestBody?: never;
|
|
25660
|
+
responses: {
|
|
25661
|
+
/** @description { ws, engagements: [{ organism_id, ws, agent, owner, agentName, contract, state, adoptedAt, adoptedBy, retiredAt, retiredBy }] } */
|
|
25662
|
+
200: {
|
|
25663
|
+
headers: {
|
|
25664
|
+
[name: string]: unknown;
|
|
25665
|
+
};
|
|
25666
|
+
content?: never;
|
|
25667
|
+
};
|
|
25668
|
+
400: components["responses"]["BadRequest"];
|
|
25669
|
+
403: components["responses"]["Forbidden"];
|
|
25670
|
+
404: components["responses"]["NotFound"];
|
|
25671
|
+
};
|
|
25672
|
+
};
|
|
25673
|
+
activateWorkspaceEngagement: {
|
|
25674
|
+
parameters: {
|
|
25675
|
+
query?: never;
|
|
25676
|
+
header?: never;
|
|
25677
|
+
path: {
|
|
25678
|
+
/** @description Organism ID */
|
|
25679
|
+
id: string;
|
|
25680
|
+
};
|
|
25681
|
+
cookie?: never;
|
|
25682
|
+
};
|
|
25683
|
+
requestBody: {
|
|
25684
|
+
content: {
|
|
25685
|
+
"application/json": {
|
|
25686
|
+
/** @description Workspace id */
|
|
25687
|
+
ws: string;
|
|
25688
|
+
/** @description The agent (full GAII or bare name — must be owned by the caller) */
|
|
25689
|
+
agent: string;
|
|
25690
|
+
/** @description Contract id (a contract.<id> tag); omit for the bare workspace-contract marker */
|
|
25691
|
+
contract?: string;
|
|
25692
|
+
};
|
|
25693
|
+
};
|
|
25694
|
+
};
|
|
25695
|
+
responses: {
|
|
25696
|
+
/** @description { engagement } */
|
|
25697
|
+
200: {
|
|
25698
|
+
headers: {
|
|
25699
|
+
[name: string]: unknown;
|
|
25700
|
+
};
|
|
25701
|
+
content?: never;
|
|
25702
|
+
};
|
|
25703
|
+
400: components["responses"]["BadRequest"];
|
|
25704
|
+
403: components["responses"]["Forbidden"];
|
|
25705
|
+
404: components["responses"]["NotFound"];
|
|
25706
|
+
};
|
|
25707
|
+
};
|
|
25708
|
+
retireWorkspaceEngagement: {
|
|
25709
|
+
parameters: {
|
|
25710
|
+
query?: never;
|
|
25711
|
+
header?: never;
|
|
25712
|
+
path: {
|
|
25713
|
+
/** @description Organism ID */
|
|
25714
|
+
id: string;
|
|
25715
|
+
};
|
|
25716
|
+
cookie?: never;
|
|
25717
|
+
};
|
|
25718
|
+
requestBody: {
|
|
25719
|
+
content: {
|
|
25720
|
+
"application/json": {
|
|
25721
|
+
/** @description Workspace id */
|
|
25722
|
+
ws: string;
|
|
25723
|
+
/** @description The agent (full GAII or bare name) */
|
|
25724
|
+
agent: string;
|
|
25725
|
+
/** @description Contract id; omit for the bare marker */
|
|
25726
|
+
contract?: string;
|
|
25727
|
+
};
|
|
25728
|
+
};
|
|
25729
|
+
};
|
|
25730
|
+
responses: {
|
|
25731
|
+
/** @description { engagement } */
|
|
25732
|
+
200: {
|
|
25733
|
+
headers: {
|
|
25734
|
+
[name: string]: unknown;
|
|
25735
|
+
};
|
|
25736
|
+
content?: never;
|
|
25737
|
+
};
|
|
25738
|
+
400: components["responses"]["BadRequest"];
|
|
25739
|
+
403: components["responses"]["Forbidden"];
|
|
25740
|
+
404: components["responses"]["NotFound"];
|
|
25741
|
+
};
|
|
25742
|
+
};
|
|
25478
25743
|
exportWorkspace: {
|
|
25479
25744
|
parameters: {
|
|
25480
25745
|
query: {
|
|
@@ -25975,6 +26240,46 @@ export interface operations {
|
|
|
25975
26240
|
401: components["responses"]["Unauthorized"];
|
|
25976
26241
|
};
|
|
25977
26242
|
};
|
|
26243
|
+
createNotification: {
|
|
26244
|
+
parameters: {
|
|
26245
|
+
query?: never;
|
|
26246
|
+
header?: never;
|
|
26247
|
+
path?: never;
|
|
26248
|
+
cookie?: never;
|
|
26249
|
+
};
|
|
26250
|
+
requestBody: {
|
|
26251
|
+
content: {
|
|
26252
|
+
"application/json": {
|
|
26253
|
+
/** @description Short title shown in the bell and push */
|
|
26254
|
+
title: string;
|
|
26255
|
+
/** @description Optional longer context */
|
|
26256
|
+
body?: string;
|
|
26257
|
+
/** @description Same-node path the notification deep-links to (must start with '/'), e.g. '/v1/profile?tab=messages' */
|
|
26258
|
+
link?: string;
|
|
26259
|
+
/** @description Machine type; defaults to 'app' / 'agent' / 'custom' by caller role */
|
|
26260
|
+
type?: string;
|
|
26261
|
+
};
|
|
26262
|
+
};
|
|
26263
|
+
};
|
|
26264
|
+
responses: {
|
|
26265
|
+
/** @description Notification accepted ({ created: true, link }) */
|
|
26266
|
+
201: {
|
|
26267
|
+
headers: {
|
|
26268
|
+
[name: string]: unknown;
|
|
26269
|
+
};
|
|
26270
|
+
content?: never;
|
|
26271
|
+
};
|
|
26272
|
+
400: components["responses"]["BadRequest"];
|
|
26273
|
+
401: components["responses"]["Unauthorized"];
|
|
26274
|
+
/** @description Missing notifications:send scope */
|
|
26275
|
+
403: {
|
|
26276
|
+
headers: {
|
|
26277
|
+
[name: string]: unknown;
|
|
26278
|
+
};
|
|
26279
|
+
content?: never;
|
|
26280
|
+
};
|
|
26281
|
+
};
|
|
26282
|
+
};
|
|
25978
26283
|
markNotificationsRead: {
|
|
25979
26284
|
parameters: {
|
|
25980
26285
|
query?: never;
|