aimeat 1.23.2 → 1.24.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.
Files changed (239) hide show
  1. package/dist/locales/en.json +580 -21
  2. package/dist/locales/fi.json +592 -33
  3. package/dist/public/components/ContactCard.js +28 -0
  4. package/dist/public/css/views/admin.css +12 -0
  5. package/dist/public/css/views/agents-detail.css +62 -10
  6. package/dist/public/css/views/landing.css +87 -0
  7. package/dist/public/css/views/offers.css +96 -0
  8. package/dist/public/css/views/portfolio.css +18 -0
  9. package/dist/public/css/views/profile.css +153 -8
  10. package/dist/public/css/views/start.css +96 -0
  11. package/dist/public/css/views/workflows.css +111 -0
  12. package/dist/public/img/business-hero.png +0 -0
  13. package/dist/public/img/toimitus.png +0 -0
  14. package/dist/public/js/components/tag-cloud.js +46 -31
  15. package/dist/public/js/components/tag-editor.js +2 -2
  16. package/dist/public/js/recents.js +40 -0
  17. package/dist/public/js/services/admin.js +6 -0
  18. package/dist/public/js/services/agents.js +34 -0
  19. package/dist/public/js/services/offers.js +152 -0
  20. package/dist/public/js/services/packages.js +1 -0
  21. package/dist/public/js/services/workflows.js +57 -0
  22. package/dist/public/llms-template.txt +7 -0
  23. package/dist/public/spa.html +35 -3
  24. package/dist/public/views/admin/subdomains-tab.js +182 -0
  25. package/dist/public/views/admin.js +2 -0
  26. package/dist/public/views/business.js +119 -0
  27. package/dist/public/views/how-it-works.js +159 -0
  28. package/dist/public/views/landing.js +235 -0
  29. package/dist/public/views/portfolio.js +120 -23
  30. package/dist/public/views/pricing.js +75 -0
  31. package/dist/public/views/profile/access-tab.js +124 -51
  32. package/dist/public/views/profile/agents/agent-card.js +68 -37
  33. package/dist/public/views/profile/agents/shared-board.js +56 -22
  34. package/dist/public/views/profile/agents/tab-activity.js +24 -12
  35. package/dist/public/views/profile/agents/tab-agent-config.js +31 -1
  36. package/dist/public/views/profile/agents/tab-data-access.js +9 -13
  37. package/dist/public/views/profile/agents/tab-integration.js +27 -1
  38. package/dist/public/views/profile/agents/tab-messages.js +6 -11
  39. package/dist/public/views/profile/agents/tab-quality.js +45 -5
  40. package/dist/public/views/profile/agents-tab.js +41 -6
  41. package/dist/public/views/profile/apps-tab.js +7 -1
  42. package/dist/public/views/profile/knowledge-tab.js +4 -1
  43. package/dist/public/views/profile/landing-page.js +428 -123
  44. package/dist/public/views/profile/memory-tab.js +409 -211
  45. package/dist/public/views/profile/nodes-tab.js +18 -3
  46. package/dist/public/views/profile/offers-tab.js +310 -0
  47. package/dist/public/views/profile/organisms-tab.js +289 -28
  48. package/dist/public/views/profile/packages-tab.js +152 -16
  49. package/dist/public/views/profile/portfolio-tab.js +98 -31
  50. package/dist/public/views/profile/workflows-form.js +220 -0
  51. package/dist/public/views/profile/workflows-tab.js +244 -0
  52. package/dist/public/views/profile.js +4 -0
  53. package/dist/public/views/start-flows.js +281 -0
  54. package/dist/public/views/start.js +258 -0
  55. package/dist/src/cli/connect/mcp/tools/index.d.ts.map +1 -1
  56. package/dist/src/cli/connect/mcp/tools/index.js +2 -0
  57. package/dist/src/cli/connect/mcp/tools/index.js.map +1 -1
  58. package/dist/src/cli/connect/mcp/tools/workflows.d.ts +12 -0
  59. package/dist/src/cli/connect/mcp/tools/workflows.d.ts.map +1 -0
  60. package/dist/src/cli/connect/mcp/tools/workflows.js +37 -0
  61. package/dist/src/cli/connect/mcp/tools/workflows.js.map +1 -0
  62. package/dist/src/cli/connect/tool-call.d.ts.map +1 -1
  63. package/dist/src/cli/connect/tool-call.js +37 -0
  64. package/dist/src/cli/connect/tool-call.js.map +1 -1
  65. package/dist/src/generated/api-types.d.ts +1474 -66
  66. package/dist/src/generated/api-types.d.ts.map +1 -1
  67. package/dist/src/generated/prisma-postgres/edge.js +15 -3
  68. package/dist/src/generated/prisma-postgres/index-browser.js +12 -0
  69. package/dist/src/generated/prisma-postgres/index.d.ts +1476 -160
  70. package/dist/src/generated/prisma-postgres/index.js +15 -3
  71. package/dist/src/generated/prisma-postgres/package.json +1 -1
  72. package/dist/src/generated/prisma-postgres/schema.prisma +11 -0
  73. package/dist/src/generated/prisma-postgres/wasm.js +15 -3
  74. package/dist/src/mcp/annotations.d.ts.map +1 -1
  75. package/dist/src/mcp/annotations.js +3 -0
  76. package/dist/src/mcp/annotations.js.map +1 -1
  77. package/dist/src/mcp/catalog/definitions.d.ts.map +1 -1
  78. package/dist/src/mcp/catalog/definitions.js +27 -0
  79. package/dist/src/mcp/catalog/definitions.js.map +1 -1
  80. package/dist/src/mcp/catalog/scopes.d.ts.map +1 -1
  81. package/dist/src/mcp/catalog/scopes.js +5 -1
  82. package/dist/src/mcp/catalog/scopes.js.map +1 -1
  83. package/dist/src/mcp/catalog/surfaces.d.ts.map +1 -1
  84. package/dist/src/mcp/catalog/surfaces.js +1 -0
  85. package/dist/src/mcp/catalog/surfaces.js.map +1 -1
  86. package/dist/src/mcp/index.d.ts.map +1 -1
  87. package/dist/src/mcp/index.js +2 -0
  88. package/dist/src/mcp/index.js.map +1 -1
  89. package/dist/src/mcp/workflows.d.ts +18 -0
  90. package/dist/src/mcp/workflows.d.ts.map +1 -0
  91. package/dist/src/mcp/workflows.js +68 -0
  92. package/dist/src/mcp/workflows.js.map +1 -0
  93. package/dist/src/middleware/subdomain.d.ts +28 -0
  94. package/dist/src/middleware/subdomain.d.ts.map +1 -0
  95. package/dist/src/middleware/subdomain.js +32 -0
  96. package/dist/src/middleware/subdomain.js.map +1 -0
  97. package/dist/src/models/offer-schemas.d.ts +236 -0
  98. package/dist/src/models/offer-schemas.d.ts.map +1 -0
  99. package/dist/src/models/offer-schemas.js +112 -0
  100. package/dist/src/models/offer-schemas.js.map +1 -0
  101. package/dist/src/models/workflow-schemas.d.ts +220 -0
  102. package/dist/src/models/workflow-schemas.d.ts.map +1 -0
  103. package/dist/src/models/workflow-schemas.js +102 -0
  104. package/dist/src/models/workflow-schemas.js.map +1 -0
  105. package/dist/src/routes/agent-tasks.d.ts.map +1 -1
  106. package/dist/src/routes/agent-tasks.js +49 -0
  107. package/dist/src/routes/agent-tasks.js.map +1 -1
  108. package/dist/src/routes/agents.d.ts.map +1 -1
  109. package/dist/src/routes/agents.js +146 -1
  110. package/dist/src/routes/agents.js.map +1 -1
  111. package/dist/src/routes/apps-backup.d.ts +20 -0
  112. package/dist/src/routes/apps-backup.d.ts.map +1 -0
  113. package/dist/src/routes/apps-backup.js +165 -0
  114. package/dist/src/routes/apps-backup.js.map +1 -0
  115. package/dist/src/routes/ghii.d.ts.map +1 -1
  116. package/dist/src/routes/ghii.js +4 -0
  117. package/dist/src/routes/ghii.js.map +1 -1
  118. package/dist/src/routes/instances.d.ts +2 -1
  119. package/dist/src/routes/instances.d.ts.map +1 -1
  120. package/dist/src/routes/instances.js +59 -1
  121. package/dist/src/routes/instances.js.map +1 -1
  122. package/dist/src/routes/memory.d.ts.map +1 -1
  123. package/dist/src/routes/memory.js +5 -0
  124. package/dist/src/routes/memory.js.map +1 -1
  125. package/dist/src/routes/packages.d.ts.map +1 -1
  126. package/dist/src/routes/packages.js +32 -0
  127. package/dist/src/routes/packages.js.map +1 -1
  128. package/dist/src/routes/permissions.d.ts +12 -0
  129. package/dist/src/routes/permissions.d.ts.map +1 -1
  130. package/dist/src/routes/permissions.js +35 -3
  131. package/dist/src/routes/permissions.js.map +1 -1
  132. package/dist/src/routes/portal.d.ts +3 -0
  133. package/dist/src/routes/portal.d.ts.map +1 -1
  134. package/dist/src/routes/portal.js +12 -0
  135. package/dist/src/routes/portal.js.map +1 -1
  136. package/dist/src/routes/public-stats.d.ts +15 -0
  137. package/dist/src/routes/public-stats.d.ts.map +1 -0
  138. package/dist/src/routes/public-stats.js +90 -0
  139. package/dist/src/routes/public-stats.js.map +1 -0
  140. package/dist/src/routes/sse.d.ts +7 -2
  141. package/dist/src/routes/sse.d.ts.map +1 -1
  142. package/dist/src/routes/sse.js +35 -5
  143. package/dist/src/routes/sse.js.map +1 -1
  144. package/dist/src/routes/stats.d.ts.map +1 -1
  145. package/dist/src/routes/stats.js +13 -0
  146. package/dist/src/routes/stats.js.map +1 -1
  147. package/dist/src/routes/subdomains.d.ts +33 -0
  148. package/dist/src/routes/subdomains.d.ts.map +1 -0
  149. package/dist/src/routes/subdomains.js +208 -0
  150. package/dist/src/routes/subdomains.js.map +1 -0
  151. package/dist/src/routes/workflows.d.ts +30 -0
  152. package/dist/src/routes/workflows.d.ts.map +1 -0
  153. package/dist/src/routes/workflows.js +178 -0
  154. package/dist/src/routes/workflows.js.map +1 -0
  155. package/dist/src/server-bootstrap/routes-loader.d.ts +2 -0
  156. package/dist/src/server-bootstrap/routes-loader.d.ts.map +1 -1
  157. package/dist/src/server-bootstrap/routes-loader.js +19 -2
  158. package/dist/src/server-bootstrap/routes-loader.js.map +1 -1
  159. package/dist/src/server-bootstrap/service-init.d.ts +2 -0
  160. package/dist/src/server-bootstrap/service-init.d.ts.map +1 -1
  161. package/dist/src/server-bootstrap/service-init.js +6 -0
  162. package/dist/src/server-bootstrap/service-init.js.map +1 -1
  163. package/dist/src/server.d.ts.map +1 -1
  164. package/dist/src/server.js +5 -0
  165. package/dist/src/server.js.map +1 -1
  166. package/dist/src/services/apps-backup-export.d.ts +22 -0
  167. package/dist/src/services/apps-backup-export.d.ts.map +1 -0
  168. package/dist/src/services/apps-backup-export.js +136 -0
  169. package/dist/src/services/apps-backup-export.js.map +1 -0
  170. package/dist/src/services/apps-backup-import.d.ts +120 -0
  171. package/dist/src/services/apps-backup-import.d.ts.map +1 -0
  172. package/dist/src/services/apps-backup-import.js +259 -0
  173. package/dist/src/services/apps-backup-import.js.map +1 -0
  174. package/dist/src/services/component-registrar.d.ts +17 -0
  175. package/dist/src/services/component-registrar.d.ts.map +1 -1
  176. package/dist/src/services/component-registrar.js +63 -5
  177. package/dist/src/services/component-registrar.js.map +1 -1
  178. package/dist/src/services/handbooks/agent.d.ts +1 -1
  179. package/dist/src/services/handbooks/agent.d.ts.map +1 -1
  180. package/dist/src/services/handbooks/agent.js +10 -0
  181. package/dist/src/services/handbooks/agent.js.map +1 -1
  182. package/dist/src/services/handbooks/appdev.d.ts +1 -1
  183. package/dist/src/services/handbooks/appdev.d.ts.map +1 -1
  184. package/dist/src/services/handbooks/appdev.js +5 -2
  185. package/dist/src/services/handbooks/appdev.js.map +1 -1
  186. package/dist/src/services/scheduler.d.ts +6 -0
  187. package/dist/src/services/scheduler.d.ts.map +1 -1
  188. package/dist/src/services/scheduler.js +22 -0
  189. package/dist/src/services/scheduler.js.map +1 -1
  190. package/dist/src/services/schema-validator.d.ts +9 -0
  191. package/dist/src/services/schema-validator.d.ts.map +1 -1
  192. package/dist/src/services/schema-validator.js +16 -0
  193. package/dist/src/services/schema-validator.js.map +1 -1
  194. package/dist/src/services/workflow/engine.d.ts +84 -0
  195. package/dist/src/services/workflow/engine.d.ts.map +1 -0
  196. package/dist/src/services/workflow/engine.js +545 -0
  197. package/dist/src/services/workflow/engine.js.map +1 -0
  198. package/dist/src/services/workflow/eval-context.d.ts +23 -0
  199. package/dist/src/services/workflow/eval-context.d.ts.map +1 -0
  200. package/dist/src/services/workflow/eval-context.js +52 -0
  201. package/dist/src/services/workflow/eval-context.js.map +1 -0
  202. package/dist/src/services/workflow/lifecycle.d.ts +38 -0
  203. package/dist/src/services/workflow/lifecycle.d.ts.map +1 -0
  204. package/dist/src/services/workflow/lifecycle.js +99 -0
  205. package/dist/src/services/workflow/lifecycle.js.map +1 -0
  206. package/dist/src/services/workflow/signal-eval.d.ts +70 -0
  207. package/dist/src/services/workflow/signal-eval.d.ts.map +1 -0
  208. package/dist/src/services/workflow/signal-eval.js +174 -0
  209. package/dist/src/services/workflow/signal-eval.js.map +1 -0
  210. package/dist/src/services/workflow/store.d.ts +89 -0
  211. package/dist/src/services/workflow/store.d.ts.map +1 -0
  212. package/dist/src/services/workflow/store.js +284 -0
  213. package/dist/src/services/workflow/store.js.map +1 -0
  214. package/dist/src/storage/interface.d.ts +13 -3
  215. package/dist/src/storage/interface.d.ts.map +1 -1
  216. package/dist/src/storage/interface.js.map +1 -1
  217. package/dist/src/storage/providers/mongodb/index.d.ts +10 -1
  218. package/dist/src/storage/providers/mongodb/index.d.ts.map +1 -1
  219. package/dist/src/storage/providers/mongodb/index.js +76 -0
  220. package/dist/src/storage/providers/mongodb/index.js.map +1 -1
  221. package/dist/src/storage/providers/sqlite/index.d.ts +8 -1
  222. package/dist/src/storage/providers/sqlite/index.d.ts.map +1 -1
  223. package/dist/src/storage/providers/sqlite/index.js +61 -0
  224. package/dist/src/storage/providers/sqlite/index.js.map +1 -1
  225. package/dist/src/storage/providers/sqlite/schema.d.ts.map +1 -1
  226. package/dist/src/storage/providers/sqlite/schema.js +11 -0
  227. package/dist/src/storage/providers/sqlite/schema.js.map +1 -1
  228. package/dist/src/storage/repositories/index.d.ts +1 -0
  229. package/dist/src/storage/repositories/index.d.ts.map +1 -1
  230. package/dist/src/storage/repositories/package.repository.d.ts +2 -0
  231. package/dist/src/storage/repositories/package.repository.d.ts.map +1 -1
  232. package/dist/src/storage/repositories/subdomain-site.repository.d.ts +19 -0
  233. package/dist/src/storage/repositories/subdomain-site.repository.d.ts.map +1 -0
  234. package/dist/src/storage/repositories/subdomain-site.repository.js +2 -0
  235. package/dist/src/storage/repositories/subdomain-site.repository.js.map +1 -0
  236. package/dist/static/app-catalog.html +1139 -28
  237. package/package.json +1 -1
  238. package/prisma/schema.postgres.prisma +11 -0
  239. package/prisma/schema.prisma +11 -0
@@ -0,0 +1,89 @@
1
+ /**
2
+ * @file store.ts
3
+ * @description Workflow persistence + save-time validation + offer resolution + blueprint, all over
4
+ * the owner's existing memory (NO new SQLite/Mongo tables — Agent Workflows reuses the flexible
5
+ * memory system). Definitions live in the owner GHII namespace so the owner AND all their agents
6
+ * see them: `workflows.def.<id>`; runs (written by the engine, Phase 4) live at
7
+ * `workflows.run.<id>.<runId>`. A workflow is only saveable when its graph is a DAG and every
8
+ * step's agent/offer publishes its signals (an agent is "workflow-compatible" exactly then). The
9
+ * blueprint is DERIVED from those offers along step order, not hand-authored. See
10
+ * docs/plans/2026-06-13-agent-workflows-node-plan.md §3,§5,§8.
11
+ * @structure
12
+ * - key helpers: defKey / runKeyPrefix / runKey
13
+ * - CRUD: getWorkflow / listWorkflows / saveWorkflow / deleteWorkflow / listRuns / getRun
14
+ * - validation (pure, exported for tests): collectSignalKeys / collectVarRefs / detectCycle /
15
+ * missingAfterRefs
16
+ * - offer resolution: resolveStep (storage) → effective signals + deliverable location
17
+ * - buildBlueprint — derived structural graph (nodes + edges + keys touched)
18
+ * @usage import { saveWorkflow, getWorkflow, buildBlueprint } from '../workflow/store.js';
19
+ * @version-history
20
+ * v1.0.0 — 2026-06-13 — Phase 3: memory-backed CRUD + DAG/offer validation + blueprint.
21
+ */
22
+ import type { AimeatConfig } from '../../config.js';
23
+ import type { Storage } from '../../storage/interface.js';
24
+ import { type WorkflowDef, type WorkflowDefInput, type WorkflowStep, type WorkflowRun, type Signal } from '../../models/workflow-schemas.js';
25
+ export declare const defKey: (id: string) => string;
26
+ export declare const runKeyPrefix: (id: string) => string;
27
+ export declare const runKey: (id: string, runId: string) => string;
28
+ export declare const DEF_LIST_PREFIX = "workflows.def.";
29
+ /** Collect the raw key / key_glob templates referenced anywhere in a signal tree. */
30
+ export declare function collectSignalKeys(signal: Signal | 'none' | undefined): string[];
31
+ /** Extract the {var} names referenced across a list of key templates. */
32
+ export declare function collectVarRefs(keyTemplates: string[]): Set<string>;
33
+ /** `after` ids that don't name an existing step. */
34
+ export declare function missingAfterRefs(steps: Pick<WorkflowStep, 'id' | 'after'>[]): string[];
35
+ /** Detect a cycle in the `after` dependency graph. Returns the offending path, or null if a DAG. */
36
+ export declare function detectCycle(steps: Pick<WorkflowStep, 'id' | 'after'>[]): string[] | null;
37
+ export interface ResolvedStep {
38
+ stepId: string;
39
+ agents: string[];
40
+ offerId: string;
41
+ /** Effective signals: the step's own, else inherited from the offer. */
42
+ success_signal?: Signal;
43
+ required_to_function?: Signal | 'none';
44
+ deliverableKey?: string;
45
+ }
46
+ export interface ValidationResult {
47
+ ok: boolean;
48
+ errors: string[];
49
+ resolved?: ResolvedStep[];
50
+ }
51
+ export declare function validateWorkflow(storage: Storage, config: AimeatConfig, ownerName: string, input: WorkflowDefInput): Promise<ValidationResult>;
52
+ export declare function getWorkflow(storage: Storage, ownerGhii: string, id: string): Promise<WorkflowDef | null>;
53
+ export declare function listWorkflows(storage: Storage, ownerGhii: string): Promise<WorkflowDef[]>;
54
+ export interface SaveResult {
55
+ ok: boolean;
56
+ def?: WorkflowDef;
57
+ errors?: string[];
58
+ }
59
+ /**
60
+ * Validate + persist a workflow definition under the owner GHII namespace. `createdBy` records the
61
+ * author (owner GHII or agent GAII) for audit; createdAt is preserved across updates.
62
+ */
63
+ export declare function saveWorkflow(storage: Storage, config: AimeatConfig, ownerGhii: string, ownerName: string, id: string, body: unknown, createdBy: string): Promise<SaveResult>;
64
+ export declare function deleteWorkflow(storage: Storage, ownerGhii: string, id: string, opts?: {
65
+ withRuns?: boolean;
66
+ }): Promise<boolean>;
67
+ export declare function listRuns(storage: Storage, ownerGhii: string, id: string): Promise<WorkflowRun[]>;
68
+ export declare function getRun(storage: Storage, ownerGhii: string, id: string, runId: string): Promise<WorkflowRun | null>;
69
+ export interface BlueprintNode {
70
+ stepId: string;
71
+ agents: string[];
72
+ offerId: string;
73
+ reads: string[];
74
+ writes: string[];
75
+ }
76
+ export interface Blueprint {
77
+ workflowId: string;
78
+ nodes: BlueprintNode[];
79
+ edges: Array<{
80
+ from: string;
81
+ to: string;
82
+ }>;
83
+ }
84
+ /**
85
+ * Compose the steps into one structural blueprint, derived from the resolved offers along the step
86
+ * order. Shows the input→output flow and the exact memory keys each step touches (as templates).
87
+ */
88
+ export declare function buildBlueprint(def: WorkflowDef, resolved: ResolvedStep[]): Blueprint;
89
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../src/services/workflow/store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,284 @@
1
+ import { buildGAII } from '../../utils/gaii.js';
2
+ import { WorkflowDefInputSchema, WORKFLOW_ID_RE, } from '../../models/workflow-schemas.js';
3
+ // ── memory keys ────────────────────────────────────────────────────────────────
4
+ export const defKey = (id) => `workflows.def.${id}`;
5
+ export const runKeyPrefix = (id) => `workflows.run.${id}.`;
6
+ export const runKey = (id, runId) => `workflows.run.${id}.${runId}`;
7
+ export const DEF_LIST_PREFIX = 'workflows.def.';
8
+ // ── pure validation helpers (exported for unit tests) ──────────────────────────
9
+ /** Collect the raw key / key_glob templates referenced anywhere in a signal tree. */
10
+ export function collectSignalKeys(signal) {
11
+ if (!signal || signal === 'none')
12
+ return [];
13
+ const out = [];
14
+ const walk = (s) => {
15
+ if ('all' in s) {
16
+ s.all.forEach(walk);
17
+ return;
18
+ }
19
+ if ('any' in s) {
20
+ s.any.forEach(walk);
21
+ return;
22
+ }
23
+ if ('when' in s) {
24
+ walk(s.when);
25
+ walk(s.then);
26
+ return;
27
+ }
28
+ if ('kind' in s) {
29
+ if (s.key)
30
+ out.push(s.key);
31
+ if (s.key_glob)
32
+ out.push(s.key_glob);
33
+ }
34
+ };
35
+ walk(signal);
36
+ return out;
37
+ }
38
+ /** Extract the {var} names referenced across a list of key templates. */
39
+ export function collectVarRefs(keyTemplates) {
40
+ const refs = new Set();
41
+ for (const tmpl of keyTemplates) {
42
+ for (const m of tmpl.matchAll(/\{([a-zA-Z0-9_]+)\}/g))
43
+ refs.add(m[1]);
44
+ }
45
+ return refs;
46
+ }
47
+ /** `after` ids that don't name an existing step. */
48
+ export function missingAfterRefs(steps) {
49
+ const ids = new Set(steps.map(s => s.id));
50
+ const missing = new Set();
51
+ for (const s of steps)
52
+ for (const dep of s.after ?? [])
53
+ if (!ids.has(dep))
54
+ missing.add(dep);
55
+ return [...missing];
56
+ }
57
+ /** Detect a cycle in the `after` dependency graph. Returns the offending path, or null if a DAG. */
58
+ export function detectCycle(steps) {
59
+ const deps = new Map(steps.map(s => [s.id, s.after ?? []]));
60
+ const state = new Map();
61
+ const stack = [];
62
+ let cycle = null;
63
+ const dfs = (id) => {
64
+ if (cycle)
65
+ return;
66
+ state.set(id, 'visiting');
67
+ stack.push(id);
68
+ for (const dep of deps.get(id) ?? []) {
69
+ if (!deps.has(dep))
70
+ continue; // missing refs reported separately
71
+ const st = state.get(dep);
72
+ if (st === 'visiting') {
73
+ cycle = [...stack.slice(stack.indexOf(dep)), dep];
74
+ return;
75
+ }
76
+ if (st !== 'done')
77
+ dfs(dep);
78
+ if (cycle)
79
+ return;
80
+ }
81
+ stack.pop();
82
+ state.set(id, 'done');
83
+ };
84
+ for (const s of steps)
85
+ if (state.get(s.id) !== 'done') {
86
+ dfs(s.id);
87
+ if (cycle)
88
+ break;
89
+ }
90
+ return cycle;
91
+ }
92
+ /** Read one agent's published offers (stored under the agent's GAII as `agents.<name>.offers`). */
93
+ async function readAgentOffers(storage, config, ownerName, agentName) {
94
+ const gaii = buildGAII(agentName, ownerName, config.nodeId);
95
+ const rec = await storage.getMemory(gaii, `agents.${agentName}.offers`);
96
+ const offers = rec?.value?.offers;
97
+ return Array.isArray(offers) ? offers : [];
98
+ }
99
+ /**
100
+ * Resolve a step's effective signals from its agent(s)' offer. Returns the resolved view, or an
101
+ * error string when an agent/offer is missing or not workflow-compatible (no published signals).
102
+ */
103
+ async function resolveStep(storage, config, ownerName, step) {
104
+ const agents = Array.isArray(step.agent) ? step.agent : [step.agent];
105
+ let chosen;
106
+ for (const agentName of agents) {
107
+ const offers = await readAgentOffers(storage, config, ownerName, agentName);
108
+ const offer = offers.find(o => o.id === step.offer);
109
+ if (!offer)
110
+ return { error: `step "${step.id}": agent "${agentName}" does not publish offer "${step.offer}"` };
111
+ const hasSignals = !!offer.success_signal && !!offer.required_to_function;
112
+ const hasLocation = !!offer.deliverable?.location?.key || !!offer.deliverable?.location?.url;
113
+ if (!hasSignals || !hasLocation) {
114
+ return { error: `step "${step.id}": offer "${step.offer}" (agent "${agentName}") is not workflow-compatible — it must publish success_signal + required_to_function + deliverable.location` };
115
+ }
116
+ if (!chosen)
117
+ chosen = offer; // signals are the offer's contract; use the first agent's copy
118
+ }
119
+ const offer = chosen;
120
+ return {
121
+ resolved: {
122
+ stepId: step.id,
123
+ agents,
124
+ offerId: step.offer,
125
+ success_signal: step.success_signal ?? offer.success_signal,
126
+ required_to_function: step.required_to_function ?? offer.required_to_function,
127
+ deliverableKey: offer.deliverable?.location?.key,
128
+ },
129
+ };
130
+ }
131
+ export async function validateWorkflow(storage, config, ownerName, input) {
132
+ const errors = [];
133
+ // 1. unique step ids
134
+ const seen = new Set();
135
+ for (const s of input.steps) {
136
+ if (seen.has(s.id))
137
+ errors.push(`duplicate step id "${s.id}"`);
138
+ seen.add(s.id);
139
+ }
140
+ // 2. dangling `after` refs + 3. cycle
141
+ for (const dep of missingAfterRefs(input.steps))
142
+ errors.push(`"after" references unknown step "${dep}"`);
143
+ const cycle = detectCycle(input.steps);
144
+ if (cycle)
145
+ errors.push(`dependency cycle: ${cycle.join(' → ')}`);
146
+ // 4. offer resolution (workflow-compatibility) + 5. declared-var coverage
147
+ const declaredVars = new Set(input.vars.map(v => v.name));
148
+ const resolved = [];
149
+ for (const step of input.steps) {
150
+ const r = await resolveStep(storage, config, ownerName, step);
151
+ if ('error' in r) {
152
+ errors.push(r.error);
153
+ continue;
154
+ }
155
+ resolved.push(r.resolved);
156
+ const keys = [...collectSignalKeys(r.resolved.success_signal), ...collectSignalKeys(r.resolved.required_to_function)];
157
+ for (const v of collectVarRefs(keys)) {
158
+ if (!declaredVars.has(v))
159
+ errors.push(`step "${step.id}": signal references undeclared var "{${v}}"`);
160
+ }
161
+ }
162
+ return { ok: errors.length === 0, errors, resolved: errors.length === 0 ? resolved : undefined };
163
+ }
164
+ // ── CRUD ────────────────────────────────────────────────────────────────────────
165
+ export async function getWorkflow(storage, ownerGhii, id) {
166
+ const rec = await storage.getMemory(ownerGhii, defKey(id));
167
+ return rec ? rec.value : null;
168
+ }
169
+ export async function listWorkflows(storage, ownerGhii) {
170
+ const recs = await storage.listMemory(ownerGhii, { prefix: DEF_LIST_PREFIX });
171
+ return recs.map(r => r.value);
172
+ }
173
+ /**
174
+ * Validate + persist a workflow definition under the owner GHII namespace. `createdBy` records the
175
+ * author (owner GHII or agent GAII) for audit; createdAt is preserved across updates.
176
+ */
177
+ export async function saveWorkflow(storage, config, ownerGhii, ownerName, id, body, createdBy) {
178
+ if (!WORKFLOW_ID_RE.test(id))
179
+ return { ok: false, errors: [`invalid workflow id "${id}" — use a lowercase slug`] };
180
+ const parsed = WorkflowDefInputSchema.safeParse(body);
181
+ if (!parsed.success) {
182
+ return { ok: false, errors: parsed.error.issues.map(i => `${i.path.join('.')}: ${i.message}`) };
183
+ }
184
+ const input = parsed.data;
185
+ // llm leaves require explicit owner approval (consent gate).
186
+ const usesLlm = input.steps.some(s => collectSignalKeysHasLlm(s.success_signal) || collectSignalKeysHasLlm(s.required_to_function));
187
+ if (usesLlm && !input.llm?.approved) {
188
+ return { ok: false, errors: ['a step uses an `llm` signal leaf — set llm.approved=true to consent to node-LLM use'] };
189
+ }
190
+ const v = await validateWorkflow(storage, config, ownerName, input);
191
+ if (!v.ok)
192
+ return { ok: false, errors: v.errors };
193
+ const now = new Date().toISOString();
194
+ const existing = await storage.getMemory(ownerGhii, defKey(id));
195
+ const prior = existing?.value;
196
+ const def = {
197
+ id,
198
+ title: input.title,
199
+ description: input.description,
200
+ trigger: input.trigger,
201
+ vars: input.vars,
202
+ steps: input.steps,
203
+ on_step_fail: input.on_step_fail,
204
+ llm: input.llm,
205
+ costCapMorsels: input.costCapMorsels ?? null,
206
+ createdBy: prior?.createdBy ?? createdBy,
207
+ createdAt: prior?.createdAt ?? now,
208
+ updatedAt: now,
209
+ };
210
+ await storage.setMemory({
211
+ key: defKey(id),
212
+ ownerGaii: ownerGhii,
213
+ value: def,
214
+ visibility: 'private',
215
+ tags: ['workflow'],
216
+ ttlHours: null,
217
+ version: existing ? existing.version + 1 : 1,
218
+ createdAt: existing?.createdAt ?? now,
219
+ updatedAt: now,
220
+ });
221
+ return { ok: true, def };
222
+ }
223
+ /** True if any leaf in the signal tree is an `llm` leaf. */
224
+ function collectSignalKeysHasLlm(signal) {
225
+ if (!signal || signal === 'none')
226
+ return false;
227
+ const walk = (s) => {
228
+ if ('all' in s)
229
+ return s.all.some(walk);
230
+ if ('any' in s)
231
+ return s.any.some(walk);
232
+ if ('when' in s)
233
+ return walk(s.when) || walk(s.then);
234
+ return 'kind' in s && s.kind === 'llm';
235
+ };
236
+ return walk(signal);
237
+ }
238
+ export async function deleteWorkflow(storage, ownerGhii, id, opts) {
239
+ const existing = await storage.getMemory(ownerGhii, defKey(id));
240
+ if (!existing)
241
+ return false;
242
+ await storage.deleteMemory(ownerGhii, defKey(id));
243
+ if (opts?.withRuns) {
244
+ const runs = await storage.listMemory(ownerGhii, { prefix: runKeyPrefix(id) });
245
+ for (const r of runs)
246
+ await storage.deleteMemory(ownerGhii, r.key);
247
+ }
248
+ return true;
249
+ }
250
+ export async function listRuns(storage, ownerGhii, id) {
251
+ const recs = await storage.listMemory(ownerGhii, { prefix: runKeyPrefix(id) });
252
+ return recs.map(r => r.value)
253
+ .sort((a, b) => (b.startedAt ?? '').localeCompare(a.startedAt ?? ''));
254
+ }
255
+ export async function getRun(storage, ownerGhii, id, runId) {
256
+ const rec = await storage.getMemory(ownerGhii, runKey(id, runId));
257
+ return rec ? rec.value : null;
258
+ }
259
+ /**
260
+ * Compose the steps into one structural blueprint, derived from the resolved offers along the step
261
+ * order. Shows the input→output flow and the exact memory keys each step touches (as templates).
262
+ */
263
+ export function buildBlueprint(def, resolved) {
264
+ const byId = new Map(resolved.map(r => [r.stepId, r]));
265
+ const nodes = def.steps.map(step => {
266
+ const r = byId.get(step.id);
267
+ const writes = new Set(collectSignalKeys(r?.success_signal));
268
+ if (r?.deliverableKey)
269
+ writes.add(r.deliverableKey);
270
+ return {
271
+ stepId: step.id,
272
+ agents: r?.agents ?? (Array.isArray(step.agent) ? step.agent : [step.agent]),
273
+ offerId: step.offer,
274
+ reads: collectSignalKeys(r?.required_to_function),
275
+ writes: [...writes],
276
+ };
277
+ });
278
+ const edges = [];
279
+ for (const step of def.steps)
280
+ for (const dep of step.after ?? [])
281
+ edges.push({ from: dep, to: step.id });
282
+ return { workflowId: def.id, nodes, edges };
283
+ }
284
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../../src/services/workflow/store.ts"],"names":[],"mappings":"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"}
@@ -305,6 +305,15 @@ export interface AppListOptions {
305
305
  offset?: number;
306
306
  freeOnly?: boolean;
307
307
  }
308
+ export interface SubdomainSiteRecord {
309
+ subdomain: string;
310
+ kind: 'app' | 'redirect';
311
+ target: string;
312
+ enabled: boolean;
313
+ createdBy: string;
314
+ createdAt: string;
315
+ updatedAt: string;
316
+ }
308
317
  export interface AppPurchaseRecord {
309
318
  transactionId: string;
310
319
  buyerGaii: string;
@@ -877,7 +886,7 @@ export interface ScheduledJobRecord {
877
886
  * server-side OpenRouter completion (zero agent involvement); 'agent_task'
878
887
  * materialises an AgentTaskRecord into the target agent's queue on each fire.
879
888
  */
880
- type: 'extension' | 'core' | 'ai' | 'agent_task';
889
+ type: 'extension' | 'core' | 'ai' | 'agent_task' | 'workflow';
881
890
  extensionName?: string;
882
891
  instanceId?: string;
883
892
  actionId?: string;
@@ -916,7 +925,7 @@ export interface ExecutionLogEntry {
916
925
  id: string;
917
926
  jobId: string;
918
927
  jobName: string;
919
- type: 'extension' | 'core' | 'ai' | 'agent_task';
928
+ type: 'extension' | 'core' | 'ai' | 'agent_task' | 'workflow';
920
929
  extensionName?: string;
921
930
  actionId?: string;
922
931
  trigger: 'cron' | 'manual' | 'activate';
@@ -1663,6 +1672,7 @@ import type { SessionRepository } from './repositories/session.repository.js';
1663
1672
  import type { PatRepository } from './repositories/pat.repository.js';
1664
1673
  import type { AppRepository } from './repositories/app.repository.js';
1665
1674
  import type { AppMarketplaceRepository } from './repositories/app-marketplace.repository.js';
1675
+ import type { SubdomainSiteRepository } from './repositories/subdomain-site.repository.js';
1666
1676
  import type { ConfigRepository } from './repositories/config.repository.js';
1667
1677
  import type { NotificationTemplateRepository } from './repositories/notification-template.repository.js';
1668
1678
  import type { KnowledgeRepository } from './repositories/knowledge.repository.js';
@@ -1684,6 +1694,6 @@ import type { AgentActivityRepository } from './repositories/agent-activity.repo
1684
1694
  import type { AgentMessageRepository } from './repositories/agent-message.repository.js';
1685
1695
  import type { AgentTelemetryRepository, AgentWebhookRepository } from './repositories/agent-webhook.repository.js';
1686
1696
  import type { AgentOnboardingRepository } from './repositories/agent-onboarding.repository.js';
1687
- export interface Storage extends OwnerRepository, AgentRepository, MemoryRepository, ActionRepository, WorkRepository, WalletRepository, BoardRepository, OtkRepository, DisputeRepository, MicroMemoryRepository, FileRepository, IdentityRepository, SchemaRepository, ConsentRepository, CatalogueRepository, ModerationRepository, OrganismRepository, MarketplaceRepository, FederationRepository, NodeRepository, NotificationRepository, AuthRepository, SessionRepository, PatRepository, AppRepository, AppMarketplaceRepository, ConfigRepository, NotificationTemplateRepository, KnowledgeRepository, SchedulerRepository, ExtensionInstanceRepository, ReplicationQueueRepository, DeviceAuthRepository, OAuthRepository, SystemPromptRepository, PackageRepository, TemplateListingRepository, PackageInstanceRepository, CapabilityRepository, AgentTaskRepository, AgentDirectivesRepository, SharingGroupRepository, AgentActivityRepository, AgentMessageRepository, AgentTelemetryRepository, AgentWebhookRepository, AgentOnboardingRepository, StatsRepository {
1697
+ export interface Storage extends OwnerRepository, AgentRepository, MemoryRepository, ActionRepository, WorkRepository, WalletRepository, BoardRepository, OtkRepository, DisputeRepository, MicroMemoryRepository, FileRepository, IdentityRepository, SchemaRepository, ConsentRepository, CatalogueRepository, ModerationRepository, OrganismRepository, MarketplaceRepository, FederationRepository, NodeRepository, NotificationRepository, AuthRepository, SessionRepository, PatRepository, AppRepository, AppMarketplaceRepository, SubdomainSiteRepository, ConfigRepository, NotificationTemplateRepository, KnowledgeRepository, SchedulerRepository, ExtensionInstanceRepository, ReplicationQueueRepository, DeviceAuthRepository, OAuthRepository, SystemPromptRepository, PackageRepository, TemplateListingRepository, PackageInstanceRepository, CapabilityRepository, AgentTaskRepository, AgentDirectivesRepository, SharingGroupRepository, AgentActivityRepository, AgentMessageRepository, AgentTelemetryRepository, AgentWebhookRepository, AgentOnboardingRepository, StatsRepository {
1688
1698
  }
1689
1699
  //# sourceMappingURL=interface.d.ts.map