@noetic-tools/core 0.0.1 → 0.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 (202) hide show
  1. package/dist/adapters/in-memory-fs-adapter.js +1 -1
  2. package/dist/adapters/in-memory-subprocess/manifest-persistence.d.ts +8 -0
  3. package/dist/adapters/in-memory-subprocess/manifest-persistence.js +56 -0
  4. package/dist/adapters/in-memory-subprocess/metadata.d.ts +12 -0
  5. package/dist/adapters/in-memory-subprocess/metadata.js +58 -0
  6. package/dist/adapters/in-memory-subprocess/step-completion.d.ts +3 -0
  7. package/dist/adapters/in-memory-subprocess/step-completion.js +86 -0
  8. package/dist/adapters/in-memory-subprocess/types.d.ts +88 -0
  9. package/dist/adapters/in-memory-subprocess/types.js +2 -0
  10. package/dist/adapters/in-memory-subprocess-adapter.d.ts +12 -4
  11. package/dist/adapters/in-memory-subprocess-adapter.js +164 -55
  12. package/dist/adapters/openrouter.d.ts +11 -2
  13. package/dist/adapters/openrouter.js +66 -5
  14. package/dist/builders/control-flow-builders.js +8 -3
  15. package/dist/builders/every.js +4 -1
  16. package/dist/builders/layer-provides-builders.d.ts +1 -32
  17. package/dist/builders/layer-provides-builders.js +1 -33
  18. package/dist/builders/loop-builder.js +4 -1
  19. package/dist/builders/memory-builder.js +1 -1
  20. package/dist/builders/provide-builder.js +4 -1
  21. package/dist/builders/spawn-builder.d.ts +20 -7
  22. package/dist/builders/spawn-builder.js +16 -2
  23. package/dist/builders/step-builders.d.ts +49 -28
  24. package/dist/builders/step-builders.js +30 -11
  25. package/dist/builders/tool-builder.d.ts +5 -1
  26. package/dist/builders/tool-builder.js +2 -0
  27. package/dist/builders/workflow-hydrator.d.ts +38 -0
  28. package/dist/builders/workflow-hydrator.js +336 -0
  29. package/dist/conditions/conditions.js +1 -1
  30. package/dist/errors/noetic-error.js +2 -0
  31. package/dist/{runtime → harness}/agent-harness.d.ts +65 -45
  32. package/dist/harness/agent-harness.js +576 -0
  33. package/dist/harness/deps/adapters.d.ts +4 -0
  34. package/dist/harness/deps/adapters.js +4 -0
  35. package/dist/harness/deps/interpreter.d.ts +5 -0
  36. package/dist/harness/deps/interpreter.js +4 -0
  37. package/dist/harness/deps/memory.d.ts +5 -0
  38. package/dist/harness/deps/memory.js +4 -0
  39. package/dist/harness/deps/runtime.d.ts +10 -0
  40. package/dist/harness/deps/runtime.js +7 -0
  41. package/dist/harness/deps/types.d.ts +17 -0
  42. package/dist/harness/deps/types.js +1 -0
  43. package/dist/harness/model-call.d.ts +50 -0
  44. package/dist/harness/model-call.js +694 -0
  45. package/dist/harness/model-schema.d.ts +19 -0
  46. package/dist/harness/model-schema.js +46 -0
  47. package/dist/harness/step-bootstrap.d.ts +25 -0
  48. package/dist/harness/step-bootstrap.js +170 -0
  49. package/dist/index.d.ts +48 -12
  50. package/dist/index.js +29 -7
  51. package/dist/interpreter/action-deps.d.ts +12 -0
  52. package/dist/interpreter/action-deps.js +10 -0
  53. package/dist/interpreter/action-types.d.ts +8 -0
  54. package/dist/interpreter/action-types.js +1 -0
  55. package/dist/interpreter/collect-tools.d.ts +1 -1
  56. package/dist/interpreter/collect-tools.js +6 -2
  57. package/dist/interpreter/execute-action.d.ts +22 -0
  58. package/dist/interpreter/execute-action.js +527 -0
  59. package/dist/interpreter/{execute-every.d.ts → execute-control.d.ts} +7 -1
  60. package/dist/interpreter/execute-control.js +530 -0
  61. package/dist/interpreter/execute.d.ts +13 -0
  62. package/dist/interpreter/execute.js +151 -48
  63. package/dist/interpreter/message-helpers.d.ts +1 -9
  64. package/dist/interpreter/message-helpers.js +1 -42
  65. package/dist/interpreter/step-dispatcher.d.ts +61 -0
  66. package/dist/interpreter/step-dispatcher.js +67 -0
  67. package/dist/interpreter/typeguards.d.ts +3 -10
  68. package/dist/interpreter/typeguards.js +3 -20
  69. package/dist/{runtime → memory}/exec-context-factory.js +1 -1
  70. package/dist/memory/flow-schema.d.ts +52 -0
  71. package/dist/memory/flow-schema.js +102 -0
  72. package/dist/memory/function-call-utils.js +4 -2
  73. package/dist/memory/layer-api.d.ts +1 -1
  74. package/dist/memory/layer-api.js +2 -2
  75. package/dist/memory/layer-lifecycle.d.ts +1 -1
  76. package/dist/memory/layer-lifecycle.js +2 -2
  77. package/dist/memory/layer-provides.d.ts +32 -0
  78. package/dist/memory/layer-provides.js +33 -0
  79. package/dist/memory/layer-usage.d.ts +3 -2
  80. package/dist/memory/layer-usage.js +9 -3
  81. package/dist/memory/layers/durable-task-state.js +1 -1
  82. package/dist/memory/layers/file-reference.js +302 -246
  83. package/dist/memory/layers/history-window.js +1 -1
  84. package/dist/memory/layers/observational-memory.js +1 -2
  85. package/dist/memory/layers/plan.d.ts +1 -1
  86. package/dist/memory/layers/plan.js +13 -8
  87. package/dist/memory/layers/steering.js +1 -1
  88. package/dist/memory/layers/tool-memory-layer.d.ts +1 -1
  89. package/dist/memory/layers/working-memory.js +2 -2
  90. package/dist/patterns/dynamic-workflow.d.ts +55 -0
  91. package/dist/patterns/dynamic-workflow.js +194 -0
  92. package/dist/patterns/flow.d.ts +2 -52
  93. package/dist/patterns/flow.js +1 -103
  94. package/dist/patterns/interview.js +1 -1
  95. package/dist/patterns/plans.d.ts +3 -3
  96. package/dist/patterns/plans.js +3 -3
  97. package/dist/patterns/ralph-wiggum.d.ts +1 -1
  98. package/dist/patterns/react.d.ts +1 -1
  99. package/dist/portable/adapters.d.ts +6 -0
  100. package/dist/portable/adapters.js +6 -0
  101. package/dist/portable/ask-user.d.ts +4 -0
  102. package/dist/portable/ask-user.js +2 -0
  103. package/dist/portable/builders.d.ts +12 -0
  104. package/dist/portable/builders.js +12 -0
  105. package/dist/portable/memory-layers.d.ts +12 -0
  106. package/dist/portable/memory-layers.js +12 -0
  107. package/dist/portable/runtime.d.ts +4 -0
  108. package/dist/portable/runtime.js +4 -0
  109. package/dist/portable/until.d.ts +4 -0
  110. package/dist/portable/until.js +4 -0
  111. package/dist/portable.d.ts +8 -26
  112. package/dist/portable.js +8 -34
  113. package/dist/runtime/broadcaster-utils.d.ts +5 -1
  114. package/dist/runtime/broadcaster-utils.js +11 -6
  115. package/dist/runtime/channel-store.js +1 -1
  116. package/dist/runtime/context-deps.d.ts +4 -0
  117. package/dist/runtime/context-deps.js +2 -0
  118. package/dist/runtime/context-impl.d.ts +42 -12
  119. package/dist/runtime/context-impl.js +51 -4
  120. package/dist/runtime/context-type-deps.d.ts +14 -0
  121. package/dist/runtime/context-type-deps.js +1 -0
  122. package/dist/runtime/detached-handle.d.ts +50 -2
  123. package/dist/runtime/detached-handle.js +216 -12
  124. package/dist/runtime/durable/checkpoint-store.d.ts +38 -0
  125. package/dist/runtime/durable/checkpoint-store.js +101 -0
  126. package/dist/runtime/durable/detached-signal.d.ts +37 -0
  127. package/dist/runtime/durable/detached-signal.js +52 -0
  128. package/dist/runtime/durable/harness-checkpoints.d.ts +51 -0
  129. package/dist/runtime/durable/harness-checkpoints.js +104 -0
  130. package/dist/runtime/durable/index.d.ts +10 -0
  131. package/dist/runtime/durable/index.js +5 -0
  132. package/dist/runtime/durable/runnable-loop.d.ts +100 -0
  133. package/dist/runtime/durable/runnable-loop.js +90 -0
  134. package/dist/runtime/durable/session-seed.d.ts +28 -0
  135. package/dist/runtime/durable/session-seed.js +27 -0
  136. package/dist/runtime/durable/stall-nudge.d.ts +82 -0
  137. package/dist/runtime/durable/stall-nudge.js +87 -0
  138. package/dist/runtime/in-memory-storage.js +1 -1
  139. package/dist/runtime/item-log-impl.d.ts +1 -1
  140. package/dist/runtime/step-registry.d.ts +42 -0
  141. package/dist/runtime/step-registry.js +77 -0
  142. package/dist/schemas/workflow.d.ts +139 -0
  143. package/dist/schemas/workflow.js +232 -0
  144. package/dist/types/ask-user-types.d.ts +57 -0
  145. package/dist/types/ask-user-types.js +74 -0
  146. package/dist/types/checkpoint.d.ts +98 -0
  147. package/dist/types/checkpoint.js +81 -0
  148. package/dist/types/common.d.ts +1 -50
  149. package/dist/types/context-parts/item-log.d.ts +6 -0
  150. package/dist/types/context-parts/item-log.js +1 -0
  151. package/dist/types/context-parts/layer-usage.d.ts +18 -0
  152. package/dist/types/context-parts/layer-usage.js +1 -0
  153. package/dist/types/context.d.ts +135 -26
  154. package/dist/types/error.d.ts +15 -0
  155. package/dist/types/harness-result.d.ts +1 -1
  156. package/dist/types/items.d.ts +18 -2
  157. package/dist/types/memory-context.d.ts +39 -0
  158. package/dist/types/memory-context.js +1 -0
  159. package/dist/types/memory.d.ts +35 -65
  160. package/dist/types/runtime.d.ts +2 -1
  161. package/dist/types/steering.d.ts +1 -1
  162. package/dist/types/step-registrar.d.ts +46 -0
  163. package/dist/types/step-registrar.js +56 -0
  164. package/dist/types/step.d.ts +30 -5
  165. package/dist/types/subprocess-adapter.d.ts +119 -3
  166. package/dist/types/subprocess-adapter.js +2 -0
  167. package/dist/types/tool.d.ts +64 -0
  168. package/dist/types/tool.js +1 -0
  169. package/dist/unstable.d.ts +2 -2
  170. package/dist/unstable.js +2 -2
  171. package/dist/until/predicates.d.ts +9 -0
  172. package/dist/until/predicates.js +14 -0
  173. package/dist/util/message-helpers.d.ts +17 -0
  174. package/dist/util/message-helpers.js +64 -0
  175. package/package.json +1 -1
  176. package/dist/adapters/local-fs-adapter.d.ts +0 -3
  177. package/dist/adapters/local-fs-adapter.js +0 -43
  178. package/dist/adapters/local-shell-adapter.d.ts +0 -51
  179. package/dist/adapters/local-shell-adapter.js +0 -167
  180. package/dist/adapters/local-subprocess-adapter.d.ts +0 -16
  181. package/dist/adapters/local-subprocess-adapter.js +0 -187
  182. package/dist/interpreter/execute-branch.d.ts +0 -3
  183. package/dist/interpreter/execute-branch.js +0 -10
  184. package/dist/interpreter/execute-every.js +0 -143
  185. package/dist/interpreter/execute-fork.d.ts +0 -3
  186. package/dist/interpreter/execute-fork.js +0 -215
  187. package/dist/interpreter/execute-llm.d.ts +0 -4
  188. package/dist/interpreter/execute-llm.js +0 -217
  189. package/dist/interpreter/execute-loop.d.ts +0 -3
  190. package/dist/interpreter/execute-loop.js +0 -171
  191. package/dist/interpreter/execute-provide.d.ts +0 -10
  192. package/dist/interpreter/execute-provide.js +0 -64
  193. package/dist/interpreter/execute-run.d.ts +0 -3
  194. package/dist/interpreter/execute-run.js +0 -39
  195. package/dist/interpreter/execute-spawn.d.ts +0 -11
  196. package/dist/interpreter/execute-spawn.js +0 -113
  197. package/dist/interpreter/execute-tool.d.ts +0 -5
  198. package/dist/interpreter/execute-tool.js +0 -81
  199. package/dist/runtime/agent-harness.js +0 -1170
  200. /package/dist/{runtime → memory}/exec-context-factory.d.ts +0 -0
  201. /package/dist/{interpreter → util}/framework-cast.d.ts +0 -0
  202. /package/dist/{interpreter → util}/framework-cast.js +0 -0
@@ -1,6 +1,6 @@
1
1
  import type { ItemSchemaRegistry } from '../schemas/item';
2
2
  import type { LLMResponse } from '../types/common';
3
- import type { ItemLog } from '../types/context';
3
+ import type { ItemLog } from '../types/context-parts/item-log';
4
4
  import type { Item } from '../types/items';
5
5
  import type { ExecutionContext, MemoryLayer, StorageAdapter } from '../types/memory';
6
6
  import type { SteeringDecision } from '../types/steering';
@@ -1,8 +1,8 @@
1
1
  import { NoeticConfigError } from '../errors/noetic-config-error';
2
- import { frameworkCast } from '../interpreter/framework-cast';
3
- import { createMessage, estimateTokens } from '../interpreter/message-helpers';
4
2
  import { defaultItemSchemaRegistry } from '../schemas/item';
5
3
  import { SteeringAction } from '../types/steering';
4
+ import { frameworkCast } from '../util/framework-cast';
5
+ import { createMessage, estimateTokens } from '../util/message-helpers';
6
6
  import { createScopedStorage, resolveScopeKey } from './scope';
7
7
  /** Maximum allowed re-render depth to prevent infinite loops */
8
8
  const MAX_RERENDER_DEPTH = 3;
@@ -0,0 +1,32 @@
1
+ import type { ZodType } from 'zod';
2
+ import type { ExecutionContext, LayerDataDecl, LayerFunctionDecl } from '../types/memory';
3
+ /**
4
+ * Creates a read-only data declaration for a memory layer's `provides` map.
5
+ *
6
+ * @public
7
+ * @param opts.read - Function that projects a value from the layer's current state.
8
+ * @returns A `LayerDataDecl` to include in a layer's `provides`.
9
+ */
10
+ export declare function layerData<T, TState>(opts: {
11
+ read: (state: TState) => T;
12
+ }): LayerDataDecl<T, TState>;
13
+ /**
14
+ * Creates a callable function declaration for a memory layer's `provides` map.
15
+ * Functions are accessible via `ctx.memory['layerId'].fn()` and automatically exposed as LLM tools.
16
+ *
17
+ * @public
18
+ * @param opts.description - Human-readable description used as tool description for LLM.
19
+ * @param opts.input - Zod schema validating input arguments.
20
+ * @param opts.output - Zod schema validating the return value.
21
+ * @param opts.execute - Async function receiving args, current state, and execution context.
22
+ * @returns A `LayerFunctionDecl` to include in a layer's `provides`.
23
+ */
24
+ export declare function layerFn<TInput, TOutput, TState>(opts: {
25
+ description: string;
26
+ input: ZodType<TInput>;
27
+ output: ZodType<TOutput>;
28
+ execute: (args: TInput, state: TState, ctx: ExecutionContext) => Promise<{
29
+ result: TOutput;
30
+ state?: TState;
31
+ }>;
32
+ }): LayerFunctionDecl<TInput, TOutput, TState>;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Creates a read-only data declaration for a memory layer's `provides` map.
3
+ *
4
+ * @public
5
+ * @param opts.read - Function that projects a value from the layer's current state.
6
+ * @returns A `LayerDataDecl` to include in a layer's `provides`.
7
+ */
8
+ export function layerData(opts) {
9
+ return {
10
+ kind: 'data',
11
+ read: opts.read,
12
+ };
13
+ }
14
+ /**
15
+ * Creates a callable function declaration for a memory layer's `provides` map.
16
+ * Functions are accessible via `ctx.memory['layerId'].fn()` and automatically exposed as LLM tools.
17
+ *
18
+ * @public
19
+ * @param opts.description - Human-readable description used as tool description for LLM.
20
+ * @param opts.input - Zod schema validating input arguments.
21
+ * @param opts.output - Zod schema validating the return value.
22
+ * @param opts.execute - Async function receiving args, current state, and execution context.
23
+ * @returns A `LayerFunctionDecl` to include in a layer's `provides`.
24
+ */
25
+ export function layerFn(opts) {
26
+ return {
27
+ kind: 'function',
28
+ description: opts.description,
29
+ input: opts.input,
30
+ output: opts.output,
31
+ execute: opts.execute,
32
+ };
33
+ }
@@ -1,6 +1,7 @@
1
- import type { Tool } from '../types/common';
2
- import type { Context, LastLayerUsage } from '../types/context';
1
+ import type { Context } from '../types/context';
2
+ import type { LastLayerUsage } from '../types/context-parts/layer-usage';
3
3
  import type { RecallLayerOutput } from '../types/runtime';
4
+ import type { Tool } from '../types/tool';
4
5
  interface ComputeLayerUsageParams {
5
6
  ctx: Context;
6
7
  modelId: string;
@@ -1,5 +1,11 @@
1
- import { estimateTokens } from '../interpreter/message-helpers';
2
- import { isContextImpl } from '../interpreter/typeguards';
1
+ import { estimateTokens } from '../util/message-helpers';
2
+ function canWriteLayerUsage(ctx) {
3
+ const desc = Object.getOwnPropertyDescriptor(ctx, 'lastLayerUsage');
4
+ if (desc === undefined) {
5
+ return false;
6
+ }
7
+ return desc.writable !== false;
8
+ }
3
9
  //#endregion
4
10
  //#region Helpers
5
11
  function estimateJsonTokens(value) {
@@ -40,7 +46,7 @@ export function computeLayerUsage({ ctx, modelId, instructions, tools, recallRes
40
46
  }
41
47
  /** Commit computed usage to the Context, replacing any prior snapshot. */
42
48
  export function commitLayerUsage(ctx, usage) {
43
- if (!isContextImpl(ctx)) {
49
+ if (!canWriteLayerUsage(ctx)) {
44
50
  return;
45
51
  }
46
52
  ctx.lastLayerUsage = usage;
@@ -1,5 +1,5 @@
1
- import { createMessage, estimateTokens } from '../../interpreter/message-helpers';
2
1
  import { Slot } from '../../types/memory';
2
+ import { createMessage, estimateTokens } from '../../util/message-helpers';
3
3
  /**
4
4
  * Creates a memory layer that persists task checkpoints, files, and arbitrary data across iterations.
5
5
  *