@deepagents/context 0.35.0 → 0.37.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 (77) hide show
  1. package/README.md +67 -2
  2. package/dist/browser.js +0 -19
  3. package/dist/browser.js.map +2 -2
  4. package/dist/index.d.ts +2 -0
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +4544 -3346
  7. package/dist/index.js.map +4 -4
  8. package/dist/lib/advisor.d.ts +26 -0
  9. package/dist/lib/advisor.d.ts.map +1 -0
  10. package/dist/lib/agent.d.ts +16 -2
  11. package/dist/lib/agent.d.ts.map +1 -1
  12. package/dist/lib/chat.d.ts +6 -2
  13. package/dist/lib/chat.d.ts.map +1 -1
  14. package/dist/lib/engine.d.ts +10 -0
  15. package/dist/lib/engine.d.ts.map +1 -1
  16. package/dist/lib/fragments.d.ts +0 -40
  17. package/dist/lib/fragments.d.ts.map +1 -1
  18. package/dist/lib/guardrail.d.ts +1 -0
  19. package/dist/lib/guardrail.d.ts.map +1 -1
  20. package/dist/lib/guardrails/error-recovery.guardrail.d.ts.map +1 -1
  21. package/dist/lib/repair.d.ts +4 -0
  22. package/dist/lib/repair.d.ts.map +1 -0
  23. package/dist/lib/sandbox/ast-utils.d.ts +4 -0
  24. package/dist/lib/sandbox/ast-utils.d.ts.map +1 -0
  25. package/dist/lib/sandbox/bash-exception.d.ts +5 -0
  26. package/dist/lib/sandbox/bash-exception.d.ts.map +1 -0
  27. package/dist/lib/sandbox/bash-meta.d.ts +13 -0
  28. package/dist/lib/sandbox/bash-meta.d.ts.map +1 -0
  29. package/dist/lib/sandbox/bash-tool.d.ts +27 -0
  30. package/dist/lib/sandbox/bash-tool.d.ts.map +1 -0
  31. package/dist/lib/sandbox/container-tool.d.ts +39 -11
  32. package/dist/lib/sandbox/container-tool.d.ts.map +1 -1
  33. package/dist/lib/sandbox/extension.d.ts +39 -0
  34. package/dist/lib/sandbox/extension.d.ts.map +1 -0
  35. package/dist/lib/sandbox/file-events.d.ts +47 -0
  36. package/dist/lib/sandbox/file-events.d.ts.map +1 -0
  37. package/dist/lib/sandbox/index.d.ts +14 -0
  38. package/dist/lib/sandbox/index.d.ts.map +1 -1
  39. package/dist/lib/sandbox/openapi/demo.d.ts +2 -0
  40. package/dist/lib/sandbox/openapi/demo.d.ts.map +1 -0
  41. package/dist/lib/sandbox/openapi/extension.d.ts +19 -0
  42. package/dist/lib/sandbox/openapi/extension.d.ts.map +1 -0
  43. package/dist/lib/sandbox/openapi/format.d.ts +11 -0
  44. package/dist/lib/sandbox/openapi/format.d.ts.map +1 -0
  45. package/dist/lib/sandbox/openapi/schema.d.ts +9 -0
  46. package/dist/lib/sandbox/openapi/schema.d.ts.map +1 -0
  47. package/dist/lib/sandbox/openapi/skill/index.d.ts +6 -0
  48. package/dist/lib/sandbox/openapi/skill/index.d.ts.map +1 -0
  49. package/dist/lib/sandbox/openapi/skill/index.js +14 -0
  50. package/dist/lib/sandbox/openapi/skill/index.js.map +7 -0
  51. package/dist/lib/sandbox/openapi/skill/openapi-cli/SKILL.md +109 -0
  52. package/dist/lib/sandbox/openapi/validate.d.ts +7 -0
  53. package/dist/lib/sandbox/openapi/validate.d.ts.map +1 -0
  54. package/dist/lib/sandbox/routing-sandbox.d.ts +28 -0
  55. package/dist/lib/sandbox/routing-sandbox.d.ts.map +1 -0
  56. package/dist/lib/sandbox/subcommand.d.ts +49 -0
  57. package/dist/lib/sandbox/subcommand.d.ts.map +1 -0
  58. package/dist/lib/sandbox/types.d.ts +46 -0
  59. package/dist/lib/sandbox/types.d.ts.map +1 -0
  60. package/dist/lib/sandbox/upload-skills.d.ts +14 -0
  61. package/dist/lib/sandbox/upload-skills.d.ts.map +1 -0
  62. package/dist/lib/sandbox/walk.d.ts +17 -0
  63. package/dist/lib/sandbox/walk.d.ts.map +1 -0
  64. package/dist/lib/skills/fragments.d.ts +10 -15
  65. package/dist/lib/skills/fragments.d.ts.map +1 -1
  66. package/dist/lib/skills/types.d.ts +2 -27
  67. package/dist/lib/skills/types.d.ts.map +1 -1
  68. package/dist/lib/title.d.ts +1 -1
  69. package/dist/lib/title.d.ts.map +1 -1
  70. package/dist/lib/tracing/exporter.d.ts.map +1 -1
  71. package/dist/lib/tracing/index.js +59 -12
  72. package/dist/lib/tracing/index.js.map +2 -2
  73. package/dist/lib/tracing/openai-traces-integration.d.ts.map +1 -1
  74. package/dist/lib/tracing/serialization.d.ts.map +1 -1
  75. package/dist/lib/tracing/types.d.ts +0 -1
  76. package/dist/lib/tracing/types.d.ts.map +1 -1
  77. package/package.json +22 -10
package/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # @deepagents/context
2
2
 
3
- A domain-agnostic context management system for formatting context fragments into different prompt styles.
3
+ A domain-agnostic context system for LLM applications, including fragment rendering, persistence, chat orchestration, and portable sandbox tooling.
4
4
 
5
5
  ## Overview
6
6
 
7
- This package provides a flexible way to compose and render context in multiple formats (XML, Markdown, TOML, TOON). Context fragments are structured units that can be transformed into different prompt representations for different LLM styles.
7
+ This package provides a flexible way to compose and render context in multiple formats (XML, Markdown, TOML, TOON), persist conversations, orchestrate chat flows, and expose portable host-side command surfaces. Context fragments are structured units that can be transformed into different prompt representations for different LLM styles.
8
8
 
9
9
  ## Installation
10
10
 
@@ -23,6 +23,23 @@ import { identity, reminder, term, user } from '@deepagents/context/browser';
23
23
  `@deepagents/context/browser` intentionally excludes server-only modules
24
24
  like store implementations, sandbox tooling, and filesystem-based skill loading.
25
25
 
26
+ ## Sandbox Tooling
27
+
28
+ The server-side package also ships the sandbox primitives used by
29
+ `@deepagents/text2sql` and other tool-driven agents. Use
30
+ `createRoutingSandbox({ backend, hostExtensions })` to run the same host
31
+ commands across virtual, Docker, or Agent OS backends.
32
+
33
+ If an upstream service already has an OpenAPI description,
34
+ `createOpenAPIExtension({ name, openapi, ... })` turns it into a portable
35
+ `SandboxExtension` with validated subcommands and a built-in `schema`
36
+ introspection command.
37
+
38
+ See the docs for the full API surface:
39
+
40
+ - [Routing Sandbox](https://januarylabs.github.io/deepagents/docs/context/routing-sandbox)
41
+ - [Sandbox](https://januarylabs.github.io/deepagents/docs/context/sandbox)
42
+
26
43
  ## Basic Usage
27
44
 
28
45
  ```typescript
@@ -65,6 +82,54 @@ console.log(renderer.render(fragments));
65
82
  </guardrails>
66
83
  ```
67
84
 
85
+ ## Agent Helpers
86
+
87
+ If you use the built-in agent wrapper from `@deepagents/context`, the same
88
+ `ContextEngine` can power sub-agents and advisor tools without mutating the
89
+ parent thread.
90
+
91
+ ```typescript
92
+ import { openai } from '@ai-sdk/openai';
93
+
94
+ import {
95
+ ContextEngine,
96
+ InMemoryContextStore,
97
+ agent,
98
+ role,
99
+ } from '@deepagents/context';
100
+
101
+ const context = new ContextEngine({
102
+ store: new InMemoryContextStore(),
103
+ chatId: 'chat-001',
104
+ userId: 'user-001',
105
+ }).set(role('You are a product analyst.'));
106
+
107
+ const analyst = agent({
108
+ name: 'analyst',
109
+ context,
110
+ model: openai('gpt-5.4-mini'),
111
+ });
112
+
113
+ const { tool: advisor } = analyst.asAdvisor({ concise: true });
114
+
115
+ const coordinator = agent({
116
+ name: 'coordinator',
117
+ context,
118
+ model: openai('gpt-5.4'),
119
+ tools: {
120
+ analyze: analyst.asTool({
121
+ toolDescription: 'Return a short analysis brief',
122
+ }),
123
+ advisor,
124
+ },
125
+ });
126
+ ```
127
+
128
+ `asTool()` forks the context so the child run sees the parent's system fragments
129
+ without persisting new messages into the parent chat. `asAdvisor()` exposes a
130
+ no-input reviewer tool and `usage()` reports successful calls plus token usage
131
+ for that advisor instance.
132
+
68
133
  ## Fragment Builders
69
134
 
70
135
  ### Domain Fragments
package/dist/browser.js CHANGED
@@ -69,22 +69,6 @@ function assistantText(content, options) {
69
69
  parts: [{ type: "text", text: content }]
70
70
  });
71
71
  }
72
- var LAZY_ID = Symbol.for("@deepagents/context:lazy-id");
73
- function isLazyFragment(fragment2) {
74
- return LAZY_ID in fragment2;
75
- }
76
- function lastAssistantMessage(content) {
77
- return {
78
- name: "assistant",
79
- type: "message",
80
- persist: true,
81
- data: "content",
82
- [LAZY_ID]: {
83
- type: "last-assistant",
84
- content
85
- }
86
- };
87
- }
88
72
 
89
73
  // packages/context/src/lib/codec/serialized-codec.ts
90
74
  function encodeSerializedValue(value) {
@@ -2321,7 +2305,6 @@ function visualizeGraph(data) {
2321
2305
  export {
2322
2306
  ContextRenderer,
2323
2307
  ContextStore,
2324
- LAZY_ID,
2325
2308
  MarkdownRenderer,
2326
2309
  ModelsRegistry,
2327
2310
  StreamStore,
@@ -2364,10 +2347,8 @@ export {
2364
2347
  isConditionalReminder,
2365
2348
  isFragment,
2366
2349
  isFragmentObject,
2367
- isLazyFragment,
2368
2350
  isMessageFragment,
2369
2351
  isRecord,
2370
- lastAssistantMessage,
2371
2352
  mergeMessageMetadata,
2372
2353
  mergeReminderMetadata,
2373
2354
  message,