@positronic/core 0.0.52 → 0.0.54

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 (96) hide show
  1. package/dist/src/dsl/{loop-messages.js → agent-messages.js} +21 -21
  2. package/dist/src/dsl/brain-runner.js +6 -6
  3. package/dist/src/dsl/brain-state-machine.js +2 -2
  4. package/dist/src/dsl/brain.js +5 -1912
  5. package/dist/src/dsl/builder/brain.js +944 -0
  6. package/dist/src/dsl/builder/step.js +75 -0
  7. package/dist/src/dsl/constants.js +9 -10
  8. package/dist/src/dsl/create-brain.js +63 -0
  9. package/dist/src/dsl/definitions/blocks.js +1 -0
  10. package/dist/src/dsl/definitions/brain-types.js +4 -0
  11. package/dist/src/dsl/definitions/events.js +2 -0
  12. package/dist/src/dsl/definitions/run-params.js +1 -0
  13. package/dist/src/dsl/definitions/steps.js +2 -0
  14. package/dist/src/dsl/execution/constants.js +14 -0
  15. package/dist/src/dsl/execution/event-stream.js +1638 -0
  16. package/dist/src/dsl/execution/retry.js +298 -0
  17. package/dist/src/dsl/types.js +2 -2
  18. package/dist/src/index.js +5 -3
  19. package/dist/src/tools/index.js +181 -0
  20. package/dist/src/ui/component-utils.js +107 -0
  21. package/dist/src/ui/generate-page-html.js +36 -0
  22. package/dist/src/ui/generate-ui.js +601 -0
  23. package/dist/src/ui/types.js +165 -0
  24. package/dist/src/ui/validate-form.js +428 -0
  25. package/dist/src/yaml/data-validator.js +302 -0
  26. package/dist/src/yaml/index.js +9 -0
  27. package/dist/src/yaml/parser.js +224 -0
  28. package/dist/src/yaml/schema-extractor.js +330 -0
  29. package/dist/src/yaml/type-inference.js +210 -0
  30. package/dist/src/yaml/types.js +12 -0
  31. package/dist/types/clients/types.d.ts +42 -0
  32. package/dist/types/clients/types.d.ts.map +1 -1
  33. package/dist/types/dsl/agent-messages.d.ts +18 -0
  34. package/dist/types/dsl/agent-messages.d.ts.map +1 -0
  35. package/dist/types/dsl/brain-runner.d.ts +2 -2
  36. package/dist/types/dsl/brain-runner.d.ts.map +1 -1
  37. package/dist/types/dsl/brain-state-machine.d.ts.map +1 -1
  38. package/dist/types/dsl/brain.d.ts +7 -273
  39. package/dist/types/dsl/brain.d.ts.map +1 -1
  40. package/dist/types/dsl/builder/brain.d.ts +200 -0
  41. package/dist/types/dsl/builder/brain.d.ts.map +1 -0
  42. package/dist/types/dsl/builder/step.d.ts +15 -0
  43. package/dist/types/dsl/builder/step.d.ts.map +1 -0
  44. package/dist/types/dsl/constants.d.ts +8 -9
  45. package/dist/types/dsl/constants.d.ts.map +1 -1
  46. package/dist/types/dsl/create-brain.d.ts +80 -0
  47. package/dist/types/dsl/create-brain.d.ts.map +1 -0
  48. package/dist/types/dsl/definitions/blocks.d.ts +62 -0
  49. package/dist/types/dsl/definitions/blocks.d.ts.map +1 -0
  50. package/dist/types/dsl/definitions/brain-types.d.ts +33 -0
  51. package/dist/types/dsl/definitions/brain-types.d.ts.map +1 -0
  52. package/dist/types/dsl/definitions/events.d.ts +129 -0
  53. package/dist/types/dsl/definitions/events.d.ts.map +1 -0
  54. package/dist/types/dsl/definitions/run-params.d.ts +26 -0
  55. package/dist/types/dsl/definitions/run-params.d.ts.map +1 -0
  56. package/dist/types/dsl/definitions/steps.d.ts +20 -0
  57. package/dist/types/dsl/definitions/steps.d.ts.map +1 -0
  58. package/dist/types/dsl/example-webhook.d.ts +1 -1
  59. package/dist/types/dsl/example-webhook.d.ts.map +1 -1
  60. package/dist/types/dsl/execution/constants.d.ts +16 -0
  61. package/dist/types/dsl/execution/constants.d.ts.map +1 -0
  62. package/dist/types/dsl/execution/event-stream.d.ts +44 -0
  63. package/dist/types/dsl/execution/event-stream.d.ts.map +1 -0
  64. package/dist/types/dsl/execution/retry.d.ts +30 -0
  65. package/dist/types/dsl/execution/retry.d.ts.map +1 -0
  66. package/dist/types/dsl/types.d.ts +35 -14
  67. package/dist/types/dsl/types.d.ts.map +1 -1
  68. package/dist/types/index.d.ts +9 -7
  69. package/dist/types/index.d.ts.map +1 -1
  70. package/dist/types/tools/index.d.ts +33 -0
  71. package/dist/types/tools/index.d.ts.map +1 -0
  72. package/dist/types/ui/component-utils.d.ts +19 -0
  73. package/dist/types/ui/component-utils.d.ts.map +1 -0
  74. package/dist/types/ui/generate-page-html.d.ts +39 -0
  75. package/dist/types/ui/generate-page-html.d.ts.map +1 -0
  76. package/dist/types/ui/generate-ui.d.ts +47 -0
  77. package/dist/types/ui/generate-ui.d.ts.map +1 -0
  78. package/dist/types/ui/types.d.ts +138 -0
  79. package/dist/types/ui/types.d.ts.map +1 -0
  80. package/dist/types/ui/validate-form.d.ts +45 -0
  81. package/dist/types/ui/validate-form.d.ts.map +1 -0
  82. package/dist/types/yaml/data-validator.d.ts +35 -0
  83. package/dist/types/yaml/data-validator.d.ts.map +1 -0
  84. package/dist/types/yaml/index.d.ts +11 -0
  85. package/dist/types/yaml/index.d.ts.map +1 -0
  86. package/dist/types/yaml/parser.d.ts +20 -0
  87. package/dist/types/yaml/parser.d.ts.map +1 -0
  88. package/dist/types/yaml/schema-extractor.d.ts +29 -0
  89. package/dist/types/yaml/schema-extractor.d.ts.map +1 -0
  90. package/dist/types/yaml/type-inference.d.ts +50 -0
  91. package/dist/types/yaml/type-inference.d.ts.map +1 -0
  92. package/dist/types/yaml/types.d.ts +89 -0
  93. package/dist/types/yaml/types.d.ts.map +1 -0
  94. package/package.json +4 -2
  95. package/dist/types/dsl/loop-messages.d.ts +0 -18
  96. package/dist/types/dsl/loop-messages.d.ts.map +0 -1
@@ -1,40 +1,40 @@
1
1
  import { BRAIN_EVENTS } from './constants.js';
2
2
  /**
3
- * Reconstructs the loop context from stored events and a webhook response.
4
- * Returns null if this is not a loop resume (no LOOP_WEBHOOK event found).
5
- */ export function reconstructLoopContext(events, webhookResponse) {
6
- // Find LOOP_WEBHOOK event - if not present, this is not a loop resume
7
- var loopWebhookEvent = events.find(function(e) {
8
- return e.type === BRAIN_EVENTS.LOOP_WEBHOOK;
3
+ * Reconstructs the agent context from stored events and a webhook response.
4
+ * Returns null if this is not an agent resume (no AGENT_WEBHOOK event found).
5
+ */ export function reconstructAgentContext(events, webhookResponse) {
6
+ // Find AGENT_WEBHOOK event - if not present, this is not an agent resume
7
+ var agentWebhookEvent = events.find(function(e) {
8
+ return e.type === BRAIN_EVENTS.AGENT_WEBHOOK;
9
9
  });
10
- if (!loopWebhookEvent) {
10
+ if (!agentWebhookEvent) {
11
11
  return null;
12
12
  }
13
- // Find LOOP_START to get the initial prompt and system
14
- var loopStartEvent = events.find(function(e) {
15
- return e.type === BRAIN_EVENTS.LOOP_START;
13
+ // Find AGENT_START to get the initial prompt and system
14
+ var agentStartEvent = events.find(function(e) {
15
+ return e.type === BRAIN_EVENTS.AGENT_START;
16
16
  });
17
- if (!loopStartEvent) {
18
- throw new Error('LOOP_START event not found but LOOP_WEBHOOK exists - invalid event sequence');
17
+ if (!agentStartEvent) {
18
+ throw new Error('AGENT_START event not found but AGENT_WEBHOOK exists - invalid event sequence');
19
19
  }
20
20
  var messages = [];
21
21
  // Add initial user message from the prompt
22
22
  messages.push({
23
23
  role: 'user',
24
- content: loopStartEvent.prompt
24
+ content: agentStartEvent.prompt
25
25
  });
26
26
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
27
27
  try {
28
28
  // Process events in order to rebuild conversation
29
29
  for(var _iterator = events[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
30
30
  var event = _step.value;
31
- if (event.type === BRAIN_EVENTS.LOOP_ASSISTANT_MESSAGE) {
31
+ if (event.type === BRAIN_EVENTS.AGENT_ASSISTANT_MESSAGE) {
32
32
  var assistantEvent = event;
33
33
  messages.push({
34
34
  role: 'assistant',
35
35
  content: assistantEvent.content
36
36
  });
37
- } else if (event.type === BRAIN_EVENTS.LOOP_TOOL_RESULT) {
37
+ } else if (event.type === BRAIN_EVENTS.AGENT_TOOL_RESULT) {
38
38
  var toolResultEvent = event;
39
39
  messages.push({
40
40
  role: 'tool',
@@ -62,15 +62,15 @@ import { BRAIN_EVENTS } from './constants.js';
62
62
  messages.push({
63
63
  role: 'tool',
64
64
  content: JSON.stringify(webhookResponse),
65
- toolCallId: loopWebhookEvent.toolCallId,
66
- toolName: loopWebhookEvent.toolName
65
+ toolCallId: agentWebhookEvent.toolCallId,
66
+ toolName: agentWebhookEvent.toolName
67
67
  });
68
68
  return {
69
69
  messages: messages,
70
- pendingToolCallId: loopWebhookEvent.toolCallId,
71
- pendingToolName: loopWebhookEvent.toolName,
72
- prompt: loopStartEvent.prompt,
73
- system: loopStartEvent.system,
70
+ pendingToolCallId: agentWebhookEvent.toolCallId,
71
+ pendingToolName: agentWebhookEvent.toolName,
72
+ prompt: agentStartEvent.prompt,
73
+ system: agentStartEvent.system,
74
74
  webhookResponse: webhookResponse
75
75
  };
76
76
  }
@@ -275,7 +275,7 @@ function _ts_values(o) {
275
275
  }
276
276
  import { BRAIN_EVENTS } from './constants.js';
277
277
  import { applyPatches } from './json-patch.js';
278
- import { reconstructLoopContext } from './loop-messages.js';
278
+ import { reconstructAgentContext } from './agent-messages.js';
279
279
  import { createBrainExecutionMachine, sendEvent } from './brain-state-machine.js';
280
280
  import { DEFAULT_ENV } from './brain.js';
281
281
  export var BrainRunner = /*#__PURE__*/ function() {
@@ -331,12 +331,12 @@ export var BrainRunner = /*#__PURE__*/ function() {
331
331
  key: "run",
332
332
  value: function run(_0) {
333
333
  return _async_to_generator(function(brain) {
334
- var _ref, _ref_initialState, initialState, options, initialCompletedSteps, brainRunId, endAfter, signal, response, loopEvents, _this_options, adapters, client, resources, pages, env, resolvedEnv, machineInitialState, initialStepCount, machine, loopResumeContext, brainRun, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _loop, _iterator, _step, _ret, err, error, cancelledEvent;
334
+ var _ref, _ref_initialState, initialState, options, initialCompletedSteps, brainRunId, endAfter, signal, response, agentEvents, _this_options, adapters, client, resources, pages, env, resolvedEnv, machineInitialState, initialStepCount, machine, agentResumeContext, brainRun, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _loop, _iterator, _step, _ret, err, error, cancelledEvent;
335
335
  var _arguments = arguments;
336
336
  return _ts_generator(this, function(_state) {
337
337
  switch(_state.label){
338
338
  case 0:
339
- _ref = _arguments.length > 1 && _arguments[1] !== void 0 ? _arguments[1] : {}, _ref_initialState = _ref.initialState, initialState = _ref_initialState === void 0 ? {} : _ref_initialState, options = _ref.options, initialCompletedSteps = _ref.initialCompletedSteps, brainRunId = _ref.brainRunId, endAfter = _ref.endAfter, signal = _ref.signal, response = _ref.response, loopEvents = _ref.loopEvents;
339
+ _ref = _arguments.length > 1 && _arguments[1] !== void 0 ? _arguments[1] : {}, _ref_initialState = _ref.initialState, initialState = _ref_initialState === void 0 ? {} : _ref_initialState, options = _ref.options, initialCompletedSteps = _ref.initialCompletedSteps, brainRunId = _ref.brainRunId, endAfter = _ref.endAfter, signal = _ref.signal, response = _ref.response, agentEvents = _ref.agentEvents;
340
340
  _this_options = this.options, adapters = _this_options.adapters, client = _this_options.client, resources = _this_options.resources, pages = _this_options.pages, env = _this_options.env;
341
341
  resolvedEnv = env !== null && env !== void 0 ? env : DEFAULT_ENV;
342
342
  // Apply any patches from completed steps to get the initial state
@@ -356,8 +356,8 @@ export var BrainRunner = /*#__PURE__*/ function() {
356
356
  machine = createBrainExecutionMachine({
357
357
  initialState: machineInitialState
358
358
  });
359
- // If loopEvents and response are provided, reconstruct loop context
360
- loopResumeContext = loopEvents && response ? reconstructLoopContext(loopEvents, response) : null;
359
+ // If agentEvents and response are provided, reconstruct agent context
360
+ agentResumeContext = agentEvents && response ? reconstructAgentContext(agentEvents, response) : null;
361
361
  brainRun = brainRunId && initialCompletedSteps ? brain.run({
362
362
  initialState: initialState,
363
363
  initialCompletedSteps: initialCompletedSteps,
@@ -368,7 +368,7 @@ export var BrainRunner = /*#__PURE__*/ function() {
368
368
  pages: pages,
369
369
  env: resolvedEnv,
370
370
  response: response,
371
- loopResumeContext: loopResumeContext
371
+ agentResumeContext: agentResumeContext
372
372
  }) : brain.run({
373
373
  initialState: initialState,
374
374
  options: options,
@@ -661,8 +661,8 @@ var makeBrainMachine = function(initialContext) {
661
661
  transition(BRAIN_EVENTS.CANCELLED, 'cancelled', cancelBrain), // Webhook -> paused
662
662
  transition(BRAIN_EVENTS.WEBHOOK, 'paused', webhookPause), // Webhook response (for resume from webhook - machine is already running)
663
663
  transition(BRAIN_EVENTS.WEBHOOK_RESPONSE, 'running', webhookResponse), // Step events
664
- transition(BRAIN_EVENTS.STEP_START, 'running', startStep), transition(BRAIN_EVENTS.STEP_COMPLETE, 'running', completeStep), transition(BRAIN_EVENTS.STEP_STATUS, 'running', stepStatus), transition(BRAIN_EVENTS.STEP_RETRY, 'running', stepRetry), // Loop events (pass-through with event data)
665
- transition(BRAIN_EVENTS.LOOP_START, 'running', passthrough(BRAIN_EVENTS.LOOP_START)), transition(BRAIN_EVENTS.LOOP_ITERATION, 'running', passthrough(BRAIN_EVENTS.LOOP_ITERATION)), transition(BRAIN_EVENTS.LOOP_TOOL_CALL, 'running', passthrough(BRAIN_EVENTS.LOOP_TOOL_CALL)), transition(BRAIN_EVENTS.LOOP_TOOL_RESULT, 'running', passthrough(BRAIN_EVENTS.LOOP_TOOL_RESULT)), transition(BRAIN_EVENTS.LOOP_ASSISTANT_MESSAGE, 'running', passthrough(BRAIN_EVENTS.LOOP_ASSISTANT_MESSAGE)), transition(BRAIN_EVENTS.LOOP_COMPLETE, 'running', passthrough(BRAIN_EVENTS.LOOP_COMPLETE)), transition(BRAIN_EVENTS.LOOP_TOKEN_LIMIT, 'running', passthrough(BRAIN_EVENTS.LOOP_TOKEN_LIMIT)), transition(BRAIN_EVENTS.LOOP_WEBHOOK, 'running', passthrough(BRAIN_EVENTS.LOOP_WEBHOOK)), transition(BRAIN_EVENTS.HEARTBEAT, 'running', passthrough(BRAIN_EVENTS.HEARTBEAT))),
664
+ transition(BRAIN_EVENTS.STEP_START, 'running', startStep), transition(BRAIN_EVENTS.STEP_COMPLETE, 'running', completeStep), transition(BRAIN_EVENTS.STEP_STATUS, 'running', stepStatus), transition(BRAIN_EVENTS.STEP_RETRY, 'running', stepRetry), // Agent events (pass-through with event data)
665
+ transition(BRAIN_EVENTS.AGENT_START, 'running', passthrough(BRAIN_EVENTS.AGENT_START)), transition(BRAIN_EVENTS.AGENT_ITERATION, 'running', passthrough(BRAIN_EVENTS.AGENT_ITERATION)), transition(BRAIN_EVENTS.AGENT_TOOL_CALL, 'running', passthrough(BRAIN_EVENTS.AGENT_TOOL_CALL)), transition(BRAIN_EVENTS.AGENT_TOOL_RESULT, 'running', passthrough(BRAIN_EVENTS.AGENT_TOOL_RESULT)), transition(BRAIN_EVENTS.AGENT_ASSISTANT_MESSAGE, 'running', passthrough(BRAIN_EVENTS.AGENT_ASSISTANT_MESSAGE)), transition(BRAIN_EVENTS.AGENT_COMPLETE, 'running', passthrough(BRAIN_EVENTS.AGENT_COMPLETE)), transition(BRAIN_EVENTS.AGENT_TOKEN_LIMIT, 'running', passthrough(BRAIN_EVENTS.AGENT_TOKEN_LIMIT)), transition(BRAIN_EVENTS.AGENT_WEBHOOK, 'running', passthrough(BRAIN_EVENTS.AGENT_WEBHOOK))),
666
666
  paused: state(transition(BRAIN_EVENTS.WEBHOOK_RESPONSE, 'running', webhookResponse), transition(BRAIN_EVENTS.CANCELLED, 'cancelled', cancelBrain), // RESTART happens when resuming from webhook
667
667
  transition(BRAIN_EVENTS.RESTART, 'running', restartBrain)),
668
668
  // Terminal states - limited outgoing transitions