@chipschat/protocol 1.0.2 → 1.0.3
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.
- package/dist/generated/types.d.ts +72 -0
- package/dist/generated/types.d.ts.map +1 -1
- package/dist/src/banners.d.ts +57 -0
- package/dist/src/banners.d.ts.map +1 -0
- package/dist/src/banners.js +43 -0
- package/dist/src/banners.js.map +1 -0
- package/dist/src/commands.d.ts +18 -3
- package/dist/src/commands.d.ts.map +1 -1
- package/dist/src/commands.js +106 -7
- package/dist/src/commands.js.map +1 -1
- package/dist/src/connectors.d.ts +6 -0
- package/dist/src/connectors.d.ts.map +1 -1
- package/dist/src/connectors.js +13 -1
- package/dist/src/connectors.js.map +1 -1
- package/dist/src/events/chips-to-harness.d.ts.map +1 -1
- package/dist/src/events/chips-to-harness.js +16 -0
- package/dist/src/events/chips-to-harness.js.map +1 -1
- package/dist/src/events/workspace.d.ts +14 -1
- package/dist/src/events/workspace.d.ts.map +1 -1
- package/dist/src/events/workspace.js +53 -0
- package/dist/src/events/workspace.js.map +1 -1
- package/dist/src/frames.d.ts +25 -4
- package/dist/src/frames.d.ts.map +1 -1
- package/dist/src/frames.js +16 -0
- package/dist/src/frames.js.map +1 -1
- package/dist/src/index.d.ts +7 -5
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -4
- package/dist/src/index.js.map +1 -1
- package/dist/src/pairing.d.ts +20 -0
- package/dist/src/pairing.d.ts.map +1 -1
- package/dist/src/pairing.js +30 -0
- package/dist/src/pairing.js.map +1 -1
- package/dist/src/project.d.ts +3 -3
- package/dist/src/project.js +1 -1
- package/dist/src/project.js.map +1 -1
- package/dist/src/room-note.d.ts +43 -3
- package/dist/src/room-note.d.ts.map +1 -1
- package/dist/src/room-note.js +86 -8
- package/dist/src/room-note.js.map +1 -1
- package/dist/src/spend.d.ts +38 -0
- package/dist/src/spend.d.ts.map +1 -1
- package/dist/src/spend.js +2 -0
- package/dist/src/spend.js.map +1 -1
- package/fixtures/approval.held_started.json +15 -0
- package/fixtures/approval.held_stopped.json +15 -0
- package/fixtures/frames/banners.json +14 -0
- package/generated/agent-connect.json +241 -0
- package/generated/schema/approval.held_started.json +107 -0
- package/generated/schema/approval.held_stopped.json +107 -0
- package/generated/schema/approval.resolved.json +11 -0
- package/generated/schema/hello.json +10 -0
- package/generated/types.ts +74 -0
- package/package.json +1 -1
|
@@ -232,6 +232,12 @@
|
|
|
232
232
|
{
|
|
233
233
|
"$ref": "#/$defs/ApprovalRouted"
|
|
234
234
|
},
|
|
235
|
+
{
|
|
236
|
+
"$ref": "#/$defs/ApprovalHeldStopped"
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"$ref": "#/$defs/ApprovalHeldStarted"
|
|
240
|
+
},
|
|
235
241
|
{
|
|
236
242
|
"$ref": "#/$defs/AttachmentLimitsSet"
|
|
237
243
|
},
|
|
@@ -3514,6 +3520,16 @@
|
|
|
3514
3520
|
"minLength": 1,
|
|
3515
3521
|
"maxLength": 60,
|
|
3516
3522
|
"description": "The server's own version."
|
|
3523
|
+
},
|
|
3524
|
+
"takes": {
|
|
3525
|
+
"description": "What this server keeps of what a person's client may send beyond the base set, by the names in `SERVER_TAKES`. `held_yes` is `for_minutes` and `until_stopped` on `approval.resolved`. A server older than the field says nothing, and drops those fields, so a client offers neither to it (ADR 0281).",
|
|
3526
|
+
"maxItems": 32,
|
|
3527
|
+
"type": "array",
|
|
3528
|
+
"items": {
|
|
3529
|
+
"type": "string",
|
|
3530
|
+
"minLength": 1,
|
|
3531
|
+
"maxLength": 40
|
|
3532
|
+
}
|
|
3517
3533
|
}
|
|
3518
3534
|
},
|
|
3519
3535
|
"required": [
|
|
@@ -6395,6 +6411,17 @@
|
|
|
6395
6411
|
"description": "With `always`: the rule is the harness's in every space, not only this one (ADR 0239). An owner or an admin only.",
|
|
6396
6412
|
"type": "boolean"
|
|
6397
6413
|
},
|
|
6414
|
+
"for_minutes": {
|
|
6415
|
+
"description": "With `once` and a yes: for this many minutes, everything the asking agent asks in this space goes ahead without a card (ADR 0239, addendum of 6 November 2026; ADR 0281), commands Chips can't read too. An ask that matters still waits for a person. Chips keeps the rule, so the harness is answered once.",
|
|
6416
|
+
"type": "integer",
|
|
6417
|
+
"minimum": 5,
|
|
6418
|
+
"maximum": 240
|
|
6419
|
+
},
|
|
6420
|
+
"until_stopped": {
|
|
6421
|
+
"description": "With `once` and a yes, instead of `for_minutes`: everything the asking agent asks in this space goes ahead without a card until a person stops it (`approval.held_stopped`, ADR 0281). An ask that matters still waits for a person. Chips keeps the rule, so the harness is answered once.",
|
|
6422
|
+
"type": "boolean",
|
|
6423
|
+
"const": true
|
|
6424
|
+
},
|
|
6398
6425
|
"updated_input": {
|
|
6399
6426
|
"description": "The edited action input, when the decision is `edited`."
|
|
6400
6427
|
},
|
|
@@ -13493,6 +13520,220 @@
|
|
|
13493
13520
|
"$id": "https://chipschat.ai/schema/v1/approval.routed.json",
|
|
13494
13521
|
"title": "ApprovalRouted"
|
|
13495
13522
|
},
|
|
13523
|
+
"ApprovalHeldStopped": {
|
|
13524
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
13525
|
+
"type": "object",
|
|
13526
|
+
"properties": {
|
|
13527
|
+
"v": {
|
|
13528
|
+
"type": "number",
|
|
13529
|
+
"const": 1,
|
|
13530
|
+
"description": "Protocol major version."
|
|
13531
|
+
},
|
|
13532
|
+
"type": {
|
|
13533
|
+
"type": "string",
|
|
13534
|
+
"const": "approval.held_stopped"
|
|
13535
|
+
},
|
|
13536
|
+
"id": {
|
|
13537
|
+
"type": "string",
|
|
13538
|
+
"pattern": "^evt_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
|
|
13539
|
+
"description": "The event's own id. Stable across a retry of the same event."
|
|
13540
|
+
},
|
|
13541
|
+
"ts": {
|
|
13542
|
+
"type": "string",
|
|
13543
|
+
"format": "date-time",
|
|
13544
|
+
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
|
|
13545
|
+
"description": "When it happened, by Chips' clock. Stamped on the way in; a value the sender writes is replaced."
|
|
13546
|
+
},
|
|
13547
|
+
"workspace_id": {
|
|
13548
|
+
"type": "string",
|
|
13549
|
+
"pattern": "^ws_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
|
|
13550
|
+
"description": "A workspace identifier: `ws_` followed by a ULID."
|
|
13551
|
+
},
|
|
13552
|
+
"space_id": {
|
|
13553
|
+
"description": "The space, when the event belongs to one.",
|
|
13554
|
+
"type": "string",
|
|
13555
|
+
"pattern": "^spc_[0-7][0-9A-HJKMNP-TV-Z]{25}$"
|
|
13556
|
+
},
|
|
13557
|
+
"run_id": {
|
|
13558
|
+
"description": "The run, when the event belongs to one.",
|
|
13559
|
+
"type": "string",
|
|
13560
|
+
"pattern": "^run_[0-7][0-9A-HJKMNP-TV-Z]{25}$"
|
|
13561
|
+
},
|
|
13562
|
+
"seq": {
|
|
13563
|
+
"description": "Assigned by the server on append, monotonic per workspace. Absent on the way in.",
|
|
13564
|
+
"type": "integer",
|
|
13565
|
+
"exclusiveMinimum": 0,
|
|
13566
|
+
"maximum": 9007199254740991
|
|
13567
|
+
},
|
|
13568
|
+
"idempotency_key": {
|
|
13569
|
+
"description": "Required on every client-originated write. Sending the same key twice is a no-op.",
|
|
13570
|
+
"type": "string",
|
|
13571
|
+
"minLength": 1,
|
|
13572
|
+
"maxLength": 200
|
|
13573
|
+
},
|
|
13574
|
+
"actor": {
|
|
13575
|
+
"type": "object",
|
|
13576
|
+
"properties": {
|
|
13577
|
+
"kind": {
|
|
13578
|
+
"type": "string",
|
|
13579
|
+
"enum": [
|
|
13580
|
+
"person",
|
|
13581
|
+
"harness",
|
|
13582
|
+
"agent",
|
|
13583
|
+
"system"
|
|
13584
|
+
],
|
|
13585
|
+
"description": "Whether a person, a harness, one of a harness's agents or Chips itself acted."
|
|
13586
|
+
},
|
|
13587
|
+
"id": {
|
|
13588
|
+
"type": "string",
|
|
13589
|
+
"minLength": 1,
|
|
13590
|
+
"description": "The participant id, or `system` for Chips."
|
|
13591
|
+
},
|
|
13592
|
+
"harness_id": {
|
|
13593
|
+
"description": "For an agent: the harness it speaks through, whose budget and runs are the agent's (ADR 0087). Filled in by Chips.",
|
|
13594
|
+
"type": "string",
|
|
13595
|
+
"pattern": "^hrn_[0-7][0-9A-HJKMNP-TV-Z]{25}$"
|
|
13596
|
+
}
|
|
13597
|
+
},
|
|
13598
|
+
"required": [
|
|
13599
|
+
"kind",
|
|
13600
|
+
"id"
|
|
13601
|
+
],
|
|
13602
|
+
"description": "The participant an event is attributed to."
|
|
13603
|
+
},
|
|
13604
|
+
"asker": {
|
|
13605
|
+
"type": "string",
|
|
13606
|
+
"minLength": 1,
|
|
13607
|
+
"maxLength": 120,
|
|
13608
|
+
"description": "Whose yes stops: the agent, or a harness without agents, as the run that asked is worked by."
|
|
13609
|
+
},
|
|
13610
|
+
"stopped_by": {
|
|
13611
|
+
"description": "Who stopped it. Filled in by Chips from the credential.",
|
|
13612
|
+
"type": "string",
|
|
13613
|
+
"minLength": 1,
|
|
13614
|
+
"maxLength": 120
|
|
13615
|
+
}
|
|
13616
|
+
},
|
|
13617
|
+
"required": [
|
|
13618
|
+
"v",
|
|
13619
|
+
"type",
|
|
13620
|
+
"id",
|
|
13621
|
+
"ts",
|
|
13622
|
+
"workspace_id",
|
|
13623
|
+
"actor",
|
|
13624
|
+
"asker"
|
|
13625
|
+
],
|
|
13626
|
+
"description": "A person stopped the yes that let an agent work without asking in a space, for an hour or until stopped. Its next ask comes to a person.",
|
|
13627
|
+
"$id": "https://chipschat.ai/schema/v1/approval.held_stopped.json",
|
|
13628
|
+
"title": "ApprovalHeldStopped"
|
|
13629
|
+
},
|
|
13630
|
+
"ApprovalHeldStarted": {
|
|
13631
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
13632
|
+
"type": "object",
|
|
13633
|
+
"properties": {
|
|
13634
|
+
"v": {
|
|
13635
|
+
"type": "number",
|
|
13636
|
+
"const": 1,
|
|
13637
|
+
"description": "Protocol major version."
|
|
13638
|
+
},
|
|
13639
|
+
"type": {
|
|
13640
|
+
"type": "string",
|
|
13641
|
+
"const": "approval.held_started"
|
|
13642
|
+
},
|
|
13643
|
+
"id": {
|
|
13644
|
+
"type": "string",
|
|
13645
|
+
"pattern": "^evt_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
|
|
13646
|
+
"description": "The event's own id. Stable across a retry of the same event."
|
|
13647
|
+
},
|
|
13648
|
+
"ts": {
|
|
13649
|
+
"type": "string",
|
|
13650
|
+
"format": "date-time",
|
|
13651
|
+
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
|
|
13652
|
+
"description": "When it happened, by Chips' clock. Stamped on the way in; a value the sender writes is replaced."
|
|
13653
|
+
},
|
|
13654
|
+
"workspace_id": {
|
|
13655
|
+
"type": "string",
|
|
13656
|
+
"pattern": "^ws_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
|
|
13657
|
+
"description": "A workspace identifier: `ws_` followed by a ULID."
|
|
13658
|
+
},
|
|
13659
|
+
"space_id": {
|
|
13660
|
+
"description": "The space, when the event belongs to one.",
|
|
13661
|
+
"type": "string",
|
|
13662
|
+
"pattern": "^spc_[0-7][0-9A-HJKMNP-TV-Z]{25}$"
|
|
13663
|
+
},
|
|
13664
|
+
"run_id": {
|
|
13665
|
+
"description": "The run, when the event belongs to one.",
|
|
13666
|
+
"type": "string",
|
|
13667
|
+
"pattern": "^run_[0-7][0-9A-HJKMNP-TV-Z]{25}$"
|
|
13668
|
+
},
|
|
13669
|
+
"seq": {
|
|
13670
|
+
"description": "Assigned by the server on append, monotonic per workspace. Absent on the way in.",
|
|
13671
|
+
"type": "integer",
|
|
13672
|
+
"exclusiveMinimum": 0,
|
|
13673
|
+
"maximum": 9007199254740991
|
|
13674
|
+
},
|
|
13675
|
+
"idempotency_key": {
|
|
13676
|
+
"description": "Required on every client-originated write. Sending the same key twice is a no-op.",
|
|
13677
|
+
"type": "string",
|
|
13678
|
+
"minLength": 1,
|
|
13679
|
+
"maxLength": 200
|
|
13680
|
+
},
|
|
13681
|
+
"actor": {
|
|
13682
|
+
"type": "object",
|
|
13683
|
+
"properties": {
|
|
13684
|
+
"kind": {
|
|
13685
|
+
"type": "string",
|
|
13686
|
+
"enum": [
|
|
13687
|
+
"person",
|
|
13688
|
+
"harness",
|
|
13689
|
+
"agent",
|
|
13690
|
+
"system"
|
|
13691
|
+
],
|
|
13692
|
+
"description": "Whether a person, a harness, one of a harness's agents or Chips itself acted."
|
|
13693
|
+
},
|
|
13694
|
+
"id": {
|
|
13695
|
+
"type": "string",
|
|
13696
|
+
"minLength": 1,
|
|
13697
|
+
"description": "The participant id, or `system` for Chips."
|
|
13698
|
+
},
|
|
13699
|
+
"harness_id": {
|
|
13700
|
+
"description": "For an agent: the harness it speaks through, whose budget and runs are the agent's (ADR 0087). Filled in by Chips.",
|
|
13701
|
+
"type": "string",
|
|
13702
|
+
"pattern": "^hrn_[0-7][0-9A-HJKMNP-TV-Z]{25}$"
|
|
13703
|
+
}
|
|
13704
|
+
},
|
|
13705
|
+
"required": [
|
|
13706
|
+
"kind",
|
|
13707
|
+
"id"
|
|
13708
|
+
],
|
|
13709
|
+
"description": "The participant an event is attributed to."
|
|
13710
|
+
},
|
|
13711
|
+
"asker": {
|
|
13712
|
+
"type": "string",
|
|
13713
|
+
"minLength": 1,
|
|
13714
|
+
"maxLength": 120,
|
|
13715
|
+
"description": "Whose asks go ahead: the agent, or a harness without agents, in the space."
|
|
13716
|
+
},
|
|
13717
|
+
"started_by": {
|
|
13718
|
+
"description": "Who gave it. Filled in by Chips from the credential.",
|
|
13719
|
+
"type": "string",
|
|
13720
|
+
"minLength": 1,
|
|
13721
|
+
"maxLength": 120
|
|
13722
|
+
}
|
|
13723
|
+
},
|
|
13724
|
+
"required": [
|
|
13725
|
+
"v",
|
|
13726
|
+
"type",
|
|
13727
|
+
"id",
|
|
13728
|
+
"ts",
|
|
13729
|
+
"workspace_id",
|
|
13730
|
+
"actor",
|
|
13731
|
+
"asker"
|
|
13732
|
+
],
|
|
13733
|
+
"description": "A person let an agent work without asking in a space until it is stopped, from the agent's page rather than an ask's card.",
|
|
13734
|
+
"$id": "https://chipschat.ai/schema/v1/approval.held_started.json",
|
|
13735
|
+
"title": "ApprovalHeldStarted"
|
|
13736
|
+
},
|
|
13496
13737
|
"AttachmentLimitsSet": {
|
|
13497
13738
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
13498
13739
|
"type": "object",
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"properties": {
|
|
5
|
+
"v": {
|
|
6
|
+
"type": "number",
|
|
7
|
+
"const": 1,
|
|
8
|
+
"description": "Protocol major version."
|
|
9
|
+
},
|
|
10
|
+
"type": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"const": "approval.held_started"
|
|
13
|
+
},
|
|
14
|
+
"id": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"pattern": "^evt_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
|
|
17
|
+
"description": "The event's own id. Stable across a retry of the same event."
|
|
18
|
+
},
|
|
19
|
+
"ts": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"format": "date-time",
|
|
22
|
+
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
|
|
23
|
+
"description": "When it happened, by Chips' clock. Stamped on the way in; a value the sender writes is replaced."
|
|
24
|
+
},
|
|
25
|
+
"workspace_id": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"pattern": "^ws_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
|
|
28
|
+
"description": "A workspace identifier: `ws_` followed by a ULID."
|
|
29
|
+
},
|
|
30
|
+
"space_id": {
|
|
31
|
+
"description": "The space, when the event belongs to one.",
|
|
32
|
+
"type": "string",
|
|
33
|
+
"pattern": "^spc_[0-7][0-9A-HJKMNP-TV-Z]{25}$"
|
|
34
|
+
},
|
|
35
|
+
"run_id": {
|
|
36
|
+
"description": "The run, when the event belongs to one.",
|
|
37
|
+
"type": "string",
|
|
38
|
+
"pattern": "^run_[0-7][0-9A-HJKMNP-TV-Z]{25}$"
|
|
39
|
+
},
|
|
40
|
+
"seq": {
|
|
41
|
+
"description": "Assigned by the server on append, monotonic per workspace. Absent on the way in.",
|
|
42
|
+
"type": "integer",
|
|
43
|
+
"exclusiveMinimum": 0,
|
|
44
|
+
"maximum": 9007199254740991
|
|
45
|
+
},
|
|
46
|
+
"idempotency_key": {
|
|
47
|
+
"description": "Required on every client-originated write. Sending the same key twice is a no-op.",
|
|
48
|
+
"type": "string",
|
|
49
|
+
"minLength": 1,
|
|
50
|
+
"maxLength": 200
|
|
51
|
+
},
|
|
52
|
+
"actor": {
|
|
53
|
+
"type": "object",
|
|
54
|
+
"properties": {
|
|
55
|
+
"kind": {
|
|
56
|
+
"type": "string",
|
|
57
|
+
"enum": [
|
|
58
|
+
"person",
|
|
59
|
+
"harness",
|
|
60
|
+
"agent",
|
|
61
|
+
"system"
|
|
62
|
+
],
|
|
63
|
+
"description": "Whether a person, a harness, one of a harness's agents or Chips itself acted."
|
|
64
|
+
},
|
|
65
|
+
"id": {
|
|
66
|
+
"type": "string",
|
|
67
|
+
"minLength": 1,
|
|
68
|
+
"description": "The participant id, or `system` for Chips."
|
|
69
|
+
},
|
|
70
|
+
"harness_id": {
|
|
71
|
+
"description": "For an agent: the harness it speaks through, whose budget and runs are the agent's (ADR 0087). Filled in by Chips.",
|
|
72
|
+
"type": "string",
|
|
73
|
+
"pattern": "^hrn_[0-7][0-9A-HJKMNP-TV-Z]{25}$"
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"required": [
|
|
77
|
+
"kind",
|
|
78
|
+
"id"
|
|
79
|
+
],
|
|
80
|
+
"description": "The participant an event is attributed to."
|
|
81
|
+
},
|
|
82
|
+
"asker": {
|
|
83
|
+
"type": "string",
|
|
84
|
+
"minLength": 1,
|
|
85
|
+
"maxLength": 120,
|
|
86
|
+
"description": "Whose asks go ahead: the agent, or a harness without agents, in the space."
|
|
87
|
+
},
|
|
88
|
+
"started_by": {
|
|
89
|
+
"description": "Who gave it. Filled in by Chips from the credential.",
|
|
90
|
+
"type": "string",
|
|
91
|
+
"minLength": 1,
|
|
92
|
+
"maxLength": 120
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
"required": [
|
|
96
|
+
"v",
|
|
97
|
+
"type",
|
|
98
|
+
"id",
|
|
99
|
+
"ts",
|
|
100
|
+
"workspace_id",
|
|
101
|
+
"actor",
|
|
102
|
+
"asker"
|
|
103
|
+
],
|
|
104
|
+
"description": "A person let an agent work without asking in a space until it is stopped, from the agent's page rather than an ask's card.",
|
|
105
|
+
"$id": "https://chipschat.ai/schema/v1/approval.held_started.json",
|
|
106
|
+
"title": "ApprovalHeldStarted"
|
|
107
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"properties": {
|
|
5
|
+
"v": {
|
|
6
|
+
"type": "number",
|
|
7
|
+
"const": 1,
|
|
8
|
+
"description": "Protocol major version."
|
|
9
|
+
},
|
|
10
|
+
"type": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"const": "approval.held_stopped"
|
|
13
|
+
},
|
|
14
|
+
"id": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"pattern": "^evt_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
|
|
17
|
+
"description": "The event's own id. Stable across a retry of the same event."
|
|
18
|
+
},
|
|
19
|
+
"ts": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"format": "date-time",
|
|
22
|
+
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
|
|
23
|
+
"description": "When it happened, by Chips' clock. Stamped on the way in; a value the sender writes is replaced."
|
|
24
|
+
},
|
|
25
|
+
"workspace_id": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"pattern": "^ws_[0-7][0-9A-HJKMNP-TV-Z]{25}$",
|
|
28
|
+
"description": "A workspace identifier: `ws_` followed by a ULID."
|
|
29
|
+
},
|
|
30
|
+
"space_id": {
|
|
31
|
+
"description": "The space, when the event belongs to one.",
|
|
32
|
+
"type": "string",
|
|
33
|
+
"pattern": "^spc_[0-7][0-9A-HJKMNP-TV-Z]{25}$"
|
|
34
|
+
},
|
|
35
|
+
"run_id": {
|
|
36
|
+
"description": "The run, when the event belongs to one.",
|
|
37
|
+
"type": "string",
|
|
38
|
+
"pattern": "^run_[0-7][0-9A-HJKMNP-TV-Z]{25}$"
|
|
39
|
+
},
|
|
40
|
+
"seq": {
|
|
41
|
+
"description": "Assigned by the server on append, monotonic per workspace. Absent on the way in.",
|
|
42
|
+
"type": "integer",
|
|
43
|
+
"exclusiveMinimum": 0,
|
|
44
|
+
"maximum": 9007199254740991
|
|
45
|
+
},
|
|
46
|
+
"idempotency_key": {
|
|
47
|
+
"description": "Required on every client-originated write. Sending the same key twice is a no-op.",
|
|
48
|
+
"type": "string",
|
|
49
|
+
"minLength": 1,
|
|
50
|
+
"maxLength": 200
|
|
51
|
+
},
|
|
52
|
+
"actor": {
|
|
53
|
+
"type": "object",
|
|
54
|
+
"properties": {
|
|
55
|
+
"kind": {
|
|
56
|
+
"type": "string",
|
|
57
|
+
"enum": [
|
|
58
|
+
"person",
|
|
59
|
+
"harness",
|
|
60
|
+
"agent",
|
|
61
|
+
"system"
|
|
62
|
+
],
|
|
63
|
+
"description": "Whether a person, a harness, one of a harness's agents or Chips itself acted."
|
|
64
|
+
},
|
|
65
|
+
"id": {
|
|
66
|
+
"type": "string",
|
|
67
|
+
"minLength": 1,
|
|
68
|
+
"description": "The participant id, or `system` for Chips."
|
|
69
|
+
},
|
|
70
|
+
"harness_id": {
|
|
71
|
+
"description": "For an agent: the harness it speaks through, whose budget and runs are the agent's (ADR 0087). Filled in by Chips.",
|
|
72
|
+
"type": "string",
|
|
73
|
+
"pattern": "^hrn_[0-7][0-9A-HJKMNP-TV-Z]{25}$"
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"required": [
|
|
77
|
+
"kind",
|
|
78
|
+
"id"
|
|
79
|
+
],
|
|
80
|
+
"description": "The participant an event is attributed to."
|
|
81
|
+
},
|
|
82
|
+
"asker": {
|
|
83
|
+
"type": "string",
|
|
84
|
+
"minLength": 1,
|
|
85
|
+
"maxLength": 120,
|
|
86
|
+
"description": "Whose yes stops: the agent, or a harness without agents, as the run that asked is worked by."
|
|
87
|
+
},
|
|
88
|
+
"stopped_by": {
|
|
89
|
+
"description": "Who stopped it. Filled in by Chips from the credential.",
|
|
90
|
+
"type": "string",
|
|
91
|
+
"minLength": 1,
|
|
92
|
+
"maxLength": 120
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
"required": [
|
|
96
|
+
"v",
|
|
97
|
+
"type",
|
|
98
|
+
"id",
|
|
99
|
+
"ts",
|
|
100
|
+
"workspace_id",
|
|
101
|
+
"actor",
|
|
102
|
+
"asker"
|
|
103
|
+
],
|
|
104
|
+
"description": "A person stopped the yes that let an agent work without asking in a space, for an hour or until stopped. Its next ask comes to a person.",
|
|
105
|
+
"$id": "https://chipschat.ai/schema/v1/approval.held_stopped.json",
|
|
106
|
+
"title": "ApprovalHeldStopped"
|
|
107
|
+
}
|
|
@@ -108,6 +108,17 @@
|
|
|
108
108
|
"description": "With `always`: the rule is the harness's in every space, not only this one (ADR 0239). An owner or an admin only.",
|
|
109
109
|
"type": "boolean"
|
|
110
110
|
},
|
|
111
|
+
"for_minutes": {
|
|
112
|
+
"description": "With `once` and a yes: for this many minutes, everything the asking agent asks in this space goes ahead without a card (ADR 0239, addendum of 6 November 2026; ADR 0281), commands Chips can't read too. An ask that matters still waits for a person. Chips keeps the rule, so the harness is answered once.",
|
|
113
|
+
"type": "integer",
|
|
114
|
+
"minimum": 5,
|
|
115
|
+
"maximum": 240
|
|
116
|
+
},
|
|
117
|
+
"until_stopped": {
|
|
118
|
+
"description": "With `once` and a yes, instead of `for_minutes`: everything the asking agent asks in this space goes ahead without a card until a person stops it (`approval.held_stopped`, ADR 0281). An ask that matters still waits for a person. Chips keeps the rule, so the harness is answered once.",
|
|
119
|
+
"type": "boolean",
|
|
120
|
+
"const": true
|
|
121
|
+
},
|
|
111
122
|
"updated_input": {
|
|
112
123
|
"description": "The edited action input, when the decision is `edited`."
|
|
113
124
|
},
|
|
@@ -115,6 +115,16 @@
|
|
|
115
115
|
"minLength": 1,
|
|
116
116
|
"maxLength": 60,
|
|
117
117
|
"description": "The server's own version."
|
|
118
|
+
},
|
|
119
|
+
"takes": {
|
|
120
|
+
"description": "What this server keeps of what a person's client may send beyond the base set, by the names in `SERVER_TAKES`. `held_yes` is `for_minutes` and `until_stopped` on `approval.resolved`. A server older than the field says nothing, and drops those fields, so a client offers neither to it (ADR 0281).",
|
|
121
|
+
"maxItems": 32,
|
|
122
|
+
"type": "array",
|
|
123
|
+
"items": {
|
|
124
|
+
"type": "string",
|
|
125
|
+
"minLength": 1,
|
|
126
|
+
"maxLength": 40
|
|
127
|
+
}
|
|
118
128
|
}
|
|
119
129
|
},
|
|
120
130
|
"required": [
|
package/generated/types.ts
CHANGED
|
@@ -1015,6 +1015,8 @@ export interface Hello {
|
|
|
1015
1015
|
name: string;
|
|
1016
1016
|
/** The server's own version. */
|
|
1017
1017
|
version: string;
|
|
1018
|
+
/** What this server keeps of what a person's client may send beyond the base set, by the names in `SERVER_TAKES`. `held_yes` is `for_minutes` and `until_stopped` on `approval.resolved`. A server older than the field says nothing, and drops those fields, so a client offers neither to it (ADR 0281). */
|
|
1019
|
+
takes?: string[];
|
|
1018
1020
|
};
|
|
1019
1021
|
/** The harness the token belongs to, and only that one. One connection speaks for all of the harness's agents (ADR 0087), which `agents` lists. A harness running inside another is a lane, not a duplicate. */
|
|
1020
1022
|
harnesses: {
|
|
@@ -1821,6 +1823,10 @@ export interface ApprovalResolved {
|
|
|
1821
1823
|
scope?: "once" | "session" | "always";
|
|
1822
1824
|
/** With `always`: the rule is the harness's in every space, not only this one (ADR 0239). An owner or an admin only. */
|
|
1823
1825
|
everywhere?: boolean;
|
|
1826
|
+
/** With `once` and a yes: for this many minutes, everything the asking agent asks in this space goes ahead without a card (ADR 0239, addendum of 6 November 2026; ADR 0281), commands Chips can't read too. An ask that matters still waits for a person. Chips keeps the rule, so the harness is answered once. */
|
|
1827
|
+
for_minutes?: number;
|
|
1828
|
+
/** With `once` and a yes, instead of `for_minutes`: everything the asking agent asks in this space goes ahead without a card until a person stops it (`approval.held_stopped`, ADR 0281). An ask that matters still waits for a person. Chips keeps the rule, so the harness is answered once. */
|
|
1829
|
+
until_stopped?: true;
|
|
1824
1830
|
/** The edited action input, when the decision is `edited`. */
|
|
1825
1831
|
updated_input?: unknown;
|
|
1826
1832
|
/** Why. The harness gets to read this. */
|
|
@@ -3995,6 +4001,74 @@ export interface ApprovalRouted {
|
|
|
3995
4001
|
routed_at?: string;
|
|
3996
4002
|
}
|
|
3997
4003
|
|
|
4004
|
+
/** `approval.held_stopped` — A person stopped the yes that let an agent work without asking in a space, for an hour or until stopped. Its next ask comes to a person. */
|
|
4005
|
+
export interface ApprovalHeldStopped {
|
|
4006
|
+
/** Protocol major version. */
|
|
4007
|
+
v: 1;
|
|
4008
|
+
type: "approval.held_stopped";
|
|
4009
|
+
/** The event's own id. Stable across a retry of the same event. */
|
|
4010
|
+
id: string;
|
|
4011
|
+
/** When it happened, by Chips' clock. Stamped on the way in; a value the sender writes is replaced. */
|
|
4012
|
+
ts: string;
|
|
4013
|
+
/** A workspace identifier: `ws_` followed by a ULID. */
|
|
4014
|
+
workspace_id: string;
|
|
4015
|
+
/** The space, when the event belongs to one. */
|
|
4016
|
+
space_id?: string;
|
|
4017
|
+
/** The run, when the event belongs to one. */
|
|
4018
|
+
run_id?: string;
|
|
4019
|
+
/** Assigned by the server on append, monotonic per workspace. Absent on the way in. */
|
|
4020
|
+
seq?: number;
|
|
4021
|
+
/** Required on every client-originated write. Sending the same key twice is a no-op. */
|
|
4022
|
+
idempotency_key?: string;
|
|
4023
|
+
/** The participant an event is attributed to. */
|
|
4024
|
+
actor: {
|
|
4025
|
+
/** Whether a person, a harness, one of a harness's agents or Chips itself acted. */
|
|
4026
|
+
kind: "person" | "harness" | "agent" | "system";
|
|
4027
|
+
/** The participant id, or `system` for Chips. */
|
|
4028
|
+
id: string;
|
|
4029
|
+
/** For an agent: the harness it speaks through, whose budget and runs are the agent's (ADR 0087). Filled in by Chips. */
|
|
4030
|
+
harness_id?: string;
|
|
4031
|
+
};
|
|
4032
|
+
/** Whose yes stops: the agent, or a harness without agents, as the run that asked is worked by. */
|
|
4033
|
+
asker: string;
|
|
4034
|
+
/** Who stopped it. Filled in by Chips from the credential. */
|
|
4035
|
+
stopped_by?: string;
|
|
4036
|
+
}
|
|
4037
|
+
|
|
4038
|
+
/** `approval.held_started` — A person let an agent work without asking in a space until it is stopped, from the agent's page rather than an ask's card. */
|
|
4039
|
+
export interface ApprovalHeldStarted {
|
|
4040
|
+
/** Protocol major version. */
|
|
4041
|
+
v: 1;
|
|
4042
|
+
type: "approval.held_started";
|
|
4043
|
+
/** The event's own id. Stable across a retry of the same event. */
|
|
4044
|
+
id: string;
|
|
4045
|
+
/** When it happened, by Chips' clock. Stamped on the way in; a value the sender writes is replaced. */
|
|
4046
|
+
ts: string;
|
|
4047
|
+
/** A workspace identifier: `ws_` followed by a ULID. */
|
|
4048
|
+
workspace_id: string;
|
|
4049
|
+
/** The space, when the event belongs to one. */
|
|
4050
|
+
space_id?: string;
|
|
4051
|
+
/** The run, when the event belongs to one. */
|
|
4052
|
+
run_id?: string;
|
|
4053
|
+
/** Assigned by the server on append, monotonic per workspace. Absent on the way in. */
|
|
4054
|
+
seq?: number;
|
|
4055
|
+
/** Required on every client-originated write. Sending the same key twice is a no-op. */
|
|
4056
|
+
idempotency_key?: string;
|
|
4057
|
+
/** The participant an event is attributed to. */
|
|
4058
|
+
actor: {
|
|
4059
|
+
/** Whether a person, a harness, one of a harness's agents or Chips itself acted. */
|
|
4060
|
+
kind: "person" | "harness" | "agent" | "system";
|
|
4061
|
+
/** The participant id, or `system` for Chips. */
|
|
4062
|
+
id: string;
|
|
4063
|
+
/** For an agent: the harness it speaks through, whose budget and runs are the agent's (ADR 0087). Filled in by Chips. */
|
|
4064
|
+
harness_id?: string;
|
|
4065
|
+
};
|
|
4066
|
+
/** Whose asks go ahead: the agent, or a harness without agents, in the space. */
|
|
4067
|
+
asker: string;
|
|
4068
|
+
/** Who gave it. Filled in by Chips from the credential. */
|
|
4069
|
+
started_by?: string;
|
|
4070
|
+
}
|
|
4071
|
+
|
|
3998
4072
|
/** `attachment.limits_set` — An owner or an admin capped how big a photo, a video or a file may be here (ADR 0047). Everyone's, and the server refuses an upload over it. */
|
|
3999
4073
|
export interface AttachmentLimitsSet {
|
|
4000
4074
|
/** Protocol major version. */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chipschat/protocol",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "Agent Connect: the canonical Zod schemas, the identifier vocabulary, and everything generated from them.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"homepage": "https://chipschat.ai/reference/",
|