@feltdb/core 0.7.3 → 0.8.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/README.md +25 -0
- package/dist/application-development.d.ts +78 -0
- package/dist/application-development.d.ts.map +1 -0
- package/dist/application-development.js +153 -0
- package/dist/application-manifest.d.ts +6 -1
- package/dist/application-manifest.d.ts.map +1 -1
- package/dist/application-manifest.js +10 -3
- package/dist/canonical-application.d.ts +27 -0
- package/dist/canonical-application.d.ts.map +1 -0
- package/dist/canonical-application.js +46 -0
- package/dist/cli/ai-model-config.js +97 -0
- package/dist/cli/cli.js +1 -1
- package/dist/cli/commands.js +664 -120
- package/dist/cli/index.js +1 -1
- package/dist/cli/managed-environment.js +6 -0
- package/dist/cli/managed-project.js +6 -0
- package/dist/cli/proposal-client.js +63 -0
- package/dist/cli/publish-engine.js +165 -0
- package/dist/cli/source-sync.js +183 -0
- package/dist/create/cli.js +11 -2
- package/dist/create/create.js +38 -16
- package/dist/create/managed-account.js +82 -11
- package/dist/create/package-versions.js +1 -1
- package/dist/create/server-source/crates/feltdb/src/application.rs +41 -1
- package/dist/create/server-source/crates/feltdb/src/authority_failover.rs +84 -6
- package/dist/create/server-source/crates/feltdb/src/bin/feltdb_node.rs +126 -38
- package/dist/create/server-source/crates/feltdb/src/distributed_transactions.rs +72 -34
- package/dist/create/server-source/crates/feltdb/src/lib.rs +20 -2
- package/dist/create/server-source/crates/feltdb-server/src/app_state.rs +12 -24
- package/dist/create/server-source/crates/feltdb-server/src/application_contract.rs +11 -3
- package/dist/create/server-source/crates/feltdb-server/src/authenticated_principal.rs +0 -1
- package/dist/create/server-source/crates/feltdb-server/src/certification_harness.rs +23 -22
- package/dist/create/server-source/crates/feltdb-server/src/delegation_token.rs +5 -15
- package/dist/create/server-source/crates/feltdb-server/src/durable_operations.rs +13 -28
- package/dist/create/server-source/crates/feltdb-server/src/identity.rs +111 -3
- package/dist/create/server-source/crates/feltdb-server/src/key_management.rs +28 -7
- package/dist/create/server-source/crates/feltdb-server/src/lib.rs +5 -5
- package/dist/create/server-source/crates/feltdb-server/src/main.rs +1960 -143
- package/dist/create/server-source/crates/feltdb-server/src/managed_diagnostics.rs +10 -30
- package/dist/create/server-source/crates/feltdb-server/src/membership_policy.rs +12 -4
- package/dist/create/server-source/crates/feltdb-server/src/request_telemetry.rs +8 -6
- package/dist/create/server-source/crates/feltdb-server/src/snapshot_cursor.rs +10 -14
- package/dist/create/server-source/crates/feltdb-server/src/tenancy.rs +195 -13
- package/dist/create/server-source/crates/feltdb-server/src/tenant_policies.rs +9 -21
- package/dist/create/server-source/crates/feltdb-server/src/transaction_idempotency.rs +5 -3
- package/dist/create/server-source/crates/feltdb-server/src/transaction_recovery.rs +9 -8
- package/dist/create/server-source/crates/feltdb-server/tests/revision_recovery_integration_test.rs +1 -4
- package/dist/create/template/default-project/README.md +57 -0
- package/dist/create/template/default-project/agents/activity-assistant.ts +18 -0
- package/dist/create/template/default-project/agents/project-assistant.ts +19 -0
- package/dist/create/template/default-project/capabilities/activity-summary.ts +14 -0
- package/dist/create/template/default-project/capabilities/project-search.ts +16 -0
- package/dist/create/template/default-project/capabilities/project-summary.ts +15 -0
- package/dist/create/template/default-project/feltdb.flow +174 -0
- package/dist/create/template/default-project/src/App.tsx +20 -0
- package/dist/create/template/default-project/src/context/AuthContext.tsx +27 -0
- package/dist/create/template/default-project/src/feltdb.ts +87 -0
- package/dist/create/template/default-project/src/index.tsx +14 -0
- package/dist/create/template/default-project/src/pages/Activity.tsx +7 -0
- package/dist/create/template/default-project/src/pages/Agents.tsx +15 -0
- package/dist/create/template/default-project/src/pages/Dashboard.tsx +17 -0
- package/dist/create/template/default-project/src/pages/Invitations.tsx +11 -0
- package/dist/create/template/default-project/src/pages/Projects.tsx +11 -0
- package/dist/create/template/default-project/src/pages/SignIn.tsx +8 -0
- package/dist/create/template/default-project/src/pages/SignUp.tsx +8 -0
- package/dist/create/template/default-project/src/styles-application.css +21 -0
- package/dist/create/template/default-project/src/styles.css +1 -0
- package/dist/create/template/default-project/workflows/agent-assisted-summary.ts +1 -0
- package/dist/create/template/default-project/workflows/invitation.ts +30 -0
- package/dist/create/template/default-project/workflows/project-created.ts +2 -0
- package/dist/db.d.ts +49 -1
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +77 -0
- package/dist/error-codes.d.ts +20 -1
- package/dist/error-codes.d.ts.map +1 -1
- package/dist/error-codes.js +25 -0
- package/dist/flowspec.d.ts +1 -0
- package/dist/flowspec.d.ts.map +1 -1
- package/dist/flowspec.js +66 -11
- package/dist/http-client.d.ts +135 -14
- package/dist/http-client.d.ts.map +1 -1
- package/dist/http-client.js +79 -31
- package/dist/http-db.d.ts +15 -2
- package/dist/http-db.d.ts.map +1 -1
- package/dist/http-db.js +113 -5
- package/dist/index-core.d.ts +5 -0
- package/dist/index-core.d.ts.map +1 -1
- package/dist/index-core.js +5 -0
- package/dist/module-intent.d.ts +37 -0
- package/dist/module-intent.d.ts.map +1 -0
- package/dist/module-intent.js +81 -0
- package/dist/module.d.ts +76 -0
- package/dist/module.d.ts.map +1 -0
- package/dist/module.js +61 -0
- package/dist/proposal.d.ts +161 -0
- package/dist/proposal.d.ts.map +1 -0
- package/dist/proposal.js +232 -0
- package/dist/studio/app.d.ts +5 -1
- package/dist/studio/app.d.ts.map +1 -1
- package/dist/studio/components/ApplicationDesigner.d.ts +2 -1
- package/dist/studio/components/ApplicationDesigner.d.ts.map +1 -1
- package/dist/studio/components/AskFeltDB.d.ts +21 -0
- package/dist/studio/components/AskFeltDB.d.ts.map +1 -0
- package/dist/studio/components/ContractInspector.d.ts +7 -0
- package/dist/studio/components/ContractInspector.d.ts.map +1 -0
- package/dist/studio/components/ManagedInstancePanel.d.ts.map +1 -1
- package/dist/studio/components/ManagedInstancePanel.js +1 -5
- package/dist/studio/components/ModuleExplorer.d.ts +6 -0
- package/dist/studio/components/ModuleExplorer.d.ts.map +1 -0
- package/dist/studio/components/ProposalBrowser.d.ts +12 -0
- package/dist/studio/components/ProposalBrowser.d.ts.map +1 -0
- package/dist/studio/components/StateExplorer.d.ts +6 -7
- package/dist/studio/components/StateExplorer.d.ts.map +1 -1
- package/dist/studio/components/index.d.ts +4 -0
- package/dist/studio/components/index.d.ts.map +1 -1
- package/dist/studio/components/index.js +4 -4
- package/dist/studio/components-CNSNrmA9.js +2787 -0
- package/dist/studio/index.js +214 -157
- package/dist/studio/studio.css +1 -1
- package/dist/studio/utils/index.d.ts +2 -0
- package/dist/studio/utils/index.d.ts.map +1 -1
- package/dist/studio/utils/index.js +14 -12
- package/dist/studio/utils/managed-instance.d.ts +0 -4
- package/dist/studio/utils/managed-instance.d.ts.map +1 -1
- package/dist/studio/utils/managed-instance.js +0 -4
- package/dist/studio/utils/proposal-api.d.ts +53 -0
- package/dist/studio/utils/proposal-api.d.ts.map +1 -0
- package/dist/studio/utils/proposal-api.js +91 -0
- package/dist/studio/utils/service-api.d.ts +81 -0
- package/dist/studio/utils/service-api.d.ts.map +1 -0
- package/dist/studio/utils/service-api.js +51 -0
- package/dist/studio-app/assets/dist-CCOk39Uc.js +1 -0
- package/dist/studio-app/assets/{feltdb_wasm-DVKsw75S.js → feltdb_wasm-CSB6KVgw.js} +1 -1
- package/dist/studio-app/assets/feltdb_wasm_bg-Dd1fnO9U.wasm +0 -0
- package/dist/studio-app/assets/index-Bncji3aN.js +43 -0
- package/dist/studio-app/assets/{index-C1GWyazR.css → index-yazaWMUN.css} +1 -1
- package/dist/studio-app/assets/lib-B2_7fcn7.js +69 -0
- package/dist/studio-app/assets/worker-CARZ5g7K.js +69 -0
- package/dist/studio-app/index.html +2 -2
- package/dist/wasm/feltdb_wasm_bg.wasm +0 -0
- package/dist/workspace/local-development-authority.d.ts +3 -0
- package/dist/workspace/local-development-authority.d.ts.map +1 -1
- package/dist/workspace/local-development-authority.js +124 -2
- package/package.json +1 -1
- package/dist/studio/components-Dxuhrv8_.js +0 -1832
- package/dist/studio-app/assets/feltdb_wasm_bg-DNyNf0yy.wasm +0 -0
- package/dist/studio-app/assets/index-B5tnmvSD.js +0 -28
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { auditEvents, db, invitations, memberships, users, type AuditEvent, type Invitation, type Membership } from '../src/feltdb';
|
|
2
|
+
|
|
3
|
+
const makeId = (prefix: string) => `${prefix}_${crypto.randomUUID()}`;
|
|
4
|
+
|
|
5
|
+
export async function runInviteMemberWorkflow(input: { organization: string; actor: string; email: string; role: string }) {
|
|
6
|
+
const invited = (await users.find({ email: input.email.trim().toLowerCase() }))[0];
|
|
7
|
+
if (!invited) throw new Error('Invite an existing application user in this starter.');
|
|
8
|
+
const now = new Date().toISOString();
|
|
9
|
+
const invitation: Invitation = { id: makeId('invitation'), organization: input.organization, user: invited.id, email: invited.email, role: input.role, status: 'pending', created_at: now, updated_at: now };
|
|
10
|
+
const event: AuditEvent = { id: makeId('event'), organization: input.organization, user: input.actor, action: 'invitation.created', resource_type: 'Invitation', resource_id: invitation.id, details: invited.email, created_at: now };
|
|
11
|
+
await db.transaction(async transaction => {
|
|
12
|
+
transaction.collection<Invitation>('Invitation').insert(invitation, invitation.id, { requireAbsent: true });
|
|
13
|
+
transaction.collection<AuditEvent>('AuditEvent').insert(event, event.id, { requireAbsent: true });
|
|
14
|
+
});
|
|
15
|
+
return invitation;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export async function runAcceptInvitationWorkflow(invitation: Invitation, userId: string) {
|
|
19
|
+
if (invitation.user !== userId || invitation.status !== 'pending') throw new Error('This invitation cannot be accepted by the current identity.');
|
|
20
|
+
const now = new Date().toISOString();
|
|
21
|
+
const membership: Membership = { id: makeId('membership'), user: userId, organization: invitation.organization, role: invitation.role as Membership['role'], created_at: now };
|
|
22
|
+
const accepted = { ...invitation, status: 'accepted', updated_at: now };
|
|
23
|
+
const event: AuditEvent = { id: makeId('event'), organization: invitation.organization, user: userId, action: 'invitation.accepted', resource_type: 'Invitation', resource_id: invitation.id, details: membership.role, created_at: now };
|
|
24
|
+
await db.transaction(async transaction => {
|
|
25
|
+
transaction.collection<Invitation>('Invitation').insert(accepted, invitation.id);
|
|
26
|
+
transaction.collection<Membership>('Membership').insert(membership, membership.id, { requireAbsent: true });
|
|
27
|
+
transaction.collection<AuditEvent>('AuditEvent').insert(event, event.id, { requireAbsent: true });
|
|
28
|
+
});
|
|
29
|
+
return membership;
|
|
30
|
+
}
|
package/dist/db.d.ts
CHANGED
|
@@ -29,7 +29,9 @@ interface FeltDBBaseOptions {
|
|
|
29
29
|
export type FeltDBOptions = FeltDBBaseOptions & ({
|
|
30
30
|
server: {
|
|
31
31
|
url: string;
|
|
32
|
-
token
|
|
32
|
+
token?: string;
|
|
33
|
+
applicationId?: string;
|
|
34
|
+
environment?: string;
|
|
33
35
|
};
|
|
34
36
|
memory?: never;
|
|
35
37
|
path?: never;
|
|
@@ -250,6 +252,7 @@ export declare class StateFirstDB {
|
|
|
250
252
|
private capabilityWorkers;
|
|
251
253
|
private observation?;
|
|
252
254
|
private closeDevelopmentBridge?;
|
|
255
|
+
private localActorSession?;
|
|
253
256
|
readonly workloads: WorkloadClient;
|
|
254
257
|
readonly artifacts: ArtifactClient;
|
|
255
258
|
readonly bundle: BundleClient;
|
|
@@ -259,7 +262,52 @@ export declare class StateFirstDB {
|
|
|
259
262
|
readonly workers: WorkerClient;
|
|
260
263
|
readonly workerPools: WorkerPoolClient;
|
|
261
264
|
readonly mesh: MeshClient;
|
|
265
|
+
readonly workflows: {
|
|
266
|
+
run: (name: string, input?: unknown, options?: {
|
|
267
|
+
idempotencyKey?: string;
|
|
268
|
+
}) => Promise<unknown>;
|
|
269
|
+
};
|
|
270
|
+
readonly agents: {
|
|
271
|
+
run: (name: string, input?: unknown, options?: {
|
|
272
|
+
idempotencyKey?: string;
|
|
273
|
+
goal?: string;
|
|
274
|
+
}) => Promise<unknown>;
|
|
275
|
+
};
|
|
276
|
+
readonly capabilities: {
|
|
277
|
+
run: <T = unknown>(name: string, input?: unknown, options?: {
|
|
278
|
+
idempotencyKey?: string;
|
|
279
|
+
}) => Promise<T>;
|
|
280
|
+
};
|
|
281
|
+
readonly application: {
|
|
282
|
+
get: () => Promise<Record<string, unknown> | {
|
|
283
|
+
application_id: any;
|
|
284
|
+
environment: string;
|
|
285
|
+
version: any;
|
|
286
|
+
contract_hash: string;
|
|
287
|
+
dsl_version: number;
|
|
288
|
+
snapshot: import("./application-development.js").FeltDBContractSnapshot;
|
|
289
|
+
}>;
|
|
290
|
+
};
|
|
291
|
+
readonly schema: {
|
|
292
|
+
get: () => Promise<Record<string, unknown>>;
|
|
293
|
+
};
|
|
294
|
+
readonly auth: {
|
|
295
|
+
signUp: (input: {
|
|
296
|
+
email: string;
|
|
297
|
+
password: string;
|
|
298
|
+
display_name?: string;
|
|
299
|
+
}) => Promise<any>;
|
|
300
|
+
signIn: (input: {
|
|
301
|
+
email: string;
|
|
302
|
+
password: string;
|
|
303
|
+
}) => Promise<any>;
|
|
304
|
+
signOut: () => Promise<any>;
|
|
305
|
+
session: () => Promise<any>;
|
|
306
|
+
};
|
|
262
307
|
constructor(jsDb: JsDb, observation?: DevelopmentObservationSink, closeDevelopmentBridge?: () => Promise<void>);
|
|
308
|
+
private applicationRequest;
|
|
309
|
+
private authRequest;
|
|
310
|
+
private localAuthRequest;
|
|
263
311
|
/**
|
|
264
312
|
* Detect runtime environment and storage characteristics
|
|
265
313
|
*/
|
package/dist/db.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
|
package/dist/db.js
CHANGED
|
@@ -24,6 +24,16 @@ import { BundleClient } from './bundle.js';
|
|
|
24
24
|
import { ReleaseClient } from './release.js';
|
|
25
25
|
import { ObserveClient } from './observe.js';
|
|
26
26
|
import { ProviderClient } from './provider.js';
|
|
27
|
+
import { compileApplicationContract } from './canonical-application.js';
|
|
28
|
+
import { createContractSnapshot } from './application-development.js';
|
|
29
|
+
async function localPasswordHash(password, saltHex) {
|
|
30
|
+
const salt = Uint8Array.from(saltHex.match(/../g) || [], value => parseInt(value, 16));
|
|
31
|
+
const passwordBytes = new TextEncoder().encode(password);
|
|
32
|
+
const key = await crypto.subtle.importKey('raw', passwordBytes.slice().buffer, 'PBKDF2', false, ['deriveBits']);
|
|
33
|
+
const bits = await crypto.subtle.deriveBits({ name: 'PBKDF2', salt: salt.slice().buffer, iterations: 210_000, hash: 'SHA-256' }, key, 256);
|
|
34
|
+
return Array.from(new Uint8Array(bits), value => value.toString(16).padStart(2, '0')).join('');
|
|
35
|
+
}
|
|
36
|
+
function randomHex(bytes = 32) { const value = crypto.getRandomValues(new Uint8Array(bytes)); return Array.from(value, item => item.toString(16).padStart(2, '0')).join(''); }
|
|
27
37
|
import { emitTelemetry } from './telemetry.js';
|
|
28
38
|
import { attachDevelopmentRuntimeBridge } from './development-runtime-bridge.js';
|
|
29
39
|
export function createFeltDB(options) {
|
|
@@ -82,6 +92,7 @@ export class StateFirstDB {
|
|
|
82
92
|
capabilityWorkers = new Map();
|
|
83
93
|
observation;
|
|
84
94
|
closeDevelopmentBridge;
|
|
95
|
+
localActorSession;
|
|
85
96
|
workloads = new WorkloadClient();
|
|
86
97
|
artifacts = new ArtifactClient();
|
|
87
98
|
bundle = new BundleClient();
|
|
@@ -91,6 +102,31 @@ export class StateFirstDB {
|
|
|
91
102
|
workers = new WorkerClient();
|
|
92
103
|
workerPools = new WorkerPoolClient();
|
|
93
104
|
mesh = new MeshClient();
|
|
105
|
+
workflows = { run: (name, input = {}, options = {}) => this.applicationRequest(`/workflows/${encodeURIComponent(name)}/run`, { method: 'POST', headers: options.idempotencyKey ? { 'Idempotency-Key': options.idempotencyKey } : {}, body: JSON.stringify({ input }) }) };
|
|
106
|
+
agents = { run: (name, input = {}, options = {}) => this.applicationRequest(`/agents/${encodeURIComponent(name)}/run`, { method: 'POST', headers: options.idempotencyKey ? { 'Idempotency-Key': options.idempotencyKey } : {}, body: JSON.stringify({ goal: options.goal || name, input }) }) };
|
|
107
|
+
capabilities = { run: (name, input = {}, options = {}) => this.applicationRequest(`/capabilities/${encodeURIComponent(name)}/run`, { method: 'POST', headers: options.idempotencyKey ? { 'Idempotency-Key': options.idempotencyKey } : {}, body: JSON.stringify(input) }) };
|
|
108
|
+
application = { get: async () => {
|
|
109
|
+
if (this.jsDb instanceof HttpJsDb)
|
|
110
|
+
return this.applicationRequest('/application');
|
|
111
|
+
const applications = await this.collection('_flow_apps').all();
|
|
112
|
+
const active = applications.find(value => value.status === 'active') ?? applications[0];
|
|
113
|
+
if (!active?.spec)
|
|
114
|
+
throw new Error('No application contract has been deployed to this embedded runtime');
|
|
115
|
+
const contract = await compileApplicationContract(active.spec, 'local', active.app);
|
|
116
|
+
return { application_id: active.app, environment: 'local', version: active.version ?? 1,
|
|
117
|
+
contract_hash: contract.hashes.application, dsl_version: contract.dsl_version,
|
|
118
|
+
snapshot: createContractSnapshot(contract, { environment: 'local', contractVersion: active.version ?? 1 }) };
|
|
119
|
+
} };
|
|
120
|
+
schema = { get: async () => {
|
|
121
|
+
const application = await this.applicationRequest('/application');
|
|
122
|
+
return this.applicationRequest(`/schema?revision_id=${encodeURIComponent(application.revision_id)}`);
|
|
123
|
+
} };
|
|
124
|
+
auth = {
|
|
125
|
+
signUp: (input) => this.authRequest('signup', input),
|
|
126
|
+
signIn: (input) => this.authRequest('signin', input),
|
|
127
|
+
signOut: () => this.authRequest('signout'),
|
|
128
|
+
session: () => this.authRequest('session'),
|
|
129
|
+
};
|
|
94
130
|
constructor(jsDb, observation, closeDevelopmentBridge) {
|
|
95
131
|
this.jsDb = jsDb;
|
|
96
132
|
this.observation = observation;
|
|
@@ -111,6 +147,47 @@ export class StateFirstDB {
|
|
|
111
147
|
// Non-blocking, fails silently if telemetry unavailable
|
|
112
148
|
emitTelemetry('initialize');
|
|
113
149
|
}
|
|
150
|
+
applicationRequest(path, init) {
|
|
151
|
+
if (!(this.jsDb instanceof HttpJsDb)) {
|
|
152
|
+
return Promise.reject(new Error(`${path} requires an application service runtime; embedded collection and capability APIs remain available locally.`));
|
|
153
|
+
}
|
|
154
|
+
return this.jsDb.application_request(path, init);
|
|
155
|
+
}
|
|
156
|
+
authRequest(operation, body) {
|
|
157
|
+
if (this.jsDb instanceof HttpJsDb)
|
|
158
|
+
return this.jsDb.auth_request(operation, body);
|
|
159
|
+
return this.localAuthRequest(operation, body);
|
|
160
|
+
}
|
|
161
|
+
async localAuthRequest(operation, body) {
|
|
162
|
+
const identities = this.collection('_flow_local_identities');
|
|
163
|
+
if (operation === 'session') {
|
|
164
|
+
if (!this.localActorSession || this.localActorSession.session.expires_at <= Date.now())
|
|
165
|
+
throw new Error('Authentication required');
|
|
166
|
+
return this.localActorSession;
|
|
167
|
+
}
|
|
168
|
+
if (operation === 'signout') {
|
|
169
|
+
this.localActorSession = undefined;
|
|
170
|
+
return {};
|
|
171
|
+
}
|
|
172
|
+
const email = body?.email?.trim().toLowerCase();
|
|
173
|
+
const password = body?.password || '';
|
|
174
|
+
if (!email || password.length < 8)
|
|
175
|
+
throw new Error('email and a password of at least 8 characters are required');
|
|
176
|
+
let identity = (await identities.find({ email }))[0];
|
|
177
|
+
if (operation === 'signup') {
|
|
178
|
+
if (identity)
|
|
179
|
+
throw new Error('identity already exists');
|
|
180
|
+
const salt = randomHex(16);
|
|
181
|
+
const userId = `user_${randomHex(12)}`;
|
|
182
|
+
identity = { id: userId, email, display_name: body?.display_name, salt, password_hash: await localPasswordHash(password, salt), created_at: new Date().toISOString() };
|
|
183
|
+
await identities.insert(identity, userId);
|
|
184
|
+
}
|
|
185
|
+
else if (!identity || identity.password_hash !== await localPasswordHash(password, identity.salt))
|
|
186
|
+
throw new Error('invalid credentials');
|
|
187
|
+
const session = { session_id: `session_${randomHex(12)}`, expires_at: Date.now() + 15 * 60_000 };
|
|
188
|
+
this.localActorSession = { access_token: `local_${randomHex()}`, actor: { user_id: identity.id, email: identity.email, display_name: identity.display_name }, session };
|
|
189
|
+
return this.localActorSession;
|
|
190
|
+
}
|
|
114
191
|
/**
|
|
115
192
|
* Detect runtime environment and storage characteristics
|
|
116
193
|
*/
|
package/dist/error-codes.d.ts
CHANGED
|
@@ -23,7 +23,26 @@ export declare enum FeltDBErrorCode {
|
|
|
23
23
|
/** 429: Queue depth exceeded; retry with exponential backoff */
|
|
24
24
|
TOO_BUSY = "TOO_BUSY",
|
|
25
25
|
/** 500: Unrecoverable server error; audit trail available */
|
|
26
|
-
INTERNAL_ERROR = "INTERNAL_ERROR"
|
|
26
|
+
INTERNAL_ERROR = "INTERNAL_ERROR",
|
|
27
|
+
AUTHENTICATION_REQUIRED = "AUTHENTICATION_REQUIRED",
|
|
28
|
+
AUTHENTICATION_FAILED = "AUTHENTICATION_FAILED",
|
|
29
|
+
FORBIDDEN = "FORBIDDEN",
|
|
30
|
+
NOT_FOUND = "NOT_FOUND",
|
|
31
|
+
VALIDATION_ERROR = "VALIDATION_ERROR",
|
|
32
|
+
IDEMPOTENCY_CONFLICT = "IDEMPOTENCY_CONFLICT",
|
|
33
|
+
QUERY_INVALID = "QUERY_INVALID",
|
|
34
|
+
QUERY_LIMIT_EXCEEDED = "QUERY_LIMIT_EXCEEDED",
|
|
35
|
+
WORKFLOW_NOT_FOUND = "WORKFLOW_NOT_FOUND",
|
|
36
|
+
AGENT_NOT_FOUND = "AGENT_NOT_FOUND",
|
|
37
|
+
CAPABILITY_NOT_FOUND = "CAPABILITY_NOT_FOUND",
|
|
38
|
+
EXECUTION_FAILED = "EXECUTION_FAILED",
|
|
39
|
+
SERVICE_UNAVAILABLE = "SERVICE_UNAVAILABLE"
|
|
40
|
+
}
|
|
41
|
+
export declare class FeltDBServiceError extends Error {
|
|
42
|
+
readonly code: FeltDBErrorCode | string;
|
|
43
|
+
readonly requestId?: string | undefined;
|
|
44
|
+
readonly status?: number | undefined;
|
|
45
|
+
constructor(message: string, code: FeltDBErrorCode | string, requestId?: string | undefined, status?: number | undefined);
|
|
27
46
|
}
|
|
28
47
|
/**
|
|
29
48
|
* Error response structure that all FeltDB APIs must return
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-codes.d.ts","sourceRoot":"","sources":["../src/error-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;GAEG;AACH,oBAAY,eAAe;IACzB,6BAA6B;IAC7B,EAAE,OAAO;IAET,wEAAwE;IACxE,QAAQ,aAAa;IAErB,2DAA2D;IAC3D,mBAAmB,wBAAwB;IAE3C,gEAAgE;IAChE,QAAQ,aAAa;IAErB,6DAA6D;IAC7D,cAAc,mBAAmB;
|
|
1
|
+
{"version":3,"file":"error-codes.d.ts","sourceRoot":"","sources":["../src/error-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;GAEG;AACH,oBAAY,eAAe;IACzB,6BAA6B;IAC7B,EAAE,OAAO;IAET,wEAAwE;IACxE,QAAQ,aAAa;IAErB,2DAA2D;IAC3D,mBAAmB,wBAAwB;IAE3C,gEAAgE;IAChE,QAAQ,aAAa;IAErB,6DAA6D;IAC7D,cAAc,mBAAmB;IACjC,uBAAuB,4BAA4B;IACnD,qBAAqB,0BAA0B;IAC/C,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,gBAAgB,qBAAqB;IACrC,oBAAoB,yBAAyB;IAC7C,aAAa,kBAAkB;IAC/B,oBAAoB,yBAAyB;IAC7C,kBAAkB,uBAAuB;IACzC,eAAe,oBAAoB;IACnC,oBAAoB,yBAAyB;IAC7C,gBAAgB,qBAAqB;IACrC,mBAAmB,wBAAwB;CAC5C;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAGzC,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM;gBAHxB,OAAO,EAAE,MAAM,EACN,IAAI,EAAE,eAAe,GAAG,MAAM,EAC9B,SAAS,CAAC,EAAE,MAAM,YAAA,EAClB,MAAM,CAAC,EAAE,MAAM,YAAA;CAE3B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,IAAI,EAAE,eAAe,GAAG,MAAM,CAAC;IAE/B,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAEhB,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IAEnB,mCAAmC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IAEpB,gEAAgE;IAChE,aAAa,CAAC,EAAE,eAAe,GAAG,YAAY,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;CAC1F;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,GAAG,OAAO,CAIxE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,GAAG,qBAAqB,GAAG,gBAAgB,GAAG,YAAY,CAQxH"}
|
package/dist/error-codes.js
CHANGED
|
@@ -25,7 +25,32 @@ export var FeltDBErrorCode;
|
|
|
25
25
|
FeltDBErrorCode["TOO_BUSY"] = "TOO_BUSY";
|
|
26
26
|
/** 500: Unrecoverable server error; audit trail available */
|
|
27
27
|
FeltDBErrorCode["INTERNAL_ERROR"] = "INTERNAL_ERROR";
|
|
28
|
+
FeltDBErrorCode["AUTHENTICATION_REQUIRED"] = "AUTHENTICATION_REQUIRED";
|
|
29
|
+
FeltDBErrorCode["AUTHENTICATION_FAILED"] = "AUTHENTICATION_FAILED";
|
|
30
|
+
FeltDBErrorCode["FORBIDDEN"] = "FORBIDDEN";
|
|
31
|
+
FeltDBErrorCode["NOT_FOUND"] = "NOT_FOUND";
|
|
32
|
+
FeltDBErrorCode["VALIDATION_ERROR"] = "VALIDATION_ERROR";
|
|
33
|
+
FeltDBErrorCode["IDEMPOTENCY_CONFLICT"] = "IDEMPOTENCY_CONFLICT";
|
|
34
|
+
FeltDBErrorCode["QUERY_INVALID"] = "QUERY_INVALID";
|
|
35
|
+
FeltDBErrorCode["QUERY_LIMIT_EXCEEDED"] = "QUERY_LIMIT_EXCEEDED";
|
|
36
|
+
FeltDBErrorCode["WORKFLOW_NOT_FOUND"] = "WORKFLOW_NOT_FOUND";
|
|
37
|
+
FeltDBErrorCode["AGENT_NOT_FOUND"] = "AGENT_NOT_FOUND";
|
|
38
|
+
FeltDBErrorCode["CAPABILITY_NOT_FOUND"] = "CAPABILITY_NOT_FOUND";
|
|
39
|
+
FeltDBErrorCode["EXECUTION_FAILED"] = "EXECUTION_FAILED";
|
|
40
|
+
FeltDBErrorCode["SERVICE_UNAVAILABLE"] = "SERVICE_UNAVAILABLE";
|
|
28
41
|
})(FeltDBErrorCode || (FeltDBErrorCode = {}));
|
|
42
|
+
export class FeltDBServiceError extends Error {
|
|
43
|
+
code;
|
|
44
|
+
requestId;
|
|
45
|
+
status;
|
|
46
|
+
constructor(message, code, requestId, status) {
|
|
47
|
+
super(message);
|
|
48
|
+
this.code = code;
|
|
49
|
+
this.requestId = requestId;
|
|
50
|
+
this.status = status;
|
|
51
|
+
this.name = 'FeltDBServiceError';
|
|
52
|
+
}
|
|
53
|
+
}
|
|
29
54
|
/**
|
|
30
55
|
* Determines if a FeltDB error is retryable
|
|
31
56
|
*/
|
package/dist/flowspec.d.ts
CHANGED
package/dist/flowspec.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flowspec.d.ts","sourceRoot":"","sources":["../src/flowspec.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE;AAC5E,MAAM,WAAW,SAAS;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE;AAC7E,MAAM,WAAW,cAAc;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,EAAE,CAAC;IAAC,OAAO,EAAE,SAAS,EAAE,CAAA;CAAE;AAC3F,MAAM,WAAW,SAAS;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE;AACjE,MAAM,WAAW,QAAS,SAAQ,SAAS;CAAG;AAC9C,MAAM,WAAW,YAAY;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,QAAQ,EAAE,CAAA;CAAE;AACrF,MAAM,WAAW,WAAW;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE;AACpE,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,CAAC,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,YAAY,EAAE,SAAS,EAAE,CAAC;IAC1B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,SAAS,EAAE,SAAS,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"flowspec.d.ts","sourceRoot":"","sources":["../src/flowspec.ts"],"names":[],"mappings":"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"}
|
package/dist/flowspec.js
CHANGED
|
@@ -3,7 +3,7 @@ export function isValidFlowFieldType(type) {
|
|
|
3
3
|
const value = type.trim();
|
|
4
4
|
if (FLOW_PRIMITIVE_TYPES.includes(value))
|
|
5
5
|
return true;
|
|
6
|
-
if (/^ref [A-Za-z_][A-Za-z0-9_-]
|
|
6
|
+
if (/^ref [A-Za-z_][A-Za-z0-9_-]*(?:\.[A-Za-z_][A-Za-z0-9_-]*)?$/.test(value))
|
|
7
7
|
return true;
|
|
8
8
|
if (/^enum\([^)]+\)$/.test(value))
|
|
9
9
|
return value.slice(5, -1).split(',').every(item => item.trim().length > 0);
|
|
@@ -12,19 +12,25 @@ export function isValidFlowFieldType(type) {
|
|
|
12
12
|
const container = /^(array|map)<(.+)>$/.exec(value);
|
|
13
13
|
return Boolean(container && isValidFlowFieldType(container[2]));
|
|
14
14
|
}
|
|
15
|
+
import { resolveFeltDBModules } from './module.js';
|
|
15
16
|
/** FlowSpec is a portable source format; the returned Rust manifest is authoritative only after server validation. */
|
|
16
17
|
export function flowSpecToManifest(spec, tenantId, applicationId) {
|
|
17
|
-
const
|
|
18
|
+
const modules = resolveFeltDBModules(spec.modules);
|
|
19
|
+
const capabilities = [...spec.capabilities.map(value => ({
|
|
20
|
+
name: value.name,
|
|
21
|
+
visibility: (value.statements.find(statement => statement.startsWith('visibility '))?.slice('visibility '.length) || 'public'),
|
|
22
|
+
})), ...modules.flatMap(module => module.capabilities.map(name => ({ name, provider: module.id, visibility: 'internal' })))];
|
|
23
|
+
const policySubject = (statements, operation) => statements.map(value => new RegExp(`^${operation}\\s*:\\s*(.+)$`).exec(value)?.[1]).find(Boolean);
|
|
18
24
|
const manifestField = (field) => {
|
|
19
25
|
const reference = field.type.startsWith('ref ') ? field.type.slice(4) : undefined;
|
|
20
26
|
const enumValues = field.type.startsWith('enum(') && field.type.endsWith(')') ? field.type.slice(5, -1).split(',').map(value => value.trim()) : undefined;
|
|
21
27
|
return { name: field.name, type: reference ? 'reference' : enumValues ? 'enum' : field.type, required: !field.optional, ...(reference ? { reference } : {}), ...(enumValues ? { enum_values: enumValues } : {}) };
|
|
22
28
|
};
|
|
23
|
-
return { application_id: applicationId, tenant_id: tenantId, schema: 1, metadata: { name: spec.app, labels: {} }, collections: spec.collections.map(value => ({ name: value.name, fields: value.fields.map(manifestField) })), indexes: spec.collections.flatMap(collection => collection.indexes.map(index => ({ name: index.name, collection: collection.name, fields: [index.expression], unique: index.kind === 'unique' }))), references: [], queries: [], actions: [], workflows: spec.workflows.map(value => ({ name: value.name, steps: value.steps.map(step => ({ name: step.name })) })), triggers: spec.triggers.map((value, index) => ({ name: `trigger-${index + 1}`, event: value.event, workflow: spec.workflows[0]?.name || '' })), schedules: spec.schedules.map(value => ({ name: value.name, expression: value.statements[0] || '', workflow: spec.workflows[0]?.name || '' })), agents: spec.agents.map(value => ({ name: value.name, capabilities: capabilities.map(capability => capability.name).filter(name => value.statements.some(statement => statement.includes(name))) })), capabilities, connections: [], policies: spec.policies.map(value => ({ name: value.name, resource: value.statements
|
|
29
|
+
return { application_id: applicationId, tenant_id: tenantId, schema: 1, metadata: { name: spec.app, labels: {} }, collections: spec.collections.map(value => ({ name: value.name, fields: value.fields.map(manifestField) })), indexes: spec.collections.flatMap(collection => collection.indexes.map(index => ({ name: index.name, collection: collection.name, fields: [index.expression], unique: index.kind === 'unique' }))), references: [], queries: [], actions: [], workflows: spec.workflows.map(value => ({ name: value.name, steps: value.steps.map(step => ({ name: step.name, capability: step.statements.find(statement => statement.startsWith('capability '))?.slice('capability '.length) })) })), triggers: spec.triggers.map((value, index) => ({ name: `trigger-${index + 1}`, event: value.event, workflow: spec.workflows[0]?.name || '' })), schedules: spec.schedules.map(value => ({ name: value.name, expression: value.statements[0] || '', workflow: spec.workflows[0]?.name || '' })), agents: spec.agents.map(value => ({ name: value.name, capabilities: capabilities.map(capability => capability.name).filter(name => value.statements.some(statement => statement.includes(name))) })), capabilities, modules: resolveFeltDBModules(spec.modules), connections: [], policies: spec.policies.map(value => ({ name: value.name, resource: value.name, read: policySubject(value.statements, 'read'), write: policySubject(value.statements, 'write'), capabilities: [] })), ui: { routes: [], bindings: [], forms: [], dashboards: [] }, environments: ['development', 'preview', 'staging', 'production'].map(name => ({ name, configuration: {} })), artifacts: [], deployment: { environments: ['development', 'preview', 'staging', 'production'] }, runtime: { contract: 1, minimum_engine: '0.2.0', maximum_engine_exclusive: '2.0.0' } };
|
|
24
30
|
}
|
|
25
31
|
export function manifestToFlowSpec(manifest) {
|
|
26
32
|
const fieldType = (field) => field.reference ? `ref ${field.reference}` : field.enum_values?.length ? `enum(${field.enum_values.join(',')})` : field.type;
|
|
27
|
-
return { version: 1, app: manifest.metadata.name, collections: manifest.collections.map(value => ({ name: value.name, fields: value.fields.map(field => ({ name: field.name, type: fieldType(field), optional: !field.required })), indexes: manifest.indexes.filter(index => index.collection === value.name).map(index => ({ name: index.name, kind: index.unique ? 'unique' : 'index', expression: index.fields.join(', ') })) })), capabilities: manifest.capabilities.map(value => ({ name: value.name, statements: value.provider ? [`provider ${value.provider}`] : [] })), agents: manifest.agents.map(value => ({ name: value.name, statements: value.capabilities.map(capability => `capability ${capability}`) })), workflows: manifest.workflows.map(value => ({ name: value.name, parameters: '', steps: value.steps.map(step => ({ name: step.name, statements: step.capability ? [`capability ${step.capability}`] : [] })) })), triggers: manifest.triggers.map(value => ({ event: value.event, statements: [`run ${value.workflow}`] })), policies: manifest.policies.map(value => ({ name: value.name, statements: [value.
|
|
33
|
+
return { version: 1, app: manifest.metadata.name, collections: manifest.collections.map(value => ({ name: value.name, fields: value.fields.map(field => ({ name: field.name, type: fieldType(field), optional: !field.required })), indexes: manifest.indexes.filter(index => index.collection === value.name).map(index => ({ name: index.name, kind: index.unique ? 'unique' : 'index', expression: index.fields.join(', ') })) })), capabilities: manifest.capabilities.map(value => ({ name: value.name, statements: [...(value.provider ? [`provider ${value.provider}`] : []), `visibility ${value.visibility || 'public'}`] })), agents: manifest.agents.map(value => ({ name: value.name, statements: value.capabilities.map(capability => `capability ${capability}`) })), workflows: manifest.workflows.map(value => ({ name: value.name, parameters: '', steps: value.steps.map(step => ({ name: step.name, statements: step.capability ? [`capability ${step.capability}`] : [] })) })), triggers: manifest.triggers.map(value => ({ event: value.event, statements: [`run ${value.workflow}`] })), policies: manifest.policies.map(value => ({ name: value.name, statements: [...(value.read ? [`read: ${value.read}`] : []), ...(value.write ? [`write: ${value.write}`] : []), ...value.capabilities] })), schedules: manifest.schedules.map(value => ({ name: value.name, statements: [value.expression, `run ${value.workflow}`] })), modules: (manifest.modules ?? []).map(value => ({ name: value.id, provider: value.provider, version: value.version })) };
|
|
28
34
|
}
|
|
29
35
|
function lex(source) {
|
|
30
36
|
const tokens = [];
|
|
@@ -96,7 +102,7 @@ class Parser {
|
|
|
96
102
|
while (this.peek() && !this.peek('\n') && !this.peek('}'))
|
|
97
103
|
values.push(this.take().value);
|
|
98
104
|
this.newlines();
|
|
99
|
-
return values.join(' ').replace(/\s+([,?)])/g, '$1').replace(/([(])\s+/g, '$1').trim();
|
|
105
|
+
return values.join(' ').replace(/\s+([,?)])/g, '$1').replace(/\s+\(/g, '(').replace(/([(])\s+/g, '$1').trim();
|
|
100
106
|
}
|
|
101
107
|
statements() {
|
|
102
108
|
this.take('{');
|
|
@@ -115,15 +121,36 @@ class Parser {
|
|
|
115
121
|
}
|
|
116
122
|
parse() {
|
|
117
123
|
this.newlines();
|
|
124
|
+
let version = 1;
|
|
125
|
+
if (this.peek('flow_version')) {
|
|
126
|
+
this.take('flow_version');
|
|
127
|
+
const token = this.take();
|
|
128
|
+
if (!/^\d+$/.test(token.value))
|
|
129
|
+
throw new Error(`Invalid flow_version ${token.value} at line ${token.line}`);
|
|
130
|
+
const parsedVersion = Number(token.value);
|
|
131
|
+
if (parsedVersion !== 1)
|
|
132
|
+
throw new Error(`Unsupported flow_version ${parsedVersion}; this SDK supports flow_version 1`);
|
|
133
|
+
version = 1;
|
|
134
|
+
this.newlines();
|
|
135
|
+
}
|
|
118
136
|
this.take('app');
|
|
119
137
|
const app = this.identifier();
|
|
120
138
|
this.take('{');
|
|
121
139
|
this.newlines();
|
|
122
|
-
const spec = { version
|
|
140
|
+
const spec = { version, app, collections: [], capabilities: [], agents: [], workflows: [], triggers: [], policies: [], schedules: [], modules: [] };
|
|
123
141
|
while (!this.peek('}')) {
|
|
124
142
|
const kind = this.take().value;
|
|
125
143
|
if (kind === 'collection')
|
|
126
144
|
spec.collections.push(this.collection());
|
|
145
|
+
else if (kind === 'module') {
|
|
146
|
+
const name = this.identifier();
|
|
147
|
+
const statements = this.statements();
|
|
148
|
+
const provider = statements.find(value => value.startsWith('provider '))?.slice(9);
|
|
149
|
+
const version = statements.find(value => value.startsWith('version '))?.slice(8);
|
|
150
|
+
if (!provider)
|
|
151
|
+
throw new Error(`Module ${name} requires provider`);
|
|
152
|
+
spec.modules.push({ name, provider: provider.replace(/^"|"$/g, ''), version: version?.replace(/^"|"$/g, '') });
|
|
153
|
+
}
|
|
127
154
|
else if (kind === 'workflow')
|
|
128
155
|
spec.workflows.push(this.workflow());
|
|
129
156
|
else if (kind === 'trigger')
|
|
@@ -222,14 +249,32 @@ export function validateFlowSpec(spec) {
|
|
|
222
249
|
duplicate('capability', spec.capabilities.map(value => value.name));
|
|
223
250
|
duplicate('agent', spec.agents.map(value => value.name));
|
|
224
251
|
duplicate('workflow', spec.workflows.map(value => value.name));
|
|
252
|
+
duplicate('module', (spec.modules ?? []).map(value => value.name));
|
|
253
|
+
let resolvedModules = [];
|
|
254
|
+
try {
|
|
255
|
+
resolvedModules = resolveFeltDBModules(spec.modules);
|
|
256
|
+
}
|
|
257
|
+
catch (error) {
|
|
258
|
+
diagnostics.push({ severity: 'error', path: 'modules', message: error instanceof Error ? error.message : String(error) });
|
|
259
|
+
}
|
|
260
|
+
for (const capability of spec.capabilities) {
|
|
261
|
+
const visibility = capability.statements.find(statement => statement.startsWith('visibility '))?.slice('visibility '.length);
|
|
262
|
+
if (visibility && !['public', 'agent', 'workflow', 'internal'].includes(visibility))
|
|
263
|
+
diagnostics.push({ severity: 'error', path: `capability ${capability.name}`, message: `Unsupported capability visibility ${visibility}` });
|
|
264
|
+
}
|
|
225
265
|
const collections = new Set(spec.collections.map(value => value.name));
|
|
226
266
|
for (const collection of spec.collections) {
|
|
227
267
|
duplicate(`field in ${collection.name}`, collection.fields.map(value => value.name));
|
|
228
268
|
for (const field of collection.fields) {
|
|
229
269
|
if (!isValidFlowFieldType(field.type))
|
|
230
270
|
diagnostics.push({ severity: 'error', path: `${collection.name}.${field.name}`, message: `Unsupported field type ${field.type}` });
|
|
231
|
-
if (field.type.startsWith('ref ')
|
|
232
|
-
|
|
271
|
+
if (field.type.startsWith('ref ')) {
|
|
272
|
+
const target = field.type.slice(4);
|
|
273
|
+
const [moduleId, model] = target.split('.');
|
|
274
|
+
const moduleReference = model && resolvedModules.some(module => module.id === moduleId && module.models.some(value => value.name === model));
|
|
275
|
+
if (!collections.has(target) && !moduleReference)
|
|
276
|
+
diagnostics.push({ severity: 'error', path: `${collection.name}.${field.name}`, message: `Unknown referenced collection or module model ${target}` });
|
|
277
|
+
}
|
|
233
278
|
}
|
|
234
279
|
}
|
|
235
280
|
for (const workflow of spec.workflows) {
|
|
@@ -237,6 +282,14 @@ export function validateFlowSpec(spec) {
|
|
|
237
282
|
if (!workflow.steps.length)
|
|
238
283
|
diagnostics.push({ severity: 'error', message: `Workflow ${workflow.name} has no steps` });
|
|
239
284
|
}
|
|
285
|
+
for (const trigger of spec.triggers) {
|
|
286
|
+
const moduleId = trigger.event.split('.')[0];
|
|
287
|
+
const module = resolvedModules.find(value => value.id === moduleId);
|
|
288
|
+
if (moduleId && trigger.event.split('.').length >= 3 && !module)
|
|
289
|
+
diagnostics.push({ severity: 'error', path: `trigger ${trigger.event}`, message: `Module event ${trigger.event} requires module ${moduleId}` });
|
|
290
|
+
else if (module && !module.events.includes(trigger.event))
|
|
291
|
+
diagnostics.push({ severity: 'error', path: `trigger ${trigger.event}`, message: `Unknown ${moduleId} module event ${trigger.event}` });
|
|
292
|
+
}
|
|
240
293
|
return diagnostics;
|
|
241
294
|
}
|
|
242
295
|
function block(kind, value, indent = ' ') { return `${indent}${kind} ${value.name} {\n${value.statements.map(line => `${indent} ${line}`).join('\n')}\n${indent}}`; }
|
|
@@ -256,13 +309,15 @@ export function formatFlowSpec(spec) {
|
|
|
256
309
|
declarations.push(block('policy', value));
|
|
257
310
|
for (const value of spec.schedules)
|
|
258
311
|
declarations.push(block('schedule', value));
|
|
259
|
-
|
|
312
|
+
for (const value of spec.modules ?? [])
|
|
313
|
+
declarations.push(` module ${value.name} {\n provider ${value.provider}\n${value.version ? ` version ${value.version}\n` : ''} }`);
|
|
314
|
+
return `flow_version ${spec.version}\n\napp ${spec.app} {\n${declarations.join('\n\n')}\n}\n`;
|
|
260
315
|
}
|
|
261
316
|
export function diffFlowSpec(before, after) {
|
|
262
317
|
const flatten = (spec) => new Map([
|
|
263
318
|
...spec.collections.map(value => [`collection ${value.name}`, JSON.stringify(value)]), ...spec.capabilities.map(value => [`capability ${value.name}`, JSON.stringify(value)]),
|
|
264
319
|
...spec.agents.map(value => [`agent ${value.name}`, JSON.stringify(value)]), ...spec.workflows.map(value => [`workflow ${value.name}`, JSON.stringify(value)]),
|
|
265
|
-
...spec.triggers.map(value => [`trigger ${value.event}`, JSON.stringify(value)]), ...spec.policies.map(value => [`policy ${value.name}`, JSON.stringify(value)]), ...spec.schedules.map(value => [`schedule ${value.name}`, JSON.stringify(value)]),
|
|
320
|
+
...spec.triggers.map(value => [`trigger ${value.event}`, JSON.stringify(value)]), ...spec.policies.map(value => [`policy ${value.name}`, JSON.stringify(value)]), ...spec.schedules.map(value => [`schedule ${value.name}`, JSON.stringify(value)]), ...(spec.modules ?? []).map(value => [`module ${value.name}`, JSON.stringify(value)]),
|
|
266
321
|
]);
|
|
267
322
|
const left = flatten(before), right = flatten(after);
|
|
268
323
|
return { added: [...right.keys()].filter(key => !left.has(key)), removed: [...left.keys()].filter(key => !right.has(key)), changed: [...right.keys()].filter(key => left.has(key) && left.get(key) !== right.get(key)) };
|
|
@@ -302,4 +357,4 @@ export function planFlowSpecMigration(before, after) {
|
|
|
302
357
|
operations.push({ kind: 'remove', target, safety: 'destructive', detail: 'Application primitive is no longer declared' });
|
|
303
358
|
return operations;
|
|
304
359
|
}
|
|
305
|
-
export function emptyFlowSpec(app = 'MyApp') { return { version: 1, app, collections: [], capabilities: [], agents: [], workflows: [], triggers: [], policies: [], schedules: [] }; }
|
|
360
|
+
export function emptyFlowSpec(app = 'MyApp') { return { version: 1, app, collections: [], capabilities: [], agents: [], workflows: [], triggers: [], policies: [], schedules: [], modules: [] }; }
|