@overaihq/cli 0.14.3 → 0.14.4

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 (2) hide show
  1. package/dist/index.js +165 -112
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -27812,6 +27812,112 @@ var runAutomation = async (args) => {
27812
27812
  process.exitCode = 1;
27813
27813
  };
27814
27814
 
27815
+ // ../common/src/agent.ts
27816
+ var agentVersionConfigSchema = external_exports.object({
27817
+ systemPrompt: external_exports.string(),
27818
+ model: external_exports.string(),
27819
+ temperature: external_exports.number(),
27820
+ maxTokens: external_exports.number(),
27821
+ rateLimitRequestsPerMinute: external_exports.number(),
27822
+ rateLimitTokensPerMinute: external_exports.number()
27823
+ });
27824
+ var defaultAgentVersionConfig = {
27825
+ systemPrompt: "You are a helpful assistant.",
27826
+ model: "claude-sonnet-4-6",
27827
+ temperature: 0.7,
27828
+ maxTokens: 4096,
27829
+ rateLimitRequestsPerMinute: 20,
27830
+ rateLimitTokensPerMinute: 2e5
27831
+ };
27832
+ var agentTableSpaceAccessModeSchema = external_exports.enum(["read", "read_write"]);
27833
+ var BUILTIN_TOOL_SETS = {
27834
+ web: {
27835
+ label: "Web search",
27836
+ description: "Search the web. Runs on the model provider's infrastructure; not every model offers it."
27837
+ },
27838
+ documents: {
27839
+ label: "Read documents",
27840
+ description: "Read PDFs, Word documents, spreadsheets and text files from this organization's storage."
27841
+ },
27842
+ storage: {
27843
+ label: "Save files",
27844
+ description: "Write text files to this organization's storage for other tools and people to use."
27845
+ }
27846
+ };
27847
+ var isBuiltinToolSetName = (name2) => Object.hasOwn(BUILTIN_TOOL_SETS, name2);
27848
+ var agentEditableConfigSchema = agentVersionConfigSchema.extend({
27849
+ agentVersionFunctionsByAgentIdAndVersionNumber: external_exports.object({
27850
+ nodes: external_exports.array(
27851
+ external_exports.object({
27852
+ functionId: external_exports.string()
27853
+ })
27854
+ )
27855
+ }),
27856
+ agentVersionTableSpacesByAgentIdAndVersionNumber: external_exports.object({
27857
+ nodes: external_exports.array(
27858
+ external_exports.object({
27859
+ tableSpaceId: external_exports.string(),
27860
+ accessMode: agentTableSpaceAccessModeSchema
27861
+ })
27862
+ )
27863
+ }),
27864
+ agentVersionAgentsByAgentIdAndVersionNumber: external_exports.object({
27865
+ nodes: external_exports.array(
27866
+ external_exports.object({
27867
+ attachedAgentId: external_exports.string()
27868
+ })
27869
+ )
27870
+ }),
27871
+ agentVersionKnowledgeBasesByAgentIdAndVersionNumber: external_exports.object({
27872
+ nodes: external_exports.array(
27873
+ external_exports.object({
27874
+ knowledgeBaseId: external_exports.string()
27875
+ })
27876
+ )
27877
+ }),
27878
+ // Prefaulted: configs from before built-ins (stale clients, saved drafts)
27879
+ // still parse.
27880
+ agentVersionBuiltinToolSetsByAgentIdAndVersionNumber: external_exports.object({
27881
+ nodes: external_exports.array(
27882
+ external_exports.object({
27883
+ toolSet: external_exports.string()
27884
+ })
27885
+ )
27886
+ }).prefault({ nodes: [] })
27887
+ });
27888
+ var agentToolHttpMethodSchema = external_exports.enum([
27889
+ "GET",
27890
+ "POST",
27891
+ "PUT",
27892
+ "PATCH",
27893
+ "DELETE"
27894
+ ]);
27895
+ var agentToolRequestSchema = external_exports.object({
27896
+ method: agentToolHttpMethodSchema,
27897
+ // Sub-path under the function base URL; functions route on it
27898
+ path: external_exports.string().prefault("/").transform((p) => p.startsWith("/") ? p : `/${p}`),
27899
+ headers: external_exports.record(external_exports.string(), external_exports.string()).prefault({}),
27900
+ queryParams: external_exports.record(external_exports.string(), external_exports.union([external_exports.string(), external_exports.number(), external_exports.boolean()])).prefault({}),
27901
+ body: external_exports.unknown()
27902
+ });
27903
+ var agentToolRequestJsonSchemaSchema = external_exports.object({
27904
+ type: external_exports.literal("object"),
27905
+ properties: external_exports.object({
27906
+ method: external_exports.object({ type: external_exports.literal("string") }).loose(),
27907
+ headers: external_exports.object({ type: external_exports.literal("object") }).loose(),
27908
+ queryParams: external_exports.object({ type: external_exports.literal("object") }).loose(),
27909
+ body: external_exports.object({}).loose()
27910
+ }).loose(),
27911
+ required: external_exports.array(external_exports.string()).refine(
27912
+ (arr) => ["method", "headers", "queryParams", "body"].every(
27913
+ (key) => arr.includes(key)
27914
+ ),
27915
+ {
27916
+ message: "required array must include: method, headers, queryParams, body"
27917
+ }
27918
+ )
27919
+ }).loose();
27920
+
27815
27921
  // src/workspace/validateElements.ts
27816
27922
  var findings = (parsed) => parsed.success ? [] : parsed.error.issues.map((i) => `${i.path.join(".")}: ${i.message}`);
27817
27923
  var validateAutomationElements = async (elements) => {
@@ -27824,40 +27930,46 @@ var validateWebPageConfig = async (config) => {
27824
27930
  };
27825
27931
 
27826
27932
  // ../common/src/function.ts
27827
- var defaultAgentFunctionInputSchema = `{
27828
- "type": "object",
27829
- "properties": {
27830
- "method": {
27831
- "type": "string",
27832
- "enum": ["GET", "POST", "PUT", "PATCH", "DELETE"],
27833
- "default": "POST",
27834
- "description": "HTTP method for this function call."
27933
+ var agentToolPathJsonSchema = {
27934
+ type: "string",
27935
+ default: "/",
27936
+ description: 'Sub-path under the function URL, e.g. "/notes". Use "/" for the base.'
27937
+ };
27938
+ var defaultAgentFunctionInputSchema = JSON.stringify(
27939
+ {
27940
+ type: "object",
27941
+ properties: {
27942
+ method: {
27943
+ type: "string",
27944
+ enum: ["GET", "POST", "PUT", "PATCH", "DELETE"],
27945
+ default: "POST",
27946
+ description: "HTTP method for this function call."
27835
27947
  },
27836
- "headers": {
27837
- "type": "object",
27838
- "description": "Request headers. Use {} when none are needed.",
27839
- "default": {},
27840
- "additionalProperties": {
27841
- "type": "string"
27842
- }
27948
+ path: agentToolPathJsonSchema,
27949
+ headers: {
27950
+ type: "object",
27951
+ description: "Request headers. Use {} when none are needed.",
27952
+ default: {},
27953
+ additionalProperties: { type: "string" }
27843
27954
  },
27844
- "queryParams": {
27845
- "type": "object",
27846
- "description": "URL query params. Use {} when none are needed.",
27847
- "default": {},
27848
- "additionalProperties": {
27849
- "type": ["string", "number", "boolean"]
27850
- }
27955
+ queryParams: {
27956
+ type: "object",
27957
+ description: "URL query params. Use {} when none are needed.",
27958
+ default: {},
27959
+ additionalProperties: { type: ["string", "number", "boolean"] }
27851
27960
  },
27852
- "body": {
27853
- "type": "object",
27854
- "description": "Request body payload. Use {} when none is needed.",
27855
- "default": {},
27856
- "additionalProperties": true
27961
+ body: {
27962
+ type: "object",
27963
+ description: "Request body payload. Use {} when none is needed.",
27964
+ default: {},
27965
+ additionalProperties: true
27857
27966
  }
27858
27967
  },
27859
- "required": ["method", "headers", "queryParams", "body"]
27860
- }`;
27968
+ required: ["method", "headers", "queryParams", "body"]
27969
+ },
27970
+ null,
27971
+ 2
27972
+ );
27861
27973
  var DEFAULT_FUNCTION_EXECUTION_TIMEOUT_MS = 3e4;
27862
27974
  var DEFAULT_FUNCTION_EXECUTION_MEMORY_MB = 512;
27863
27975
 
@@ -28259,6 +28371,9 @@ var agentFiles = (id, name2, version) => ({
28259
28371
  ),
28260
28372
  knowledgeBaseIds: version.agentVersionKnowledgeBasesByAgentIdAndVersionNumber.nodes.map(
28261
28373
  (link) => link.knowledgeBaseId
28374
+ ),
28375
+ builtinToolSets: version.agentVersionBuiltinToolSetsByAgentIdAndVersionNumber.nodes.map(
28376
+ (link) => link.toolSet
28262
28377
  )
28263
28378
  })
28264
28379
  });
@@ -28277,6 +28392,9 @@ var agentVersionFields = `
28277
28392
  agentVersionKnowledgeBasesByAgentIdAndVersionNumber(orderBy: [KNOWLEDGE_BASE_ID_ASC]) {
28278
28393
  nodes { knowledgeBaseId }
28279
28394
  }
28395
+ agentVersionBuiltinToolSetsByAgentIdAndVersionNumber(orderBy: [TOOL_SET_ASC]) {
28396
+ nodes { toolSet }
28397
+ }
28280
28398
  `;
28281
28399
  var agentAdapter = {
28282
28400
  type: "agent",
@@ -28342,13 +28460,21 @@ var agentAdapter = {
28342
28460
  },
28343
28461
  push: async (id, files, message, expectedLatestVersion) => {
28344
28462
  const config = JSON.parse(fileBySuffix(files, ".json"));
28463
+ const unknownToolSets = (config.builtinToolSets ?? []).filter(
28464
+ (name2) => !isBuiltinToolSetName(name2)
28465
+ );
28466
+ if (unknownToolSets.length > 0) {
28467
+ throw new Error(
28468
+ `Unknown builtinToolSets: ${unknownToolSets.join(", ")}. Known: ${Object.keys(BUILTIN_TOOL_SETS).join(", ")}. If the name is new, upgrade the CLI.`
28469
+ );
28470
+ }
28345
28471
  const data = await gqlRequest(
28346
28472
  `mutation CliCreateAgentVersion($expectedLatestVersion: Int,
28347
28473
  $agentId: String!, $message: String!, $systemPrompt: String!,
28348
28474
  $model: String!, $temperature: Float!, $maxTokens: Int!,
28349
28475
  $rateLimitRequestsPerMinute: Int!, $rateLimitTokensPerMinute: Int!,
28350
28476
  $functionIds: [String], $tableSpaceBindings: JSON, $agentIds: [String],
28351
- $knowledgeBaseIds: [String]
28477
+ $knowledgeBaseIds: [String], $builtinToolSets: [String]
28352
28478
  ) {
28353
28479
  createAgentVersionWithAttachments(input: { expectedLatestVersion: $expectedLatestVersion,
28354
28480
  agentId: $agentId, message: $message, systemPrompt: $systemPrompt,
@@ -28356,7 +28482,8 @@ var agentAdapter = {
28356
28482
  rateLimitRequestsPerMinute: $rateLimitRequestsPerMinute,
28357
28483
  rateLimitTokensPerMinute: $rateLimitTokensPerMinute,
28358
28484
  functionIds: $functionIds, tableSpaceBindings: $tableSpaceBindings,
28359
- agentIds: $agentIds, knowledgeBaseIds: $knowledgeBaseIds
28485
+ agentIds: $agentIds, knowledgeBaseIds: $knowledgeBaseIds,
28486
+ builtinToolSets: $builtinToolSets
28360
28487
  }) { result { versionNumber } }
28361
28488
  }`,
28362
28489
  {
@@ -28366,6 +28493,7 @@ var agentAdapter = {
28366
28493
  tableSpaceBindings: config.tableSpaceBindings ?? [],
28367
28494
  agentIds: config.agentIds ?? [],
28368
28495
  knowledgeBaseIds: config.knowledgeBaseIds ?? [],
28496
+ builtinToolSets: config.builtinToolSets ?? null,
28369
28497
  expectedLatestVersion
28370
28498
  }
28371
28499
  );
@@ -28554,86 +28682,6 @@ var runRunner = async (args) => {
28554
28682
  process.exitCode = 1;
28555
28683
  };
28556
28684
 
28557
- // ../common/src/agent.ts
28558
- var agentVersionConfigSchema = external_exports.object({
28559
- systemPrompt: external_exports.string(),
28560
- model: external_exports.string(),
28561
- temperature: external_exports.number(),
28562
- maxTokens: external_exports.number(),
28563
- rateLimitRequestsPerMinute: external_exports.number(),
28564
- rateLimitTokensPerMinute: external_exports.number()
28565
- });
28566
- var defaultAgentVersionConfig = {
28567
- systemPrompt: "You are a helpful assistant.",
28568
- model: "claude-sonnet-4-6",
28569
- temperature: 0.7,
28570
- maxTokens: 4096,
28571
- rateLimitRequestsPerMinute: 20,
28572
- rateLimitTokensPerMinute: 2e5
28573
- };
28574
- var agentTableSpaceAccessModeSchema = external_exports.enum(["read", "read_write"]);
28575
- var agentEditableConfigSchema = agentVersionConfigSchema.extend({
28576
- agentVersionFunctionsByAgentIdAndVersionNumber: external_exports.object({
28577
- nodes: external_exports.array(
28578
- external_exports.object({
28579
- functionId: external_exports.string()
28580
- })
28581
- )
28582
- }),
28583
- agentVersionTableSpacesByAgentIdAndVersionNumber: external_exports.object({
28584
- nodes: external_exports.array(
28585
- external_exports.object({
28586
- tableSpaceId: external_exports.string(),
28587
- accessMode: agentTableSpaceAccessModeSchema
28588
- })
28589
- )
28590
- }),
28591
- agentVersionAgentsByAgentIdAndVersionNumber: external_exports.object({
28592
- nodes: external_exports.array(
28593
- external_exports.object({
28594
- attachedAgentId: external_exports.string()
28595
- })
28596
- )
28597
- }),
28598
- agentVersionKnowledgeBasesByAgentIdAndVersionNumber: external_exports.object({
28599
- nodes: external_exports.array(
28600
- external_exports.object({
28601
- knowledgeBaseId: external_exports.string()
28602
- })
28603
- )
28604
- })
28605
- });
28606
- var agentToolHttpMethodSchema = external_exports.enum([
28607
- "GET",
28608
- "POST",
28609
- "PUT",
28610
- "PATCH",
28611
- "DELETE"
28612
- ]);
28613
- var agentToolRequestSchema = external_exports.object({
28614
- method: agentToolHttpMethodSchema,
28615
- headers: external_exports.record(external_exports.string(), external_exports.string()).prefault({}),
28616
- queryParams: external_exports.record(external_exports.string(), external_exports.union([external_exports.string(), external_exports.number(), external_exports.boolean()])).prefault({}),
28617
- body: external_exports.unknown()
28618
- });
28619
- var agentToolRequestJsonSchemaSchema = external_exports.object({
28620
- type: external_exports.literal("object"),
28621
- properties: external_exports.object({
28622
- method: external_exports.object({ type: external_exports.literal("string") }).loose(),
28623
- headers: external_exports.object({ type: external_exports.literal("object") }).loose(),
28624
- queryParams: external_exports.object({ type: external_exports.literal("object") }).loose(),
28625
- body: external_exports.object({}).loose()
28626
- }).loose(),
28627
- required: external_exports.array(external_exports.string()).refine(
28628
- (arr) => ["method", "headers", "queryParams", "body"].every(
28629
- (key) => arr.includes(key)
28630
- ),
28631
- {
28632
- message: "required array must include: method, headers, queryParams, body"
28633
- }
28634
- )
28635
- }).loose();
28636
-
28637
28685
  // ../common/src/liquidjs/liquidjs.ts
28638
28686
  var import_jmespath = __toESM(require_jmespath(), 1);
28639
28687
 
@@ -35373,6 +35421,9 @@ var ID_PREFIXES = {
35373
35421
  agent: { prefix: "agt", body: 10 },
35374
35422
  agent_conversation: { prefix: "agcv", body: 20 },
35375
35423
  agent_message: { prefix: "agmsg", body: 20 },
35424
+ agent_message_part: { prefix: "amp", body: 16 },
35425
+ agent_tool_invocation: { prefix: "ati", body: 16 },
35426
+ agent_turn: { prefix: "atn", body: 16 },
35376
35427
  architect_chat: {
35377
35428
  prefix: "ac",
35378
35429
  body: 12,
@@ -36680,7 +36731,9 @@ Rules that keep graphs healthy:
36680
36731
  - Keep TYPESCRIPT_CODE nodes small and focused \u2014 split logic across nodes and
36681
36732
  let the graph orchestrate, rather than one big code block.
36682
36733
  - Write TYPESCRIPT_CODE as a module:
36683
- \`export default async function step(state: StepState, ctx, env) { const s1 = await state.get("S1"); return s1.rows; }\`.
36734
+ \`export default async function step(state: StepState, ctx: StepContext, env: Env) { const s1 = await state.get("S1"); return s1.rows; }\`.
36735
+ Annotate every parameter you declare \u2014 module code is checked with
36736
+ noImplicitAny, so an unannotated one is an error.
36684
36737
  \`state.get\` fetches one step's output on first read (cached for that node's execution),
36685
36738
  resolves undefined for a skipped step, and rejects for an id not visible
36686
36739
  from the node. Bare snippets (STATE/OUTPUT globals) are legacy, being retired.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@overaihq/cli",
3
- "version": "0.14.3",
3
+ "version": "0.14.4",
4
4
  "description": "Create, edit, deploy, and run OverAI workspace resources from the command line",
5
5
  "type": "module",
6
6
  "homepage": "https://overai.com",