anbaric-state-machine 1.56.5 → 1.56.6

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.
@@ -1 +1 @@
1
- {"version":3,"file":"AnthropicAgent.d.ts","sourceRoot":"","sources":["../../../src/actors/agents/AnthropicAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAgB,YAAY,EAAC,MAAM,eAAe,CAAC;AAEhE,KAAK,OAAO,GAAG,CAAC,GAAG,EAAG,MAAM,EAAE,IAAI,EAAG,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEvE,KAAK,mBAAmB,GAAG;IACvB,MAAM,EAAG,MAAM,CAAC;IAChB,KAAK,EAAG,MAAM,CAAC;IACf,OAAO,CAAC,EAAG,MAAM,CAAC;IAClB,OAAO,CAAC,EAAG,MAAM,CAAC;IAClB,SAAS,CAAC,EAAG,MAAM,CAAC;CACvB,CAAC;AAWF,cAAM,eAAgB,SAAQ,KAAK,CAAC,MAAM;IAI1B,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,OAAO;IAH3B,OAAO,CAAC,OAAO,CAAU;IAEzB,YAAoB,UAAU,EAAG,mBAAmB,EAChC,OAAO,GAAG,OAAyC,EAGtE;IAEK,QAAQ,CAAC,OAAO,EAAG,YAAY,GAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAoCpE;IAKD,OAAO,CAAC,YAAY;CAMvB;AAGD,cAAM,cAAe,SAAQ,KAAK;IAE9B,YAAY,EAAE,EAAG,MAAM,EAAE,IAAI,EAAG,MAAM,EAAE,UAAU,EAAG,mBAAmB,EAC5D,OAAO,GAAG,OAAyC,EAE9D;CAEJ;AAED,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,CAAA;AAC1C,YAAY,EAAE,mBAAmB,EAAE,CAAA"}
1
+ {"version":3,"file":"AnthropicAgent.d.ts","sourceRoot":"","sources":["../../../src/actors/agents/AnthropicAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAgB,YAAY,EAAC,MAAM,eAAe,CAAC;AAGhE,KAAK,OAAO,GAAG,CAAC,GAAG,EAAG,MAAM,EAAE,IAAI,EAAG,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEvE,KAAK,mBAAmB,GAAG;IACvB,MAAM,EAAG,MAAM,CAAC;IAChB,KAAK,EAAG,MAAM,CAAC;IACf,OAAO,CAAC,EAAG,MAAM,CAAC;IAClB,OAAO,CAAC,EAAG,MAAM,CAAC;IAClB,SAAS,CAAC,EAAG,MAAM,CAAC;CACvB,CAAC;AAYF,cAAM,eAAgB,SAAQ,KAAK,CAAC,MAAM;IAI1B,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,OAAO;IAH3B,OAAO,CAAC,OAAO,CAAU;IAEzB,YAAoB,UAAU,EAAG,mBAAmB,EAChC,OAAO,GAAG,OAAyC,EAGtE;IAEK,QAAQ,CAAC,OAAO,EAAG,YAAY,GAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAuCpE;IAKD,OAAO,CAAC,YAAY;CAMvB;AAGD,cAAM,cAAe,SAAQ,KAAK;IAE9B,YAAY,EAAE,EAAG,MAAM,EAAE,IAAI,EAAG,MAAM,EAAE,UAAU,EAAG,mBAAmB,EAC5D,OAAO,GAAG,OAAyC,EAE9D;CAEJ;AAED,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,CAAA;AAC1C,YAAY,EAAE,mBAAmB,EAAE,CAAA"}
@@ -1,12 +1,14 @@
1
1
  import { Agent } from "anbaric-tsapi";
2
- const TOOL_NAME = "properties";
2
+ import { strictSchema } from "./strictSchema.js";
3
3
  const DEFAULT_VERSION = "2023-06-01";
4
4
  const DEFAULT_MAX_TOKENS = 4096;
5
- /* The functional half of an Anthropic agent. Two things differ from the
6
- OpenAI-compatible shape: the system prompt is its own field rather than a
7
- message, and there is no JSON-schema response format - so the request's
8
- schema is offered as a single tool the model is forced to call, and the
9
- arguments it calls it with are the structured output. */
5
+ /* The functional half of an Anthropic agent. It asks for the request's schema
6
+ through the Messages API's structured output (output_config.format), which
7
+ every current model supports; forcing a tool call, the older way to get
8
+ JSON out, is rejected by Claude Opus 5.5 and later. The system prompt is its
9
+ own field rather than a message, and the reply is read from the content
10
+ block typed "text" - thinking blocks come first on the newer models, so
11
+ position means nothing. */
10
12
  class AnthropicClient extends Agent.Client {
11
13
  connection;
12
14
  fetchFn;
@@ -32,12 +34,7 @@ class AnthropicClient extends Agent.Client {
32
34
  max_tokens: this.connection.maxTokens ?? DEFAULT_MAX_TOKENS,
33
35
  ...(system ? { system } : {}),
34
36
  messages: this.conversation(request.messages),
35
- tools: [{
36
- name: TOOL_NAME,
37
- description: "Return the properties to write to the job.",
38
- input_schema: request.outputSchema,
39
- }],
40
- tool_choice: { type: "tool", name: TOOL_NAME },
37
+ output_config: { format: { type: "json_schema", schema: strictSchema(request.outputSchema) } },
41
38
  }),
42
39
  });
43
40
  if (!response.ok) {
@@ -45,11 +42,20 @@ class AnthropicClient extends Agent.Client {
45
42
  throw new Error(`The Anthropic request failed with status ${response.status}${problem.error?.message ? `: ${problem.error.message}` : ""}`);
46
43
  }
47
44
  const body = await response.json();
48
- const called = body.content?.find(block => block.type === "tool_use" && block.name === TOOL_NAME);
49
- if (!called || typeof called.input !== "object" || called.input === null) {
45
+ const text = body.content?.find(block => block.type === "text" && typeof block.text === "string")?.text;
46
+ if (text === undefined)
50
47
  throw new Error("The Anthropic response carried no structured content");
48
+ let properties;
49
+ try {
50
+ properties = JSON.parse(text);
51
51
  }
52
- return called.input;
52
+ catch {
53
+ throw new Error("The Anthropic response was not the JSON it was asked for");
54
+ }
55
+ if (typeof properties !== "object" || properties === null || Array.isArray(properties)) {
56
+ throw new Error("The Anthropic response carried no structured content");
57
+ }
58
+ return properties;
53
59
  }
54
60
  // The conversation Anthropic sees: system messages are lifted out, and the
55
61
  // turns must start with the user, so a conversation opening on an assistant
@@ -1 +1 @@
1
- {"version":3,"file":"AnthropicAgent.js","sourceRoot":"","sources":["../../../src/actors/agents/AnthropicAgent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AnthropicAgent.js","sourceRoot":"","sources":["../../../src/actors/agents/AnthropicAgent.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"OpenAIAgent.d.ts","sourceRoot":"","sources":["../../../src/actors/agents/OpenAIAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AAElD,KAAK,OAAO,GAAG,CAAC,GAAG,EAAG,MAAM,EAAE,IAAI,EAAG,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEvE,KAAK,gBAAgB,GAAG;IACpB,MAAM,EAAG,MAAM,CAAC;IAChB,KAAK,EAAG,MAAM,CAAC;IACf,OAAO,CAAC,EAAG,MAAM,CAAC;IAClB,YAAY,CAAC,EAAG,MAAM,CAAC;CAC1B,CAAC;AAqBF,cAAM,YAAa,SAAQ,KAAK,CAAC,MAAM;IAIvB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,OAAO;IAH3B,OAAO,CAAC,OAAO,CAAU;IAEzB,YAAoB,UAAU,EAAG,gBAAgB,EAC7B,OAAO,GAAG,OAAyC,EAGtE;IAEK,QAAQ,CAAC,OAAO,EAAG,YAAY,GAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CA2BpE;CAEJ;AAGD,cAAM,WAAY,SAAQ,KAAK;IAE3B,YAAY,EAAE,EAAG,MAAM,EAAE,IAAI,EAAG,MAAM,EAAE,UAAU,EAAG,gBAAgB,EACzD,OAAO,GAAG,OAAyC,EAE9D;CAEJ;AAED,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,CAAA;AACpC,YAAY,EAAE,gBAAgB,EAAE,CAAA"}
1
+ {"version":3,"file":"OpenAIAgent.d.ts","sourceRoot":"","sources":["../../../src/actors/agents/OpenAIAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AAGlD,KAAK,OAAO,GAAG,CAAC,GAAG,EAAG,MAAM,EAAE,IAAI,EAAG,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEvE,KAAK,gBAAgB,GAAG;IACpB,MAAM,EAAG,MAAM,CAAC;IAChB,KAAK,EAAG,MAAM,CAAC;IACf,OAAO,CAAC,EAAG,MAAM,CAAC;IAClB,YAAY,CAAC,EAAG,MAAM,CAAC;CAC1B,CAAC;AAKF,cAAM,YAAa,SAAQ,KAAK,CAAC,MAAM;IAIvB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,OAAO;IAH3B,OAAO,CAAC,OAAO,CAAU;IAEzB,YAAoB,UAAU,EAAG,gBAAgB,EAC7B,OAAO,GAAG,OAAyC,EAGtE;IAEK,QAAQ,CAAC,OAAO,EAAG,YAAY,GAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CA2BpE;CAEJ;AAGD,cAAM,WAAY,SAAQ,KAAK;IAE3B,YAAY,EAAE,EAAG,MAAM,EAAE,IAAI,EAAG,MAAM,EAAE,UAAU,EAAG,gBAAgB,EACzD,OAAO,GAAG,OAAyC,EAE9D;CAEJ;AAED,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,CAAA;AACpC,YAAY,EAAE,gBAAgB,EAAE,CAAA"}
@@ -1,18 +1,5 @@
1
1
  import { Agent } from "anbaric-tsapi";
2
- const strictSchema = (schema) => {
3
- if (schema?.type === "object" && schema.properties) {
4
- return {
5
- ...schema,
6
- required: Object.keys(schema.properties),
7
- additionalProperties: false,
8
- properties: Object.fromEntries(Object.entries(schema.properties).map(([key, property]) => [key, strictSchema(property)])),
9
- };
10
- }
11
- if (schema?.type === "array" && schema.items) {
12
- return { ...schema, items: strictSchema(schema.items) };
13
- }
14
- return schema;
15
- };
2
+ import { strictSchema } from "./strictSchema.js";
16
3
  /* The functional half of an OpenAI agent: asks an OpenAI-compatible chat
17
4
  completions endpoint for JSON conforming to the request's schema via
18
5
  structured outputs. */
@@ -1 +1 @@
1
- {"version":3,"file":"OpenAIAgent.js","sourceRoot":"","sources":["../../../src/actors/agents/OpenAIAgent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OpenAIAgent.js","sourceRoot":"","sources":["../../../src/actors/agents/OpenAIAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAe,MAAM,eAAe,CAAC;AAClD,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAW/C;;yBAEyB;AACzB,MAAM,YAAa,SAAQ,KAAK,CAAC,MAAM;IAIf,UAAU;IACV,OAAO;IAHnB,OAAO,CAAU;IAEzB,YAAoB,UAA6B,EAC7B,OAAO,GAAa,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;QACnE,KAAK,EAAE,CAAC;0BAFQ,UAAU;uBACV,OAAO;QAEvB,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,IAAI,2BAA2B,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAsB;QACjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,mBAAmB,EAAE;YACpE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACL,cAAc,EAAE,kBAAkB;gBAClC,eAAe,EAAE,UAAU,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;gBACnD,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACnG;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACjB,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK;gBAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,eAAe,EAAE;oBACb,IAAI,EAAE,aAAa;oBACnB,WAAW,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;iBAChG;aACJ,CAAC;SACL,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAuC,CAAC;YAC9F,MAAM,IAAI,KAAK,CAAC,yCAAyC,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7I,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAgE,CAAC;QACjG,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;QACpD,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACtG,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;CAEJ;AAED,6EAA6E;AAC7E,MAAM,WAAY,SAAQ,KAAK;IAE3B,YAAY,EAAW,EAAE,IAAa,EAAE,UAA6B,EACzD,OAAO,GAAa,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;QAC3D,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;CAEJ;AAED,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,CAAA"}
@@ -0,0 +1,3 @@
1
+ declare const strictSchema: (schema: any) => any;
2
+ export { strictSchema };
3
+ //# sourceMappingURL=strictSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strictSchema.d.ts","sourceRoot":"","sources":["../../../src/actors/agents/strictSchema.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,YAAY,WAAa,GAAG,KAAI,GAcrC,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,19 @@
1
+ /* The shape the structured-output APIs (OpenAI's strict mode, Anthropic's
2
+ json_schema format) insist on: every object closes itself to unknown keys
3
+ and names every property as required, all the way down. */
4
+ const strictSchema = (schema) => {
5
+ if (schema?.type === "object" && schema.properties) {
6
+ return {
7
+ ...schema,
8
+ required: Object.keys(schema.properties),
9
+ additionalProperties: false,
10
+ properties: Object.fromEntries(Object.entries(schema.properties).map(([key, property]) => [key, strictSchema(property)])),
11
+ };
12
+ }
13
+ if (schema?.type === "array" && schema.items) {
14
+ return { ...schema, items: strictSchema(schema.items) };
15
+ }
16
+ return schema;
17
+ };
18
+ export { strictSchema };
19
+ //# sourceMappingURL=strictSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strictSchema.js","sourceRoot":"","sources":["../../../src/actors/agents/strictSchema.ts"],"names":[],"mappings":"AAAA;;6DAE6D;AAC7D,MAAM,YAAY,GAAG,CAAC,MAAY,EAAQ,EAAE;IACxC,IAAI,MAAM,EAAE,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACjD,OAAO;YACH,GAAG,MAAM;YACT,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YACxC,oBAAoB,EAAE,KAAK;YAC3B,UAAU,EAAE,MAAM,CAAC,WAAW,CAC1B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;SACjG,CAAC;IACN,CAAC;IACD,IAAI,MAAM,EAAE,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAC3C,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IAC5D,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "anbaric-state-machine",
3
- "version": "1.56.5",
3
+ "version": "1.56.6",
4
4
  "description": "This is the state machine library that one can use to add state management to an application. It will, by default, be locally runnable but can deployed to the Anbaric Cloud via the CLI",
5
5
  "license": "MIT",
6
6
  "author": "chris@anbaric.ai",
@@ -24,8 +24,8 @@
24
24
  "typescript": "^7.0.2"
25
25
  },
26
26
  "dependencies": {
27
- "anbaric-impl-cloud": "^1.56.5",
28
- "anbaric-tsapi": "^1.56.5"
27
+ "anbaric-impl-cloud": "^1.56.6",
28
+ "anbaric-tsapi": "^1.56.6"
29
29
  },
30
30
  "files": [
31
31
  "dist"