@onesi/genesis 0.2.13 → 0.2.14

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.
@@ -140,6 +140,10 @@
140
140
  {
141
141
  "name": "connections",
142
142
  "description": "Connections (verified remote MCP servers)"
143
+ },
144
+ {
145
+ "name": "agents",
146
+ "description": "Agents (public agent search)"
143
147
  }
144
148
  ],
145
149
  "paths": {
@@ -41242,6 +41246,128 @@
41242
41246
  "x-mcp": true
41243
41247
  }
41244
41248
  },
41249
+ "/v1/dials/workflows/{workflow_id}": {
41250
+ "delete": {
41251
+ "operationId": "dials_deleteWorkflow",
41252
+ "summary": "Delete an owned workflow and its routing descriptor",
41253
+ "description": "Needs `dials:write`. Deletes the workflow with this id (the `id` you deployed it with) and every routing-rule descriptor row it was deployed as, in the verified org/workspace/project/environment only, and records a `workflows.delete` audit event whose actor is the verified gateway identity. Another organization's, workspace's, project's or environment's workflow, and a repeat delete, are 404 `workflow_not_found`. If a held (not released) number is assigned to the workflow (kind `workflow` or `routing_rule`), the delete is refused with 409 `workflow_number_attached` and nothing changes: unassign the number first with `assignNumber` and no resource. Managed inbound policies (`/v1/routing/rules`) are never deleted here. Scope is required in the JSON body, not query parameters.",
41254
+ "parameters": [
41255
+ {
41256
+ "name": "workflow_id",
41257
+ "in": "path",
41258
+ "required": true,
41259
+ "schema": {
41260
+ "type": "string",
41261
+ "minLength": 1,
41262
+ "maxLength": 256
41263
+ }
41264
+ }
41265
+ ],
41266
+ "requestBody": {
41267
+ "required": true,
41268
+ "content": {
41269
+ "application/json": {
41270
+ "schema": {
41271
+ "$ref": "#/components/schemas/Dials.DeleteWorkflow"
41272
+ }
41273
+ }
41274
+ }
41275
+ },
41276
+ "responses": {
41277
+ "200": {
41278
+ "description": "Deleted. The descriptor rows are gone; audit records are kept.",
41279
+ "content": {
41280
+ "application/json": {
41281
+ "schema": {
41282
+ "$ref": "#/components/schemas/Dials.DeleteWorkflowReceipt"
41283
+ }
41284
+ }
41285
+ }
41286
+ },
41287
+ "400": {
41288
+ "description": "Invalid scope or request shape.",
41289
+ "content": {
41290
+ "application/json": {
41291
+ "schema": {
41292
+ "$ref": "#/components/schemas/Dials.CustomerError"
41293
+ }
41294
+ }
41295
+ }
41296
+ },
41297
+ "401": {
41298
+ "description": "Missing or invalid verified identity.",
41299
+ "content": {
41300
+ "application/json": {
41301
+ "schema": {
41302
+ "$ref": "#/components/schemas/Dials.CustomerError"
41303
+ }
41304
+ }
41305
+ }
41306
+ },
41307
+ "403": {
41308
+ "description": "Selected scope is not authorized by signed identity or lacks the required Dials grant.",
41309
+ "content": {
41310
+ "application/json": {
41311
+ "schema": {
41312
+ "$ref": "#/components/schemas/Dials.CustomerError"
41313
+ }
41314
+ }
41315
+ }
41316
+ },
41317
+ "404": {
41318
+ "description": "No workflow with this id in the authorized scope (workflow_not_found).",
41319
+ "content": {
41320
+ "application/json": {
41321
+ "schema": {
41322
+ "$ref": "#/components/schemas/Dials.CustomerError"
41323
+ }
41324
+ }
41325
+ }
41326
+ },
41327
+ "409": {
41328
+ "description": "A held number is assigned to this workflow (workflow_number_attached); unassign it first.",
41329
+ "content": {
41330
+ "application/json": {
41331
+ "schema": {
41332
+ "$ref": "#/components/schemas/Dials.CustomerError"
41333
+ }
41334
+ }
41335
+ }
41336
+ },
41337
+ "500": {
41338
+ "description": "Durable store failed.",
41339
+ "content": {
41340
+ "application/json": {
41341
+ "schema": {
41342
+ "$ref": "#/components/schemas/Dials.CustomerError"
41343
+ }
41344
+ }
41345
+ }
41346
+ },
41347
+ "503": {
41348
+ "description": "Backend is not ready.",
41349
+ "content": {
41350
+ "application/json": {
41351
+ "schema": {
41352
+ "$ref": "#/components/schemas/Dials.CustomerError"
41353
+ }
41354
+ }
41355
+ }
41356
+ }
41357
+ },
41358
+ "tags": [
41359
+ "dials"
41360
+ ],
41361
+ "x-genesis-service": "dials",
41362
+ "x-upstream": {
41363
+ "base": "https://dials-808958844152.us-central1.run.app",
41364
+ "method": "DELETE",
41365
+ "path": "/v1/workflows/{workflow_id}",
41366
+ "status": "unverified"
41367
+ },
41368
+ "x-mcp": true
41369
+ }
41370
+ },
41245
41371
  "/v1/dials/numbers/{number_id}": {
41246
41372
  "delete": {
41247
41373
  "operationId": "dials_deleteNumber",
@@ -102050,6 +102176,126 @@
102050
102176
  },
102051
102177
  "x-mcp": false
102052
102178
  }
102179
+ },
102180
+ "/v1/agents/search": {
102181
+ "get": {
102182
+ "operationId": "agents_search",
102183
+ "summary": "Search public agents",
102184
+ "description": "Public, no credential. Ranked full-text search over public Live agents: matches in the name rank above the organization name, then the description, then the agent id; every word must match, as a prefix. An exact agent id ranks that agent first. GET only, no body, no other query key. Cached at the edge for up to 30 seconds. Rate limited per client address (429 RATE_LIMITED with Retry-After).",
102185
+ "parameters": [
102186
+ {
102187
+ "name": "q",
102188
+ "in": "query",
102189
+ "required": true,
102190
+ "description": "What to search for, 1 to 200 characters.",
102191
+ "schema": {
102192
+ "type": "string",
102193
+ "minLength": 1,
102194
+ "maxLength": 200
102195
+ }
102196
+ },
102197
+ {
102198
+ "name": "limit",
102199
+ "in": "query",
102200
+ "required": false,
102201
+ "description": "Most results to return, 1 to 20 (default 20).",
102202
+ "schema": {
102203
+ "type": "integer",
102204
+ "minimum": 1,
102205
+ "maximum": 20,
102206
+ "default": 20
102207
+ }
102208
+ }
102209
+ ],
102210
+ "responses": {
102211
+ "200": {
102212
+ "description": "Matching public agents, best first",
102213
+ "content": {
102214
+ "application/json": {
102215
+ "schema": {
102216
+ "$ref": "#/components/schemas/Agents.AgentSearchResults"
102217
+ }
102218
+ }
102219
+ }
102220
+ },
102221
+ "400": {
102222
+ "description": "INVALID_QUERY (q or limit out of range) or INVALID_REQUEST (another query key",
102223
+ "or a body)": null
102224
+ },
102225
+ "405": {
102226
+ "description": "METHOD_NOT_ALLOWED (after a credential verifies; without one",
102227
+ "401 like every non-public path)": null
102228
+ },
102229
+ "429": {
102230
+ "description": "RATE_LIMITED"
102231
+ },
102232
+ "502": {
102233
+ "description": "BAD_GATEWAY (the index answered outside its contract; nothing is passed through)"
102234
+ },
102235
+ "503": {
102236
+ "description": "AGENT_INDEX_UNAVAILABLE or SERVICE_DISABLED"
102237
+ }
102238
+ },
102239
+ "tags": [
102240
+ "agents"
102241
+ ],
102242
+ "security": [],
102243
+ "x-genesis-service": "agents",
102244
+ "x-upstream": {
102245
+ "base": "https://genesis-agent-index.invalid",
102246
+ "method": "GET",
102247
+ "path": "/v1/agents/search",
102248
+ "status": "not_deployed"
102249
+ },
102250
+ "x-mcp": true
102251
+ }
102252
+ },
102253
+ "/v1/agents/sitemap": {
102254
+ "get": {
102255
+ "operationId": "agents_sitemap",
102256
+ "summary": "List every public agent for crawlers",
102257
+ "description": "Public, no credential. Every public Live agent id (at most 50,000) with when its public content last changed, for sitemaps and spiders. GET only, no query string, no body. Cached at the edge for up to 5 minutes. Rate limited per client address.",
102258
+ "responses": {
102259
+ "200": {
102260
+ "description": "Public agent ids",
102261
+ "content": {
102262
+ "application/json": {
102263
+ "schema": {
102264
+ "$ref": "#/components/schemas/Agents.AgentSitemap"
102265
+ }
102266
+ }
102267
+ }
102268
+ },
102269
+ "400": {
102270
+ "description": "INVALID_REQUEST (a query string or a body)"
102271
+ },
102272
+ "405": {
102273
+ "description": "METHOD_NOT_ALLOWED (after a credential verifies; without one",
102274
+ "401 like every non-public path)": null
102275
+ },
102276
+ "429": {
102277
+ "description": "RATE_LIMITED"
102278
+ },
102279
+ "502": {
102280
+ "description": "BAD_GATEWAY"
102281
+ },
102282
+ "503": {
102283
+ "description": "AGENT_INDEX_UNAVAILABLE or SERVICE_DISABLED"
102284
+ }
102285
+ },
102286
+ "tags": [
102287
+ "agents"
102288
+ ],
102289
+ "security": [],
102290
+ "x-genesis-service": "agents",
102291
+ "x-upstream": {
102292
+ "base": "https://genesis-agent-index.invalid",
102293
+ "method": "GET",
102294
+ "path": "/v1/agents/sitemap",
102295
+ "status": "not_deployed"
102296
+ },
102297
+ "x-mcp": true
102298
+ }
102053
102299
  }
102054
102300
  },
102055
102301
  "components": {
@@ -131617,6 +131863,65 @@
131617
131863
  "additionalProperties": false,
131618
131864
  "description": "Upsert by scoped workflow ID. Backend supplies deployed status, stable route ID and enabled routing descriptor. This is persisted configuration, not runtime/telephony execution proof."
131619
131865
  },
131866
+ "Dials.DeleteWorkflow": {
131867
+ "type": "object",
131868
+ "additionalProperties": false,
131869
+ "properties": {
131870
+ "scope": {
131871
+ "$ref": "#/components/schemas/Dials.Scope"
131872
+ },
131873
+ "actorId": {
131874
+ "type": [
131875
+ "string",
131876
+ "null"
131877
+ ],
131878
+ "description": "Optional compatibility field; the actual actor comes from the verified gateway identity."
131879
+ }
131880
+ },
131881
+ "required": [
131882
+ "scope"
131883
+ ]
131884
+ },
131885
+ "Dials.DeleteWorkflowReceipt": {
131886
+ "type": "object",
131887
+ "additionalProperties": false,
131888
+ "properties": {
131889
+ "ok": {
131890
+ "type": "boolean",
131891
+ "const": true
131892
+ },
131893
+ "deleted": {
131894
+ "type": "boolean",
131895
+ "const": true
131896
+ },
131897
+ "workflow": {
131898
+ "$ref": "#/components/schemas/Dials.WorkflowDocument"
131899
+ },
131900
+ "routeIds": {
131901
+ "type": "array",
131902
+ "items": {
131903
+ "type": "string"
131904
+ },
131905
+ "description": "The routing-rule descriptor ids that were deleted."
131906
+ },
131907
+ "auditId": {
131908
+ "type": "string"
131909
+ },
131910
+ "next": {
131911
+ "type": "string",
131912
+ "const": "workflow_deleted"
131913
+ }
131914
+ },
131915
+ "required": [
131916
+ "ok",
131917
+ "deleted",
131918
+ "workflow",
131919
+ "routeIds",
131920
+ "auditId",
131921
+ "next"
131922
+ ],
131923
+ "description": "The deleted workflow as it was, with status \"deleted\"."
131924
+ },
131620
131925
  "Dials.CallSession": {
131621
131926
  "type": "object",
131622
131927
  "required": [
@@ -158323,6 +158628,115 @@
158323
158628
  "type": "boolean"
158324
158629
  }
158325
158630
  }
158631
+ },
158632
+ "Agents.AgentSearchResults": {
158633
+ "type": "object",
158634
+ "additionalProperties": false,
158635
+ "required": [
158636
+ "results"
158637
+ ],
158638
+ "properties": {
158639
+ "results": {
158640
+ "type": "array",
158641
+ "maxItems": 20,
158642
+ "items": {
158643
+ "$ref": "#/components/schemas/Agents.AgentSearchHit"
158644
+ }
158645
+ }
158646
+ }
158647
+ },
158648
+ "Agents.AgentSearchHit": {
158649
+ "type": "object",
158650
+ "additionalProperties": false,
158651
+ "required": [
158652
+ "agentId",
158653
+ "did",
158654
+ "verified",
158655
+ "environment"
158656
+ ],
158657
+ "description": "One public agent. Optional keys are omitted when the owner did not disclose them.",
158658
+ "properties": {
158659
+ "agentId": {
158660
+ "type": "string",
158661
+ "pattern": "^a_[A-Za-z0-9]{1,64}$",
158662
+ "description": "The agent's IAM id (a_...)"
158663
+ },
158664
+ "did": {
158665
+ "type": "string",
158666
+ "description": "The agent's canonical DID (did:oas:agent:...)"
158667
+ },
158668
+ "verified": {
158669
+ "type": "boolean",
158670
+ "const": true,
158671
+ "description": "IAM vouches for this public identity"
158672
+ },
158673
+ "environment": {
158674
+ "type": "string",
158675
+ "const": "live",
158676
+ "description": "Always live; Sandbox agents are never indexed"
158677
+ },
158678
+ "name": {
158679
+ "type": "string",
158680
+ "maxLength": 120,
158681
+ "description": "The agent's name (when disclosed)"
158682
+ },
158683
+ "owner": {
158684
+ "type": "object",
158685
+ "additionalProperties": false,
158686
+ "required": [
158687
+ "name"
158688
+ ],
158689
+ "description": "The owning organization (when its name is disclosed). Never a person.",
158690
+ "properties": {
158691
+ "name": {
158692
+ "type": "string",
158693
+ "maxLength": 120
158694
+ }
158695
+ }
158696
+ },
158697
+ "description": {
158698
+ "type": "string",
158699
+ "maxLength": 300,
158700
+ "description": "The owner's public description (when disclosed)"
158701
+ },
158702
+ "createdAt": {
158703
+ "type": "integer",
158704
+ "description": "When the agent was created",
158705
+ "in milliseconds since the epoch (when disclosed)": null
158706
+ }
158707
+ }
158708
+ },
158709
+ "Agents.AgentSitemap": {
158710
+ "type": "object",
158711
+ "additionalProperties": false,
158712
+ "required": [
158713
+ "agents"
158714
+ ],
158715
+ "properties": {
158716
+ "agents": {
158717
+ "type": "array",
158718
+ "maxItems": 50000,
158719
+ "items": {
158720
+ "type": "object",
158721
+ "additionalProperties": false,
158722
+ "required": [
158723
+ "agentId",
158724
+ "updatedAt"
158725
+ ],
158726
+ "properties": {
158727
+ "agentId": {
158728
+ "type": "string",
158729
+ "pattern": "^a_[A-Za-z0-9]{1,64}$"
158730
+ },
158731
+ "updatedAt": {
158732
+ "type": "integer",
158733
+ "description": "When the agent's public content last changed",
158734
+ "in milliseconds since the epoch": null
158735
+ }
158736
+ }
158737
+ }
158738
+ }
158739
+ }
158326
158740
  }
158327
158741
  },
158328
158742
  "responses": {
@@ -160244,7 +160658,7 @@
160244
160658
  "upstream": "https://dials-808958844152.us-central1.run.app",
160245
160659
  "status": "unverified",
160246
160660
  "statusNote": "Backend healthy; Genesis signed-identity integration pending deployment and acceptance.",
160247
- "operations": 37
160661
+ "operations": 38
160248
160662
  },
160249
160663
  {
160250
160664
  "name": "silos",
@@ -160421,6 +160835,15 @@
160421
160835
  "statusNote": "Closed gateway admission behind CONNECTIONS_GATEWAY_ENABLED (default off): /v1/connections/* with a v2 signed identity and selected context (API key, M2M token or login session); connections:read for GET, connections:write otherwise, connections:* both. Sandbox in P0; Live only through UPSTREAM_CONNECTIONS_LIVE once connections is in GENESIS_LIVE_SERVICES. GET /v1/connections/oauth/callback is anonymous (a person's browser after vendor consent): no credential is read or forwarded and no identity envelope is sent. connections_authorize is a human-consent operation the hosted MCP refuses. Tool results and vendor descriptions are wrapped as untrusted. Vendor tokens live in Blinds only.",
160422
160836
  "gatewayRoute": "dedicated",
160423
160837
  "operations": 13
160838
+ },
160839
+ {
160840
+ "name": "agents",
160841
+ "title": "Agents (public agent search)",
160842
+ "upstream": "https://genesis-agent-index.invalid",
160843
+ "status": "not_deployed",
160844
+ "statusNote": "genesis-agent-index (l1felabs/genesis-agent-index) is not deployed. The gateway admits it behind AGENT_INDEX_ENABLED with AGENT_INDEX_ORIGIN (gateway/src/agent-index.ts): public and anonymous (no credential is read or forwarded), rate limited per client address, never metered. Live public agents only.",
160845
+ "gatewayRoute": "dedicated",
160846
+ "operations": 2
160424
160847
  }
160425
160848
  ]
160426
160849
  }
package/dist/index.d.ts CHANGED
@@ -29,8 +29,9 @@ export { gardenModule } from './garden.js';
29
29
  export { orgsEntitiesModule, type OrgsDocumentContent } from './orgs.js';
30
30
  export { scopesModule } from './scopes.js';
31
31
  export { billingModule, creditsModule, gatewayModule, orgsModule } from './gateway.js';
32
+ export { agentsModule, AGENT_SEARCH_LIMIT_MAX, AGENT_SEARCH_Q_MAX, type AgentSearchHit, type AgentSitemapEntry } from './agents.js';
32
33
  export { boxesModule } from './boxes.js';
33
- export { dialsModule, dialsEmergencyAddressFeedback, type DialsEmergencyAddressFeedback, type DialsScope, type DialsOutboundCall, type DialsCallControl, type DialsEmergencyAddress, type DialsCallListItem, type DialsCallDispatchState, type DialsMessage, type DialsMessageTemplate, type DialsMessagingBrand, type DialsMessagingCampaign, type DialsWorkflowDocument, type DialsRoutingAction, type DialsRoutingRule, type DialsRoutingRuleReceipt, type DialsOutboundCallReceipt, type DialsRecoveredOutboundCallReceipt } from './dials.js';
34
+ export { dialsModule, dialsEmergencyAddressFeedback, type DialsEmergencyAddressFeedback, type DialsScope, type DialsOutboundCall, type DialsCallControl, type DialsEmergencyAddress, type DialsCallListItem, type DialsCallDispatchState, type DialsMessage, type DialsMessageTemplate, type DialsMessagingBrand, type DialsMessagingCampaign, type DialsWorkflowDocument, type DialsWorkflowDeleteReceipt, type DialsRoutingAction, type DialsRoutingRule, type DialsRoutingRuleReceipt, type DialsOutboundCallReceipt, type DialsRecoveredOutboundCallReceipt } from './dials.js';
34
35
  export { hivesObjectKey, type HivesBucket, type HivesObject, type HivesObjectAcknowledgement, type HivesStorageWriteReplay, type HivesObjectList, type HivesCorsRule, type HivesCreateBucket, type HivesPresign, type HivesPresignedUrl } from './hives-cells.js';
35
36
  export { hivesSseEvents, hivesSseReader, type HivesLogStreamEvent, type HivesLogStreamQuery, type HivesLogWindow, type HivesLogWindowOptions } from './hives-platform.js';
36
37
  export { hivesQueueBody, type HivesQueue, type HivesQueueConfig, type HivesQueueCreate, type HivesQueueSend, type HivesQueueDelivery, type HivesDeadLetter, type HivesDeadLetterStats } from './hives-queues.js';
package/dist/index.js CHANGED
@@ -24,6 +24,7 @@ export { gardenModule } from './garden.js';
24
24
  export { orgsEntitiesModule } from './orgs.js';
25
25
  export { scopesModule } from './scopes.js';
26
26
  export { billingModule, creditsModule, gatewayModule, orgsModule } from './gateway.js';
27
+ export { agentsModule, AGENT_SEARCH_LIMIT_MAX, AGENT_SEARCH_Q_MAX } from './agents.js';
27
28
  export { boxesModule } from './boxes.js';
28
29
  export { dialsModule, dialsEmergencyAddressFeedback } from './dials.js';
29
30
  export { hivesObjectKey } from './hives-cells.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onesi/genesis",
3
- "version": "0.2.13",
3
+ "version": "0.2.14",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/l1felabs/genesis-api.git",