@almadar/runtime 6.29.0 → 6.30.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.
@@ -9,54 +9,42 @@ function createAgentSubstrateHandlers(ctx) {
9
9
  log.warn("compose-all service not registered");
10
10
  return null;
11
11
  }
12
- const result = await ctx.services.composeAll(config);
13
- ctx.emitEvent("COMPOSED_ALL", { appName: config.appName, orbitalCount: config.orbitals.length });
14
- return result;
12
+ return ctx.services.composeAll(config);
15
13
  },
16
14
  substrateComposeChildren: async (parentName, children) => {
17
15
  if (!ctx.services.composeChildren) {
18
16
  log.warn("compose-children service not registered");
19
17
  return null;
20
18
  }
21
- const result = await ctx.services.composeChildren(parentName, children);
22
- ctx.emitEvent("COMPOSED_CHILDREN", { parentName, childCount: children.length });
23
- return result;
19
+ return ctx.services.composeChildren(parentName, children);
24
20
  },
25
21
  substrateInstantiate: async (parentName, behavior, params) => {
26
22
  if (!ctx.services.instantiate) {
27
23
  log.warn("instantiate service not registered");
28
24
  return null;
29
25
  }
30
- const result = await ctx.services.instantiate(parentName, behavior, params);
31
- ctx.emitEvent("BEHAVIOR_INSTANTIATED", { parentName, behavior });
32
- return result;
26
+ return ctx.services.instantiate(parentName, behavior, params);
33
27
  },
34
28
  substrateCall: async (behavior, method) => {
35
29
  if (!ctx.services.call) {
36
30
  log.warn("call service not registered");
37
31
  return null;
38
32
  }
39
- const result = await ctx.services.call(behavior, method);
40
- ctx.emitEvent("BEHAVIOR_CALLED", { behavior, method });
41
- return result;
33
+ return ctx.services.call(behavior, method);
42
34
  },
43
35
  substrateValidate: async (orbitalName) => {
44
36
  if (!ctx.services.validate) {
45
37
  log.warn("validate service not registered");
46
38
  return null;
47
39
  }
48
- const result = await ctx.services.validate(orbitalName);
49
- ctx.emitEvent("VALIDATED", { orbitalName });
50
- return result;
40
+ return ctx.services.validate(orbitalName);
51
41
  },
52
42
  substrateEmitBody: async (orbitalName) => {
53
43
  if (!ctx.services.emitBody) {
54
44
  log.warn("emit-body service not registered");
55
45
  return null;
56
46
  }
57
- const result = await ctx.services.emitBody(orbitalName, "");
58
- ctx.emitEvent("LOLO_EMITTED", { orbitalName });
59
- return result;
47
+ return ctx.services.emitBody(orbitalName, "");
60
48
  }
61
49
  };
62
50
  return {
@@ -67,5 +55,5 @@ function createAgentSubstrateHandlers(ctx) {
67
55
  }
68
56
 
69
57
  export { createAgentSubstrateHandlers };
70
- //# sourceMappingURL=createAgentSubstrateHandlers-WZCHKGU6.js.map
71
- //# sourceMappingURL=createAgentSubstrateHandlers-WZCHKGU6.js.map
58
+ //# sourceMappingURL=createAgentSubstrateHandlers-RUX4RFC6.js.map
59
+ //# sourceMappingURL=createAgentSubstrateHandlers-RUX4RFC6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/createAgentSubstrateHandlers.ts"],"names":[],"mappings":";;;AAyBA,IAAM,GAAA,GAAM,aAAa,oCAAoC,CAAA;AAqBtD,SAAS,6BAA6B,GAAA,EAAgE;AACzG,EAAA,MAAM,QAAA,GAAoC;AAAA,IACtC,mBAAA,EAAqB,OAAO,MAAA,KAAW;AACnC,MAAA,IAAI,CAAC,GAAA,CAAI,QAAA,CAAS,UAAA,EAAY;AAC1B,QAAA,GAAA,CAAI,KAAK,oCAAoC,CAAA;AAC7C,QAAA,OAAO,IAAA;AAAA,MACX;AAIA,MAAA,OAAO,GAAA,CAAI,QAAA,CAAS,UAAA,CAAW,MAAM,CAAA;AAAA,IACzC,CAAA;AAAA,IAEA,wBAAA,EAA0B,OAAO,UAAA,EAAY,QAAA,KAAa;AACtD,MAAA,IAAI,CAAC,GAAA,CAAI,QAAA,CAAS,eAAA,EAAiB;AAC/B,QAAA,GAAA,CAAI,KAAK,yCAAyC,CAAA;AAClD,QAAA,OAAO,IAAA;AAAA,MACX;AACA,MAAA,OAAO,GAAA,CAAI,QAAA,CAAS,eAAA,CAAgB,UAAA,EAAY,QAAQ,CAAA;AAAA,IAC5D,CAAA;AAAA,IAEA,oBAAA,EAAsB,OAAO,UAAA,EAAY,QAAA,EAAU,MAAA,KAAW;AAC1D,MAAA,IAAI,CAAC,GAAA,CAAI,QAAA,CAAS,WAAA,EAAa;AAC3B,QAAA,GAAA,CAAI,KAAK,oCAAoC,CAAA;AAC7C,QAAA,OAAO,IAAA;AAAA,MACX;AACA,MAAA,OAAO,GAAA,CAAI,QAAA,CAAS,WAAA,CAAY,UAAA,EAAY,UAAU,MAAM,CAAA;AAAA,IAChE,CAAA;AAAA,IAEA,aAAA,EAAe,OAAO,QAAA,EAAU,MAAA,KAAW;AACvC,MAAA,IAAI,CAAC,GAAA,CAAI,QAAA,CAAS,IAAA,EAAM;AACpB,QAAA,GAAA,CAAI,KAAK,6BAA6B,CAAA;AACtC,QAAA,OAAO,IAAA;AAAA,MACX;AACA,MAAA,OAAO,GAAA,CAAI,QAAA,CAAS,IAAA,CAAK,QAAA,EAAU,MAAM,CAAA;AAAA,IAC7C,CAAA;AAAA,IAEA,iBAAA,EAAmB,OAAO,WAAA,KAAgB;AACtC,MAAA,IAAI,CAAC,GAAA,CAAI,QAAA,CAAS,QAAA,EAAU;AACxB,QAAA,GAAA,CAAI,KAAK,iCAAiC,CAAA;AAC1C,QAAA,OAAO,IAAA;AAAA,MACX;AACA,MAAA,OAAO,GAAA,CAAI,QAAA,CAAS,QAAA,CAAS,WAAW,CAAA;AAAA,IAC5C,CAAA;AAAA,IAEA,iBAAA,EAAmB,OAAO,WAAA,KAAgB;AACtC,MAAA,IAAI,CAAC,GAAA,CAAI,QAAA,CAAS,QAAA,EAAU;AACxB,QAAA,GAAA,CAAI,KAAK,kCAAkC,CAAA;AAC3C,QAAA,OAAO,IAAA;AAAA,MACX;AACA,MAAA,OAAO,GAAA,CAAI,QAAA,CAAS,QAAA,CAAS,WAAA,EAAa,EAAE,CAAA;AAAA,IAChD;AAAA,GACJ;AAEA,EAAA,OAAO;AAAA,IACH,QAAA;AAAA,IACA,SAAS,MAAM;AAAA,IAAC;AAAA,GACpB;AACJ","file":"createAgentSubstrateHandlers-RUX4RFC6.js","sourcesContent":["/**\n * Agent Substrate Handlers — Server-Side Only\n *\n * Provides implementations for the effect-position substrate operators:\n * compose/compose-all, compose/compose-children, behavior/instantiate,\n * behavior/call, validate/validate, lolo/emit-body.\n *\n * Used by OrbitalServerRuntime (interpreted path). Wired alongside\n * createOsHandlers — same lazy-import + merge-under-user-handlers pattern.\n *\n * The actual service invocations are injected via the `services` field of\n * AgentSubstrateHandlerContext. @almadar-io/rabit supplies these at runtime;\n * tests can inject mocks. When a service is absent, the handler logs a\n * warning and returns a safe default.\n *\n * NOT exported from the main index.ts because it references Node-only types.\n * Import directly: import { createAgentSubstrateHandlers } from '@almadar/runtime/createAgentSubstrateHandlers';\n *\n * @packageDocumentation\n */\n\nimport { createLogger } from '@almadar/logger';\nimport type { EventPayload, EffectHandlers } from './types.js';\nimport type { ServiceCallResult, Orbital, TraitConfig } from '@almadar/core';\n\nconst log = createLogger('almadar:runtime:substrate-handlers');\n\nexport interface SubstrateServices {\n composeAll?: (config: { appName: string; orbitals: Orbital[]; layoutStrategy?: string }) => Promise<ServiceCallResult>;\n composeChildren?: (parentName: string, children: Orbital[]) => Promise<ServiceCallResult>;\n instantiate?: (parentName: string, behavior: string, params?: TraitConfig) => Promise<ServiceCallResult>;\n call?: (behavior: string, method: string, params?: TraitConfig) => Promise<ServiceCallResult>;\n validate?: (orbitalName: string) => Promise<ServiceCallResult>;\n emitBody?: (orbitalName: string, loloSource: string) => Promise<ServiceCallResult>;\n}\n\nexport interface AgentSubstrateHandlerContext {\n emitEvent: (type: string, payload: EventPayload) => void;\n services: SubstrateServices;\n}\n\nexport interface AgentSubstrateHandlerResult {\n handlers: Partial<EffectHandlers>;\n cleanup: () => void;\n}\n\nexport function createAgentSubstrateHandlers(ctx: AgentSubstrateHandlerContext): AgentSubstrateHandlerResult {\n const handlers: Partial<EffectHandlers> = {\n substrateComposeAll: async (config) => {\n if (!ctx.services.composeAll) {\n log.warn('compose-all service not registered');\n return null;\n }\n // Success/failure events are dispatched by EffectExecutor via the\n // author's `emit:` config (uniform `{ result }` payload); this\n // handler only performs the invocation and returns the value.\n return ctx.services.composeAll(config);\n },\n\n substrateComposeChildren: async (parentName, children) => {\n if (!ctx.services.composeChildren) {\n log.warn('compose-children service not registered');\n return null;\n }\n return ctx.services.composeChildren(parentName, children);\n },\n\n substrateInstantiate: async (parentName, behavior, params) => {\n if (!ctx.services.instantiate) {\n log.warn('instantiate service not registered');\n return null;\n }\n return ctx.services.instantiate(parentName, behavior, params);\n },\n\n substrateCall: async (behavior, method) => {\n if (!ctx.services.call) {\n log.warn('call service not registered');\n return null;\n }\n return ctx.services.call(behavior, method);\n },\n\n substrateValidate: async (orbitalName) => {\n if (!ctx.services.validate) {\n log.warn('validate service not registered');\n return null;\n }\n return ctx.services.validate(orbitalName);\n },\n\n substrateEmitBody: async (orbitalName) => {\n if (!ctx.services.emitBody) {\n log.warn('emit-body service not registered');\n return null;\n }\n return ctx.services.emitBody(orbitalName, '');\n },\n };\n\n return {\n handlers,\n cleanup: () => {},\n };\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -404,6 +404,21 @@ declare class EffectExecutor {
404
404
  * with a single `if (emit)` guard.
405
405
  */
406
406
  private osEmit;
407
+ /**
408
+ * Run a substrate (async) effect and dispatch the author's `emit.success`
409
+ * / `emit.failure` bus event when configured. Mirrors the compiled-path
410
+ * generic substrate dispatch (server.rs): uniform `{ result }` payload on
411
+ * success, `{ error }` on failure.
412
+ *
413
+ * When no `emit` config is present (fire-and-forget call) the op still runs
414
+ * but no event is dispatched and errors propagate (legacy behavior).
415
+ */
416
+ private runSubstrate;
417
+ /**
418
+ * Separate a trailing `{ emit: {...} }` options object from positional
419
+ * substrate-op args. Returns `[positionalArgs, emitConfig]`.
420
+ */
421
+ private splitSubstrateEmit;
407
422
  private dispatch;
408
423
  private logUnsupported;
409
424
  }
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { EffectExecutor, createContextFromBindings } from './chunk-6YDQGA6X.js';
2
- export { EffectExecutor, EventBus, HANDLER_MANIFEST, InMemoryPersistence, MockPersistenceAdapter, StateMachineManager, TickScheduler, buildEmitsFromTraits, collectDeclaredConfigDefaults, collectDeclaredEntityDefaults, containsBindings, createContextFromBindings, createInitialTraitState, createMinimalContext, createMockPersistence, createTestExecutor, createTickScheduler, createUnifiedLoader, extractBindings, findInitialState, findTransition, formatPayloadValidationError, getIsolatedCollectionName, getNamespacedEvent, interpolateProps, interpolateValue, isBrowser, isElectron, isNamespacedEvent, isNode, isValidDurationString, normalizeEventKey, parseDurationString, parseNamespacedEvent, preprocessSchema, processEvent, validateEventPayload, validatePayloadShapes } from './chunk-6YDQGA6X.js';
1
+ import { EffectExecutor, createContextFromBindings } from './chunk-TGL6XC6E.js';
2
+ export { EffectExecutor, EventBus, HANDLER_MANIFEST, InMemoryPersistence, MockPersistenceAdapter, StateMachineManager, TickScheduler, buildEmitsFromTraits, collectDeclaredConfigDefaults, collectDeclaredEntityDefaults, containsBindings, createContextFromBindings, createInitialTraitState, createMinimalContext, createMockPersistence, createTestExecutor, createTickScheduler, createUnifiedLoader, extractBindings, findInitialState, findTransition, formatPayloadValidationError, getIsolatedCollectionName, getNamespacedEvent, interpolateProps, interpolateValue, isBrowser, isElectron, isNamespacedEvent, isNode, isValidDurationString, normalizeEventKey, parseDurationString, parseNamespacedEvent, preprocessSchema, processEvent, validateEventPayload, validatePayloadShapes } from './chunk-TGL6XC6E.js';
3
3
  export { cronMatches, cronMinuteKey, isValidCronExpression, parseCron, parseCronField } from './chunk-U4PL237A.js';
4
4
  import { __export } from './chunk-PZ5AY32C.js';
5
5
  import { createLogger } from '@almadar/logger';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@almadar/runtime",
3
- "version": "6.29.0",
3
+ "version": "6.30.0",
4
4
  "description": "Interpreted runtime for Almadar orbital applications (OrbitalServerRuntime)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",