@positronic/core 0.0.55 → 0.0.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/dsl/agent-messages.js +4 -75
- package/dist/src/dsl/brain-runner.js +131 -47
- package/dist/src/dsl/brain-state-machine.js +318 -482
- package/dist/src/dsl/builder/brain.js +35 -1
- package/dist/src/dsl/constants.js +14 -2
- package/dist/src/dsl/create-brain.js +4 -1
- package/dist/src/dsl/execution/constants.js +2 -2
- package/dist/src/dsl/execution/event-stream.js +837 -272
- package/dist/src/dsl/signal-validation.js +157 -0
- package/dist/src/dsl/types.js +2 -2
- package/dist/src/index.js +5 -2
- package/dist/src/memory/scoped-memory.js +176 -0
- package/dist/src/memory/types.js +12 -0
- package/dist/src/tools/index.js +150 -47
- package/dist/src/ui/generate-ui.js +6 -3
- package/dist/src/yaml/data-validator.js +195 -0
- package/dist/types/clients/types.d.ts +39 -2
- package/dist/types/clients/types.d.ts.map +1 -1
- package/dist/types/dsl/agent-messages.d.ts +8 -14
- package/dist/types/dsl/agent-messages.d.ts.map +1 -1
- package/dist/types/dsl/brain-runner.d.ts +27 -7
- package/dist/types/dsl/brain-runner.d.ts.map +1 -1
- package/dist/types/dsl/brain-state-machine.d.ts +92 -23
- package/dist/types/dsl/brain-state-machine.d.ts.map +1 -1
- package/dist/types/dsl/brain.d.ts +2 -2
- package/dist/types/dsl/brain.d.ts.map +1 -1
- package/dist/types/dsl/builder/brain.d.ts +56 -35
- package/dist/types/dsl/builder/brain.d.ts.map +1 -1
- package/dist/types/dsl/constants.d.ts +8 -0
- package/dist/types/dsl/constants.d.ts.map +1 -1
- package/dist/types/dsl/create-brain.d.ts +17 -17
- package/dist/types/dsl/create-brain.d.ts.map +1 -1
- package/dist/types/dsl/definitions/blocks.d.ts +3 -3
- package/dist/types/dsl/definitions/blocks.d.ts.map +1 -1
- package/dist/types/dsl/definitions/events.d.ts +40 -3
- package/dist/types/dsl/definitions/events.d.ts.map +1 -1
- package/dist/types/dsl/definitions/run-params.d.ts +17 -9
- package/dist/types/dsl/definitions/run-params.d.ts.map +1 -1
- package/dist/types/dsl/execution/constants.d.ts +2 -2
- package/dist/types/dsl/execution/constants.d.ts.map +1 -1
- package/dist/types/dsl/execution/event-stream.d.ts +12 -5
- package/dist/types/dsl/execution/event-stream.d.ts.map +1 -1
- package/dist/types/dsl/signal-validation.d.ts +36 -0
- package/dist/types/dsl/signal-validation.d.ts.map +1 -0
- package/dist/types/dsl/types.d.ts +91 -2
- package/dist/types/dsl/types.d.ts.map +1 -1
- package/dist/types/index.d.ts +12 -7
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/memory/scoped-memory.d.ts +22 -0
- package/dist/types/memory/scoped-memory.d.ts.map +1 -0
- package/dist/types/memory/types.d.ts +106 -0
- package/dist/types/memory/types.d.ts.map +1 -0
- package/dist/types/tools/index.d.ts +101 -32
- package/dist/types/tools/index.d.ts.map +1 -1
- package/dist/types/ui/generate-ui.d.ts.map +1 -1
- package/dist/types/yaml/data-validator.d.ts +27 -1
- package/dist/types/yaml/data-validator.d.ts.map +1 -1
- package/dist/types/yaml/types.d.ts +10 -0
- package/dist/types/yaml/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -388,6 +388,7 @@ export var Brain = /*#__PURE__*/ function() {
|
|
|
388
388
|
_define_property(this, "optionsSchema", void 0);
|
|
389
389
|
_define_property(this, "components", void 0);
|
|
390
390
|
_define_property(this, "defaultTools", void 0);
|
|
391
|
+
_define_property(this, "memoryProvider", void 0);
|
|
391
392
|
this.title = title;
|
|
392
393
|
this.description = description;
|
|
393
394
|
this.blocks = [];
|
|
@@ -435,6 +436,7 @@ export var Brain = /*#__PURE__*/ function() {
|
|
|
435
436
|
nextBrain.optionsSchema = this.optionsSchema;
|
|
436
437
|
nextBrain.components = this.components;
|
|
437
438
|
nextBrain.defaultTools = this.defaultTools;
|
|
439
|
+
nextBrain.memoryProvider = this.memoryProvider;
|
|
438
440
|
return nextBrain;
|
|
439
441
|
}
|
|
440
442
|
},
|
|
@@ -446,6 +448,7 @@ export var Brain = /*#__PURE__*/ function() {
|
|
|
446
448
|
nextBrain.services = this.services;
|
|
447
449
|
nextBrain.components = this.components;
|
|
448
450
|
nextBrain.defaultTools = this.defaultTools;
|
|
451
|
+
nextBrain.memoryProvider = this.memoryProvider;
|
|
449
452
|
return nextBrain;
|
|
450
453
|
}
|
|
451
454
|
},
|
|
@@ -470,6 +473,7 @@ export var Brain = /*#__PURE__*/ function() {
|
|
|
470
473
|
nextBrain.services = this.services;
|
|
471
474
|
nextBrain.components = components;
|
|
472
475
|
nextBrain.defaultTools = this.defaultTools;
|
|
476
|
+
nextBrain.memoryProvider = this.memoryProvider;
|
|
473
477
|
return nextBrain;
|
|
474
478
|
}
|
|
475
479
|
},
|
|
@@ -500,6 +504,33 @@ export var Brain = /*#__PURE__*/ function() {
|
|
|
500
504
|
return next;
|
|
501
505
|
}
|
|
502
506
|
},
|
|
507
|
+
{
|
|
508
|
+
/**
|
|
509
|
+
* Configure a memory provider for this brain.
|
|
510
|
+
* When configured, steps receive a scoped memory instance in their context.
|
|
511
|
+
*
|
|
512
|
+
* @param provider - The memory provider to use
|
|
513
|
+
*
|
|
514
|
+
* @example
|
|
515
|
+
* ```typescript
|
|
516
|
+
* import { createMem0Provider } from '@positronic/mem0';
|
|
517
|
+
*
|
|
518
|
+
* const memory = createMem0Provider({ apiKey: process.env.MEM0_API_KEY });
|
|
519
|
+
*
|
|
520
|
+
* const myBrain = brain('my-brain')
|
|
521
|
+
* .withMemory(memory)
|
|
522
|
+
* .brain('agent', async ({ memory }) => {
|
|
523
|
+
* const prefs = await memory.search('user preferences');
|
|
524
|
+
* return { system: `User preferences: ${prefs}`, prompt: 'Help me' };
|
|
525
|
+
* });
|
|
526
|
+
* ```
|
|
527
|
+
*/ key: "withMemory",
|
|
528
|
+
value: function withMemory(provider) {
|
|
529
|
+
var next = this.nextBrain();
|
|
530
|
+
next.memoryProvider = provider;
|
|
531
|
+
return next;
|
|
532
|
+
}
|
|
533
|
+
},
|
|
503
534
|
{
|
|
504
535
|
key: "step",
|
|
505
536
|
value: function step(title, action) {
|
|
@@ -876,7 +907,8 @@ export var Brain = /*#__PURE__*/ function() {
|
|
|
876
907
|
options: validatedOptions,
|
|
877
908
|
services: this.services,
|
|
878
909
|
components: this.components,
|
|
879
|
-
defaultTools: this.defaultTools
|
|
910
|
+
defaultTools: this.defaultTools,
|
|
911
|
+
memoryProvider: this.memoryProvider
|
|
880
912
|
}));
|
|
881
913
|
return [
|
|
882
914
|
5,
|
|
@@ -912,6 +944,8 @@ export var Brain = /*#__PURE__*/ function() {
|
|
|
912
944
|
nextBrain.components = this.components;
|
|
913
945
|
// Copy defaultTools to the next brain
|
|
914
946
|
nextBrain.defaultTools = this.defaultTools;
|
|
947
|
+
// Copy memoryProvider to the next brain
|
|
948
|
+
nextBrain.memoryProvider = this.memoryProvider;
|
|
915
949
|
return nextBrain;
|
|
916
950
|
}
|
|
917
951
|
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export var BRAIN_EVENTS = {
|
|
2
2
|
START: 'brain:start',
|
|
3
|
+
// RESTART is deprecated - use START for all brain starts (fresh or resume)
|
|
4
|
+
// Kept temporarily for backwards compatibility during transition
|
|
3
5
|
RESTART: 'brain:restart',
|
|
4
6
|
STEP_START: 'step:start',
|
|
5
7
|
STEP_COMPLETE: 'step:complete',
|
|
@@ -8,6 +10,8 @@ export var BRAIN_EVENTS = {
|
|
|
8
10
|
ERROR: 'brain:error',
|
|
9
11
|
COMPLETE: 'brain:complete',
|
|
10
12
|
CANCELLED: 'brain:cancelled',
|
|
13
|
+
PAUSED: 'brain:paused',
|
|
14
|
+
RESUMED: 'brain:resumed',
|
|
11
15
|
WEBHOOK: 'brain:webhook',
|
|
12
16
|
WEBHOOK_RESPONSE: 'brain:webhook_response',
|
|
13
17
|
// Agent step events
|
|
@@ -18,12 +22,20 @@ export var BRAIN_EVENTS = {
|
|
|
18
22
|
AGENT_ASSISTANT_MESSAGE: 'agent:assistant_message',
|
|
19
23
|
AGENT_COMPLETE: 'agent:complete',
|
|
20
24
|
AGENT_TOKEN_LIMIT: 'agent:token_limit',
|
|
21
|
-
|
|
25
|
+
AGENT_ITERATION_LIMIT: 'agent:iteration_limit',
|
|
26
|
+
AGENT_WEBHOOK: 'agent:webhook',
|
|
27
|
+
AGENT_RAW_RESPONSE_MESSAGE: 'agent:raw_response_message',
|
|
28
|
+
AGENT_USER_MESSAGE: 'agent:user_message'
|
|
22
29
|
};
|
|
23
30
|
export var STATUS = {
|
|
24
31
|
PENDING: 'pending',
|
|
25
32
|
RUNNING: 'running',
|
|
26
33
|
COMPLETE: 'complete',
|
|
27
34
|
ERROR: 'error',
|
|
28
|
-
CANCELLED: 'cancelled'
|
|
35
|
+
CANCELLED: 'cancelled',
|
|
36
|
+
WAITING: 'waiting',
|
|
37
|
+
PAUSED: 'paused',
|
|
38
|
+
// Internal status for tracking when execution is inside an agent loop.
|
|
39
|
+
// Publicly this maps to RUNNING for consumers.
|
|
40
|
+
AGENT_LOOP: 'agent_loop'
|
|
29
41
|
};
|
|
@@ -41,7 +41,7 @@ import { brain as coreBrain } from './builder/brain.js';
|
|
|
41
41
|
* }));
|
|
42
42
|
* ```
|
|
43
43
|
*/ export function createBrain(config) {
|
|
44
|
-
var services = config.services, components = config.components, defaultTools = config.defaultTools;
|
|
44
|
+
var services = config.services, components = config.components, defaultTools = config.defaultTools, memory = config.memory;
|
|
45
45
|
// Implementation
|
|
46
46
|
function brain(titleOrConfig, agentConfig) {
|
|
47
47
|
var base = coreBrain(titleOrConfig);
|
|
@@ -51,6 +51,9 @@ import { brain as coreBrain } from './builder/brain.js';
|
|
|
51
51
|
if (defaultTools) {
|
|
52
52
|
base = base.withTools(defaultTools);
|
|
53
53
|
}
|
|
54
|
+
if (memory) {
|
|
55
|
+
base = base.withMemory(memory);
|
|
56
|
+
}
|
|
54
57
|
if (services) {
|
|
55
58
|
base = base.withServices(services);
|
|
56
59
|
}
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
};
|
|
8
8
|
/**
|
|
9
9
|
* Default system prompt prepended to all agent steps.
|
|
10
|
-
* Explains
|
|
11
|
-
*/ export var DEFAULT_AGENT_SYSTEM_PROMPT = "##
|
|
10
|
+
* Explains the headless nature of Positronic Brains.
|
|
11
|
+
*/ export var DEFAULT_AGENT_SYSTEM_PROMPT = "## You Are a Positronic Brain\n\nYou are running as an automated agent in a headless workflow. This is NOT a chat interface - there is no user watching your text output.\n\n**To communicate with users, you MUST use tool calls.** Look at your available tools and use them to send messages, notifications, or create pages for user interaction.\n\n## Tool Execution\n- Tools execute sequentially in the order you call them\n- Webhook-triggering tools pause execution until the webhook fires\n- Terminal tools (like 'done') end the agent immediately\n\n## Resumption\nWhen resuming after a webhook, that response appears as the tool result in your conversation history.";
|
|
12
12
|
/**
|
|
13
13
|
* Maximum number of retries for step execution.
|
|
14
14
|
*/ export var MAX_RETRIES = 1;
|