@xanots/sdk 0.0.1 → 0.0.2

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 (43) hide show
  1. package/dist/.build-fingerprint +1 -0
  2. package/dist/bin.js +4 -4
  3. package/dist/{chunk-3DUAGYGP.js → chunk-55VHDNW5.js} +2 -2
  4. package/dist/{chunk-EMCAWMHC.js → chunk-5L4X5LS6.js} +16 -2
  5. package/dist/{chunk-LH6Z6KFV.js → chunk-5XZ744TS.js} +1 -1
  6. package/dist/{chunk-MZUI3JNX.js → chunk-F6JCFRKO.js} +2 -2
  7. package/dist/{chunk-RVB7ITKN.js → chunk-LU7TRWMC.js} +2 -2
  8. package/dist/{chunk-TRU5OHQ5.js → chunk-MUDLJG2O.js} +32 -20
  9. package/dist/{chunk-WKP4D5MO.js → chunk-ODNMVJ6H.js} +2 -2
  10. package/dist/{chunk-26CNBZE2.js → chunk-P3TTMWUP.js} +13 -4
  11. package/dist/{chunk-YDZYMZBE.js → chunk-TQUO2OXY.js} +4 -4
  12. package/dist/{chunk-FJ6ZS5KB.js → chunk-U3G2UW65.js} +177 -60
  13. package/dist/{chunk-YGPIY3WT.js → chunk-UVLVQWWF.js} +13 -13
  14. package/dist/{chunk-33ND6LKO.js → chunk-XLD4BUTF.js} +2 -2
  15. package/dist/{chunk-NOO35BQ2.js → chunk-ZPEY5WE4.js} +2 -2
  16. package/dist/cli.js +4 -4
  17. package/dist/{codegen-command-OOKK6AZK.js → codegen-command-RY2GWDLX.js} +11 -11
  18. package/dist/codegen.js +2 -2
  19. package/dist/{deploy-command-4EQ7XX5G.js → deploy-command-DSISLUW5.js} +8 -8
  20. package/dist/{env-target-IFJ5QDHC.js → env-target-7C2GKBCY.js} +2 -2
  21. package/dist/{ephemeral-command-3X3I4ULC.js → ephemeral-command-5K573ZSG.js} +2 -2
  22. package/dist/index.d.ts +106 -84
  23. package/dist/index.js +6 -6
  24. package/dist/{init-command-R6H7ZXW5.js → init-command-4AWL6CLW.js} +6 -6
  25. package/dist/internal.d.ts +2 -2
  26. package/dist/internal.js +28 -10
  27. package/dist/{live-diff-Y3AKETHE.js → live-diff-RXSJCVJ7.js} +2 -2
  28. package/dist/{lock-commands-XTR2YKLY.js → lock-commands-7Q5LNZKL.js} +5 -5
  29. package/dist/{loop-OM3P2Z6O.js → loop-SAWAOUFO.js} +2 -2
  30. package/dist/node.d.ts +2 -2
  31. package/dist/node.js +7 -7
  32. package/dist/{release-command-VV5UVZKL.js → release-command-QXLRJMY7.js} +10 -10
  33. package/dist/{store-BQ97nKIF.d.ts → store-g45zwB33.d.ts} +91 -75
  34. package/dist/{test-command-TSPBQHBM.js → test-command-BOLIU57E.js} +2 -2
  35. package/dist/{validate-command-4ERHJSCO.js → validate-command-SYCFEYZN.js} +7 -7
  36. package/dist/{workspace-command-OF23DPNI.js → workspace-command-TOB2AJ6X.js} +11 -11
  37. package/llms/statements-calls.md +4 -4
  38. package/llms/statements-catalog.md +20 -20
  39. package/llms/statements-data.md +1 -1
  40. package/llms-full.txt +26 -26
  41. package/llms.txt +1 -1
  42. package/manifest.json +57 -84
  43. package/package.json +4 -1
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { e1 as Condition, e2 as FilterResults, e3 as ElementResult, e4 as SameArrayResult, e5 as GroupedArrayResult, e6 as AgentResultOf, aZ as AddonDef, e7 as OutputPath, cO as TableDef, e8 as QualifiedCol, br as DbEval, cN as SortDirective, bt as DbWhere, e9 as OutputRoot, bG as InferRow, ea as AggregateRow, eb as EvalFields, ec as OutputAuthored, c0 as MicroserviceDef, ae as generated, F as FunctionDef, cd as QueryHandle } from './store-BQ97nKIF.js';
2
- export { a_ as AddonXdo, A as AdoptChange, a as AdoptResult, a$ as AgentDef, b0 as AgentHandle, b1 as AgentOutput, b2 as AgentSettingsXdo, b3 as AgentXdo, b4 as AmbientBindings, b5 as AnthropicLlm, b6 as ApiGroupDef, b7 as ApiGroupXdo, b8 as AuthRef, b9 as Authored, B as Bundle, b as BundlePayload, c as BundleType, ba as Capturable, aW as CaptureRecord, aU as CaptureValue, bb as ChannelConversationDef, bc as ChannelDeliveryDef, bd as ChannelDeliveryGuarantee, be as ChannelPublishDef, bf as ChannelPublishWho, bg as ChannelRateLimitDef, bh as ColumnDef, bi as Comparison, bj as ContainerEnv, bk as ContainerPort, bl as ContainerResources, bm as ContainerVolume, bn as CorsConfig, bo as CorsMode, bp as DatabaseActions, bq as DatabaseInputs, bs as DbEvalFilter, bu as ErrorInputs, bv as ExceptionPolicy, bw as FieldAccessor, bx as FieldRule, by as GoogleGenAiLlm, bz as HistoryInput, bA as HttpVerb, bB as IndexDef, bC as IndexLang, bD as IndexOp, bE as IndexType, bF as IndexXdo, bH as InputDescriptor, bI as InputOptions, bJ as IteratingBindings, bK as LAMBDA_BINDINGS, bL as LAMBDA_CODE_FILTERS, bM as LAMBDA_GLOBALS, bN as LAMBDA_MODULE_GLOBALS, bO as LAMBDA_STATEMENTS, aX as LambdaBindings, bP as LambdaBody, aT as LambdaOptions, aV as LambdaSurface, bQ as LlmPrompt, bR as LlmProvider, bS as LlmSettings, f as LockEntry, g as LockExportContext, h as LockFile, M as Manifest, i as ManifestField, j as ManifestKind, k as ManifestStatement, bT as ManifestValue, bU as McpPathOptions, bV as McpServerDef, bW as McpServerHandle, bX as McpServerXdo, l as MergeResult, bY as MessageDeliverTo, bZ as MicroserviceChart, b_ as MicroserviceConfig, b$ as MicroserviceContainer, c1 as MicroserviceDeployment, c2 as MicroserviceIngress, c3 as MicroserviceRegistryAuth, c4 as MicroserviceVolume, c5 as MicroserviceXdo, c6 as MiddlewareAttach, c7 as MiddlewareAttachEntry, c8 as MiddlewareDef, c9 as MiddlewareXdo, O as ObjectKind, ca as OpenAiLlm, m as PayloadArrayKey, cb as QueryDef, cc as QueryFilterName, ce as QueryResponseType, cf as QueryXdo, cg as RealtimeActions, ch as RealtimeChannelActions, ci as RealtimeChannelDef, cj as RealtimeChannelHandle, ck as RealtimeChannelRef, cl as RealtimeChannelTriggerInputs, cm as RealtimeChannelXdo, cn as RealtimeClient, co as RealtimeInputs, cp as RealtimeMessageDef, cq as RealtimeMessageXdo, cr as RealtimeServerActions, cs as RealtimeServerDef, ct as RealtimeServerHandle, cu as RealtimeServerRef, cv as RealtimeServerTriggerInputs, cw as RealtimeServerXdo, cx as RealtimeUrlOptions, R as RenameResult, cy as ResultStrategy, cz as Route, cA as RowOf, cB as ScheduleDef, cC as SchemaCols, cD as SchemaDef, cE as SearchComparison, cF as SearchGroup, cG as SearchNode, cH as SearchOp, cI as SearchParamValue, cJ as SeedFileSource, cK as SeedRow, cL as SeedSource, cM as SortDir, S as StatementSpec, cP as TableXdo, cQ as TaskDef, cR as TaskXdo, cS as ToolDef, cT as ToolXdo, cU as ToolsetBaseDef, cV as ToolsetBaseXdo, cW as ToolsetInputs, cX as ToolsetToolEntry, cY as ToolsetToolRef, cZ as TriggerDef, c_ as TriggerObjType, c$ as TriggerXdo, d0 as ViewDef, d1 as ViewXdo, d2 as WorkflowTestDef, d3 as WorkflowTestXdo, d4 as WorkspaceActions, d5 as WorkspaceConfigDef, d6 as WorkspaceConfigXdo, d7 as WorkspaceHistoryDef, d8 as WorkspaceHistoryXdo, d9 as WorkspaceInputs, da as WorkspaceMiddlewareDef, db as WorkspaceMiddlewareXdo, aY as Xano, dc as XanoFreeLlm, dd as addon, de as agent, df as agentTrigger, dg as and, dh as apiGroup, di as assertLambdaBody, dj as bitwiseAnd, dk as bitwiseOr, dl as bitwiseXor, dm as cmp, dn as defineFunction, dp as emit, dq as emitBundle, dr as errorTrigger, ds as expr, dt as fl, du as input, ed as lam, dv as mathAdd, dw as mathDiv, dx as mathMul, dy as mathSub, dz as mcpServer, dA as mcpServerTrigger, dB as microservice, dC as middleware, dD as mixed, dE as objectEntries, dF as objectKeys, dG as objectValues, dH as or, dI as query, dJ as realtimeChannel, dK as realtimeChannelTrigger, dL as realtimeMessage, dM as realtimeServer, dN as realtimeServerTrigger, dO as realtimeTrigger, dP as resetLockOverrides, dQ as seedFile, dR as seedLockOverrides, dS as table, dT as tableTrigger, dU as task, dV as textAppend, dW as textPrepend, dX as toSearchParams, dY as tool, dZ as workflowTest, d_ as workspace, d$ as workspaceConfig, e0 as workspaceTrigger } from './store-BQ97nKIF.js';
1
+ import { e1 as Condition, e2 as FilterResults, e3 as ElementResult, e4 as SameArrayResult, e5 as GroupedArrayResult, e6 as AgentResultOf, aZ as AddonDef, e7 as OutputPath, cO as TableDef, e8 as QualifiedCol, br as DbEval, cN as SortDirective, bt as DbWhere, e9 as OutputRoot, bG as InferRow, ea as AggregateRow, eb as EvalFields, ec as OutputAuthored, c0 as MicroserviceDef, ae as generated, F as FunctionDef, cd as QueryHandle } from './store-g45zwB33.js';
2
+ export { a_ as AddonXdo, A as AdoptChange, a as AdoptResult, a$ as AgentDef, b0 as AgentHandle, b1 as AgentOutput, b2 as AgentSettingsXdo, b3 as AgentXdo, b4 as AmbientBindings, b5 as AnthropicLlm, b6 as ApiGroupDef, b7 as ApiGroupXdo, b8 as AuthRef, b9 as Authored, B as Bundle, b as BundlePayload, c as BundleType, ba as Capturable, aW as CaptureRecord, aU as CaptureValue, bb as ChannelConversationDef, bc as ChannelDeliveryDef, bd as ChannelDeliveryGuarantee, be as ChannelPublishDef, bf as ChannelPublishWho, bg as ChannelRateLimitDef, bh as ColumnDef, bi as Comparison, bj as ContainerEnv, bk as ContainerPort, bl as ContainerResources, bm as ContainerVolume, bn as CorsConfig, bo as CorsMode, bp as DatabaseActions, bq as DatabaseInputs, bs as DbEvalFilter, bu as ErrorInputs, bv as ExceptionPolicy, bw as FieldAccessor, bx as FieldRule, by as GoogleGenAiLlm, bz as HistoryInput, bA as HttpVerb, bB as IndexDef, bC as IndexLang, bD as IndexOp, bE as IndexType, bF as IndexXdo, bH as InputDescriptor, bI as InputOptions, bJ as IteratingBindings, bK as LAMBDA_BINDINGS, bL as LAMBDA_CODE_FILTERS, bM as LAMBDA_GLOBALS, bN as LAMBDA_MODULE_GLOBALS, bO as LAMBDA_STATEMENTS, aX as LambdaBindings, bP as LambdaBody, aT as LambdaOptions, aV as LambdaSurface, bQ as LlmPrompt, bR as LlmProvider, bS as LlmSettings, f as LockEntry, g as LockExportContext, h as LockFile, M as Manifest, i as ManifestField, j as ManifestKind, k as ManifestStatement, bT as ManifestValue, bU as McpPathOptions, bV as McpServerDef, bW as McpServerHandle, bX as McpServerXdo, l as MergeResult, bY as MessageDeliverTo, bZ as MicroserviceChart, b_ as MicroserviceConfig, b$ as MicroserviceContainer, c1 as MicroserviceDeployment, c2 as MicroserviceIngress, c3 as MicroserviceRegistryAuth, c4 as MicroserviceVolume, c5 as MicroserviceXdo, c6 as MiddlewareAttach, c7 as MiddlewareAttachEntry, c8 as MiddlewareDef, c9 as MiddlewareXdo, O as ObjectKind, ca as OpenAiLlm, m as PayloadArrayKey, cb as QueryDef, cc as QueryFilterName, ce as QueryResponseType, cf as QueryXdo, cg as RealtimeActions, ch as RealtimeChannelActions, ci as RealtimeChannelDef, cj as RealtimeChannelHandle, ck as RealtimeChannelRef, cl as RealtimeChannelTriggerInputs, cm as RealtimeChannelXdo, cn as RealtimeClient, co as RealtimeInputs, cp as RealtimeMessageDef, cq as RealtimeMessageXdo, cr as RealtimeServerActions, cs as RealtimeServerDef, ct as RealtimeServerHandle, cu as RealtimeServerRef, cv as RealtimeServerTriggerInputs, cw as RealtimeServerXdo, cx as RealtimeUrlOptions, R as RenameResult, cy as ResultStrategy, cz as Route, cA as RowOf, cB as ScheduleDef, cC as SchemaCols, cD as SchemaDef, cE as SearchComparison, cF as SearchGroup, cG as SearchNode, cH as SearchOp, cI as SearchParamValue, cJ as SeedFileSource, cK as SeedRow, cL as SeedSource, cM as SortDir, S as StatementSpec, cP as TableXdo, cQ as TaskDef, cR as TaskXdo, cS as ToolDef, cT as ToolXdo, cU as ToolsetBaseDef, cV as ToolsetBaseXdo, cW as ToolsetInputs, cX as ToolsetToolEntry, cY as ToolsetToolRef, cZ as TriggerDef, c_ as TriggerObjType, c$ as TriggerXdo, d0 as ViewDef, d1 as ViewXdo, d2 as WorkflowTestDef, d3 as WorkflowTestXdo, d4 as WorkspaceActions, d5 as WorkspaceConfigDef, d6 as WorkspaceConfigXdo, d7 as WorkspaceHistoryDef, d8 as WorkspaceHistoryXdo, d9 as WorkspaceInputs, da as WorkspaceMiddlewareDef, db as WorkspaceMiddlewareXdo, aY as Xano, dc as XanoFreeLlm, dd as addon, de as agent, df as agentTrigger, dg as and, dh as apiGroup, di as assertLambdaBody, dj as bitwiseAnd, dk as bitwiseOr, dl as bitwiseXor, dm as cmp, dn as defineFunction, dp as emit, dq as emitBundle, dr as errorTrigger, ds as expr, dt as fl, du as input, ed as lam, dv as mathAdd, dw as mathDiv, dx as mathMul, dy as mathSub, dz as mcpServer, dA as mcpServerTrigger, dB as microservice, dC as middleware, dD as mixed, dE as objectEntries, dF as objectKeys, dG as objectValues, dH as or, dI as query, dJ as realtimeChannel, dK as realtimeChannelTrigger, dL as realtimeMessage, dM as realtimeServer, dN as realtimeServerTrigger, dO as realtimeTrigger, dP as resetLockOverrides, dQ as seedFile, dR as seedLockOverrides, dS as table, dT as tableTrigger, dU as task, dV as textAppend, dW as textPrepend, dX as toSearchParams, dY as tool, dZ as workflowTest, d_ as workspace, d$ as workspaceConfig, e0 as workspaceTrigger } from './store-g45zwB33.js';
3
3
  import { a2 as StatementAnnotations, a1 as Statement, y as FromFieldMap, w as FilterXdo, V as Value, S as ObjValue, aH as Prettify, x as FilteredValue, X as RefValue, aM as AsShapeBrand, aj as XanoFileRef, a4 as StatementOptions, T as ObjectRef, P as ObjInput, F as FunctionXdo } from './response-CVAE2kMj.js';
4
4
  export { B as BrandOpts, c as BrandValue, C as CacheXdo, f as CaughtField, h as ConditionalContext, j as ConditionalElifContext, D as DecimalMethod, E as EmailMethod, k as ExprGroup, l as ExprNode, m as ExprOperand, n as ExprStatement, o as FieldAccess, p as FieldDescriptor, q as FieldMap, s as FieldOpts, u as FieldStyleType, v as FieldXdo, H as HistoryXdo, I as InputXdo, z as IntMethod, L as ListBoundsXdo, M as MethodArg, A as MethodOpts, G as MethodSpec, J as MethodXdo, K as MockEntry, N as MockMap, O as MockXdo, Q as ObjMember, U as PasswordMethod, W as PersistedFunctionRow, Y as RegexValue, Z as ResponseDef, _ as ResultItemXdo, $ as RowFromFieldMap, a0 as StackItemXdo, a3 as StatementInputXdo, a5 as TAGS, a6 as TEST_EXPECT_TYPES, a7 as TableRefMethod, a8 as Tag, a9 as TaggedValue, aa as TestDef, ab as TestExpect, ac as TestExpectType, ad as TestXdo, ae as TextFormat, af as TextMethod, ag as TypeBrand, ah as ValueOf, ai as VectorMethod, ak as XanoGeoPosition, al as XanoGeoValue, am as annotate, an as auth, ao as c, ap as caught, aq as col, ar as env, as as expect, at as f, au as filter, av as inp, aw as obj, ax as out, ay as ref, az as resp, aA as setting, aB as statements, aC as sys, aD as test, aE as toolset, aF as withFilters } from './response-CVAE2kMj.js';
5
5
 
@@ -977,8 +977,15 @@ declare function aiAgentRun<const As extends string = "", const A extends Object
977
977
  }): Statement & AsShapeBrand<As, ApplyFilters<AgentRunResult<R>, Fs>>;
978
978
  interface CloudJobArgs extends StatementOptions {
979
979
  as?: string;
980
- image?: Value;
981
- command?: Value;
980
+ /**
981
+ * Container image to run. REQUIRED — the engine validates the parameter before
982
+ * the job launches and answers `400 ERROR_CODE_INPUT_ERROR "Missing param:
983
+ * image"` without it. Measured on a live ephemeral by
984
+ * `scripts/probe-special-required.ts`.
985
+ */
986
+ image: Value;
987
+ /** Command to run in the container. REQUIRED, the same way `image` is. */
988
+ command: Value;
982
989
  args?: Value;
983
990
  secret?: Value;
984
991
  template?: Value;
@@ -1109,8 +1116,17 @@ declare function arrayMap(a: ArrayMapArgs): Statement;
1109
1116
  interface ArrayUnionArgs extends StatementOptions {
1110
1117
  /** The base array → stored `left`. */
1111
1118
  source: Value;
1112
- /** The array to union in → stored `right`. */
1113
- with?: Value;
1119
+ /**
1120
+ * The array to union in → stored `right`.
1121
+ *
1122
+ * REQUIRED. It reads as optional — a union with nothing looks like a dedupe of
1123
+ * `source` — but the engine has no absent state for it: `right` declares
1124
+ * `tag?=input` with an undefaulted `value`, so an omitted block resolves as an
1125
+ * input named `""` and the request dies with
1126
+ * `500 ERROR_FATAL "Unable to locate input: "`. Measured on a live ephemeral
1127
+ * by `scripts/probe-special-required.ts`.
1128
+ */
1129
+ with: Value;
1114
1130
  as?: string;
1115
1131
  /** Optional per-item transform → stored `transform_value`. */
1116
1132
  transform?: Value;
@@ -2652,8 +2668,8 @@ interface ApiRequestResult {
2652
2668
  interface ApiRequestArgs extends HttpRequestFields, StatementAnnotations {
2653
2669
  /** Capture the response (`{request, response}`) into this stack variable. */
2654
2670
  as?: string;
2655
- /** Request URL. */
2656
- url?: string | Value;
2671
+ /** Request URL. Required: the engine declares it with no default, and no stored request omits it. */
2672
+ url: string | Value;
2657
2673
  /** Per-statement description (frontend "Settings" tab). */
2658
2674
  description?: string;
2659
2675
  /** Output-envelope shaping — result-variable filter chain / field mapping (frontend "Output" tab). */
@@ -2675,32 +2691,38 @@ interface ApiRequestArgs extends HttpRequestFields, StatementAnnotations {
2675
2691
  * plain JSON constant. For a body with any structure, wrap the whole thing in
2676
2692
  * `obj({...})`, which encodes any depth as a single `const:expr2`.
2677
2693
  */
2678
- declare function apiRequest<const As extends string = "", const Fs extends readonly FilterXdo[] = readonly []>(a?: ApiRequestArgs & {
2694
+ declare function apiRequest<const As extends string = "", const Fs extends readonly FilterXdo[] = readonly []>(a: ApiRequestArgs & {
2679
2695
  as?: As;
2680
2696
  asFilters?: Fs;
2681
2697
  }): Statement & AsShapeBrand<As, ApplyFilters<ApiRequestResult, Fs>>;
2682
2698
  interface StreamFromRequestArgs extends HttpRequestFields, StatementAnnotations {
2683
2699
  /** Capture the streaming response into this stack variable. */
2684
2700
  as?: string;
2685
- /** Request URL. */
2686
- url?: string | Value;
2701
+ /** Request URL. Required: shares `api.request`'s declaration, which has no default. */
2702
+ url: string | Value;
2687
2703
  }
2688
2704
  /**
2689
2705
  * `stream.from_request` — stream an external HTTP request (`mvp:streaming_api_request`).
2690
2706
  * Same typed field surface as {@link apiRequest}; delegates to the generated factory.
2691
2707
  */
2692
- declare function streamFromRequest(a?: StreamFromRequestArgs): Statement;
2693
- interface WebflowRequestArgs extends HttpRequestFields, StatementAnnotations {
2708
+ declare function streamFromRequest(a: StreamFromRequestArgs): Statement;
2709
+ /**
2710
+ * `headers` is deliberately absent. The engine builds its own header list for
2711
+ * this statement — the API version and the connection's bearer token — and
2712
+ * never reads an authored one, so offering the field would let an author send
2713
+ * an auth header into a void that round-trips perfectly. See `UNREAD_INPUT`.
2714
+ */
2715
+ interface WebflowRequestArgs extends Omit<HttpRequestFields, "headers">, StatementAnnotations {
2694
2716
  /** Capture the response into this stack variable. */
2695
2717
  as?: string;
2696
- /** Request path (relative to the Webflow API host). */
2697
- path?: string | Value;
2718
+ /** Request path (relative to the Webflow API host). Required: the engine rejects an empty one. */
2719
+ path: string | Value;
2698
2720
  }
2699
2721
  /**
2700
2722
  * `webflow.request` — call the Webflow API (`mvp:connect_webflow_api_request`).
2701
2723
  * Like {@link apiRequest} but addressed by `path` (the host is engine-supplied).
2702
2724
  */
2703
- declare function webflowRequest<const As extends string = "", const Fs extends readonly FilterXdo[] = readonly []>(a?: WebflowRequestArgs & {
2725
+ declare function webflowRequest<const As extends string = "", const Fs extends readonly FilterXdo[] = readonly []>(a: WebflowRequestArgs & {
2704
2726
  as?: As;
2705
2727
  asFilters?: Fs;
2706
2728
  }): Statement & AsShapeBrand<As, ApplyFilters<ApiRequestResult, Fs>>;
@@ -3037,7 +3059,7 @@ type LambdaArgs = Parameters<typeof generated.lambda>[0] & {
3037
3059
  * field — when the right one is to move the body into `lam.fn`. Naming it here
3038
3060
  * costs nothing at runtime and puts the answer in the error.
3039
3061
  */
3040
- declare function lambda(a?: LambdaArgs): Statement;
3062
+ declare function lambda(a: LambdaArgs): Statement;
3041
3063
 
3042
3064
  declare const s: {
3043
3065
  readonly precondition: typeof precondition;
@@ -3181,9 +3203,9 @@ declare const s: {
3181
3203
  };
3182
3204
  readonly external: {
3183
3205
  mcp: {
3184
- server_details: (a?: {
3206
+ server_details: (a: {
3185
3207
  as?: string;
3186
- url?: Value;
3208
+ url: Value;
3187
3209
  bearer_token?: Value;
3188
3210
  connection_type?: "sse" | "stream" | Value;
3189
3211
  disabled?: boolean;
@@ -3191,21 +3213,21 @@ declare const s: {
3191
3213
  asFilters?: FilterXdo[];
3192
3214
  }) => Statement;
3193
3215
  tool: {
3194
- list: (a?: {
3216
+ list: (a: {
3195
3217
  as?: string;
3196
- url?: Value;
3218
+ url: Value;
3197
3219
  bearer_token?: Value;
3198
3220
  connection_type?: "sse" | "stream" | Value;
3199
3221
  disabled?: boolean;
3200
3222
  description?: string;
3201
3223
  asFilters?: FilterXdo[];
3202
3224
  }) => Statement;
3203
- run: (a?: {
3225
+ run: (a: {
3204
3226
  as?: string;
3205
- url?: Value;
3227
+ url: Value;
3206
3228
  bearer_token?: Value;
3207
3229
  connection_type?: "sse" | "stream" | Value;
3208
- tool?: Value;
3230
+ tool: Value;
3209
3231
  args?: Value;
3210
3232
  disabled?: boolean;
3211
3233
  description?: string;
@@ -3239,27 +3261,27 @@ declare const s: {
3239
3261
  document: (a: {
3240
3262
  as?: string;
3241
3263
  auth_type?: "IAM" | "master" | Value;
3242
- key_id?: Value;
3243
- access_key?: Value;
3244
- region?: Value;
3264
+ key_id: Value;
3265
+ access_key: Value;
3266
+ region: Value;
3245
3267
  base_url: Value;
3246
3268
  method?: "GET" | "POST" | "PUT" | "DELETE" | Value;
3247
- index?: Value;
3248
- doc_id?: Value;
3249
- doc?: Value;
3269
+ index: Value;
3270
+ doc_id: Value;
3271
+ doc: Value;
3250
3272
  disabled?: boolean;
3251
3273
  description?: string;
3252
3274
  asFilters?: FilterXdo[];
3253
3275
  }) => Statement;
3254
- query: (a?: {
3276
+ query: (a: {
3255
3277
  as?: string;
3256
3278
  auth_type?: "IAM" | "master" | Value;
3257
- key_id?: Value;
3258
- access_key?: Value;
3259
- region?: Value;
3260
- base_url?: Value;
3261
- index?: Value;
3262
- payload?: Value;
3279
+ key_id: Value;
3280
+ access_key: Value;
3281
+ region: Value;
3282
+ base_url: Value;
3283
+ index: Value;
3284
+ payload: Value;
3263
3285
  size?: Value;
3264
3286
  from?: Value;
3265
3287
  included_fields?: Value;
@@ -3270,15 +3292,15 @@ declare const s: {
3270
3292
  description?: string;
3271
3293
  asFilters?: FilterXdo[];
3272
3294
  }) => Statement;
3273
- request: (a?: {
3295
+ request: (a: {
3274
3296
  as?: string;
3275
3297
  auth_type?: "IAM" | "master" | Value;
3276
- key_id?: Value;
3277
- access_key?: Value;
3278
- region?: Value;
3298
+ key_id: Value;
3299
+ access_key: Value;
3300
+ region: Value;
3279
3301
  method?: "GET" | "POST" | "PUT" | "DELETE" | "HEAD" | "OPTIONS" | "PATCH" | Value;
3280
- url?: Value;
3281
- query?: Value;
3302
+ url: Value;
3303
+ query: Value;
3282
3304
  disabled?: boolean;
3283
3305
  description?: string;
3284
3306
  asFilters?: FilterXdo[];
@@ -3441,14 +3463,14 @@ declare const s: {
3441
3463
  description?: string;
3442
3464
  asFilters?: FilterXdo[];
3443
3465
  }) => Statement;
3444
- query: (a?: {
3466
+ query: (a: {
3445
3467
  as?: string;
3446
3468
  auth_type?: "Basic" | "Bearer" | "API Key" | Value;
3447
- key_id?: Value;
3448
- access_key?: Value;
3449
- base_url?: Value;
3450
- index?: Value;
3451
- payload?: Value;
3469
+ key_id: Value;
3470
+ access_key: Value;
3471
+ base_url: Value;
3472
+ index: Value;
3473
+ payload: Value;
3452
3474
  size?: Value;
3453
3475
  from?: Value;
3454
3476
  included_fields?: Value;
@@ -3459,14 +3481,14 @@ declare const s: {
3459
3481
  description?: string;
3460
3482
  asFilters?: FilterXdo[];
3461
3483
  }) => Statement;
3462
- request: (a?: {
3484
+ request: (a: {
3463
3485
  as?: string;
3464
3486
  auth_type?: "Basic" | "Bearer" | "API Key" | Value;
3465
- key_id?: Value;
3466
- access_key?: Value;
3487
+ key_id: Value;
3488
+ access_key: Value;
3467
3489
  method?: "POST" | "GET" | "PUT" | "DELETE" | "PATCH" | Value;
3468
- url?: Value;
3469
- payload?: Value;
3490
+ url: Value;
3491
+ payload: Value;
3470
3492
  disabled?: boolean;
3471
3493
  description?: string;
3472
3494
  asFilters?: FilterXdo[];
@@ -3759,10 +3781,10 @@ declare const s: {
3759
3781
  readonly security: {
3760
3782
  readonly create_auth_token: typeof createAuthToken;
3761
3783
  readonly create_guid: typeof createGuid;
3762
- readonly check_password: (a?: {
3784
+ readonly check_password: (a: {
3763
3785
  as?: string;
3764
- text_password?: Value;
3765
- hash_password?: Value;
3786
+ text_password: Value;
3787
+ hash_password: Value;
3766
3788
  disabled?: boolean;
3767
3789
  description?: string;
3768
3790
  asFilters?: FilterXdo[];
@@ -3810,30 +3832,30 @@ declare const s: {
3810
3832
  description?: string;
3811
3833
  asFilters?: FilterXdo[];
3812
3834
  }) => Statement;
3813
- readonly decrypt: (a?: {
3835
+ readonly decrypt: (a: {
3814
3836
  as?: string;
3815
- data?: Value;
3837
+ data: Value;
3816
3838
  algorithm?: "aes-128-cbc" | "aes-192-cbc" | "aes-256-cbc" | "aes-128-gcm" | "aes-192-gcm" | "aes-256-gcm" | Value;
3817
- key?: Value;
3818
- iv?: Value;
3839
+ key: Value;
3840
+ iv: Value;
3819
3841
  disabled?: boolean;
3820
3842
  description?: string;
3821
3843
  asFilters?: FilterXdo[];
3822
3844
  }) => Statement;
3823
- readonly encrypt: (a?: {
3845
+ readonly encrypt: (a: {
3824
3846
  as?: string;
3825
- data?: Value;
3847
+ data: Value;
3826
3848
  algorithm?: "aes-128-cbc" | "aes-192-cbc" | "aes-256-cbc" | "aes-128-gcm" | "aes-192-gcm" | "aes-256-gcm" | Value;
3827
- key?: Value;
3828
- iv?: Value;
3849
+ key: Value;
3850
+ iv: Value;
3829
3851
  disabled?: boolean;
3830
3852
  description?: string;
3831
3853
  asFilters?: FilterXdo[];
3832
3854
  }) => Statement;
3833
- readonly jwe_decode: (a?: {
3855
+ readonly jwe_decode: (a: {
3834
3856
  as?: string;
3835
- token?: Value;
3836
- key?: Value;
3857
+ token: Value;
3858
+ key: Value;
3837
3859
  check_claims?: Value;
3838
3860
  key_algorithm?: "A128KW" | "A192KW" | "A256KW" | "A128GCMKW" | "A192GCMKW" | "A256GCMKW" | "ECDH-ES+A128KW" | "ECDH-ES+A192KW" | "ECDH-ES+A256KW" | Value;
3839
3861
  content_algorithm?: "A128GCM" | "A192GCM" | "A256GCM" | "A128CBC-HS256" | "A192CBC-HS384" | "A256CBC-HS512" | Value;
@@ -3842,11 +3864,11 @@ declare const s: {
3842
3864
  description?: string;
3843
3865
  asFilters?: FilterXdo[];
3844
3866
  }) => Statement;
3845
- readonly jwe_encode: (a?: {
3867
+ readonly jwe_encode: (a: {
3846
3868
  as?: string;
3847
3869
  headers?: Value;
3848
3870
  claims?: Value;
3849
- key?: Value;
3871
+ key: Value;
3850
3872
  key_algorithm?: "A128KW" | "A192KW" | "A256KW" | "A128GCMKW" | "A192GCMKW" | "A256GCMKW" | "ECDH-ES+A128KW" | "ECDH-ES+A192KW" | "ECDH-ES+A256KW" | Value;
3851
3873
  content_algorithm?: "A128GCM" | "A192GCM" | "A256GCM" | "A128CBC-HS256" | "A192CBC-HS384" | "A256CBC-HS512" | Value;
3852
3874
  ttl?: Value;
@@ -3854,10 +3876,10 @@ declare const s: {
3854
3876
  description?: string;
3855
3877
  asFilters?: FilterXdo[];
3856
3878
  }) => Statement;
3857
- readonly jws_decode: (a?: {
3879
+ readonly jws_decode: (a: {
3858
3880
  as?: string;
3859
- token?: Value;
3860
- key?: Value;
3881
+ token: Value;
3882
+ key: Value;
3861
3883
  check_claims?: Value;
3862
3884
  signature_algorithm?: "PS256" | "PS384" | "PS512" | "RS256" | "RS384" | "RS512" | "HS256" | "HS384" | "HS512" | "ES256" | "ES384" | "ES512" | Value;
3863
3885
  timeDrift?: Value;
@@ -3865,11 +3887,11 @@ declare const s: {
3865
3887
  description?: string;
3866
3888
  asFilters?: FilterXdo[];
3867
3889
  }) => Statement;
3868
- readonly jws_encode: (a?: {
3890
+ readonly jws_encode: (a: {
3869
3891
  as?: string;
3870
3892
  headers?: Value;
3871
3893
  claims?: Value;
3872
- key?: Value;
3894
+ key: Value;
3873
3895
  signature_algorithm?: "PS256" | "PS384" | "PS512" | "RS256" | "RS384" | "RS512" | "HS256" | "HS384" | "HS512" | "ES256" | "ES384" | "ES512" | Value;
3874
3896
  ttl?: Value;
3875
3897
  disabled?: boolean;
@@ -3898,12 +3920,12 @@ declare const s: {
3898
3920
  readonly post_process: typeof postProcess;
3899
3921
  readonly ip_lookup: typeof ipLookup;
3900
3922
  readonly set_header: typeof setHeader;
3901
- readonly geo_distance: (a?: {
3923
+ readonly geo_distance: (a: {
3902
3924
  as?: string;
3903
- latitude_1?: Value;
3904
- longitude_1?: Value;
3905
- latitude_2?: Value;
3906
- longitude_2?: Value;
3925
+ latitude_1: Value;
3926
+ longitude_1: Value;
3927
+ latitude_2: Value;
3928
+ longitude_2: Value;
3907
3929
  disabled?: boolean;
3908
3930
  description?: string;
3909
3931
  asFilters?: FilterXdo[];
@@ -3928,8 +3950,8 @@ declare const s: {
3928
3950
  }) => Statement;
3929
3951
  readonly send_email: (a?: {
3930
3952
  as?: string;
3931
- service_provider?: "resend" | "xano" | Value;
3932
3953
  api_key?: Value;
3954
+ service_provider?: "resend" | "xano" | Value;
3933
3955
  subject?: Value;
3934
3956
  message?: Value;
3935
3957
  to?: Value;
@@ -4000,8 +4022,8 @@ declare const s: {
4000
4022
  asFilters?: FilterXdo[];
4001
4023
  }) => Statement;
4002
4024
  readonly datadog: {
4003
- log: (a?: {
4004
- message?: Value;
4025
+ log: (a: {
4026
+ message: Value;
4005
4027
  status?: "debug" | "info" | "notice" | "warn" | "error" | "critical" | "alert" | "emergency" | Value;
4006
4028
  attributes?: Value;
4007
4029
  service?: Value;
@@ -4021,7 +4043,7 @@ declare const s: {
4021
4043
  description?: string;
4022
4044
  }) => Statement;
4023
4045
  metric: (a: {
4024
- metric?: Value;
4046
+ metric: Value;
4025
4047
  value: Value;
4026
4048
  type?: "count" | "gauge" | "rate" | "histogram" | "distribution" | Value;
4027
4049
  tags?: Value;
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@ import {
5
5
  import {
6
6
  TEST_EXPECT_TYPES,
7
7
  expect
8
- } from "./chunk-MZUI3JNX.js";
8
+ } from "./chunk-F6JCFRKO.js";
9
9
  import {
10
10
  addon,
11
11
  agent,
@@ -17,7 +17,7 @@ import {
17
17
  task,
18
18
  tool,
19
19
  workflowTest
20
- } from "./chunk-YDZYMZBE.js";
20
+ } from "./chunk-TQUO2OXY.js";
21
21
  import {
22
22
  actionCall,
23
23
  actionPackageCall,
@@ -100,11 +100,11 @@ import {
100
100
  workflowTestCall,
101
101
  workspaceConfig,
102
102
  workspaceTrigger
103
- } from "./chunk-FJ6ZS5KB.js";
103
+ } from "./chunk-U3G2UW65.js";
104
104
  import {
105
105
  Xano,
106
106
  workspace
107
- } from "./chunk-3DUAGYGP.js";
107
+ } from "./chunk-55VHDNW5.js";
108
108
  import {
109
109
  LAMBDA_BINDINGS,
110
110
  LAMBDA_CODE_FILTERS,
@@ -145,12 +145,12 @@ import {
145
145
  toSearchParams,
146
146
  toolset,
147
147
  withFilters
148
- } from "./chunk-EMCAWMHC.js";
148
+ } from "./chunk-5L4X5LS6.js";
149
149
  import "./chunk-WHOJWOSV.js";
150
150
  import {
151
151
  annotate,
152
152
  statements
153
- } from "./chunk-LH6Z6KFV.js";
153
+ } from "./chunk-5XZ744TS.js";
154
154
  import {
155
155
  resetLockOverrides,
156
156
  seedLockOverrides
@@ -2,19 +2,19 @@ import {
2
2
  projectShellFiles,
3
3
  runInitCommand,
4
4
  sanitizeAppName
5
- } from "./chunk-WKP4D5MO.js";
5
+ } from "./chunk-ODNMVJ6H.js";
6
6
  import {
7
7
  resolveAiFlags
8
8
  } from "./chunk-VKFQJEMW.js";
9
9
  import "./chunk-47WDWMBJ.js";
10
- import "./chunk-YGPIY3WT.js";
10
+ import "./chunk-UVLVQWWF.js";
11
11
  import "./chunk-IZW6MK3U.js";
12
12
  import "./chunk-EZG76F7R.js";
13
- import "./chunk-3DUAGYGP.js";
13
+ import "./chunk-55VHDNW5.js";
14
14
  import "./chunk-YYRDLFSJ.js";
15
- import "./chunk-EMCAWMHC.js";
15
+ import "./chunk-5L4X5LS6.js";
16
16
  import "./chunk-WHOJWOSV.js";
17
- import "./chunk-LH6Z6KFV.js";
17
+ import "./chunk-5XZ744TS.js";
18
18
  import "./chunk-HJPTWBLH.js";
19
19
  import "./chunk-GNPVYOPB.js";
20
20
  import "./chunk-4HT3BNZ7.js";
@@ -24,4 +24,4 @@ export {
24
24
  runInitCommand,
25
25
  sanitizeAppName
26
26
  };
27
- //# sourceMappingURL=init-command-R6H7ZXW5.js.map
27
+ //# sourceMappingURL=init-command-4AWL6CLW.js.map
@@ -1,7 +1,7 @@
1
1
  import { F as FunctionXdo } from './response-CVAE2kMj.js';
2
2
  export { a as FIELD_METHODS, R as REFERENCEABLE_KINDS, d as deriveGuid, e as encodeResponse, b as encodeStatement, g as getStatementFactory, i as isRegisteredStatement, r as resolveRef, t as toNestedFields } from './response-CVAE2kMj.js';
3
- import { S as StatementSpec, F as FunctionDef, O as ObjectKind } from './store-BQ97nKIF.js';
4
- export { A as AdoptChange, a as AdoptResult, B as Bundle, b as BundlePayload, c as BundleType, d as FILTER_NAMES, G as GENERATED_STATEMENT_NAMES, L as LLMS_TXT, e as LOCK_VERSION, f as LockEntry, g as LockExportContext, h as LockFile, M as Manifest, i as ManifestField, j as ManifestKind, k as ManifestStatement, l as MergeResult, P as PAYLOAD_ARRAY_KEYS, m as PayloadArrayKey, Q as QUERY_EXPRESSION_FILTERS, R as RenameResult, T as TOTAL_OBJECT_KINDS, V as VECTOR_FILTERS, W as WORKSPACE_KEY, n as addonKind, o as adoptFromBundle, p as agentKind, q as apiGroupKind, r as buildBundle, s as buildManifest, t as buildMiddlewareBlock, u as buildWorkspaceHistory, v as calcSignatureJson, w as channelPathParams, x as createLockContext, y as declaredServicePorts, z as emptyLock, C as encodeAddon, D as encodeAgent, E as encodeApiGroup, H as encodeColumn, I as encodeContainerHistory, J as encodeFromSpec, K as encodeHistory, N as encodeIndex, U as encodeMcpServer, X as encodeMicroservice, Y as encodeMiddleware, Z as encodeMiddlewareEntry, _ as encodeMiddlewareList, $ as encodeObject, a0 as encodeQuery, a1 as encodeRealtimeChannel, a2 as encodeRealtimeMessage, a3 as encodeRealtimeServer, a4 as encodeSchedule, a5 as encodeTable, a6 as encodeTask, a7 as encodeTool, a8 as encodeToolRefs, a9 as encodeToolsetBase, aa as encodeTrigger, ab as encodeView, ac as encodeWorkflowTest, ad as encodeWorkspaceConfig, ae as generatedStatements, af as getKind, ag as getLockedCanonical, ah as getLockedGuid, ai as isLockSeeded, aj as isQueryExpressionFilter, ak as isRegisteredKind, al as lockKey, am as mcpServerKind, an as mergeObserved, ao as microserviceKind, ap as middlewareKind, aq as mintCanonical, ar as parseLock, as as phpJsonEncode, at as queryKind, au as realtimeChannelGuid, av as realtimeChannelKind, aw as realtimeMessageGuid, ax as realtimeMessageKind, ay as realtimeServerKind, az as recordObserved, aA as registerKind, aB as registerSpec, aC as registeredKinds, aD as renameLockEntry, aE as renderDocs, aF as renderLlmsTxt, aG as resolveAuthRef, aH as resolvePayloadKey, aI as resolveRealtimeServerCanonical, aJ as resolveToolsetCanonical, aK as serializeBundle, aL as serializeLock, aM as tableKind, aN as taskKind, aO as toolKind, aP as triggerKind, aQ as validateLockModel, aR as workflowTestKind, aS as workspaceKind } from './store-BQ97nKIF.js';
3
+ import { S as StatementSpec, F as FunctionDef, O as ObjectKind } from './store-g45zwB33.js';
4
+ export { A as AdoptChange, a as AdoptResult, B as Bundle, b as BundlePayload, c as BundleType, d as FILTER_NAMES, G as GENERATED_STATEMENT_NAMES, L as LLMS_TXT, e as LOCK_VERSION, f as LockEntry, g as LockExportContext, h as LockFile, M as Manifest, i as ManifestField, j as ManifestKind, k as ManifestStatement, l as MergeResult, P as PAYLOAD_ARRAY_KEYS, m as PayloadArrayKey, Q as QUERY_EXPRESSION_FILTERS, R as RenameResult, T as TOTAL_OBJECT_KINDS, V as VECTOR_FILTERS, W as WORKSPACE_KEY, n as addonKind, o as adoptFromBundle, p as agentKind, q as apiGroupKind, r as buildBundle, s as buildManifest, t as buildMiddlewareBlock, u as buildWorkspaceHistory, v as calcSignatureJson, w as channelPathParams, x as createLockContext, y as declaredServicePorts, z as emptyLock, C as encodeAddon, D as encodeAgent, E as encodeApiGroup, H as encodeColumn, I as encodeContainerHistory, J as encodeFromSpec, K as encodeHistory, N as encodeIndex, U as encodeMcpServer, X as encodeMicroservice, Y as encodeMiddleware, Z as encodeMiddlewareEntry, _ as encodeMiddlewareList, $ as encodeObject, a0 as encodeQuery, a1 as encodeRealtimeChannel, a2 as encodeRealtimeMessage, a3 as encodeRealtimeServer, a4 as encodeSchedule, a5 as encodeTable, a6 as encodeTask, a7 as encodeTool, a8 as encodeToolRefs, a9 as encodeToolsetBase, aa as encodeTrigger, ab as encodeView, ac as encodeWorkflowTest, ad as encodeWorkspaceConfig, ae as generatedStatements, af as getKind, ag as getLockedCanonical, ah as getLockedGuid, ai as isLockSeeded, aj as isQueryExpressionFilter, ak as isRegisteredKind, al as lockKey, am as mcpServerKind, an as mergeObserved, ao as microserviceKind, ap as middlewareKind, aq as mintCanonical, ar as parseLock, as as phpJsonEncode, at as queryKind, au as realtimeChannelGuid, av as realtimeChannelKind, aw as realtimeMessageGuid, ax as realtimeMessageKind, ay as realtimeServerKind, az as recordObserved, aA as registerKind, aB as registerSpec, aC as registeredKinds, aD as renameLockEntry, aE as renderDocs, aF as renderLlmsTxt, aG as resolveAuthRef, aH as resolvePayloadKey, aI as resolveRealtimeServerCanonical, aJ as resolveToolsetCanonical, aK as serializeBundle, aL as serializeLock, aM as tableKind, aN as taskKind, aO as toolKind, aP as triggerKind, aQ as validateLockModel, aR as workflowTestKind, aS as workspaceKind } from './store-g45zwB33.js';
5
5
 
6
6
  /**
7
7
  * AUTO-GENERATED by scripts/codegen.ts — DO NOT EDIT BY HAND.
package/dist/internal.js CHANGED
@@ -33,7 +33,7 @@ import {
33
33
  taskKind,
34
34
  toolKind,
35
35
  workflowTestKind
36
- } from "./chunk-YDZYMZBE.js";
36
+ } from "./chunk-TQUO2OXY.js";
37
37
  import {
38
38
  GENERATED_SPECS,
39
39
  GENERATED_STATEMENT_NAMES,
@@ -55,7 +55,7 @@ import {
55
55
  registerSpec,
56
56
  triggerKind,
57
57
  workspaceKind
58
- } from "./chunk-FJ6ZS5KB.js";
58
+ } from "./chunk-U3G2UW65.js";
59
59
  import {
60
60
  COMMANDS,
61
61
  FLAGS,
@@ -102,13 +102,13 @@ import {
102
102
  serializeBundle,
103
103
  tableKind,
104
104
  toNestedFields
105
- } from "./chunk-EMCAWMHC.js";
105
+ } from "./chunk-5L4X5LS6.js";
106
106
  import "./chunk-WHOJWOSV.js";
107
107
  import {
108
108
  encodeStatement,
109
109
  getStatementFactory,
110
110
  isRegisteredStatement
111
- } from "./chunk-LH6Z6KFV.js";
111
+ } from "./chunk-5XZ744TS.js";
112
112
  import {
113
113
  LOCK_VERSION,
114
114
  REFERENCEABLE_KINDS,
@@ -132,6 +132,10 @@ import {
132
132
  validateLockModel
133
133
  } from "./chunk-4HT3BNZ7.js";
134
134
 
135
+ // src/statements/byte-evidence.ts
136
+ var UNCONFIRMED_STATEMENTS = /* @__PURE__ */ new Set([]);
137
+ var UNCONFIRMED_NOTE = "Built from the engine's schema declaration, with no stored instance behind them to compare the emitted bytes against \u2014 every other statement has one. Fully authorable and not deprecated; the field schema may simply be less exact than the rest. If a deploy rejects one of these, read it as a shape question and pull the workspace back to see what the engine stored, rather than rewriting working code around it.";
138
+
135
139
  // src/manifest/manifest.ts
136
140
  function argGrammar(args) {
137
141
  if (args === void 0 || args.length === 0) return void 0;
@@ -253,6 +257,12 @@ var ENGINE_OBJECT_KINDS = [
253
257
  ];
254
258
  var TOTAL_OBJECT_KINDS = ENGINE_OBJECT_KINDS.length;
255
259
  var NAMESPACE_NOTES = {
260
+ // The Elasticsearch/OpenSearch note that stood here warned that those
261
+ // credential and target fields were "typed optional but have NO engine
262
+ // default - supply all". They are typed REQUIRED now, so the signature a few
263
+ // lines down says it and a call omitting one does not compile. A warning that
264
+ // restates the type costs every reader of this section and changes nothing an
265
+ // agent writes.
256
266
  debug: "Despite the namespace, `s.debug.stop` is a REAL control-flow terminator, not a development aid: it ends the request with an error value (`mvp:die`). It is also exported flat as `die()` \u2014 the one flat alias whose name does not mirror its `s.*` path, so there is no `s.die`. Compare `s.throw`, which raises a named error the surrounding `s.try_catch` can catch.",
257
267
  expect: "Assertions. **Put them in a `workflowTest({...})` stack** \u2014 assert on what a `.call` bound with `as`. That is where they belong and effectively the only place to author them. They are NOT inert elsewhere, which is the part worth knowing: a failure raises and aborts whatever stack it is in, so an `s.expect.*` left in a `query`/`function`/`task` takes the request down with an HTTP 500 carrying the assertion's own message (`to_equal failed - expected value 2 does not equal 1`). Treat one outside a `workflowTest` as a mistake to remove, not as a check that quietly does nothing. Two behaviours to know when writing them: `to_throw` sees only an error carrying a MESSAGE, so a failure whose message is empty \u2014 an endpoint answering `ERROR_CODE_ACCESS_DENIED` is the common one \u2014 reports \"response is ok\" as though nothing failed, and `to_be_within` EXCLUDES both bounds \u2014 `min < expr < max` \u2014 while `s.security.random_number`'s bounds are inclusive.",
258
268
  workflow_test: "Run another workflow test from inside one. Pass the `workflowTest()` def handle, not a name."
@@ -265,6 +275,10 @@ var PUBLISHED_AUTHOR_FACTORIES = new Set(
265
275
  var IMPLEMENTED_OBJECT_KINDS = ENGINE_OBJECT_KINDS.filter(
266
276
  (k) => k.authorFactory !== null && PUBLISHED_AUTHOR_FACTORIES.has(k.authorFactory)
267
277
  );
278
+ function unconfirmedCoverage(statements) {
279
+ const sPaths = statements.filter((s) => UNCONFIRMED_STATEMENTS.has(s.storedName)).map((s) => s.sPath).sort();
280
+ return sPaths.length === 0 ? {} : { unconfirmed: { note: UNCONFIRMED_NOTE, sPaths } };
281
+ }
268
282
  function unmodeledObjectKinds() {
269
283
  const implemented = new Set(IMPLEMENTED_OBJECT_KINDS.map((k) => k.kind));
270
284
  return ENGINE_OBJECT_KINDS.filter((k) => !implemented.has(k.kind)).map((k) => ({
@@ -470,7 +484,11 @@ function buildManifest(opts = {}) {
470
484
  },
471
485
  statements: {
472
486
  implemented: statements.filter((s) => s.registered).length,
473
- total: TOTAL_STATEMENTS
487
+ total: TOTAL_STATEMENTS,
488
+ // Mapped through the built entries rather than derived from the stored
489
+ // names directly, so a name that no longer has an authoring surface
490
+ // cannot be published as an `s.` path that does not resolve.
491
+ ...unconfirmedCoverage(statements)
474
492
  },
475
493
  filters: { typed: filters.filter((f) => f.typed).length, total: filters.length }
476
494
  },
@@ -1582,7 +1600,7 @@ function renderSections(m) {
1582
1600
  "Array blocks (an `if`/`transform` is applied per item):",
1583
1601
  "",
1584
1602
  '- `s.array.map({ source, as?, transform? })` \u2014 `transform` is either a per-item `Value` expression (each item maps to that value) or a **record of values** (each item maps to an object with those keys), or a list of `{ key, value }` pairs, for a key computed per item or two rows sharing one. Use `ref("$this")` for the item and `ref("$index")` for its position. These are THIS statement\'s own bindings, in a value expression \u2014 not the JavaScript lambda contract (see **Lambda bodies**), which binds a different set per surface and is written with `lam.fn`.',
1585
- "- `s.array.union({ source, with?, as?, transform? })` \u2014 set-union two arrays.",
1603
+ "- `s.array.union({ source, with, as?, transform? })` \u2014 set-union two arrays. `with` is REQUIRED; omitted \u2192 `Unable to locate input: `.",
1586
1604
  "",
1587
1605
  "DB reads/writes (`table` is a def handle or name; `fieldName` defaults to the",
1588
1606
  "primary key `id`):",
@@ -1690,12 +1708,12 @@ function renderSections(m) {
1690
1708
  "- `s.function.run({ fn, input?, as?, runtime? })` / `s.function.call({ fn, input?, as? })` \u2014 run another function; `input` is keyed by the target's input names.",
1691
1709
  ' - `runtime?` runs it in the BACKGROUND: `{ mode: "async-shared" }` or `{ mode: "async-dedicated", cpu?, memory?, timeout?, maxRetry? }` (resources read at dedicated only). An async call DOES NOT return the result \u2014 it dispatches and continues, so `as` binds nothing; collect with `s.await({ ids })`. Omit for a normal call. Same block on `s.ai.agent.run`.',
1692
1710
  '- `s.api.call({ api, input?, headers?, auth?, as? })` \u2014 invoke an endpoint. `headers` REPLACES the request headers the callee sees and takes the same shapes as `s.api.request`\'s \u2014 a `{ "Name": value }` record (values may be tagged), a `string[]` of `"Name: value"` lines, or one `Value`. `auth` is `{ token, ignoreExpiration? }`: `token` must be a BARE STRING \u2014 a tagged `Value` deploys clean and then fails the run with `Param: token - Text filter requires an integer, float, string or boolean value`, since the engine stores that slot as plain text and never evaluates it. Neither slot authenticates the call today; see `llms/tests.md` for what a workflow-test run actually sees. WORKFLOW-TEST ONLY (see Gotchas in `llms.txt`) \u2014 elsewhere it deploys clean and 500s the first real request.',
1693
- '- `s.api.request({ url?, method?, params?, headers?, timeout?, follow_location?, verify_host?, verify_peer?, ca_certificate?, certificate?, certificate_pass?, private_key?, private_key_pass?, description?, output?, as? })` \u2014 external HTTP request (`mvp:api_request`). Ergonomic types, each also accepting a dynamic `Value`: `method` suggests the 7 verbs (GET/POST/PUT/DELETE/HEAD/OPTIONS/PATCH), `params` a plain JSON object **or** a FLAT record whose values are tagged `Value`s (`{ count: ref("count") }`, each lifted via a `set` filter \u2014 the same record-of-values shape `response: { key: value }` takes); a tagged value NESTED inside an object or array THROWS at encode, so wrap a structured body in `obj({...})`, which encodes any depth as one `const:expr2` (\u2192 query string for GET/HEAD/OPTIONS, body otherwise), `headers` a `{ "Name": value }` record whose values may be tagged (`{ "x-api-key": env("KEY") }`, each pair joined to a `"Name: value"` line) **or** a `string[]` of full header lines \u2014 prefer a header over a `?key=` query param for a credential \u2014 a URL travels into access logs, proxies and `Referer`. \u26A0 Neither spelling is envelope-safe: the `as` envelope\'s `request` half mirrors `url`, `params` AND `headers`, so never return it raw from a credentialed request \u2014 read `response.result`. A NAME outside the header-token charset is refused, and a LITERAL value carrying a newline is refused; a value may hold `:` and spaces (`Bearer a: b` is a valid value). A TAGGED value cannot be checked at build time, so strip CRLF from caller-controlled input before this slot. Literal pairs lead the emitted array and computed ones follow, so the wire order is not the record\'s key order, `timeout` a `number` in seconds (1\u201386400), and `follow_location`/`verify_host`/`verify_peer` booleans. `description` (Settings tab) and `output` filters (Output tab) ride the envelope. SSL cert interdependencies (certificate\u2194private_key, ca_certificate\u2192verify_peer) are checked at build time when statically provable, else by the engine at runtime. The `as` result is typed as the `{request, response}` envelope (`response.status: number`, `response.result: unknown`), so `InferResponse` resolves a `ref` to it. Same typed result on `webflow.request` and `microservice.request`.',
1694
- "- `s.stream.from_request({ url?, method?, \u2026tls, as? })` \u2014 streaming external HTTP request (`mvp:streaming_api_request`); same typed field surface as `s.api.request` (no description/output envelope).",
1695
- "- `s.webflow.request({ path?, method?, \u2026tls, as? })` \u2014 Webflow API request (`mvp:connect_webflow_api_request`); like `s.api.request` but addressed by `path` (host is engine-supplied).",
1711
+ '- `s.api.request({ url, method?, params?, headers?, timeout?, follow_location?, verify_host?, verify_peer?, ca_certificate?, certificate?, certificate_pass?, private_key?, private_key_pass?, description?, output?, as? })` \u2014 external HTTP request (`mvp:api_request`). Ergonomic types, each also accepting a dynamic `Value`: `method` suggests the 7 verbs (GET/POST/PUT/DELETE/HEAD/OPTIONS/PATCH), `params` a plain JSON object **or** a FLAT record whose values are tagged `Value`s (`{ count: ref("count") }`, each lifted via a `set` filter \u2014 the same record-of-values shape `response: { key: value }` takes); a tagged value NESTED inside an object or array THROWS at encode, so wrap a structured body in `obj({...})`, which encodes any depth as one `const:expr2` (\u2192 query string for GET/HEAD/OPTIONS, body otherwise), `headers` a `{ "Name": value }` record whose values may be tagged (`{ "x-api-key": env("KEY") }`, each pair joined to a `"Name: value"` line) **or** a `string[]` of full header lines \u2014 prefer a header over a `?key=` query param for a credential \u2014 a URL travels into access logs, proxies and `Referer`. \u26A0 Neither spelling is envelope-safe: the `as` envelope\'s `request` half mirrors `url`, `params` AND `headers`, so never return it raw from a credentialed request \u2014 read `response.result`. A NAME outside the header-token charset is refused, and a LITERAL value carrying a newline is refused; a value may hold `:` and spaces (`Bearer a: b` is a valid value). A TAGGED value cannot be checked at build time, so strip CRLF from caller-controlled input before this slot. Literal pairs lead the emitted array and computed ones follow, so the wire order is not the record\'s key order, `timeout` a `number` in seconds (1\u201386400), and `follow_location`/`verify_host`/`verify_peer` booleans. `description` (Settings tab) and `output` filters (Output tab) ride the envelope. SSL cert interdependencies (certificate\u2194private_key, ca_certificate\u2192verify_peer) are checked at build time when statically provable, else by the engine at runtime. The `as` result is typed as the `{request, response}` envelope (`response.status: number`, `response.result: unknown`), so `InferResponse` resolves a `ref` to it. Same typed result on `webflow.request` and `microservice.request`.',
1712
+ "- `s.stream.from_request({ url, method?, \u2026tls, as? })` \u2014 streaming external HTTP request (`mvp:streaming_api_request`); same typed field surface as `s.api.request` (no description/output envelope). `url` is REQUIRED \u2014 it shares `api.request`'s engine declaration, which has no default.",
1713
+ "- `s.webflow.request({ path, method?, \u2026tls, as? })` \u2014 Webflow API request (`mvp:connect_webflow_api_request`); like `s.api.request` but addressed by `path` (host is engine-supplied), and `path` is REQUIRED \u2014 the engine rejects an empty one. No `headers`: the engine builds its own from the workspace's Webflow connection and ignores an authored value.",
1696
1714
  "- `s.task.call` / `s.tool.call` / `s.trigger.call` / `s.middleware.call` / `s.addon.call` \u2014 same `{ <target>, input?, as? }` shape against the named kind. `s.task.call` and `s.trigger.call` are WORKFLOW-TEST ONLY (see Gotchas in `llms.txt`); `s.tool.call`, `s.middleware.call` and `s.addon.call` run from any stack.",
1697
1715
  "- `s.action.call({ action, package?, input?, as? })` / `s.action.package.call(\u2026)` \u2014 invoke a marketplace action; `package` is its slug.",
1698
- "- `s.cloud.job({ image?, command?, args?, secret?, template?, await?, as? })` \u2014 launch a containerized job. \u26A0 `await` is SECONDS (default 60), not a boolean.",
1716
+ "- `s.cloud.job({ image, command, args?, secret?, template?, await?, as? })` \u2014 launch a containerized job. `image`/`command` are REQUIRED; omitted \u2192 `Missing param`. \u26A0 `await` is SECONDS (default 60), not a boolean.",
1699
1717
  "- `s.cloud.job.status({ id, as? })` \xB7 `s.cloud.job.await({ ids, timeout, as? })` \u2014 poll one job, or block on several (`ids` a list `Value`, `timeout` in seconds; both required).",
1700
1718
  "",
1701
1719
  "Microservices (the `microservice()` def and the statement that calls it):",