@lloyal-labs/lloyal-agents 1.7.0 → 2.1.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 (52) hide show
  1. package/README.md +83 -99
  2. package/dist/Agent.d.ts +29 -3
  3. package/dist/Agent.d.ts.map +1 -1
  4. package/dist/Agent.js +24 -2
  5. package/dist/Agent.js.map +1 -1
  6. package/dist/AgentPolicy.d.ts +34 -17
  7. package/dist/AgentPolicy.d.ts.map +1 -1
  8. package/dist/AgentPolicy.js +87 -25
  9. package/dist/AgentPolicy.js.map +1 -1
  10. package/dist/Tool.d.ts +1 -1
  11. package/dist/Tool.js +1 -1
  12. package/dist/agent-pool.d.ts +18 -6
  13. package/dist/agent-pool.d.ts.map +1 -1
  14. package/dist/agent-pool.js +435 -168
  15. package/dist/agent-pool.js.map +1 -1
  16. package/dist/context.d.ts +22 -5
  17. package/dist/context.d.ts.map +1 -1
  18. package/dist/context.js +22 -5
  19. package/dist/context.js.map +1 -1
  20. package/dist/create-agent-pool.d.ts +39 -21
  21. package/dist/create-agent-pool.d.ts.map +1 -1
  22. package/dist/create-agent-pool.js +41 -17
  23. package/dist/create-agent-pool.js.map +1 -1
  24. package/dist/index.d.ts +7 -3
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +12 -3
  27. package/dist/index.js.map +1 -1
  28. package/dist/orchestrators.d.ts +161 -0
  29. package/dist/orchestrators.d.ts.map +1 -0
  30. package/dist/orchestrators.js +173 -0
  31. package/dist/orchestrators.js.map +1 -0
  32. package/dist/replay.d.ts +96 -0
  33. package/dist/replay.d.ts.map +1 -0
  34. package/dist/replay.js +108 -0
  35. package/dist/replay.js.map +1 -0
  36. package/dist/spine.d.ts +106 -0
  37. package/dist/spine.d.ts.map +1 -0
  38. package/dist/spine.js +155 -0
  39. package/dist/spine.js.map +1 -0
  40. package/dist/trace-types.d.ts +25 -5
  41. package/dist/trace-types.d.ts.map +1 -1
  42. package/dist/types.d.ts +50 -16
  43. package/dist/types.d.ts.map +1 -1
  44. package/dist/use-agent.d.ts +3 -3
  45. package/dist/use-agent.d.ts.map +1 -1
  46. package/dist/use-agent.js +16 -20
  47. package/dist/use-agent.js.map +1 -1
  48. package/package.json +5 -5
  49. package/dist/shared-root.d.ts +0 -58
  50. package/dist/shared-root.d.ts.map +0 -1
  51. package/dist/shared-root.js +0 -125
  52. package/dist/shared-root.js.map +0 -1
@@ -1,125 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.withSharedRoot = withSharedRoot;
4
- const effection_1 = require("effection");
5
- const sdk_1 = require("@lloyal-labs/sdk");
6
- const context_1 = require("./context");
7
- const trace_scope_1 = require("./trace-scope");
8
- /**
9
- * Scoped shared root branch with guaranteed cleanup
10
- *
11
- * Creates (or forks) a root branch, prefills the system prompt, and passes
12
- * it to the body function. The root is pruned via try/finally when the body
13
- * returns or throws, regardless of whether children still exist.
14
- *
15
- * **Cold path** (no `parent`): creates root at position 0, prefills system
16
- * prompt. Use for top-level research where no prior context exists.
17
- *
18
- * **Warm path** (`parent` provided): forks from parent branch, prefills
19
- * system prompt as a delta. Sub-agents inherit the parent's full KV state.
20
- * Use for recursive tools (web_research, research) where sub-agents should
21
- * attend over the calling agent's accumulated evidence.
22
- *
23
- * @param opts - System prompt, tools, sampling parameters, and optional parent branch
24
- * @param body - Operation that receives the root branch and prefix length.
25
- * Typically calls {@link runAgents} or {@link useAgentPool} inside.
26
- * @returns The body's return value
27
- *
28
- * @category Agents
29
- */
30
- function* withSharedRoot(opts, body) {
31
- const ctx = yield* context_1.Ctx.expect();
32
- const tw = yield* context_1.Trace.expect();
33
- // Read parent trace ID — connects nested pools to the outer DISPATCH that spawned them
34
- let parentTraceId = null;
35
- try {
36
- const p = yield* context_1.TraceParent.get();
37
- if (p != null)
38
- parentTraceId = p;
39
- }
40
- catch {
41
- /* no parent — top level */
42
- }
43
- const scope = (0, trace_scope_1.traceScope)(tw, parentTraceId, "withSharedRoot", {
44
- hasTools: !!opts.tools,
45
- systemPromptLength: opts.systemPrompt.length,
46
- hasParent: !!opts.parent,
47
- });
48
- const messages = [{ role: "system", content: opts.systemPrompt }];
49
- const fmtOpts = {
50
- addGenerationPrompt: false,
51
- enableThinking: false,
52
- };
53
- if (opts.tools)
54
- fmtOpts.tools = opts.tools;
55
- const fmt = ctx.formatChatSync(JSON.stringify(messages), fmtOpts);
56
- const sharedTokens = ctx.tokenizeSync(fmt.prompt);
57
- tw.write({
58
- traceId: tw.nextId(),
59
- parentTraceId: scope.traceId,
60
- ts: performance.now(),
61
- type: "prompt:format",
62
- promptText: fmt.prompt,
63
- tokenCount: sharedTokens.length,
64
- messages: JSON.stringify(messages),
65
- tools: opts.tools,
66
- grammar: fmt.grammar || undefined,
67
- role: "sharedRoot",
68
- });
69
- // Warm path: fork from parent branch (inherits full KV state)
70
- // Cold path: create fresh root at position 0
71
- let root;
72
- let prefillTokens;
73
- if (opts.parent) {
74
- root = opts.parent.forkSync();
75
- // Warm path: parent already has system prompt + tools in KV.
76
- // Only prefill turn separator — the prompt is inherited via fork.
77
- // This saves ~760 tokens per recursive fork.
78
- const sep = ctx.getTurnSeparator();
79
- prefillTokens = sep;
80
- }
81
- else {
82
- root = sdk_1.Branch.create(ctx, 0, opts.params ?? { temperature: 0.5 });
83
- prefillTokens = sharedTokens;
84
- }
85
- tw.write({
86
- traceId: tw.nextId(),
87
- parentTraceId: scope.traceId,
88
- ts: performance.now(),
89
- type: "branch:create",
90
- branchHandle: root.handle,
91
- parentHandle: opts.parent?.handle ?? null,
92
- position: opts.parent ? opts.parent.position : 0,
93
- role: "sharedRoot",
94
- });
95
- yield* (0, effection_1.call)(() => root.prefill(prefillTokens));
96
- tw.write({
97
- traceId: tw.nextId(),
98
- parentTraceId: scope.traceId,
99
- ts: performance.now(),
100
- type: "branch:prefill",
101
- branchHandle: root.handle,
102
- tokenCount: prefillTokens.length,
103
- role: "sharedPrefix",
104
- });
105
- try {
106
- if (opts.enableScratchpad)
107
- yield* context_1.ScratchpadParent.set(root);
108
- return yield* body(root, prefillTokens.length);
109
- }
110
- finally {
111
- if (!root.disposed) {
112
- tw.write({
113
- traceId: tw.nextId(),
114
- parentTraceId: scope.traceId,
115
- ts: performance.now(),
116
- type: "branch:prune",
117
- branchHandle: root.handle,
118
- position: 0,
119
- });
120
- root.pruneSubtreeSync();
121
- }
122
- scope.close();
123
- }
124
- }
125
- //# sourceMappingURL=shared-root.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shared-root.js","sourceRoot":"","sources":["../src/shared-root.ts"],"names":[],"mappings":"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"}