@archastro/sdk 0.16.3 → 0.18.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 (62) hide show
  1. package/dist/client.d.ts +4 -0
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +5 -1
  4. package/dist/client.js.map +1 -1
  5. package/dist/types/chat.d.ts +250 -0
  6. package/dist/types/chat.d.ts.map +1 -1
  7. package/dist/types/common.d.ts +439 -29
  8. package/dist/types/common.d.ts.map +1 -1
  9. package/dist/types/common.js +58 -10
  10. package/dist/types/common.js.map +1 -1
  11. package/dist/types/tasks.d.ts +2 -2
  12. package/dist/types/tasks.d.ts.map +1 -1
  13. package/dist/types/tasks.js +3 -3
  14. package/dist/types/tasks.js.map +1 -1
  15. package/dist/types/teams.d.ts +40 -0
  16. package/dist/types/teams.d.ts.map +1 -1
  17. package/dist/types/threads.d.ts +18 -0
  18. package/dist/types/threads.d.ts.map +1 -1
  19. package/dist/v1/resources/activity_feed.d.ts +2 -0
  20. package/dist/v1/resources/activity_feed.d.ts.map +1 -1
  21. package/dist/v1/resources/activity_feed.js +1 -1
  22. package/dist/v1/resources/config.d.ts +2 -0
  23. package/dist/v1/resources/config.d.ts.map +1 -1
  24. package/dist/v1/resources/config.js +2 -1
  25. package/dist/v1/resources/config.js.map +1 -1
  26. package/dist/v1/resources/external_object_capabilities.d.ts +21 -0
  27. package/dist/v1/resources/external_object_capabilities.d.ts.map +1 -0
  28. package/dist/v1/resources/external_object_capabilities.js +25 -0
  29. package/dist/v1/resources/external_object_capabilities.js.map +1 -0
  30. package/dist/v1/resources/external_objects.d.ts +103 -0
  31. package/dist/v1/resources/external_objects.d.ts.map +1 -0
  32. package/dist/v1/resources/external_objects.js +70 -0
  33. package/dist/v1/resources/external_objects.js.map +1 -0
  34. package/dist/v1/resources/index.d.ts +2 -0
  35. package/dist/v1/resources/index.d.ts.map +1 -1
  36. package/dist/v1/resources/index.js +3 -1
  37. package/dist/v1/resources/index.js.map +1 -1
  38. package/dist/v1/resources/oauth.d.ts +4 -3
  39. package/dist/v1/resources/oauth.d.ts.map +1 -1
  40. package/dist/v1/resources/oauth.js +5 -4
  41. package/dist/v1/resources/oauth.js.map +1 -1
  42. package/dist/v1/resources/orgs.d.ts +2 -1
  43. package/dist/v1/resources/orgs.d.ts.map +1 -1
  44. package/dist/v1/resources/orgs.js +1 -1
  45. package/dist/v1/resources/slack_channel_bindings.d.ts +26 -0
  46. package/dist/v1/resources/slack_channel_bindings.d.ts.map +1 -1
  47. package/dist/v1/resources/slack_channel_bindings.js +25 -1
  48. package/dist/v1/resources/slack_channel_bindings.js.map +1 -1
  49. package/dist/v1/resources/tasks.d.ts +1 -1
  50. package/dist/v1/resources/tasks.js +2 -2
  51. package/dist/v1/resources/teams.d.ts +6 -2
  52. package/dist/v1/resources/teams.d.ts.map +1 -1
  53. package/dist/v1/resources/teams.js +3 -3
  54. package/dist/v1/resources/users.d.ts +36 -2
  55. package/dist/v1/resources/users.d.ts.map +1 -1
  56. package/dist/v1/resources/users.js +29 -3
  57. package/dist/v1/resources/users.js.map +1 -1
  58. package/dist/v1.d.ts +4 -0
  59. package/dist/v1.d.ts.map +1 -1
  60. package/dist/v1.js +7 -1
  61. package/dist/v1.js.map +1 -1
  62. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) 2026 ArchAstro Inc. Licensed under the MIT License.
2
2
  // This file is auto-generated by @archastro/sdk-generator. Do not edit.
3
- // Content hash: 9577d3104f06
3
+ // Content hash: a02baea2c1d9
4
4
  import { z } from "zod";
5
5
  import { automationParticipantSlotSchema, automationPrefillsSchema } from "./automations.js";
6
6
  import { configSchema } from "./config.js";
@@ -35,7 +35,7 @@ export const aclSchema = z.object({
35
35
  /** Runtime validator for {@link ActivityFeedEntry}. */
36
36
  export const activityFeedEntrySchema = z.object({
37
37
  /** The agent that produced this event. Returns an agent ID (`agi_...`) by default, or an expanded agent object when the association is loaded. `null` if no agent is associated. */
38
- agent: z.union([z.string(), z.object({ acl: z.object({ add: z.array(z.object({ actions: z.array(z.string()), principal: z.string().optional(), principal_type: z.string() })).optional(), grants: z.array(z.object({ actions: z.array(z.string()), principal: z.string().optional(), principal_type: z.string() })).optional(), remove: z.array(z.object({ principal: z.string().optional(), principal_type: z.string() })).optional() }).nullable().optional(), app: z.string().optional(), created_at: z.string().optional(), default_model: z.string().nullable().optional(), description: z.string().nullable().optional(), email: z.string().nullable().optional(), id: z.string(), identity: z.string().nullable().optional(), last_applied_template_config: z.string().nullable().optional(), lookup_key: z.string().nullable().optional(), metadata: z.record(z.custom((value) => value !== undefined)).optional(), name: z.string().optional(), org: z.string().nullable().optional(), org_name: z.string().nullable().optional(), originator: z.string().nullable().optional(), phone_number: z.string().nullable().optional(), sandbox: z.string().nullable().optional(), source_solution: z.object({ current_solution: z.object({ category_keys: z.array(z.string()).optional(), created_at: z.string().optional(), description: z.string().nullable().optional(), events: z.record(z.custom((value) => value !== undefined)).optional(), id: z.string(), image_url: z.string().nullable().optional(), kind: z.string(), latest_solution: z.string().nullable().optional(), latest_version: z.string().nullable().optional(), lookup_key: z.string().nullable().optional(), metadata: z.record(z.custom((value) => value !== undefined)).optional(), name: z.string().nullable().optional(), org: z.string().nullable().optional(), org_logo: z.object({ file: z.string().nullable().optional(), height: z.number().int().nullable().optional(), media: z.string().nullable().optional(), mime_type: z.string().nullable().optional(), refresh_url: z.string().nullable().optional(), url: z.string().nullable().optional(), width: z.number().int().nullable().optional() }).nullable().optional(), org_name: z.string().nullable().optional(), org_slug: z.string().nullable().optional(), owners: z.array(z.string()), readme_url: z.string().nullable().optional(), screenshot_urls: z.array(z.string()).optional(), solution_id: z.string().nullable().optional(), solution_version: z.string().nullable().optional(), tag_keys: z.array(z.string()).optional(), template_kind: z.string().nullable().optional(), templates: z.array(z.object({ description: z.string().nullable().optional(), details: z.object({ automation_type: z.string().nullable().optional(), invoke_contract: z.object({ input_schema: z.record(z.custom((value) => value !== undefined)).nullable().optional(), participants: z.array(z.object({ description: z.string().nullable().optional(), name: z.string(), required: z.boolean(), type: z.string() })).nullable().optional(), prefills: z.object({ participants: z.record(z.custom((value) => value !== undefined)).optional(), payload: z.record(z.custom((value) => value !== undefined)).optional() }) }).nullable().optional(), type: z.literal("automation") }).nullable().optional(), display_name: z.string().nullable().optional(), id: z.string().nullable().optional(), kind: z.string(), lookup_key: z.string().nullable().optional(), name: z.string().nullable().optional(), readme_url: z.string().nullable().optional(), virtual_path: z.string().nullable().optional() })), updated_at: z.string().optional(), upgrade_available: z.boolean(), virtual_path: z.string().nullable().optional() }).optional(), solution: z.object({ category_keys: z.array(z.string()).optional(), created_at: z.string().optional(), description: z.string().nullable().optional(), events: z.record(z.custom((value) => value !== undefined)).optional(), id: z.string(), image_url: z.string().nullable().optional(), kind: z.string(), latest_solution: z.string().nullable().optional(), latest_version: z.string().nullable().optional(), lookup_key: z.string().nullable().optional(), metadata: z.record(z.custom((value) => value !== undefined)).optional(), name: z.string().nullable().optional(), org: z.string().nullable().optional(), org_logo: z.object({ file: z.string().nullable().optional(), height: z.number().int().nullable().optional(), media: z.string().nullable().optional(), mime_type: z.string().nullable().optional(), refresh_url: z.string().nullable().optional(), url: z.string().nullable().optional(), width: z.number().int().nullable().optional() }).nullable().optional(), org_name: z.string().nullable().optional(), org_slug: z.string().nullable().optional(), owners: z.array(z.string()), readme_url: z.string().nullable().optional(), screenshot_urls: z.array(z.string()).optional(), solution_id: z.string().nullable().optional(), solution_version: z.string().nullable().optional(), tag_keys: z.array(z.string()).optional(), template_kind: z.string().nullable().optional(), templates: z.array(z.object({ description: z.string().nullable().optional(), details: z.object({ automation_type: z.string().nullable().optional(), invoke_contract: z.object({ input_schema: z.record(z.custom((value) => value !== undefined)).nullable().optional(), participants: z.array(z.object({ description: z.string().nullable().optional(), name: z.string(), required: z.boolean(), type: z.string() })).nullable().optional(), prefills: z.object({ participants: z.record(z.custom((value) => value !== undefined)).optional(), payload: z.record(z.custom((value) => value !== undefined)).optional() }) }).nullable().optional(), type: z.literal("automation") }).nullable().optional(), display_name: z.string().nullable().optional(), id: z.string().nullable().optional(), kind: z.string(), lookup_key: z.string().nullable().optional(), name: z.string().nullable().optional(), readme_url: z.string().nullable().optional(), virtual_path: z.string().nullable().optional() })), updated_at: z.string().optional(), upgrade_available: z.boolean(), virtual_path: z.string().nullable().optional() }), template: z.object({ created_at: z.string().optional(), description: z.string().nullable().optional(), display_name: z.string().nullable().optional(), id: z.string(), kind: z.string(), lookup_key: z.string().nullable().optional(), name: z.string().nullable().optional(), updated_at: z.string().optional(), virtual_path: z.string().nullable().optional() }) }).nullable().optional(), team: z.string().nullable().optional(), template_upgrade_available: z.boolean().nullable().optional(), updated_at: z.string().optional(), user: z.string().nullable().optional() })]).optional().describe("The agent that produced this event. Returns an agent ID (`agi_...`) by default, or an expanded agent object when the association is loaded. `null` if no agent is associated."),
38
+ agent: z.union([z.string(), z.object({ acl: z.object({ add: z.array(z.object({ actions: z.array(z.string()), principal: z.string().optional(), principal_type: z.string() })).optional(), grants: z.array(z.object({ actions: z.array(z.string()), principal: z.string().optional(), principal_type: z.string() })).optional(), remove: z.array(z.object({ principal: z.string().optional(), principal_type: z.string() })).optional() }).nullable().optional(), app: z.string().optional(), created_at: z.string().optional(), default_model: z.string().nullable().optional(), description: z.string().nullable().optional(), email: z.string().nullable().optional(), id: z.string(), identity: z.string().nullable().optional(), last_applied_template_config: z.string().nullable().optional(), lookup_key: z.string().nullable().optional(), metadata: z.record(z.custom((value) => value !== undefined)).optional(), name: z.string().optional(), org: z.string().nullable().optional(), org_name: z.string().nullable().optional(), originator: z.string().nullable().optional(), phone_number: z.string().nullable().optional(), sandbox: z.string().nullable().optional(), source_solution: z.object({ current_solution: z.object({ category_keys: z.array(z.string()).optional(), created_at: z.string().optional(), description: z.string().nullable().optional(), events: z.record(z.custom((value) => value !== undefined)).optional(), id: z.string(), image_url: z.string().nullable().optional(), installed_config_ids: z.array(z.string()), kind: z.string(), latest_solution: z.string().nullable().optional(), latest_version: z.string().nullable().optional(), lookup_key: z.string().nullable().optional(), metadata: z.record(z.custom((value) => value !== undefined)).optional(), name: z.string().nullable().optional(), org: z.string().nullable().optional(), org_logo: z.object({ file: z.string().nullable().optional(), height: z.number().int().nullable().optional(), media: z.string().nullable().optional(), mime_type: z.string().nullable().optional(), refresh_url: z.string().nullable().optional(), url: z.string().nullable().optional(), width: z.number().int().nullable().optional() }).nullable().optional(), org_name: z.string().nullable().optional(), org_slug: z.string().nullable().optional(), owners: z.array(z.string()), readme_url: z.string().nullable().optional(), screenshot_urls: z.array(z.string()).optional(), solution_id: z.string().nullable().optional(), solution_version: z.string().nullable().optional(), tag_keys: z.array(z.string()).optional(), template_kind: z.string().nullable().optional(), templates: z.array(z.object({ description: z.string().nullable().optional(), details: z.object({ automation_type: z.string().nullable().optional(), invoke_contract: z.object({ input_schema: z.record(z.custom((value) => value !== undefined)).nullable().optional(), participants: z.array(z.object({ description: z.string().nullable().optional(), name: z.string(), required: z.boolean(), type: z.string() })).nullable().optional(), prefills: z.object({ participants: z.record(z.custom((value) => value !== undefined)).optional(), payload: z.record(z.custom((value) => value !== undefined)).optional() }) }).nullable().optional(), type: z.literal("automation") }).nullable().optional(), display_name: z.string().nullable().optional(), id: z.string().nullable().optional(), kind: z.string(), lookup_key: z.string().nullable().optional(), name: z.string().nullable().optional(), readme_url: z.string().nullable().optional(), virtual_path: z.string().nullable().optional() })), updated_at: z.string().optional(), upgrade_available: z.boolean(), virtual_path: z.string().nullable().optional() }).optional(), solution: z.object({ category_keys: z.array(z.string()).optional(), created_at: z.string().optional(), description: z.string().nullable().optional(), events: z.record(z.custom((value) => value !== undefined)).optional(), id: z.string(), image_url: z.string().nullable().optional(), installed_config_ids: z.array(z.string()), kind: z.string(), latest_solution: z.string().nullable().optional(), latest_version: z.string().nullable().optional(), lookup_key: z.string().nullable().optional(), metadata: z.record(z.custom((value) => value !== undefined)).optional(), name: z.string().nullable().optional(), org: z.string().nullable().optional(), org_logo: z.object({ file: z.string().nullable().optional(), height: z.number().int().nullable().optional(), media: z.string().nullable().optional(), mime_type: z.string().nullable().optional(), refresh_url: z.string().nullable().optional(), url: z.string().nullable().optional(), width: z.number().int().nullable().optional() }).nullable().optional(), org_name: z.string().nullable().optional(), org_slug: z.string().nullable().optional(), owners: z.array(z.string()), readme_url: z.string().nullable().optional(), screenshot_urls: z.array(z.string()).optional(), solution_id: z.string().nullable().optional(), solution_version: z.string().nullable().optional(), tag_keys: z.array(z.string()).optional(), template_kind: z.string().nullable().optional(), templates: z.array(z.object({ description: z.string().nullable().optional(), details: z.object({ automation_type: z.string().nullable().optional(), invoke_contract: z.object({ input_schema: z.record(z.custom((value) => value !== undefined)).nullable().optional(), participants: z.array(z.object({ description: z.string().nullable().optional(), name: z.string(), required: z.boolean(), type: z.string() })).nullable().optional(), prefills: z.object({ participants: z.record(z.custom((value) => value !== undefined)).optional(), payload: z.record(z.custom((value) => value !== undefined)).optional() }) }).nullable().optional(), type: z.literal("automation") }).nullable().optional(), display_name: z.string().nullable().optional(), id: z.string().nullable().optional(), kind: z.string(), lookup_key: z.string().nullable().optional(), name: z.string().nullable().optional(), readme_url: z.string().nullable().optional(), virtual_path: z.string().nullable().optional() })), updated_at: z.string().optional(), upgrade_available: z.boolean(), virtual_path: z.string().nullable().optional() }), template: z.object({ created_at: z.string().optional(), description: z.string().nullable().optional(), display_name: z.string().nullable().optional(), id: z.string(), kind: z.string(), lookup_key: z.string().nullable().optional(), name: z.string().nullable().optional(), updated_at: z.string().optional(), virtual_path: z.string().nullable().optional() }) }).nullable().optional(), team: z.string().nullable().optional(), template_upgrade_available: z.boolean().nullable().optional(), updated_at: z.string().optional(), user: z.string().nullable().optional() })]).optional().describe("The agent that produced this event. Returns an agent ID (`agi_...`) by default, or an expanded agent object when the association is loaded. `null` if no agent is associated."),
39
39
  /** ID of the application that produced this entry (`dap_...`). `null` if not scoped to an app. */
40
40
  app: z.string().optional().describe("ID of the application that produced this entry (`dap_...`). `null` if not scoped to an app."),
41
41
  /** Array of attachment objects associated with this entry. Each attachment has a `type` field (e.g. `"file"`, `"task"`, `"artifact"`) and type-specific additional fields. Empty array when there are no attachments. */
@@ -568,6 +568,8 @@ export const currentUserSchema = z.object({
568
568
  notification_settings: z.record(z.custom((value) => value !== undefined)).describe("The authenticated user's notification preferences."),
569
569
  /** ID of the current organization (`org_...`). */
570
570
  org: z.string().nullable().optional().describe("ID of the current organization (`org_...`)."),
571
+ /** Whether the current organization is company-domain or person-owned. */
572
+ org_kind: z.enum(["company", "personal"]).nullable().optional().describe("Whether the current organization is company-domain or person-owned."),
571
573
  /** Display name of the current organization. */
572
574
  org_name: z.string().nullable().optional().describe("Display name of the current organization."),
573
575
  /** The authenticated user's role in the current organization. */
@@ -659,6 +661,15 @@ export const customObjectUpdateFieldsResponseSchema = z.object({
659
661
  /** Idempotency key acknowledged for this update. */
660
662
  operation_id: z.string().describe("Idempotency key acknowledged for this update."),
661
663
  }).describe("Response returned after updating one or more fields on a custom object. Confirms the object that was modified and the field values that were applied.");
664
+ /** Runtime validator for {@link D1Database}. */
665
+ export const d1DatabaseSchema = z.object({
666
+ /** Provider-assigned object identifier. */
667
+ id: z.string().describe("Provider-assigned object identifier."),
668
+ jurisdiction: z.string().optional(),
669
+ name: z.string(),
670
+ read_replication: z.record(z.custom((value) => value !== undefined)).optional(),
671
+ type: z.literal("d1_database"),
672
+ }).describe("Provider object fields for a D1 database.");
662
673
  /** Runtime validator for {@link Deployment}. */
663
674
  export const deploymentSchema = z.object({
664
675
  /** Deployment environment, or `null` when it is not configured. */
@@ -666,6 +677,17 @@ export const deploymentSchema = z.object({
666
677
  /** Opaque SHA-256 fingerprint of the image reference, or `null` in local development. */
667
678
  release: z.string().nullable().optional().describe("Opaque SHA-256 fingerprint of the image reference, or `null` in local development."),
668
679
  }).describe("Deployment metadata.");
680
+ /** Runtime validator for {@link R2Bucket}. */
681
+ export const r2BucketSchema = z.object({
682
+ /** Provider-assigned object identifier. */
683
+ id: z.string().describe("Provider-assigned object identifier."),
684
+ location: z.string().optional(),
685
+ name: z.string(),
686
+ storage_class: z.string().optional(),
687
+ type: z.literal("r2_bucket"),
688
+ }).describe("Provider object fields for an R2 bucket.");
689
+ /** Service-specific external object payload selected by `type`. */
690
+ export const detailsSchema = z.discriminatedUnion("type", [r2BucketSchema, d1DatabaseSchema]);
669
691
  /** Runtime validator for {@link DomainEvent}. */
670
692
  export const domainEventSchema = z.object({
671
693
  agent: z.string().optional(),
@@ -680,6 +702,22 @@ export const domainEventSchema = z.object({
680
702
  team: z.string().optional(),
681
703
  user: z.string().optional(),
682
704
  }).describe("A domain event with stable attribution fields and an event-specific payload.");
705
+ /** Runtime validator for {@link ExternalObject}. */
706
+ export const externalObjectSchema = z.object({
707
+ agent: z.string().optional(),
708
+ created_at: z.string(),
709
+ /** ArchAstro external object ID (`ext_...`). */
710
+ id: z.string().describe("ArchAstro external object ID (`ext_...`)."),
711
+ /** Integration ID (`int_...`). */
712
+ integration: z.string().describe("Integration ID (`int_...`)."),
713
+ /** Service-specific object payload. */
714
+ object: detailsSchema.describe("Service-specific object payload."),
715
+ org: z.string().optional(),
716
+ service: z.literal("cloudflare"),
717
+ team: z.string().optional(),
718
+ updated_at: z.string(),
719
+ user: z.string().optional(),
720
+ }).describe("An owner-scoped object provisioned through an external integration.");
683
721
  /** Runtime validator for {@link StorageFile}. */
684
722
  export const storageFileSchema = z.object({
685
723
  /** ID of the app this file belongs to (`app_...`). */
@@ -1081,6 +1119,14 @@ export const runJournalPageSchema = z.object({
1081
1119
  /** Durable execution summary. `null` when this run has no journal, which is valid for script-backed, preview, or legacy runs. */
1082
1120
  journal: workflowJournalSchema.optional().describe("Durable execution summary. `null` when this run has no journal, which is valid for script-backed, preview, or legacy runs."),
1083
1121
  }).describe("A forward-paginated journal entry page for an automation or routine run.");
1122
+ /** Runtime validator for {@link RuntimeCapability}. */
1123
+ export const runtimeCapabilitySchema = z.object({
1124
+ bindings: z.record(z.custom((value) => value !== undefined)),
1125
+ /** Opaque bearer capability. Keep server-side and do not persist it. */
1126
+ capability: z.string().describe("Opaque bearer capability. Keep server-side and do not persist it."),
1127
+ expires_at: z.string(),
1128
+ gateway_url: z.string(),
1129
+ }).describe("Short-lived bootstrap values for one hosted external-object runtime.");
1084
1130
  /** Runtime validator for {@link RuntimeEnvVar}. */
1085
1131
  export const runtimeEnvVarSchema = z.object({
1086
1132
  /** Human-readable explanation of the variable's purpose. `null` if no description has been set. */
@@ -1143,8 +1189,8 @@ export const sandboxSchema = z.object({
1143
1189
  }).describe("An isolated developer sandbox environment used for testing integrations without affecting production data or sending real emails.");
1144
1190
  /** Runtime validator for {@link SlackChannelBinding}. */
1145
1191
  export const slackChannelBindingSchema = z.object({
1146
- /** IDs of every agent attached to this binding, including legacy concierge attachments. Use `resident_agent` and `route_kind` for the effective runtime route. */
1147
- agents: z.array(z.string()).optional().describe("IDs of every agent attached to this binding, including legacy concierge attachments. Use `resident_agent` and `route_kind` for the effective runtime route."),
1192
+ /** IDs of every agent attached to this binding, including attachments left over from retired flows. Use `resident_agent` and `route_kind` for the effective runtime route. */
1193
+ agents: z.array(z.string()).optional().describe("IDs of every agent attached to this binding, including attachments left over from retired flows. Use `resident_agent` and `route_kind` for the effective runtime route."),
1148
1194
  /** Whether this channel opts into sustained bot-to-bot conversation, exempting it from the reply loop brake. Defaults to `false`. */
1149
1195
  allow_bot_conversations: z.boolean().describe("Whether this channel opts into sustained bot-to-bot conversation, exempting it from the reply loop brake. Defaults to `false`."),
1150
1196
  /** Slack channel ID (e.g. `C01234ABCDE`) that this binding targets. */
@@ -1173,8 +1219,8 @@ export const slackChannelBindingSchema = z.object({
1173
1219
  reply_style: z.string().describe("How the resident agent's replies post to Slack: `thread` (default) threads a reply under the message that triggered it; `top_level` posts it flat in the channel."),
1174
1220
  /** ID of the resident agent selected by Slack ingress. `null` when no resident is attached and the channel is an observer. */
1175
1221
  resident_agent: z.string().optional().describe("ID of the resident agent selected by Slack ingress. `null` when no resident is attached and the channel is an observer."),
1176
- /** Effective Slack ingress route. `fda` — a resident on a team-bound channel, replying through the Forward Deployed Agent chain. `resident` — a resident on an internal channel, replying through the channel mirror. `observer` — no resident is attached, so the channel is recorded and nobody replies. `concierge` — no longer returned anywhere; until Track F it was the value for a channel with no resident, meaning the shared concierge agent answered there. The value is retained in this enum so consumers matching on it do not break, and its removal rides a deliberate API change. */
1177
- route_kind: z.enum(["fda", "resident", "observer", "concierge"]).describe("Effective Slack ingress route. `fda` — a resident on a team-bound channel, replying through the Forward Deployed Agent chain. `resident` — a resident on an internal channel, replying through the channel mirror. `observer` — no resident is attached, so the channel is recorded and nobody replies. `concierge` — no longer returned anywhere; until Track F it was the value for a channel with no resident, meaning the shared concierge agent answered there. The value is retained in this enum so consumers matching on it do not break, and its removal rides a deliberate API change."),
1222
+ /** Effective Slack ingress route. `fda` — a resident on a team-bound channel, replying through the Forward Deployed Agent chain. `resident` — a resident on an internal channel, replying through the channel mirror. `observer` — no resident is attached, so the channel is recorded and nobody replies. */
1223
+ route_kind: z.enum(["fda", "resident", "observer"]).describe("Effective Slack ingress route. `fda` — a resident on a team-bound channel, replying through the Forward Deployed Agent chain. `resident` — a resident on an internal channel, replying through the channel mirror. `observer` — no resident is attached, so the channel is recorded and nobody replies."),
1178
1224
  /** The customer key this channel's agent is locked to, written when adding the customer finishes. A `posted` binding whose `scope_key` is still null has been accepted but not finished — the addition is either in flight or was refused. */
1179
1225
  scope_key: z.string().optional().describe("The customer key this channel's agent is locked to, written when adding the customer finishes. A `posted` binding whose `scope_key` is still null has been accepted but not finished — the addition is either in flight or was refused."),
1180
1226
  /** ID of the ArchAstro team this channel is bound to. */
@@ -1350,6 +1396,8 @@ export const solutionSummarySchema = z.object({
1350
1396
  id: z.string().describe("Solution config ID (`cfg_...`)."),
1351
1397
  /** Absolute URL of the Solution's cover image — the bundled asset the body's `image:` field names. A stable, non-expiring capability URL (like `org_logo.url`), safe to hold in caches and OpenGraph tags; it 404s if the Solution stops declaring a cover. `null` when the Solution has no cover image, and always `null` for org-scoped rows — the permanent URL is minted for system-scope (catalog) Solutions only. */
1352
1398
  image_url: z.string().nullable().optional().describe("Absolute URL of the Solution's cover image — the bundled asset the body's `image:` field names. A stable, non-expiring capability URL (like `org_logo.url`), safe to hold in caches and OpenGraph tags; it 404s if the Solution stops declaring a cover. `null` when the Solution has no cover image, and always `null` for org-scoped rows — the permanent URL is minted for system-scope (catalog) Solutions only."),
1399
+ /** Config IDs (`cfg_...`) of this Solution's installations in the viewer's organization. The array is empty when the Solution is visible only from the system catalog. */
1400
+ installed_config_ids: z.array(z.string()).describe("Config IDs (`cfg_...`) of this Solution's installations in the viewer's organization. The array is empty when the Solution is visible only from the system catalog."),
1353
1401
  /** Resource type. Always `"Solution"`. */
1354
1402
  kind: z.string().describe("Resource type. Always `\"Solution\"`."),
1355
1403
  /** When `upgrade_available` is `true`, the system-scope Solution config ID (`cfg_...`) that should be used as the upgrade source. `null` otherwise. */
@@ -1898,10 +1946,10 @@ export const agentUpgradeChangeSchema = z.object({
1898
1946
  name: z.string().optional().describe("Human-facing name of the child resource this change touches (tool/routine/skill/computer name, or builtin tool key for unnamed builtin tools). Falls back to the source template's name. `null` for the synthetic `agent_base` entry."),
1899
1947
  /** Summary of the parent AgentTemplate config (`cfg_...`) being applied in this upgrade. */
1900
1948
  parent_template_config: upgradeTemplateSummarySchema.describe("Summary of the parent AgentTemplate config (`cfg_...`) being applied in this upgrade."),
1901
- /** Resource-type-specific identity details. Tools: `tool_type`, `builtin_tool_key`, `name_prefix`, `handler_type`, `instruction`. Routines: `handler_type`, `preset_name`, `event_type`, `schedule`, `trigger_context`. Skills: `instruction`. Computers: `region`. Only populated keys are present; `null` when nothing is known. */
1902
- resource: z.record(z.custom((value) => value !== undefined)).optional().describe("Resource-type-specific identity details. Tools: `tool_type`, `builtin_tool_key`, `name_prefix`, `handler_type`, `instruction`. Routines: `handler_type`, `preset_name`, `event_type`, `schedule`, `trigger_context`. Skills: `instruction`. Computers: `region`. Only populated keys are present; `null` when nothing is known."),
1903
- /** Type of the child resource being changed. One of `"agent"`, `"tool"`, `"routine"`, `"skill"`, or `"computer"`. */
1904
- resource_type: z.string().describe("Type of the child resource being changed. One of `\"agent\"`, `\"tool\"`, `\"routine\"`, `\"skill\"`, or `\"computer\"`."),
1949
+ /** Resource-type-specific identity details. Tools: `tool_type`, `builtin_tool_key`, `name_prefix`, `handler_type`, `instruction`. Routines: `handler_type`, `preset_name`, `event_type`, `schedule`, `trigger_context`. Skills: `instruction`. Computers: `region`. Knowledge: `mode`, `knowledge_key`, `extraction_output_ref`. Only populated keys are present; `null` when nothing is known. */
1950
+ resource: z.record(z.custom((value) => value !== undefined)).optional().describe("Resource-type-specific identity details. Tools: `tool_type`, `builtin_tool_key`, `name_prefix`, `handler_type`, `instruction`. Routines: `handler_type`, `preset_name`, `event_type`, `schedule`, `trigger_context`. Skills: `instruction`. Computers: `region`. Knowledge: `mode`, `knowledge_key`, `extraction_output_ref`. Only populated keys are present; `null` when nothing is known."),
1951
+ /** Type of the resource being changed. One of `"agent"`, `"tool"`, `"routine"`, `"skill"`, `"computer"`, or `"knowledge"`. */
1952
+ resource_type: z.string().describe("Type of the resource being changed. One of `\"agent\"`, `\"tool\"`, `\"routine\"`, `\"skill\"`, `\"computer\"`, or `\"knowledge\"`."),
1905
1953
  /** Summary of the specific child template config (`cfg_...`) that defines this resource. `null` when no source template is resolvable. */
1906
1954
  source_template_config: upgradeTemplateSummarySchema.optional().describe("Summary of the specific child template config (`cfg_...`) that defines this resource. `null` when no source template is resolvable."),
1907
1955
  }).describe("One child-resource change produced by an agent upgrade, describing the action to be taken on a single resource.");