@clowder-ai/plugin-contract 0.1.0-beta.29 → 0.1.0-beta.37

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 (113) hide show
  1. package/dist/codegen/generate-contract.d.ts.map +1 -1
  2. package/dist/codegen/generate-contract.js +88 -1
  3. package/dist/codegen/generate-contract.js.map +1 -1
  4. package/dist/conformance/fixtures.d.ts +1 -1
  5. package/dist/conformance/fixtures.d.ts.map +1 -1
  6. package/dist/conformance/fixtures.js +1 -1
  7. package/dist/conformance/fixtures.js.map +1 -1
  8. package/dist/conformance/index.d.ts +1 -1
  9. package/dist/conformance/index.d.ts.map +1 -1
  10. package/dist/conformance/index.js +1 -1
  11. package/dist/conformance/index.js.map +1 -1
  12. package/dist/conformance/runner.js +1 -1
  13. package/dist/conformance/runner.js.map +1 -1
  14. package/dist/generated/contract.generated.d.ts +425 -62
  15. package/dist/generated/contract.generated.d.ts.map +1 -1
  16. package/dist/generated/contract.generated.js +63 -2
  17. package/dist/generated/contract.generated.js.map +1 -1
  18. package/dist/index.d.ts +1 -1
  19. package/dist/index.js +1 -1
  20. package/dist/validation/cloud-conversation-host.d.ts +18 -0
  21. package/dist/validation/cloud-conversation-host.d.ts.map +1 -0
  22. package/dist/validation/cloud-conversation-host.js +83 -0
  23. package/dist/validation/cloud-conversation-host.js.map +1 -0
  24. package/dist/validation/index.d.ts +5 -1
  25. package/dist/validation/index.d.ts.map +1 -1
  26. package/dist/validation/index.js +5 -1
  27. package/dist/validation/index.js.map +1 -1
  28. package/dist/validation/manifest.d.ts.map +1 -1
  29. package/dist/validation/manifest.js +113 -0
  30. package/dist/validation/manifest.js.map +1 -1
  31. package/dist/validation/members.d.ts +4 -0
  32. package/dist/validation/members.d.ts.map +1 -0
  33. package/dist/validation/members.js +11 -0
  34. package/dist/validation/members.js.map +1 -0
  35. package/dist/validation/messaging-semantic.d.ts.map +1 -1
  36. package/dist/validation/messaging-semantic.js +52 -3
  37. package/dist/validation/messaging-semantic.js.map +1 -1
  38. package/dist/validation/messaging-wire.d.ts +6 -2
  39. package/dist/validation/messaging-wire.d.ts.map +1 -1
  40. package/dist/validation/messaging-wire.js +22 -2
  41. package/dist/validation/messaging-wire.js.map +1 -1
  42. package/dist/validation/operation-rows.d.ts +25 -0
  43. package/dist/validation/operation-rows.d.ts.map +1 -0
  44. package/dist/validation/operation-rows.js +135 -0
  45. package/dist/validation/operation-rows.js.map +1 -0
  46. package/dist/validation/signals.d.ts +1 -10
  47. package/dist/validation/signals.d.ts.map +1 -1
  48. package/dist/validation/signals.js +0 -174
  49. package/dist/validation/signals.js.map +1 -1
  50. package/dist/wire/constants.d.ts +2 -1
  51. package/dist/wire/constants.d.ts.map +1 -1
  52. package/dist/wire/constants.js +2 -1
  53. package/dist/wire/constants.js.map +1 -1
  54. package/dist/wire/dispatch.d.ts +49 -0
  55. package/dist/wire/dispatch.d.ts.map +1 -0
  56. package/dist/wire/dispatch.js +880 -0
  57. package/dist/wire/dispatch.js.map +1 -0
  58. package/dist/wire/disposition-fixtures.d.ts +0 -2
  59. package/dist/wire/disposition-fixtures.d.ts.map +1 -1
  60. package/dist/wire/disposition-fixtures.js +20 -245
  61. package/dist/wire/disposition-fixtures.js.map +1 -1
  62. package/dist/wire/envelope.d.ts +31 -0
  63. package/dist/wire/envelope.d.ts.map +1 -1
  64. package/dist/wire/envelope.js +48 -1
  65. package/dist/wire/envelope.js.map +1 -1
  66. package/dist/wire/errors.d.ts +31 -1
  67. package/dist/wire/errors.d.ts.map +1 -1
  68. package/dist/wire/errors.js +36 -0
  69. package/dist/wire/errors.js.map +1 -1
  70. package/dist/wire/grants.d.ts +4 -4
  71. package/dist/wire/grants.js +3 -3
  72. package/dist/wire/handshake-byte-bounds.d.ts.map +1 -1
  73. package/dist/wire/handshake-byte-bounds.js +5 -2
  74. package/dist/wire/handshake-byte-bounds.js.map +1 -1
  75. package/dist/wire/handshake.d.ts +6 -0
  76. package/dist/wire/handshake.d.ts.map +1 -1
  77. package/dist/wire/handshake.js +6 -3
  78. package/dist/wire/handshake.js.map +1 -1
  79. package/dist/wire/index.d.ts +11 -11
  80. package/dist/wire/index.d.ts.map +1 -1
  81. package/dist/wire/index.js +20 -7
  82. package/dist/wire/index.js.map +1 -1
  83. package/dist/wire/lifecycle-byte-bounds.d.ts +0 -15
  84. package/dist/wire/lifecycle-byte-bounds.d.ts.map +1 -1
  85. package/dist/wire/lifecycle-byte-bounds.js +2 -62
  86. package/dist/wire/lifecycle-byte-bounds.js.map +1 -1
  87. package/dist/wire/messaging-byte-bounds.d.ts +4 -3
  88. package/dist/wire/messaging-byte-bounds.d.ts.map +1 -1
  89. package/dist/wire/messaging-byte-bounds.js +134 -12
  90. package/dist/wire/messaging-byte-bounds.js.map +1 -1
  91. package/dist/wire/registry.d.ts +15 -62
  92. package/dist/wire/registry.d.ts.map +1 -1
  93. package/dist/wire/registry.js +15 -61
  94. package/dist/wire/registry.js.map +1 -1
  95. package/dist/wire/row-shapes.d.ts +25 -13
  96. package/dist/wire/row-shapes.d.ts.map +1 -1
  97. package/dist/wire/row-shapes.js +11 -0
  98. package/dist/wire/row-shapes.js.map +1 -1
  99. package/fixtures/behavior/messaging/adversarial-invariants.json +7 -2
  100. package/fixtures/manifest/invalid/duplicate-signal-type.json +4 -2
  101. package/package.json +2 -2
  102. package/src/schemas/behavior-fixture.schema.json +711 -184
  103. package/src/schemas/companion-bridge.schema.json +51 -28
  104. package/src/schemas/manifest.schema.json +1954 -306
  105. package/src/schemas/messaging.schema.json +510 -35
  106. package/src/schemas/signal.schema.json +68 -78
  107. package/dist/wire/signal-byte-bounds.d.ts +0 -97
  108. package/dist/wire/signal-byte-bounds.d.ts.map +0 -1
  109. package/dist/wire/signal-byte-bounds.js +0 -229
  110. package/dist/wire/signal-byte-bounds.js.map +0 -1
  111. package/fixtures/signals/invalid/destination-injection.json +0 -15
  112. package/fixtures/signals/invalid/non-utc-occurred-at.json +0 -12
  113. package/fixtures/signals/valid/feishu-meeting-artifact.json +0 -18
@@ -1,11 +1,16 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://clowder-ai.dev/schemas/signals/v0.2",
4
- "title": "Clowder AI Signal Ingress Contract (C-2)",
5
- "description": "Declared external signals and the closed events.publish wire payload. Producer identity, provenance, grants, routing, and liveness are Host-bound and intentionally absent from plugin input.",
6
- "x-clowder-payload-max-encoded-bytes": 65536,
7
- "x-clowder-forbidden-privacy-classes": ["av-raw", "input-raw"],
8
- "x-clowder-forbidden-source-classes": ["av-capture", "input-hardware"],
4
+ "title": "Clowder AI Signal Declarations",
5
+ "description": "Manifest-only signal declarations and contribution metadata. Runtime publication is not part of this schema.",
6
+ "x-clowder-forbidden-privacy-classes": [
7
+ "av-raw",
8
+ "input-raw"
9
+ ],
10
+ "x-clowder-forbidden-source-classes": [
11
+ "av-capture",
12
+ "input-hardware"
13
+ ],
9
14
  "$defs": {
10
15
  "SignalType": {
11
16
  "type": "string",
@@ -15,41 +20,80 @@
15
20
  },
16
21
  "SignalSchemaRef": {
17
22
  "type": "string",
18
- "description": "Package-local schema applied to the {payload, source} signal content at publish admission.",
23
+ "description": "Package-local content schema reference declared in manifest metadata.",
19
24
  "minLength": 21,
20
25
  "maxLength": 256,
21
26
  "pattern": "^schemas/([A-Za-z0-9][A-Za-z0-9._-]*/)*[A-Za-z0-9][A-Za-z0-9._-]*\\.schema\\.json$"
22
27
  },
23
28
  "SignalEpistemicStatus": {
24
29
  "type": "string",
25
- "enum": ["observation", "inference"]
30
+ "enum": [
31
+ "observation",
32
+ "inference"
33
+ ]
26
34
  },
27
35
  "SignalPrivacyClass": {
28
36
  "type": "string",
29
- "enum": ["behavioral", "content-adjacent", "content", "av-raw", "input-raw"]
37
+ "enum": [
38
+ "behavioral",
39
+ "content-adjacent",
40
+ "content",
41
+ "av-raw",
42
+ "input-raw"
43
+ ]
30
44
  },
31
45
  "AdmissibleSignalPrivacyClass": {
32
46
  "type": "string",
33
- "enum": ["behavioral", "content-adjacent", "content"]
47
+ "enum": [
48
+ "behavioral",
49
+ "content-adjacent",
50
+ "content"
51
+ ]
34
52
  },
35
53
  "SignalSourceClass": {
36
54
  "type": "string",
37
- "enum": ["os-metadata", "accessibility-api", "remote-service", "av-capture", "input-hardware"]
55
+ "enum": [
56
+ "os-metadata",
57
+ "accessibility-api",
58
+ "remote-service",
59
+ "av-capture",
60
+ "input-hardware"
61
+ ]
38
62
  },
39
63
  "AdmissibleSignalSourceClass": {
40
64
  "type": "string",
41
- "enum": ["os-metadata", "accessibility-api", "remote-service"]
65
+ "enum": [
66
+ "os-metadata",
67
+ "accessibility-api",
68
+ "remote-service"
69
+ ]
42
70
  },
43
71
  "SignalDeclaration": {
44
72
  "type": "object",
45
73
  "properties": {
46
- "type": { "$ref": "#/$defs/SignalType" },
47
- "schemaRef": { "$ref": "#/$defs/SignalSchemaRef" },
48
- "epistemicStatus": { "$ref": "#/$defs/SignalEpistemicStatus" },
49
- "privacyClass": { "$ref": "#/$defs/AdmissibleSignalPrivacyClass" },
50
- "sourceClass": { "$ref": "#/$defs/AdmissibleSignalSourceClass" }
74
+ "type": {
75
+ "$ref": "#/$defs/SignalType"
76
+ },
77
+ "schemaRef": {
78
+ "$ref": "#/$defs/SignalSchemaRef"
79
+ },
80
+ "epistemicStatus": {
81
+ "$ref": "#/$defs/SignalEpistemicStatus"
82
+ },
83
+ "privacyClass": {
84
+ "$ref": "#/$defs/AdmissibleSignalPrivacyClass"
85
+ },
86
+ "sourceClass": {
87
+ "$ref": "#/$defs/AdmissibleSignalSourceClass"
88
+ }
51
89
  },
52
- "required": ["type", "schemaRef", "epistemicStatus", "privacyClass", "sourceClass"],
90
+ "required": [
91
+ "type",
92
+ "schemaRef",
93
+ "epistemicStatus",
94
+ "privacyClass",
95
+ "sourceClass"
96
+ ],
53
97
  "additionalProperties": false
54
98
  },
55
99
  "SignalContribution": {
@@ -57,73 +101,19 @@
57
101
  "properties": {
58
102
  "provides": {
59
103
  "type": "array",
60
- "items": { "$ref": "#/$defs/SignalDeclaration" },
104
+ "items": {
105
+ "$ref": "#/$defs/SignalDeclaration"
106
+ },
61
107
  "minItems": 1,
62
108
  "maxItems": 64,
63
109
  "uniqueItems": true
64
110
  }
65
111
  },
66
- "required": ["provides"],
67
- "additionalProperties": false
68
- },
69
- "SignalEventId": {
70
- "type": "string",
71
- "minLength": 1,
72
- "maxLength": 128,
73
- "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
74
- },
75
- "SignalIdempotencyKey": {
76
- "type": "string",
77
- "minLength": 1,
78
- "maxLength": 256,
79
- "pattern": "^[^\\u0000-\\u001F\\u007F\\uD800-\\uDFFF]+$"
80
- },
81
- "OpaqueSourceHandle": {
82
- "type": "string",
83
- "minLength": 1,
84
- "maxLength": 512,
85
- "pattern": "^[^\\u0000-\\u001F\\u007F\\uD800-\\uDFFF]+$"
86
- },
87
- "SignalSourceRef": {
88
- "type": "object",
89
- "properties": {
90
- "handle": { "$ref": "#/$defs/OpaqueSourceHandle" }
91
- },
92
- "required": ["handle"],
93
- "additionalProperties": false
94
- },
95
- "EventsPublishInput": {
96
- "type": "object",
97
- "properties": {
98
- "signalType": { "$ref": "#/$defs/SignalType" },
99
- "eventId": { "$ref": "#/$defs/SignalEventId" },
100
- "idempotencyKey": { "$ref": "#/$defs/SignalIdempotencyKey" },
101
- "occurredAt": {
102
- "type": "string",
103
- "format": "date-time",
104
- "minLength": 20,
105
- "maxLength": 30,
106
- "pattern": "Z$"
107
- },
108
- "payload": { "type": "object", "additionalProperties": true },
109
- "source": { "$ref": "#/$defs/SignalSourceRef" }
110
- },
111
- "required": ["signalType", "eventId", "idempotencyKey", "occurredAt", "payload", "source"],
112
- "additionalProperties": false
113
- },
114
- "EventsPublishDisposition": {
115
- "type": "string",
116
- "enum": ["accepted", "duplicate"]
117
- },
118
- "EventsPublishResult": {
119
- "type": "object",
120
- "properties": {
121
- "publicationId": { "$ref": "#/$defs/SignalEventId" },
122
- "disposition": { "$ref": "#/$defs/EventsPublishDisposition" }
123
- },
124
- "required": ["publicationId", "disposition"],
112
+ "required": [
113
+ "provides"
114
+ ],
125
115
  "additionalProperties": false
126
116
  }
127
117
  },
128
- "$ref": "#/$defs/EventsPublishInput"
118
+ "$ref": "#/$defs/SignalContribution"
129
119
  }
@@ -1,97 +0,0 @@
1
- /**
2
- * Derived compact-JSON byte bounds for the beta.9 C-2 events.publish row.
3
- *
4
- * Signal payloads are bounded by their compact encoded byte length, not by a
5
- * string code-point count. That makes the generic leaf proof insufficient for
6
- * row 13: this module constructs an exactly 64 KiB JSON object independently
7
- * for ASCII, multibyte, and escaped-string families, then measures the entire
8
- * request envelope and one rejected N+1 witness for every bounded leaf.
9
- */
10
- import type { EventsPublishInput, EventsPublishResult } from '../generated/contract.generated.js';
11
- export declare const EVENTS_PUBLISH_BYTE_PROOF_ENCODING_FAMILIES: readonly ["ascii", "multibyte", "escaping"];
12
- export type EventsPublishByteProofEncodingFamily = (typeof EVENTS_PUBLISH_BYTE_PROOF_ENCODING_FAMILIES)[number];
13
- export declare const SIGNAL_TYPE_MAX_LENGTH: 128;
14
- export declare const SIGNAL_EVENT_ID_MAX_LENGTH: 128;
15
- export declare const SIGNAL_IDEMPOTENCY_KEY_MAX_LENGTH: 256;
16
- export declare const SIGNAL_OCCURRED_AT_MAX_LENGTH: 30;
17
- export declare const SIGNAL_SOURCE_HANDLE_MAX_LENGTH: 512;
18
- interface EventsPublishProofInput {
19
- readonly requestId: string;
20
- readonly input: EventsPublishInput;
21
- readonly payloadEncodedBytes: number;
22
- }
23
- export interface EventsPublishNPlusOneWitness extends EventsPublishProofInput {
24
- readonly leaf: 'requestId' | 'signalType' | 'eventId' | 'idempotencyKey' | 'occurredAt' | 'payloadBytes' | 'sourceHandle';
25
- readonly encodedBytes: number;
26
- readonly fitsFrame: boolean;
27
- }
28
- export interface EventsPublishEncodedByteProofCase {
29
- readonly family: EventsPublishByteProofEncodingFamily;
30
- readonly encodedBytes: number;
31
- readonly fitsFrame: boolean;
32
- readonly nPlusOne: readonly {
33
- readonly leaf: string;
34
- readonly encodedBytes: number;
35
- readonly fitsFrame: boolean;
36
- }[];
37
- }
38
- export interface EventsPublishEncodedByteProof {
39
- readonly maxEncodedBytes: number;
40
- readonly cases: readonly EventsPublishEncodedByteProofCase[];
41
- }
42
- export interface EventsPublishRowEncodedByteBounds {
43
- readonly maxEncodedRequestBytes: number;
44
- readonly maxEncodedResultBytes: number;
45
- readonly maxEncodedErrorBytes: number;
46
- }
47
- export declare function eventsPublishMaximumInput(family: EventsPublishByteProofEncodingFamily): EventsPublishProofInput;
48
- export declare function eventsPublishNPlusOneInputs(family: EventsPublishByteProofEncodingFamily): readonly EventsPublishNPlusOneWitness[];
49
- export declare function eventsPublishMaximumResult(): {
50
- readonly requestId: string;
51
- readonly result: EventsPublishResult;
52
- };
53
- export declare function eventsPublishResultNPlusOneWitnesses(): readonly [{
54
- readonly leaf: "requestId";
55
- readonly requestId: string;
56
- readonly result: EventsPublishResult;
57
- }, {
58
- readonly leaf: "publicationId";
59
- readonly result: {
60
- readonly publicationId: string;
61
- readonly disposition: import("../generated/contract.generated.js").EventsPublishDisposition;
62
- };
63
- readonly requestId: string;
64
- }];
65
- export declare function eventsPublishStandardErrorEnvelopes(): ({
66
- arm: string;
67
- id: null;
68
- error: {
69
- code: -32602 | -32700 | -32600 | -32601 | -32603;
70
- message: "Parse error" | "Invalid Request" | "Method not found" | "Invalid params" | "Internal error";
71
- };
72
- } | {
73
- arm: string;
74
- id: string;
75
- error: {
76
- code: -32602 | -32700 | -32600 | -32601 | -32603;
77
- message: "Parse error" | "Invalid Request" | "Method not found" | "Invalid params" | "Internal error";
78
- };
79
- })[];
80
- export declare function eventsPublishStandardErrorNPlusOneWitnesses(): {
81
- id: string;
82
- arm: string;
83
- error: {
84
- code: -32602 | -32700 | -32600 | -32601 | -32603;
85
- message: "Parse error" | "Invalid Request" | "Method not found" | "Invalid params" | "Internal error";
86
- };
87
- }[];
88
- export declare const EVENTS_PUBLISH_REQUEST_BYTE_PROOF: EventsPublishEncodedByteProof;
89
- export declare const EVENTS_PUBLISH_RESULT_BYTE_PROOF: EventsPublishEncodedByteProof;
90
- export declare const EVENTS_PUBLISH_ERROR_BYTE_PROOF: EventsPublishEncodedByteProof;
91
- export declare const EVENTS_PUBLISH_ROW_ENCODED_BYTE_BOUNDS: {
92
- readonly maxEncodedRequestBytes: number;
93
- readonly maxEncodedResultBytes: number;
94
- readonly maxEncodedErrorBytes: number;
95
- };
96
- export {};
97
- //# sourceMappingURL=signal-byte-bounds.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signal-byte-bounds.d.ts","sourceRoot":"","sources":["../../src/wire/signal-byte-bounds.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,oCAAoC,CAAC;AAY5C,eAAO,MAAM,2CAA2C,6CAI9C,CAAC;AAEX,MAAM,MAAM,oCAAoC,GAC9C,CAAC,OAAO,2CAA2C,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D,eAAO,MAAM,sBAAsB,EAAG,GAAY,CAAC;AACnD,eAAO,MAAM,0BAA0B,EAAG,GAAY,CAAC;AACvD,eAAO,MAAM,iCAAiC,EAAG,GAAY,CAAC;AAC9D,eAAO,MAAM,6BAA6B,EAAG,EAAW,CAAC;AACzD,eAAO,MAAM,+BAA+B,EAAG,GAAY,CAAC;AAI5D,UAAU,uBAAuB;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;IACnC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,4BAA6B,SAAQ,uBAAuB;IAC3E,QAAQ,CAAC,IAAI,EACT,WAAW,GACX,YAAY,GACZ,SAAS,GACT,gBAAgB,GAChB,YAAY,GACZ,cAAc,GACd,cAAc,CAAC;IACnB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,MAAM,EAAE,oCAAoC,CAAC;IACtD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,SAAS;QAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;KAC7B,EAAE,CAAC;CACL;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,SAAS,iCAAiC,EAAE,CAAC;CAC9D;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACvC;AAwED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,oCAAoC,GAC3C,uBAAuB,CAOzB;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,oCAAoC,GAC3C,SAAS,4BAA4B,EAAE,CAuDzC;AA6BD,wBAAgB,0BAA0B,IAAI;IAC5C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;CACtC,CAKA;AAED,wBAAgB,oCAAoC;;;qBARjC,mBAAmB;;;;;;;wBADhB,MAAM;GAmB3B;AAED,wBAAgB,mCAAmC;;;;;;;;;;;;;;KAWlD;AAED,wBAAgB,2CAA2C;;;;;;;IAI1D;AAoBD,eAAO,MAAM,iCAAiC,+BAAiB,CAAC;AAGhE,eAAO,MAAM,gCAAgC,+BAM5C,CAAC;AAEF,eAAO,MAAM,+BAA+B,+BAO3C,CAAC;AAEF,eAAO,MAAM,sCAAsC;;;;CAIG,CAAC"}
@@ -1,229 +0,0 @@
1
- /**
2
- * Derived compact-JSON byte bounds for the beta.9 C-2 events.publish row.
3
- *
4
- * Signal payloads are bounded by their compact encoded byte length, not by a
5
- * string code-point count. That makes the generic leaf proof insufficient for
6
- * row 13: this module constructs an exactly 64 KiB JSON object independently
7
- * for ASCII, multibyte, and escaped-string families, then measures the entire
8
- * request envelope and one rejected N+1 witness for every bounded leaf.
9
- */
10
- import { SIGNAL_PAYLOAD_MAX_ENCODED_BYTES } from '../validation/signals.js';
11
- import { MAX_FRAME_BYTES } from './constants.js';
12
- import { ERROR_CODE_TO_MESSAGE, INVALID_REQUEST_CODE, PARSE_ERROR_CODE, STANDARD_ERROR_CODES, } from './errors.js';
13
- import { REQUEST_ID_MAX_LENGTH } from './request-id.js';
14
- import { WIRE_UINT53_MAX } from './wire-uint53.js';
15
- export const EVENTS_PUBLISH_BYTE_PROOF_ENCODING_FAMILIES = [
16
- 'ascii',
17
- 'multibyte',
18
- 'escaping',
19
- ];
20
- export const SIGNAL_TYPE_MAX_LENGTH = 128;
21
- export const SIGNAL_EVENT_ID_MAX_LENGTH = 128;
22
- export const SIGNAL_IDEMPOTENCY_KEY_MAX_LENGTH = 256;
23
- export const SIGNAL_OCCURRED_AT_MAX_LENGTH = 30;
24
- export const SIGNAL_SOURCE_HANDLE_MAX_LENGTH = 512;
25
- const MAX_OCCURRED_AT = '2026-08-09T04:12:31.123456789Z';
26
- function byteLength(value) {
27
- return Buffer.byteLength(JSON.stringify(value), 'utf8');
28
- }
29
- function familyCharacter(family) {
30
- switch (family) {
31
- case 'ascii':
32
- return 'a';
33
- case 'multibyte':
34
- return '😀';
35
- case 'escaping':
36
- // Quote is admissible in idempotency/source handles and requires JSON
37
- // escaping. Control characters would be a larger escape but are forbidden
38
- // by those leaf grammars, so using them would not prove a legal maximum.
39
- return '"';
40
- }
41
- }
42
- function exactPayload(family, extraBytes = 0) {
43
- const targetBytes = SIGNAL_PAYLOAD_MAX_ENCODED_BYTES + extraBytes;
44
- const dataCharacter = family === 'escaping' ? '\u0000' : familyCharacter(family);
45
- const empty = { data: '', pad: '' };
46
- const staticBytes = byteLength(empty);
47
- const unitBytes = byteLength({ data: dataCharacter, pad: '' }) - staticBytes;
48
- const repetitions = Math.floor((targetBytes - staticBytes) / unitBytes);
49
- const data = dataCharacter.repeat(repetitions);
50
- const usedBytes = byteLength({ data, pad: '' });
51
- const payload = { data, pad: 'a'.repeat(targetBytes - usedBytes) };
52
- if (byteLength(payload) !== targetBytes) {
53
- throw new Error(`failed to construct exact ${targetBytes}-byte signal payload`);
54
- }
55
- return payload;
56
- }
57
- function signalType(length = SIGNAL_TYPE_MAX_LENGTH) {
58
- return `a.${'a'.repeat(length - 2)}`;
59
- }
60
- function inputFor(family, overrides = {}, payloadExtraBytes = 0) {
61
- const character = familyCharacter(family);
62
- return {
63
- signalType: signalType(),
64
- eventId: 'a'.repeat(SIGNAL_EVENT_ID_MAX_LENGTH),
65
- idempotencyKey: character.repeat(SIGNAL_IDEMPOTENCY_KEY_MAX_LENGTH),
66
- occurredAt: MAX_OCCURRED_AT,
67
- payload: exactPayload(family, payloadExtraBytes),
68
- source: { handle: character.repeat(SIGNAL_SOURCE_HANDLE_MAX_LENGTH) },
69
- ...overrides,
70
- };
71
- }
72
- function requestFrame(requestId, input) {
73
- return {
74
- jsonrpc: '2.0',
75
- id: requestId,
76
- method: 'events.publish',
77
- params: {
78
- meta: { deadlineUnixMs: WIRE_UINT53_MAX },
79
- input,
80
- },
81
- };
82
- }
83
- export function eventsPublishMaximumInput(family) {
84
- const input = inputFor(family);
85
- return {
86
- requestId: 'a'.repeat(REQUEST_ID_MAX_LENGTH),
87
- input,
88
- payloadEncodedBytes: byteLength(input.payload),
89
- };
90
- }
91
- export function eventsPublishNPlusOneInputs(family) {
92
- const maximum = eventsPublishMaximumInput(family);
93
- const character = familyCharacter(family);
94
- const occurredAtNPlusOne = `${MAX_OCCURRED_AT.slice(0, -1)}0Z`;
95
- const candidates = [
96
- {
97
- leaf: 'requestId',
98
- requestId: 'a'.repeat(REQUEST_ID_MAX_LENGTH + 1),
99
- input: maximum.input,
100
- },
101
- {
102
- leaf: 'signalType',
103
- input: inputFor(family, { signalType: signalType(SIGNAL_TYPE_MAX_LENGTH + 1) }),
104
- },
105
- {
106
- leaf: 'eventId',
107
- input: inputFor(family, { eventId: 'a'.repeat(SIGNAL_EVENT_ID_MAX_LENGTH + 1) }),
108
- },
109
- {
110
- leaf: 'idempotencyKey',
111
- input: inputFor(family, {
112
- idempotencyKey: character.repeat(SIGNAL_IDEMPOTENCY_KEY_MAX_LENGTH + 1),
113
- }),
114
- },
115
- {
116
- leaf: 'occurredAt',
117
- input: inputFor(family, { occurredAt: occurredAtNPlusOne }),
118
- },
119
- {
120
- leaf: 'payloadBytes',
121
- input: inputFor(family, {}, 1),
122
- },
123
- {
124
- leaf: 'sourceHandle',
125
- input: inputFor(family, {
126
- source: { handle: character.repeat(SIGNAL_SOURCE_HANDLE_MAX_LENGTH + 1) },
127
- }),
128
- },
129
- ];
130
- return candidates.map(({ leaf, requestId = maximum.requestId, input }) => {
131
- const encodedBytes = byteLength(requestFrame(requestId, input));
132
- return {
133
- leaf,
134
- requestId,
135
- input,
136
- payloadEncodedBytes: byteLength(input.payload),
137
- encodedBytes,
138
- fitsFrame: encodedBytes <= MAX_FRAME_BYTES,
139
- };
140
- });
141
- }
142
- function requestProof() {
143
- const cases = EVENTS_PUBLISH_BYTE_PROOF_ENCODING_FAMILIES.map((family) => {
144
- const maximum = eventsPublishMaximumInput(family);
145
- const encodedBytes = byteLength(requestFrame(maximum.requestId, maximum.input));
146
- return {
147
- family,
148
- encodedBytes,
149
- fitsFrame: encodedBytes <= MAX_FRAME_BYTES,
150
- nPlusOne: eventsPublishNPlusOneInputs(family).map(({ leaf, encodedBytes: witnessBytes, fitsFrame }) => ({
151
- leaf,
152
- encodedBytes: witnessBytes,
153
- fitsFrame,
154
- })),
155
- };
156
- });
157
- return {
158
- maxEncodedBytes: Math.max(...cases.map(({ encodedBytes }) => encodedBytes)),
159
- cases,
160
- };
161
- }
162
- function responseFrame(requestId, result) {
163
- return { jsonrpc: '2.0', id: requestId, result };
164
- }
165
- export function eventsPublishMaximumResult() {
166
- return {
167
- requestId: 'a'.repeat(REQUEST_ID_MAX_LENGTH),
168
- result: { publicationId: 'a'.repeat(SIGNAL_EVENT_ID_MAX_LENGTH), disposition: 'duplicate' },
169
- };
170
- }
171
- export function eventsPublishResultNPlusOneWitnesses() {
172
- const maximum = eventsPublishMaximumResult();
173
- return [
174
- { ...maximum, leaf: 'requestId', requestId: 'a'.repeat(REQUEST_ID_MAX_LENGTH + 1) },
175
- {
176
- ...maximum,
177
- leaf: 'publicationId',
178
- result: { ...maximum.result, publicationId: 'a'.repeat(SIGNAL_EVENT_ID_MAX_LENGTH + 1) },
179
- },
180
- ];
181
- }
182
- export function eventsPublishStandardErrorEnvelopes() {
183
- const requestId = 'a'.repeat(REQUEST_ID_MAX_LENGTH);
184
- return STANDARD_ERROR_CODES.flatMap((code) => {
185
- const error = { code, message: ERROR_CODE_TO_MESSAGE[code] };
186
- const arm = `standard:${code}`;
187
- if (code === PARSE_ERROR_CODE)
188
- return [{ arm, id: null, error }];
189
- if (code === INVALID_REQUEST_CODE) {
190
- return [{ arm: `${arm}:null`, id: null, error }, { arm, id: requestId, error }];
191
- }
192
- return [{ arm, id: requestId, error }];
193
- });
194
- }
195
- export function eventsPublishStandardErrorNPlusOneWitnesses() {
196
- return eventsPublishStandardErrorEnvelopes()
197
- .filter((envelope) => envelope.id !== null)
198
- .map((envelope) => ({ ...envelope, id: 'a'.repeat(REQUEST_ID_MAX_LENGTH + 1) }));
199
- }
200
- function repeatedProof(encodedBytes, nPlusOne) {
201
- return {
202
- maxEncodedBytes: encodedBytes,
203
- cases: EVENTS_PUBLISH_BYTE_PROOF_ENCODING_FAMILIES.map((family) => ({
204
- family,
205
- encodedBytes,
206
- fitsFrame: encodedBytes <= MAX_FRAME_BYTES,
207
- nPlusOne: nPlusOne.map((witness) => ({
208
- ...witness,
209
- fitsFrame: witness.encodedBytes <= MAX_FRAME_BYTES,
210
- })),
211
- })),
212
- };
213
- }
214
- export const EVENTS_PUBLISH_REQUEST_BYTE_PROOF = requestProof();
215
- const maximumResult = eventsPublishMaximumResult();
216
- export const EVENTS_PUBLISH_RESULT_BYTE_PROOF = repeatedProof(byteLength(responseFrame(maximumResult.requestId, maximumResult.result)), eventsPublishResultNPlusOneWitnesses().map(({ leaf, requestId, result }) => ({
217
- leaf,
218
- encodedBytes: byteLength(responseFrame(requestId, result)),
219
- })));
220
- export const EVENTS_PUBLISH_ERROR_BYTE_PROOF = repeatedProof(Math.max(...eventsPublishStandardErrorEnvelopes().map(({ id, error }) => byteLength({ jsonrpc: '2.0', id, error }))), eventsPublishStandardErrorNPlusOneWitnesses().map(({ arm, id, error }) => ({
221
- leaf: `${arm}.requestId`,
222
- encodedBytes: byteLength({ jsonrpc: '2.0', id, error }),
223
- })));
224
- export const EVENTS_PUBLISH_ROW_ENCODED_BYTE_BOUNDS = {
225
- maxEncodedRequestBytes: EVENTS_PUBLISH_REQUEST_BYTE_PROOF.maxEncodedBytes,
226
- maxEncodedResultBytes: EVENTS_PUBLISH_RESULT_BYTE_PROOF.maxEncodedBytes,
227
- maxEncodedErrorBytes: EVENTS_PUBLISH_ERROR_BYTE_PROOF.maxEncodedBytes,
228
- };
229
- //# sourceMappingURL=signal-byte-bounds.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signal-byte-bounds.js","sourceRoot":"","sources":["../../src/wire/signal-byte-bounds.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- {
2
- "_meta": {
3
- "schemaRef": "EventsPublishInput"
4
- },
5
- "signalType": "feishu.meeting_artifact.generated.v1",
6
- "eventId": "feishu-minute-om_abc123-v7",
7
- "idempotencyKey": "feishu:minute:om_abc123:7",
8
- "occurredAt": "2026-08-09T04:12:31Z",
9
- "payload": {
10
- "artifactId": "om_abc123"
11
- },
12
- "destination": {
13
- "threadId": "thread_user_selected"
14
- }
15
- }
@@ -1,12 +0,0 @@
1
- {
2
- "_meta": {
3
- "schemaRef": "EventsPublishInput"
4
- },
5
- "signalType": "feishu.meeting_artifact.generated.v1",
6
- "eventId": "feishu-minute-om_abc123-v7",
7
- "idempotencyKey": "feishu:minute:om_abc123:7",
8
- "occurredAt": "2026-08-09T12:12:31+08:00",
9
- "payload": {
10
- "artifactId": "om_abc123"
11
- }
12
- }
@@ -1,18 +0,0 @@
1
- {
2
- "_meta": {
3
- "schemaRef": "EventsPublishInput"
4
- },
5
- "signalType": "feishu.meeting_artifact.generated.v1",
6
- "eventId": "feishu-minute-om_abc123-v7",
7
- "idempotencyKey": "feishu:minute:om_abc123:7",
8
- "occurredAt": "2026-08-09T04:12:31Z",
9
- "payload": {
10
- "artifactId": "om_abc123",
11
- "artifactKind": "minute",
12
- "revision": "7",
13
- "title": "F292 design review"
14
- },
15
- "source": {
16
- "handle": "feishu://meeting-artifacts/minute/om_abc123?revision=7"
17
- }
18
- }