agentplugged 1.2.0 → 1.3.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.
package/dist/hash.js CHANGED
@@ -483,6 +483,11 @@ const ErrorCode = {
483
483
  */
484
484
  DELEGATION_INVALID: "DELEGATION_INVALID",
485
485
  /**
486
+ * `pause_team`: the team is already paused, there is nothing more to hold. Nothing was
487
+ * written. `details: { since }`.
488
+ */
489
+ TEAM_ALREADY_PAUSED: "TEAM_ALREADY_PAUSED",
490
+ /**
486
491
  * A review cannot start, be given, sorted, read or posted (`start_review`,
487
492
  * `submit_review`, `triage_review`, `get_review`, `publish_review`). Nothing was written.
488
493
  * `details: { story, reason, … }` (`REVIEW_NOT_POSSIBLE_REASONS`).
@@ -817,6 +822,20 @@ function eventConversion(type, version) {
817
822
  return EVENT_CONVERSIONS.find((entry) => entry.type === type && entry.from === version);
818
823
  }
819
824
  //#endregion
825
+ //#region ../../packages/protocol/dist/extension.js
826
+ /** The name of a module: lowercase letters, digits and underscores, starting with a letter. */
827
+ const EXTENSION_MODULE_PATTERN = /^[a-z][a-z0-9_]*$/;
828
+ /** `x.<module>.<type>`, lowercase. */
829
+ const EXTENSION_TYPE_PATTERN = /^x\.[a-z][a-z0-9_]*\.[a-z][a-z0-9_]*$/;
830
+ /** True for a type of the extension point (`x.<module>.<type>`). */
831
+ function isExtensionEventType(type) {
832
+ return EXTENSION_TYPE_PATTERN.test(type);
833
+ }
834
+ /** The module an extension type belongs to, or undefined for any other type. */
835
+ function extensionModuleOf(type) {
836
+ return isExtensionEventType(type) ? type.split(".")[1] : void 0;
837
+ }
838
+ //#endregion
820
839
  //#region ../../packages/protocol/dist/event-envelope.js
821
840
  /** True when `type` can be converted from `version` up to its current version. */
822
841
  function convertible(type, version) {
@@ -892,8 +911,8 @@ const BASE64URL = /^[A-Za-z0-9_-]*$/;
892
911
  /** ULID: 26 Crockford base32 characters, the first one at most 7 (48-bit time). */
893
912
  const ULID_PATTERN = /^[0-7][0-9A-HJKMNP-TV-Z]{25}$/;
894
913
  const ULID = ULID_PATTERN;
895
- /** `domain.action`, lowercase. */
896
- const EVENT_TYPE_PATTERN = /^[a-z][a-z0-9_]*\.[a-z][a-z0-9_]*$/;
914
+ /** `domain.action`, lowercase; or `x.<module>.<type>` for the extension point. */
915
+ const EVENT_TYPE_PATTERN = new RegExp(`^(?:[a-z][a-z0-9_]*\\.[a-z][a-z0-9_]*|${EXTENSION_TYPE_PATTERN.source.slice(1, -1)})$`);
897
916
  /** `sha256:` then the 32-byte digest in base64url (43 characters). */
898
917
  const EVENT_HASH = /^sha256:[A-Za-z0-9_-]{42}[AEIMQUYcgkosw048]$/;
899
918
  /** 64 bytes in base64url: 86 characters, the last one carrying 2 bits only. */
@@ -947,7 +966,7 @@ const WebAuthnSignatureSchema = z.strictObject({
947
966
  });
948
967
  /** Event envelope v1: one event of the journal or of a validation, signed by its writer. */
949
968
  const EventEnvelopeSchema = z.strictObject({
950
- v: z.number().int().min(0).max(MAX_EVENT_VERSION),
969
+ v: z.number().int().min(0),
951
970
  id: UlidSchema,
952
971
  type: z.string().regex(EVENT_TYPE_PATTERN, { message: EVENT_REASON.eventType }),
953
972
  at: z.iso.datetime({ message: EVENT_REASON.utcDatetime }),
@@ -962,6 +981,11 @@ const EventEnvelopeSchema = z.strictObject({
962
981
  sig: z.union([z.string(), z.record(z.string(), z.unknown())]),
963
982
  assurance: z.enum(ASSURANCE_LEVELS).optional()
964
983
  }).superRefine((event, context) => {
984
+ if (event.v > MAX_EVENT_VERSION && !isExtensionEventType(event.type)) context.addIssue({
985
+ code: "custom",
986
+ path: ["v"],
987
+ message: EVENT_REASON.invalidValue
988
+ });
965
989
  if (event.v < currentVersionOf(event.type) && !convertible(event.type, event.v)) context.addIssue({
966
990
  code: "custom",
967
991
  path: ["v"],
@@ -1072,7 +1096,7 @@ function eventInvalid(field, reasonKey) {
1072
1096
  function parseEventEnvelope(input) {
1073
1097
  if (typeof input === "object" && input !== null && !Array.isArray(input)) {
1074
1098
  const { v: version, type } = input;
1075
- if (typeof version === "number" && Number.isInteger(version) && version > MAX_EVENT_VERSION) return {
1099
+ if (typeof version === "number" && Number.isInteger(version) && version > MAX_EVENT_VERSION && !(typeof type === "string" && isExtensionEventType(type))) return {
1076
1100
  success: false,
1077
1101
  error: {
1078
1102
  code: ErrorCode.UPGRADE_REQUIRED,
@@ -1638,6 +1662,10 @@ const RulesSchema = z.strictObject({
1638
1662
  });
1639
1663
  /** What going over a story's ceiling does: pause it behind a checkpoint, or flag it. */
1640
1664
  const BUDGET_EXCEED_MODES = ["block", "flag"];
1665
+ /** The alert ratio without a setting: 80 % of the ceiling. */
1666
+ const DEFAULT_ALERT_RATIO = .8;
1667
+ /** What going over the ceiling does without a setting. */
1668
+ const DEFAULT_ON_EXCEED = "block";
1641
1669
  /** The lowest alert ratio a product may set. */
1642
1670
  const MIN_ALERT_RATIO = .05;
1643
1671
  /** `budgets` of `method.yaml`: the alert ratio, and what going over the ceiling does. */
@@ -5982,6 +6010,19 @@ const BUDGET_EVENT_TYPES = { thresholdReached: "budget.threshold_reached" };
5982
6010
  const BUDGET_LEVELS = ["alert", "exceeded"];
5983
6011
  /** The largest ceiling, in US dollars (raising a ceiling stops there). */
5984
6012
  const MAX_BUDGET_USD = 1e9;
6013
+ /**
6014
+ * The options of a budget checkpoint: raise the ceiling by half (at least to $1), double it (at
6015
+ * least to $2), go on without a ceiling, or stop the story. A raise that would change nothing (at
6016
+ * `MAX_BUDGET_USD`) is never offered.
6017
+ */
6018
+ const BUDGET_OPTIONS = [
6019
+ "raise-50",
6020
+ "raise-100",
6021
+ "no-limit",
6022
+ "stop"
6023
+ ];
6024
+ /** The option a budget checkpoint recommends when it offers it (else `stop`). */
6025
+ const BUDGET_RECOMMENDATION = "raise-50";
5985
6026
  /** The prefix of a budget checkpoint's title, before the story. */
5986
6027
  const BUDGET_TITLE_PREFIX = "Budget exceeded: ";
5987
6028
  /**
@@ -6010,52 +6051,59 @@ const BudgetThresholdReachedPayloadSchema = z.strictObject({
6010
6051
  });
6011
6052
  });
6012
6053
  //#endregion
6013
- //#region ../../packages/protocol/dist/chain.js
6014
- /** The event the bridge writes when it takes an instruction of the creator for an agent. */
6054
+ //#region ../../packages/protocol/dist/call-guard.js
6055
+ /**
6056
+ * The guard before every tool call. A hook of the AI tool runs before each tool (`check_call`);
6057
+ * the engine refuses the call when the story it belongs to reached its budget, or when the team is
6058
+ * paused and the call would write, run a command or start an agent, and lets it through otherwise.
6059
+ * Values come as the hook substitutes them (`${tool_name}`): possibly empty, or left as `${…}` when
6060
+ * the hook's input has no such field; the engine reads them with that doubt. In doubt the call goes
6061
+ * through.
6062
+ */
6063
+ const CheckCallInputSchema = z.strictObject({
6064
+ /** The tool about to run (`Bash`, `Edit`, `mcp__<server>__<tool>`…). */
6065
+ tool: z.string().max(200),
6066
+ session: z.string().trim().min(1).max(200).optional(),
6067
+ cwd: z.string().max(2e3).optional(),
6068
+ /** The kind of sub-agent that makes the call, when the tool says it (absent for the main session). */
6069
+ agent: z.string().max(200).optional()
6070
+ });
6071
+ z.record(z.string(), z.unknown());
6072
+ /** The event Noah writes when he takes a message of the creator. */
6015
6073
  const CHAIN_EVENT_TYPES = { instructionGiven: "agent.instruction_given" };
6016
- /** The longest instruction, in characters, and how many wait for an agent that is not working. */
6074
+ /** The longest message, in characters. */
6017
6075
  const CHAIN_INSTRUCTION_MAX_CHARS = 4e3;
6018
- z.strictObject({
6019
- budget_usd: z.number().finite().positive().max(MAX_BUDGET_USD).optional(),
6020
- max_steps: z.number().int().min(1).max(100).optional()
6021
- });
6022
6076
  const AgentTargetSchema = AgentIdSchema.max(64);
6023
- z.strictObject({
6024
- agent: AgentTargetSchema.optional(),
6077
+ /**
6078
+ * Fields that devices older than this version still send with a pause or a resumption. They are
6079
+ * read and ignored, so that an older phone keeps its buttons; no view sends them any more.
6080
+ */
6081
+ const IGNORED_OLD_FIELDS = {
6025
6082
  when: z.enum(["now", "after_step"]).optional(),
6026
- /**
6027
- * The creator takes the hand on the agent. The agent is stopped cleanly at once (never after
6028
- * its step), its session is kept, and the team stays in the creator's hands until they take it
6029
- * up again. `chat`: the creator talks to the agent from their device, one message at a time
6030
- * (`chain.say`); `terminal`: they reopen the session in their own terminal on the machine.
6031
- */
6032
- hand: z.enum(["chat", "terminal"]).optional()
6033
- }).refine((value) => value.hand === void 0 || value.when !== "after_step", { message: "the creator takes the session over at once, not after the step" });
6083
+ hand: z.enum(["chat", "terminal"]).optional(),
6084
+ close_session: z.boolean().optional()
6085
+ };
6034
6086
  z.strictObject({
6035
6087
  agent: AgentTargetSchema.optional(),
6036
- close_session: z.boolean().optional()
6088
+ ...IGNORED_OLD_FIELDS
6037
6089
  });
6038
6090
  z.strictObject({
6039
- text: z.string().min(1).max(CHAIN_INSTRUCTION_MAX_CHARS).refine((value) => value.trim().length > 0, { message: "the message is empty" }),
6040
- close_session: z.boolean().optional()
6091
+ agent: AgentTargetSchema.optional(),
6092
+ ...IGNORED_OLD_FIELDS
6041
6093
  });
6094
+ z.strictObject({ agent: AgentTargetSchema.optional() });
6042
6095
  z.strictObject({
6043
6096
  text: z.string().min(1).max(CHAIN_INSTRUCTION_MAX_CHARS).refine((value) => value.trim().length > 0, { message: "the message is empty" }),
6044
6097
  input: z.enum(["text", "voice"]).optional()
6045
6098
  });
6046
- z.strictObject({ agent: AgentTargetSchema.optional() });
6047
- z.strictObject({
6048
- agent: AgentTargetSchema,
6049
- text: z.string().min(1).max(CHAIN_INSTRUCTION_MAX_CHARS).refine((value) => value.trim().length > 0, { message: "the instruction is empty" })
6050
- });
6051
- /** `payload` of `agent.instruction_given`: the creator's instruction, kept encrypted in the journal. */
6099
+ /** `payload` of `agent.instruction_given`: the creator's message, kept encrypted in the journal. */
6052
6100
  const InstructionGivenPayloadSchema = z.strictObject({
6053
- /** Who the creator spoke to (an agent, or Noah). */
6101
+ /** Who the creator spoke to. */
6054
6102
  to: AgentTargetSchema,
6055
- /** The agent the instruction goes to when Noah routed it. */
6103
+ /** The agent the message went to when Noah routed it (events of earlier versions). */
6056
6104
  routed_to: AgentTargetSchema.optional(),
6057
6105
  text: z.string().min(1).max(CHAIN_INSTRUCTION_MAX_CHARS),
6058
- /** `now`: the agent that works is redirected; `queued`: the agent gets it when it next starts. */
6106
+ /** How the message was delivered (events of earlier versions use `now` and `queued`). */
6059
6107
  delivery: z.enum([
6060
6108
  "now",
6061
6109
  "queued",
@@ -7250,7 +7298,7 @@ function deviationIdOf(eventId) {
7250
7298
  return `V-${eventId.slice(-10)}`;
7251
7299
  }
7252
7300
  const NO_CONTROL$2 = { message: "expected no control character" };
7253
- const SummarySchema = z.string().trim().min(1).max(200).refine((summary) => !/[\r\n]/.test(summary), { message: "expected a single line" }).refine((summary) => !hasControlCharacter(summary, false), NO_CONTROL$2);
7301
+ const SummarySchema$1 = z.string().trim().min(1).max(200).refine((summary) => !/[\r\n]/.test(summary), { message: "expected a single line" }).refine((summary) => !hasControlCharacter(summary, false), NO_CONTROL$2);
7254
7302
  const DetailSchema = z.string().trim().min(1).max(2e3).refine((detail) => !hasControlCharacter(detail, true), NO_CONTROL$2);
7255
7303
  const ReasonSchema = z.string().trim().min(1).max(1e3).refine((reason) => !hasControlCharacter(reason, true), NO_CONTROL$2);
7256
7304
  const RequirementIdSchema = z.string().regex(REQUIREMENT_ID_PATTERN, { message: "expected a requirement id (EF-n, ENF-n, PU-n, MS-n or AD-n)" });
@@ -7261,7 +7309,7 @@ const requirementsOf = (id) => z.array(id).min(1).max(20).refine((ids) => new Se
7261
7309
  */
7262
7310
  const DeviationReportedPayloadSchema = z.strictObject({
7263
7311
  requirements: requirementsOf(RequirementIdSchema),
7264
- summary: SummarySchema,
7312
+ summary: SummarySchema$1,
7265
7313
  detail: DetailSchema.optional(),
7266
7314
  pr: z.number().int().min(1).max(Number.MAX_SAFE_INTEGER).optional(),
7267
7315
  /** The commit compared with the requirements. */
@@ -7279,7 +7327,7 @@ const ReportDeviationInputSchema = z.strictObject({
7279
7327
  agent: AgentIdSchema.max(64),
7280
7328
  story: StoryIdSchema.overwrite(canonicalStoryId),
7281
7329
  requirements: requirementsOf(RequirementInputSchema),
7282
- summary: SummarySchema,
7330
+ summary: SummarySchema$1,
7283
7331
  detail: DetailSchema.optional(),
7284
7332
  commit: CommitIdSchema.optional()
7285
7333
  });
@@ -7614,6 +7662,25 @@ const CheckpointElicitedPayloadSchema = z.strictObject({
7614
7662
  });
7615
7663
  });
7616
7664
  //#endregion
7665
+ //#region ../../packages/protocol/dist/exchange.js
7666
+ /**
7667
+ * The summary of an exchange: at the end of each exchange with the creator, Noah writes a short
7668
+ * note to the journal (what was asked, what was decided, what was promised). Whatever session Noah
7669
+ * runs in (the AI tool's or the bridge's), a fresh session reads the latest notes in the state of
7670
+ * the product and takes the thread up where it was left, without any session to resume.
7671
+ */
7672
+ /** Event type of the summary, at version 1. */
7673
+ const EXCHANGE_EVENT_TYPES = { summarized: "exchange.summarized" };
7674
+ /** One line, 1 to 300 characters, no control character. */
7675
+ const SummarySchema = z.string().trim().min(1).max(300).refine((text) => !hasControlCharacter(text, false), { message: "expected one line without control character" }).refine((text) => !/[\u2028\u2029\u200e\u200f\u202a-\u202e\u2066-\u2069]/u.test(text), { message: "expected one line without separator or direction mark" });
7676
+ /** Input of `summarize`: Noah's own id and the note. */
7677
+ const SummarizeInputSchema = z.strictObject({
7678
+ agent: AgentIdSchema.max(64),
7679
+ summary: SummarySchema
7680
+ });
7681
+ /** `payload` of `exchange.summarized`. */
7682
+ const ExchangeSummarizedPayloadSchema = z.strictObject({ summary: SummarySchema });
7683
+ //#endregion
7617
7684
  //#region ../../packages/protocol/dist/merge.js
7618
7685
  /**
7619
7686
  * The merge of a story. Once the creator approves a story's merge checkpoint
@@ -8062,6 +8129,66 @@ const LoopInputSchema = z.strictObject({
8062
8129
  message: "a story goes with an approach (note) or a result (seen), and only with them",
8063
8130
  path: ["story"]
8064
8131
  });
8132
+ //#endregion
8133
+ //#region ../../packages/protocol/dist/tolerant-reader.js
8134
+ const cache = /* @__PURE__ */ new WeakMap();
8135
+ const defOf = (schema) => schema._zod.def;
8136
+ const cloneWith = (schema, def) => schema.clone(def);
8137
+ function derive(schema) {
8138
+ const def = defOf(schema);
8139
+ switch (def.type) {
8140
+ case "object": {
8141
+ const shape = def.shape;
8142
+ const next = {};
8143
+ for (const key of Object.keys(shape)) next[key] = readTolerant(shape[key]);
8144
+ return cloneWith(schema, {
8145
+ ...def,
8146
+ shape: next,
8147
+ catchall: void 0
8148
+ });
8149
+ }
8150
+ case "array": return cloneWith(schema, {
8151
+ ...def,
8152
+ element: readTolerant(def.element)
8153
+ });
8154
+ case "optional":
8155
+ case "nullable":
8156
+ case "readonly":
8157
+ case "default":
8158
+ case "prefault":
8159
+ case "nonoptional":
8160
+ case "catch": return cloneWith(schema, {
8161
+ ...def,
8162
+ innerType: readTolerant(def.innerType)
8163
+ });
8164
+ case "union": return cloneWith(schema, {
8165
+ ...def,
8166
+ options: def.options.map((option) => readTolerant(option))
8167
+ });
8168
+ case "record": return cloneWith(schema, {
8169
+ ...def,
8170
+ valueType: readTolerant(def.valueType)
8171
+ });
8172
+ case "tuple": return cloneWith(schema, {
8173
+ ...def,
8174
+ items: def.items.map((item) => readTolerant(item))
8175
+ });
8176
+ case "pipe": return cloneWith(schema, {
8177
+ ...def,
8178
+ in: readTolerant(def.in),
8179
+ out: readTolerant(def.out)
8180
+ });
8181
+ default: return schema;
8182
+ }
8183
+ }
8184
+ /** The same schema, reading what a device receives: unknown keys dropped, known ones as strict as before. */
8185
+ function readTolerant(schema) {
8186
+ const known = cache.get(schema);
8187
+ if (known !== void 0) return known;
8188
+ const derived = derive(schema);
8189
+ cache.set(schema, derived);
8190
+ return derived;
8191
+ }
8065
8192
  const ProductStageSchema = z.enum([
8066
8193
  "framing",
8067
8194
  "development",
@@ -8144,6 +8271,14 @@ z.strictObject({
8144
8271
  archived: z.boolean().optional()
8145
8272
  }).refine((params) => Object.keys(params).length > 0, { message: "at least one mark" });
8146
8273
  z.strictObject({ profile: ProfileSchema });
8274
+ z.strictObject({ to: SemverSchema.optional() });
8275
+ readTolerant(z.strictObject({
8276
+ version: SemverSchema,
8277
+ /** The version this machine would bring the product to; absent when it cannot update products. */
8278
+ target: SemverSchema.optional(),
8279
+ /** `running` while an update asked from a device is under way; `failed` when the last one did not end. */
8280
+ update: z.enum(["running", "failed"]).optional()
8281
+ }));
8147
8282
  /** What a machine says of the place it allows products in. */
8148
8283
  const ProductLocationSchema = z.strictObject({
8149
8284
  id: z.string().regex(PRODUCT_LOCATION_ID_PATTERN),
@@ -8189,66 +8324,6 @@ const ProductLifeSchema = z.strictObject({
8189
8324
  autonomy: ProductAutonomySchema.optional()
8190
8325
  });
8191
8326
  //#endregion
8192
- //#region ../../packages/protocol/dist/tolerant-reader.js
8193
- const cache = /* @__PURE__ */ new WeakMap();
8194
- const defOf = (schema) => schema._zod.def;
8195
- const cloneWith = (schema, def) => schema.clone(def);
8196
- function derive(schema) {
8197
- const def = defOf(schema);
8198
- switch (def.type) {
8199
- case "object": {
8200
- const shape = def.shape;
8201
- const next = {};
8202
- for (const key of Object.keys(shape)) next[key] = readTolerant(shape[key]);
8203
- return cloneWith(schema, {
8204
- ...def,
8205
- shape: next,
8206
- catchall: void 0
8207
- });
8208
- }
8209
- case "array": return cloneWith(schema, {
8210
- ...def,
8211
- element: readTolerant(def.element)
8212
- });
8213
- case "optional":
8214
- case "nullable":
8215
- case "readonly":
8216
- case "default":
8217
- case "prefault":
8218
- case "nonoptional":
8219
- case "catch": return cloneWith(schema, {
8220
- ...def,
8221
- innerType: readTolerant(def.innerType)
8222
- });
8223
- case "union": return cloneWith(schema, {
8224
- ...def,
8225
- options: def.options.map((option) => readTolerant(option))
8226
- });
8227
- case "record": return cloneWith(schema, {
8228
- ...def,
8229
- valueType: readTolerant(def.valueType)
8230
- });
8231
- case "tuple": return cloneWith(schema, {
8232
- ...def,
8233
- items: def.items.map((item) => readTolerant(item))
8234
- });
8235
- case "pipe": return cloneWith(schema, {
8236
- ...def,
8237
- in: readTolerant(def.in),
8238
- out: readTolerant(def.out)
8239
- });
8240
- default: return schema;
8241
- }
8242
- }
8243
- /** The same schema, reading what a device receives: unknown keys dropped, known ones as strict as before. */
8244
- function readTolerant(schema) {
8245
- const known = cache.get(schema);
8246
- if (known !== void 0) return known;
8247
- const derived = derive(schema);
8248
- cache.set(schema, derived);
8249
- return derived;
8250
- }
8251
- //#endregion
8252
8327
  //#region ../../packages/protocol/dist/machines.js
8253
8328
  /**
8254
8329
  * Several machines for one account: what a machine says about itself (end-to-end encrypted, the
@@ -8489,6 +8564,85 @@ const MethodMigratedPayloadSchema = z.strictObject({
8489
8564
  to_engine: SemverSchema,
8490
8565
  steps: z.array(MigrationStepIdSchema).max(1e3)
8491
8566
  }).refine((payload) => payload.to_format >= payload.from_format, { path: ["to_format"] }).refine((payload) => payload.steps.length === payload.to_format - payload.from_format, { path: ["steps"] }).refine((payload) => payload.to_format !== payload.from_format || payload.from_engine !== payload.to_engine, { path: ["to_engine"] });
8567
+ const NoticeBaseSchema = {
8568
+ /** Unique in the product: the same id is never kept twice (a validation uses its order). */
8569
+ id: z.string().min(1).max(64),
8570
+ /** When the notice was made (ISO 8601). */
8571
+ at: z.string().min(1).max(40)
8572
+ };
8573
+ /** The creator validated (or refused, or asked changes to) a point. */
8574
+ const ValidatedNoticeSchema = z.strictObject({
8575
+ ...NoticeBaseSchema,
8576
+ kind: z.literal("checkpoint_validated"),
8577
+ checkpoint: CheckpointIdSchema,
8578
+ decision: z.enum(CHAT_DECISIONS),
8579
+ option: z.string().min(1).max(32).optional(),
8580
+ /** The creator's own words with the decision: data for Noah, never an instruction. */
8581
+ note: z.string().min(1).max(MAX_WEB_ANSWER_NOTE_LENGTH).optional(),
8582
+ source: z.enum(ANSWER_SOURCES),
8583
+ story: z.string().min(1).max(32).optional()
8584
+ });
8585
+ /** A trigger the bridge carries: a recurring mission, an event, a CI run, a release. */
8586
+ const TriggerNoticeSchema = z.strictObject({
8587
+ ...NoticeBaseSchema,
8588
+ kind: z.enum([
8589
+ "mission",
8590
+ "event",
8591
+ "ci",
8592
+ "deploy"
8593
+ ]),
8594
+ /** What happened or what is due, in a few words. */
8595
+ subject: z.string().min(1).max(120),
8596
+ detail: z.string().min(1).max(300).optional()
8597
+ });
8598
+ /**
8599
+ * A message of the creator that Noah could not read when it came (his run did not take messages
8600
+ * while it went on). The words are also in the journal; they are data for Noah, quoted, and the
8601
+ * answer to them is the creator's request, never an instruction of the bridge.
8602
+ */
8603
+ const RequestNoticeSchema = z.strictObject({
8604
+ ...NoticeBaseSchema,
8605
+ kind: z.literal("request"),
8606
+ text: z.string().min(1).max(CHAIN_INSTRUCTION_MAX_CHARS),
8607
+ /** The message was dictated: the answer is read aloud. */
8608
+ voice: z.boolean().optional()
8609
+ });
8610
+ z.union([
8611
+ ValidatedNoticeSchema,
8612
+ RequestNoticeSchema,
8613
+ TriggerNoticeSchema
8614
+ ]);
8615
+ z.strictObject({});
8616
+ const LiveNoticesSchema = z.strictObject({
8617
+ cause: z.enum([
8618
+ "busy",
8619
+ "held",
8620
+ "paused",
8621
+ "archived",
8622
+ "failed"
8623
+ ]),
8624
+ /** Everything that waits, requests included. */
8625
+ count: z.number().int().min(1).max(20),
8626
+ /** How many of them are requests of the creator, when some are. */
8627
+ requests: z.number().int().min(1).max(10).optional()
8628
+ });
8629
+ //#endregion
8630
+ //#region ../../packages/protocol/dist/team.js
8631
+ const TEAM_EVENT_TYPES = {
8632
+ paused: "team.paused",
8633
+ resumed: "team.resumed"
8634
+ };
8635
+ /** `payload` of `team.paused`. */
8636
+ const TeamPausedPayloadSchema = z.strictObject({ reason: z.enum(["creator", "emergency_stop"]) });
8637
+ /** `payload` of `team.resumed`. */
8638
+ const TeamResumedPayloadSchema = z.strictObject({});
8639
+ z.strictObject({});
8640
+ /**
8641
+ * Input of `pause_team`: Noah's own id, nothing else. Noah writes the pause only once the creator
8642
+ * said yes in the conversation (he proposes it, he never imposes it); the resumption stays the
8643
+ * creator's gesture.
8644
+ */
8645
+ const PauseTeamInputSchema = z.strictObject({ agent: AgentIdSchema.max(64) });
8492
8646
  //#endregion
8493
8647
  //#region ../../packages/protocol/dist/orders.js
8494
8648
  /**
@@ -9747,6 +9901,20 @@ const EVENT_TYPE_REGISTRY = {
9747
9901
  payload: InstructionGivenPayloadSchema,
9748
9902
  sensitive: true
9749
9903
  },
9904
+ /** The creator holds the whole team, then lets it go on. */
9905
+ [TEAM_EVENT_TYPES.paused]: {
9906
+ version: 1,
9907
+ payload: TeamPausedPayloadSchema
9908
+ },
9909
+ [TEAM_EVENT_TYPES.resumed]: {
9910
+ version: 1,
9911
+ payload: TeamResumedPayloadSchema
9912
+ },
9913
+ /** Noah's short note at the end of an exchange with the creator. */
9914
+ [EXCHANGE_EVENT_TYPES.summarized]: {
9915
+ version: 1,
9916
+ payload: ExchangeSummarizedPayloadSchema
9917
+ },
9750
9918
  [AGENT_EVENT_TYPES.progressReported]: {
9751
9919
  version: 1,
9752
9920
  payload: ProgressReportedPayloadSchema
@@ -10173,6 +10341,7 @@ function isTestEventType(type) {
10173
10341
  * a sensitive domain (`salle.*`, `security.*`, `memory.*`), known yet or not.
10174
10342
  */
10175
10343
  function isSensitiveEventType(type) {
10344
+ if (isExtensionEventType(type)) return true;
10176
10345
  if (eventTypeSpec(type)?.sensitive === true) return true;
10177
10346
  const domain = type.split(".")[0] ?? "";
10178
10347
  return SENSITIVE_EVENT_DOMAINS.includes(domain);
@@ -10187,6 +10356,7 @@ function eventTypeSpec(type) {
10187
10356
  * undefined when it can read it.
10188
10357
  */
10189
10358
  function eventTypeUpgrade(type, version) {
10359
+ if (isExtensionEventType(type)) return void 0;
10190
10360
  const spec = eventTypeSpec(type);
10191
10361
  if (spec !== void 0 && version <= spec.version) return void 0;
10192
10362
  return {
@@ -10211,6 +10381,10 @@ function currentEvent(event) {
10211
10381
  ok: false,
10212
10382
  error: upgrade
10213
10383
  };
10384
+ if (isExtensionEventType(event.type)) return {
10385
+ ok: true,
10386
+ event
10387
+ };
10214
10388
  const spec = eventTypeSpec(event.type);
10215
10389
  let current = event;
10216
10390
  for (let version = event.v; version < spec.version; version++) {
@@ -10844,6 +11018,7 @@ z.discriminatedUnion("type", [
10844
11018
  active: z.boolean()
10845
11019
  }),
10846
11020
  z.strictObject({ type: z.literal("notify_prefs_get") }),
11021
+ z.strictObject({ type: z.literal("modules_get") }),
10847
11022
  z.strictObject({
10848
11023
  type: z.literal("notify_prefs_set"),
10849
11024
  prefs: NotifyPrefsSchema
@@ -10995,6 +11170,10 @@ z.discriminatedUnion("type", [
10995
11170
  id: PushNoticeSchema.shape.id,
10996
11171
  sent: z.number().int().min(0).max(1e3)
10997
11172
  }),
11173
+ z.strictObject({
11174
+ type: z.literal("modules"),
11175
+ modules: z.array(z.string().regex(EXTENSION_MODULE_PATTERN)).max(32)
11176
+ }),
10998
11177
  z.strictObject({
10999
11178
  type: z.literal("notify_prefs"),
11000
11179
  prefs: NotifyPrefsSchema
@@ -11463,10 +11642,9 @@ const FilesChangeSchema = z.strictObject({
11463
11642
  * the same references and paths as the file reading (`file`, `changes`). The results of a tool,
11464
11643
  * and the content of files, are never in a line.
11465
11644
  *
11466
- * In a conversation with Noah two more kinds appear: `creator`, the creator's own message (plain
11467
- * text, so that their other devices see it), and `routed`, what the bridge did with a handover
11468
- * Noah recorded, as a stable code (`noah:started?agent=iris`) the view tells in the creator's
11469
- * language. What Noah says is a `say` of the agent `noah`: untrusted text, like any agent's.
11645
+ * In a conversation with Noah one more kind appears: `creator`, the creator's own message (plain
11646
+ * text, so that their other devices see it). What Noah says is a `say` of the agent `noah`:
11647
+ * untrusted text, like any agent's.
11470
11648
  */
11471
11649
  const LiveLineSchema = z.strictObject({
11472
11650
  seq: z.number().int().min(1),
@@ -11486,8 +11664,7 @@ const LiveLineSchema = z.strictObject({
11486
11664
  "command",
11487
11665
  "command_ok",
11488
11666
  "command_failed",
11489
- "creator",
11490
- "routed"
11667
+ "creator"
11491
11668
  ]),
11492
11669
  text: z.string().max(2e3).optional(),
11493
11670
  /** For a command's issue: the `seq` of the line of the command. */
@@ -11514,14 +11691,12 @@ const LiveTerminalStateSchema = z.enum([
11514
11691
  "hook_missing",
11515
11692
  "unsupported"
11516
11693
  ]);
11517
- /** Where the chain of the product stands, as a code the views tell in the creator's language. */
11694
+ /** Where the team of the product stands, as a code the views tell in the creator's language. */
11518
11695
  const LiveChainStateSchema = z.enum([
11519
11696
  "none",
11520
11697
  "running",
11521
11698
  "waiting",
11522
11699
  "paused",
11523
- "handed_over",
11524
- "conversation",
11525
11700
  "stopped"
11526
11701
  ]);
11527
11702
  /** What an answer carries, by operation. */
@@ -11590,6 +11765,13 @@ const FilesDataSchema = z.discriminatedUnion("op", [
11590
11765
  /** True when more lines wait: ask again at once. */
11591
11766
  more: z.boolean(),
11592
11767
  chain: LiveChainStateSchema,
11768
+ /**
11769
+ * Present while the creator holds the whole team: `paused` (the agents finish their step and
11770
+ * start nothing) or `stopped` (the emergency stop cut what the bridge started).
11771
+ */
11772
+ team: z.enum(["paused", "stopped"]).optional(),
11773
+ /** Present while notices wait for Noah (a validation he has not read yet) and why. */
11774
+ notices: LiveNoticesSchema.optional(),
11593
11775
  /** The agent that works now, or null. */
11594
11776
  working: z.strictObject({
11595
11777
  agent: z.string().min(1).max(64),
@@ -11606,13 +11788,7 @@ const FilesDataSchema = z.discriminatedUnion("op", [
11606
11788
  "cursor"
11607
11789
  ]),
11608
11790
  state: LiveTerminalStateSchema
11609
- })).max(8).optional(),
11610
- /** Present while the creator holds the session: where to go and what to type in the terminal. */
11611
- handover: z.strictObject({
11612
- tool: z.string().min(1).max(32),
11613
- cwd: z.string().min(1).max(FILES_PATH_MAX),
11614
- command: z.string().min(1).max(300)
11615
- }).optional()
11791
+ })).max(8).optional()
11616
11792
  })
11617
11793
  ]);
11618
11794
  const FilesResponseSchema = z.discriminatedUnion("ok", [z.strictObject({
@@ -12694,4 +12870,4 @@ function gitBlobId(bytes, algorithm = "sha1") {
12694
12870
  return toHex(algorithm === "sha1" ? sha1(object) : sha256$1(object));
12695
12871
  }
12696
12872
  //#endregion
12697
- export { readinessIdOf as $, UpdateStoryInputSchema as $a, lessonIdOf as $i, CI_EVENT_TYPES as $n, criterionId as $r, RepositoryPathSchema as $t, RoomIdSchema as A, SkillContentSchema as Aa, ReportMeasuresInputSchema as Ai, COURSE_EVENT_TYPES as An, MODEL_TIERS as Ao, CHAT_RETENTION_MS as Ar, JOURNAL_REF as At, OpenStackInputSchema as B, DeferredReasonSchema as Ba, hasMisleadingControl as Bi, DocumentHeaderSchema as Bn, recommendedGitWorkflow as Bo, menuKey as Br, FAST_TRACK_ENGINE_REASONS as Bt, USAGE_EVENT_TYPES as C, PrerequisiteCommandSchema as Ca, CONFIRMATION_MODES as Ci, SOLO_METHODS as Cn, TestSettingsSchema as Co, isTrustSignatureTag as Cr, MACHINE_EVENT_TYPES as Ct, TEST_CRITERIA as D, FORM_CONTENT_MAX_CHARS as Da, OpenCheckpointInputSchema as Di, hypothesisIdOf as Dn, INHERIT_MODEL as Do, AnswerCheckpointInputSchema as Dr, LoopInputSchema as Dt, ReviewTestsInputSchema as E, AgentContentSchema as Ea, NOTE_REQUIRED as Ei, critiqueStepOf as En, ValidationSettingsSchema as Eo, ANTICIPATED_ANSWER_WINDOW_MS as Er, LOOP_EVENT_TYPES as Et, THREE_VIEWS_AGENTS as F, plainLine as Fa, SESSION_EVENT_TYPES as Fi, ArchitectureHeaderSchema as Fn, GIT_CI_MODES as Fo, QuestionStackProofSchema as Fr, journalSeenRef as Ft, PlanSprintInputSchema as G, AGENT_EVENT_TYPES as Ga, PROMOTION_TITLE as Gi, REQUIREMENT_ID_PATTERN as Gn, SIGNATURE_REASON as Go, QA_COMMAND as Gr, missingDeclarations as Gt, stackIdOf as H, compareStoryIds as Ha, LESSON_EVENT_TYPES as Hi, EpicHeaderSchema as Hn, sameWorkflow as Ho, SkillFrontmatterSchema as Hr, FAST_TRACK_OPTIONS as Ht, flatTable as I, CompleteDeferredInputSchema as Ia, PUBLICATION_DOCS_DIR as Ii, CREATOR_OWNER as In, GIT_EVENT_TYPES as Io, QuestionToolViaSchema as Ir, HUMAN_DEVICE_PATTERN as It, sprintIdOf as J, ReportCostInputSchema as Ja, ProposeRetrospectiveInputSchema as Ji, StoryHeaderSchema as Jn, jsonValueIssue as Jo, qaProofBelongs as Jr, KNOWLEDGE_STORY_FIELD as Jt, SPRINT_EVENT_TYPES as K, MAIN_SESSION_AGENT as Ka, PromoteLessonInputSchema as Ki, STORY_DOCUMENT_ID_PATTERN as Kn, ULID_PATTERN as Ko, QA_EVENT_TYPES as Kr, DEFAULT_MERGE_METHOD as Kt, roundTableStepOf as L, DEFERRED_EVENT_TYPES as La, PUBLICATION_EXPORT_DIR as Li, DOCUMENT_DIRS as Ln, GIT_MERGE_MODES as Lo, RULE_LOCKS as Lr, HUMAN_EVENT_TYPES as Lt, RoundTableInputSchema as M, contentSize as Ma, CheckActionInputSchema as Mi, CourseInputSchema as Mn, NO_EFFORT as Mo, QUESTION_TOOL_NAME as Mr, RESERVED_EVENT_TYPES as Mt, TABLE_ANGLES as N, isSkillContent as Na, RecordExternalReadInputSchema as Ni, courseIdOf as Nn, ISSUE as No, QUESTION_TOOL_VIA as Nr, journalEventPath as Nt, TEST_REVIEW_EVENT_TYPES as O, REQUIRED_CONTENT_FIELDS as Oa, RECIPIENT_ROLES as Oi, isCritiqueGesture as On, LEGACY_GEMINI_CLIENT as Oo, CHAT_DECISIONS as Or, EVENT_TYPES as Ot, TABLE_EVENT_TYPES as P, isSkillOverrideContent as Pa, RequestActionInputSchema as Pi, parseCourseStart as Pn, issueName as Po, QuestionProofSchema as Pr, journalRemoteRef as Pt, ReadyInputSchema as Q, SubmitResultInputSchema as Qa, commonIdOf as Qi, INSTALL_EVENT_TYPES as Qn, criteriaInLine as Qr, MERGE_EVENT_TYPES as Qt, AnswerStackInputSchema as R, DeferWorkInputSchema as Ra, countWords as Ri, DOCUMENT_ID_PATTERN as Rn, GitBranchSchema as Ro, AgentDefinitionSchema as Rr, HUMAN_ONLY_EVENT_TYPES as Rt, MeasureUsageInputSchema as S, EnvironmentCheckIdSchema as Sa, CHECKPOINT_EVENT_TYPES as Si, RECONCILE_KINDS as Sn, TOOL_IDS as So, deviceRevokedRecord as Sr, SUBSTANTIVE_CLASSES as St, UsageMeasuredPayloadSchema as T, PrerequisitesSchema as Ta, LIFTING_DECISIONS as Ti, critiquePathOf as Tn, VALIDATION_POINTS as To, rootCertifiedRecord as Tr, HYPOTHESIS_KIND as Tt, MAX_SPRINT_CHECKPOINT_SUMMARY as U, deferredIdOf as Ua, MEMORY_APPROVING_DECISIONS as Ui, KNOWLEDGE_SOURCES_FIELD as Un, EVENT_REASON as Uo, AcceptanceQaInputSchema as Ur, LeaveFastTrackInputSchema as Ut, STACK_EVENT_TYPES as V, canonicalStoryId as Va, CommonLessonIdSchema as Vi, EPIC_DOCUMENT_ID_PATTERN as Vn, resolveGitWorkflow as Vo, AgentFrontmatterSchema as Vr, FAST_TRACK_EVENT_TYPES as Vt, MAX_SPRINT_USD as W, hasControlCharacter as Wa, MEMORY_EVENT_TYPES as Wi, KnowledgeSourceSchema as Wn, EVENT_TYPE_PATTERN as Wo, MAX_QA_PROOF_BYTES as Wr, StartStoryFastTrackInputSchema as Wt, READINESS_FIX_FIRST as X, ReportStatusInputSchema as Xa, RecordLessonsInputSchema as Xi, ARCHITECTURE_DEPENDENCIES_FIELD as Xn, TEST_EVENT_TYPE as Xo, CRITERION_EVENT_TYPES as Xr, KnowledgeStorySchema as Xt, READINESS_EVENT_TYPES as Y, ReportProgressInputSchema as Ya, ReadMemoryInputSchema as Yi, epicIdOf as Yn, parseEventEnvelope as Yo, qaProofKind as Yr, KnowledgeCodeSchema as Yt, READINESS_GO_ON as Z, StoryIdSchema as Za, actionIdOf as Zi, DependenciesSchema as Zn, ErrorCode as Zo, RecordCriterionInputSchema as Zr, MAX_MERGED_FILES as Zt, currentEvent as _, RunProofCommandInputSchema as _a, reviewIdOf as _i, NOAH_AGENT as _n, RULE_VALUES as _o, DEVICE_TRUST_SYSTEM_EVENT_TYPES as _r, CONFLICT_CLASSES as _t, fromBase64url as a, CreatorActionSchema as aa, JUDGE_LENS as ai, DEVIATION_EVENT_TYPES as an, DEVELOPER_SPECIALTIES as ao, MAX_CI_CHECKS as ar, PRODUCT_KEYS_EXPORT_PREFIX as at, isSensitiveEventType as b, isStoryStep as ba, STORY_EVENT_TYPES as bi, CritiqueInputSchema as bn, SkillNameSchema as bo, deviceKindOf as br, MERGE_ORDER_EVENT_TYPES as bt, toHex as c, RequestCreatorActionInputSchema as ca, REVIEW_LENSES as ci, GetTraceInputSchema as cn, InstallSettingsSchema as co, CHECKPOINT_CLOSED_EVENT_TYPES as cr, ProductKeyRotatedPayloadSchema as ct, ClaudeSettingsSchema as d, CheckWriteInputSchema as da, StoryReviewInputSchema as di, ResolveDeviationInputSchema as dn, PHASE_IDS as do, BUDGET_TITLE_PREFIX as dr, WriteSensitiveInputSchema as dt, retroIdOf as ea, REQUIREMENT_EVENT_TYPES as ei, AskCreatorInputSchema as en, AgentIdSchema as eo, CI_FORGES as er, readinessStepOf as et, CursorCliConfigSchema as f, WRITE_GUARD_EVENT_TYPES as fa, SubmitReviewInputSchema as fi, TRACED_REQUIREMENT_PATTERN as fn, PROFILE_PRESET_IDS as fo, WEB_ANSWER_EVENT_TYPES as fr, isSensitivePath as ft, JOURNAL_PROJECTED_REF as g, ProofsFileSchema as ga, isSilentLens as gi, DelegateInputSchema as gn, RULE_ACTIONS as go, DEVICE_TRUST_EVENT_TYPES as gr, MigrationStepIdSchema as gt, REDACTED_SECRET as h, SkillOverrideSchema as ha, isSilentJudge as hi, DELEGATION_EVENT_TYPES as hn, PullRequestSettingsSchema as ho, BRIDGE_ID_PATTERN as hr, METHOD_EVENT_TYPES as ht, sha256Hex as i, CREATOR_ACTION_KINDS as ia, SyncRequirementsInputSchema as ii, MAX_ELICITED_NOTE_LENGTH as in, DEFAULT_VALIDATION_POINTS as io, CiWaiverReasonSchema as ir, PAYLOAD_ENCRYPTION_ALG as it, RoomSchema as j, contentSections as ja, checkpointIdOf as ji, COURSE_KINDS as jn, ModelTableSchema as jo, MessageDigestSchema as jr, MACHINE_DEVICE_PATTERN as jt, TEST_ROWS as k, SKILL_OVERRIDE_FIELDS as ka, RESOLUTION_DECISIONS as ki, isHypothesisOutcome as kn, MODEL_CLIENT_IDS as ko, CHAT_EVENT_TYPES as kr, JOURNAL_DIR as kt, utf8 as l, engineUpdateRisk as la, SECURITY_REASONS as li, REQUIREMENT_STATUSES as ln, MethodConfigSchema as lo, CHAIN_EVENT_TYPES as lr, ReadSensitiveInputSchema as lt, GetStateInputSchema as m, REVIEW_SKILLS as ma, findingIdOf as mi, deviationIdOf as mn, ProfileSchema as mo, WEB_ANSWER_WINDOW_MS as mr, ORDER_EVENT_TYPES as mt, randomBytes as n, scopeLabel as na, SettleGapInputSchema as ni, ELICITATION_TIMEOUT_MS as nn, DEFAULT_PERMISSION_MODE as no, CiReportedPayloadSchema as nr, KEY_ID_PATTERN as nt, fromUtf8 as o, FILE_CREATOR_ACTIONS as oa, REVIEW_DOMAINS as oi, DeviationIdInputSchema as on, DOMAIN_IDS as oo, CHECKPOINT_DECIDED_EVENT_TYPES as or, PRODUCT_KEY_EVENT_TYPES as ot, SyncManifestSchema as p, WRITE_TEXT_MAX as pa, TriageReviewInputSchema as pi, TracedRequirementInputSchema as pn, PROFILE_PRESET_SPECS as po, WEB_ANSWER_STALE_MS as pr, utf8Length as pt, SPRINT_TITLE_PREFIX as q, NextInputSchema as qa, ProposePromotionInputSchema as qi, STORY_SECTIONS as qn, eventInvalid as qo, QA_PROOF_DIR as qr, KNOWLEDGE_CODE_FIELD as qt, sha256 as r, CREATOR_ACTION_EVENT_TYPES as ra, SubmitAuditInputSchema as ri, ElicitationChannelSchema as rn, DEFAULT_VALIDATION_MODE as ro, CiUrlSchema as rr, MAX_SENSITIVE_CONTENT_BYTES as rt, toBase64url as s, FORGE_CREATOR_ACTIONS as sa, REVIEW_EVENT_TYPES as si, DeviationReasonSchema as sn, INSTALL_MODES as so, DecideCheckpointInputSchema as sr, PRODUCT_KEY_EXPORT_PREFIX as st, gitBlobId as t, retroTitle as ta, RecordProofInputSchema as ti, ELICITATION_EVENT_TYPES as tn, DEFAULT_INSTALL_MODE as to, CheckCiInputSchema as tr, ENCRYPTED_FILE_PREFIX as tt, historyCsv as u, proofCommandsRisk as ua, StartReviewInputSchema as ui, ReportDeviationInputSchema as un, PERMISSION_MODES as uo, BUDGET_EVENT_TYPES as ur, SENSITIVE_AREAS as ut, eventTypeSpec as v, normalizedFolder as va, CommitIdSchema as vi, CRITIQUE_DOCUMENT_KINDS as vn, RulesSchema as vo, RootPinSchema as vr, CONFLICT_OPTIONS as vt, USAGE_SOURCES as w, PrerequisiteVersionSchema as wa, CheckpointIdSchema as wi, critiqueIdOf as wn, VALIDATION_MODES as wo, pairOfferRecord as wr, HYPOTHESIS_CONFIDENCES as wt, isTestEventType as x, ARCHITECTURE_PREREQUISITES_FIELD as xa, isStoryBranch as xi, IDEA_VERSION as xn, TEST_FILE_MAX_LINES as xo, devicePairedRecord as xr, QualifyMergeConflictInputSchema as xt, eventTypeUpgrade as y, PHASE_STEPS as ya, OpenPullRequestInputSchema as yi, CRITIQUE_EVENT_TYPES as yn, SemverSchema as yo, TRUST_SIGNATURE_TAGS as yr, GetMergeOrderInputSchema as yt, AskStackInputSchema as z, DeferredIdInputSchema as za, hasHiddenCharacter as zi, DOCUMENT_KINDS as zn, GitWorkflowSchema as zo, AgentOverrideSchema as zr, PresenceCredentialSchema as zt };
12873
+ export { readinessIdOf as $, AGENT_EVENT_TYPES as $a, PROMOTION_TITLE as $i, epicIdOf as $n, EVENT_REASON as $o, QA_COMMAND as $r, MAX_MERGED_FILES as $t, RoomIdSchema as A, EnvironmentCheckIdSchema as Aa, CHECKPOINT_EVENT_TYPES as Ai, critiqueStepOf as An, SkillNameSchema as Ao, deviceRevokedRecord as Ar, EVENT_TYPES as At, OpenStackInputSchema as B, contentSize as Ba, CheckActionInputSchema as Bi, CREATOR_OWNER as Bn, MODEL_TIERS as Bo, QUESTION_TOOL_NAME as Br, HUMAN_ONLY_EVENT_TYPES as Bt, USAGE_EVENT_TYPES as C, SkillOverrideSchema as Ca, isSilentJudge as Ci, CRITIQUE_EVENT_TYPES as Cn, PROFILE_PRESET_SPECS as Co, BRIDGE_ID_PATTERN as Cr, QualifyMergeConflictInputSchema as Ct, TEST_CRITERIA as D, PHASE_STEPS as Da, OpenPullRequestInputSchema as Di, SOLO_METHODS as Dn, RULE_VALUES as Do, TRUST_SIGNATURE_TAGS as Dr, HYPOTHESIS_KIND as Dt, ReviewTestsInputSchema as E, normalizedFolder as Ea, CommitIdSchema as Ei, RECONCILE_KINDS as En, RULE_ACTIONS as Eo, RootPinSchema as Er, HYPOTHESIS_CONFIDENCES as Et, THREE_VIEWS_AGENTS as F, FORM_CONTENT_MAX_CHARS as Fa, OpenCheckpointInputSchema as Fi, COURSE_KINDS as Fn, VALIDATION_POINTS as Fo, AnswerCheckpointInputSchema as Fr, journalEventPath as Ft, PlanSprintInputSchema as G, DEFERRED_EVENT_TYPES as Ga, PUBLICATION_EXPORT_DIR as Gi, EPIC_DOCUMENT_ID_PATTERN as Gn, GIT_CI_MODES as Go, RULE_LOCKS as Gr, LeaveFastTrackInputSchema as Gt, stackIdOf as H, isSkillOverrideContent as Ha, RequestActionInputSchema as Hi, DOCUMENT_ID_PATTERN as Hn, NO_EFFORT as Ho, QuestionProofSchema as Hr, FAST_TRACK_ENGINE_REASONS as Ht, flatTable as I, REQUIRED_CONTENT_FIELDS as Ia, RECIPIENT_ROLES as Ii, CourseInputSchema as In, ValidationSettingsSchema as Io, CHAT_DECISIONS as Ir, journalRemoteRef as It, sprintIdOf as J, DeferredReasonSchema as Ja, hasMisleadingControl as Ji, KnowledgeSourceSchema as Jn, GitBranchSchema as Jo, menuKey as Jr, DEFAULT_MERGE_METHOD as Jt, SPRINT_EVENT_TYPES as K, DeferWorkInputSchema as Ka, countWords as Ki, EpicHeaderSchema as Kn, GIT_EVENT_TYPES as Ko, AgentDefinitionSchema as Kr, StartStoryFastTrackInputSchema as Kt, roundTableStepOf as L, SKILL_OVERRIDE_FIELDS as La, RESOLUTION_DECISIONS as Li, courseIdOf as Ln, INHERIT_MODEL as Lo, CHAT_EVENT_TYPES as Lr, journalSeenRef as Lt, RoundTableInputSchema as M, PrerequisiteVersionSchema as Ma, CheckpointIdSchema as Mi, isCritiqueGesture as Mn, TOOL_IDS as Mo, pairOfferRecord as Mr, JOURNAL_REF as Mt, TABLE_ANGLES as N, PrerequisitesSchema as Na, LIFTING_DECISIONS as Ni, isHypothesisOutcome as Nn, TestSettingsSchema as No, rootCertifiedRecord as Nr, MACHINE_DEVICE_PATTERN as Nt, TEST_REVIEW_EVENT_TYPES as O, isStoryStep as Oa, STORY_EVENT_TYPES as Oi, critiqueIdOf as On, RulesSchema as Oo, deviceKindOf as Or, LOOP_EVENT_TYPES as Ot, TABLE_EVENT_TYPES as P, AgentContentSchema as Pa, NOTE_REQUIRED as Pi, COURSE_EVENT_TYPES as Pn, VALIDATION_MODES as Po, ANTICIPATED_ANSWER_WINDOW_MS as Pr, RESERVED_EVENT_TYPES as Pt, ReadyInputSchema as Q, hasControlCharacter as Qa, MEMORY_EVENT_TYPES as Qi, StoryHeaderSchema as Qn, sameWorkflow as Qo, MAX_QA_PROOF_BYTES as Qr, KnowledgeStorySchema as Qt, AnswerStackInputSchema as R, SkillContentSchema as Ra, ReportMeasuresInputSchema as Ri, parseCourseStart as Rn, LEGACY_GEMINI_CLIENT as Ro, CHAT_RETENTION_MS as Rr, HUMAN_DEVICE_PATTERN as Rt, MeasureUsageInputSchema as S, REVIEW_SKILLS as Sa, findingIdOf as Si, CRITIQUE_DOCUMENT_KINDS as Sn, PROFILE_PRESET_IDS as So, WEB_ANSWER_WINDOW_MS as Sr, MERGE_ORDER_EVENT_TYPES as St, UsageMeasuredPayloadSchema as T, RunProofCommandInputSchema as Ta, reviewIdOf as Ti, IDEA_VERSION as Tn, PullRequestSettingsSchema as To, DEVICE_TRUST_SYSTEM_EVENT_TYPES as Tr, MACHINE_EVENT_TYPES as Tt, MAX_SPRINT_CHECKPOINT_SUMMARY as U, plainLine as Ua, SESSION_EVENT_TYPES as Ui, DOCUMENT_KINDS as Un, ISSUE as Uo, QuestionStackProofSchema as Ur, FAST_TRACK_EVENT_TYPES as Ut, STACK_EVENT_TYPES as V, isSkillContent as Va, RecordExternalReadInputSchema as Vi, DOCUMENT_DIRS as Vn, ModelTableSchema as Vo, QUESTION_TOOL_VIA as Vr, PresenceCredentialSchema as Vt, MAX_SPRINT_USD as W, CompleteDeferredInputSchema as Wa, PUBLICATION_DOCS_DIR as Wi, DocumentHeaderSchema as Wn, issueName as Wo, QuestionToolViaSchema as Wr, FAST_TRACK_OPTIONS as Wt, READINESS_FIX_FIRST as X, compareStoryIds as Xa, LESSON_EVENT_TYPES as Xi, STORY_DOCUMENT_ID_PATTERN as Xn, recommendedGitWorkflow as Xo, SkillFrontmatterSchema as Xr, KNOWLEDGE_STORY_FIELD as Xt, READINESS_EVENT_TYPES as Y, canonicalStoryId as Ya, CommonLessonIdSchema as Yi, REQUIREMENT_ID_PATTERN as Yn, GitWorkflowSchema as Yo, AgentFrontmatterSchema as Yr, KNOWLEDGE_CODE_FIELD as Yt, READINESS_GO_ON as Z, deferredIdOf as Za, MEMORY_APPROVING_DECISIONS as Zi, STORY_SECTIONS as Zn, resolveGitWorkflow as Zo, AcceptanceQaInputSchema as Zr, KnowledgeCodeSchema as Zt, currentEvent as _, engineUpdateRisk as _a, SECURITY_REASONS as _i, TracedRequirementInputSchema as _n, INSTALL_MODES as _o, BUDGET_RECOMMENDATION as _r, METHOD_EVENT_TYPES as _t, fromBase64url as a, actionIdOf as aa, RecordCriterionInputSchema as ai, ELICITATION_EVENT_TYPES as an, StoryIdSchema as ao, CheckCiInputSchema as ar, parseEventEnvelope as as, PRODUCT_KEYS_EXPORT_PREFIX as at, isSensitiveEventType as b, WRITE_GUARD_EVENT_TYPES as ba, SubmitReviewInputSchema as bi, DelegateInputSchema as bn, PERMISSION_MODES as bo, WEB_ANSWER_EVENT_TYPES as br, CONFLICT_OPTIONS as bt, toHex as c, retroIdOf as ca, REQUIREMENT_EVENT_TYPES as ci, MAX_ELICITED_NOTE_LENGTH as cn, AgentIdSchema as co, CiWaiverReasonSchema as cr, TEST_EVENT_TYPE as cs, ProductKeyRotatedPayloadSchema as ct, ClaudeSettingsSchema as d, CREATOR_ACTION_EVENT_TYPES as da, SubmitAuditInputSchema as di, DeviationReasonSchema as dn, DEFAULT_ON_EXCEED as do, DecideCheckpointInputSchema as dr, WriteSensitiveInputSchema as dt, PromoteLessonInputSchema as ea, QA_EVENT_TYPES as ei, MERGE_EVENT_TYPES as en, MAIN_SESSION_AGENT as eo, ARCHITECTURE_DEPENDENCIES_FIELD as er, EVENT_TYPE_PATTERN as es, readinessStepOf as et, CursorCliConfigSchema as f, CREATOR_ACTION_KINDS as fa, SyncRequirementsInputSchema as fi, GetTraceInputSchema as fn, DEFAULT_PERMISSION_MODE as fo, CHECKPOINT_CLOSED_EVENT_TYPES as fr, isSensitivePath as ft, JOURNAL_PROJECTED_REF as g, RequestCreatorActionInputSchema as ga, REVIEW_LENSES as gi, TRACED_REQUIREMENT_PATTERN as gn, DOMAIN_IDS as go, BUDGET_OPTIONS as gr, TEAM_EVENT_TYPES as gt, REDACTED_SECRET as h, FORGE_CREATOR_ACTIONS as ha, REVIEW_EVENT_TYPES as hi, ResolveDeviationInputSchema as hn, DEVELOPER_SPECIALTIES as ho, BUDGET_EVENT_TYPES as hr, PauseTeamInputSchema as ht, sha256Hex as i, RecordLessonsInputSchema as ia, CRITERION_EVENT_TYPES as ii, AskCreatorInputSchema as in, ReportStatusInputSchema as io, CI_FORGES as ir, jsonValueIssue as is, PAYLOAD_ENCRYPTION_ALG as it, RoomSchema as j, PrerequisiteCommandSchema as ja, CONFIRMATION_MODES as ji, hypothesisIdOf as jn, TEST_FILE_MAX_LINES as jo, isTrustSignatureTag as jr, JOURNAL_DIR as jt, TEST_ROWS as k, ARCHITECTURE_PREREQUISITES_FIELD as ka, isStoryBranch as ki, critiquePathOf as kn, SemverSchema as ko, devicePairedRecord as kr, LoopInputSchema as kt, utf8 as l, retroTitle as la, RecordProofInputSchema as li, DEVIATION_EVENT_TYPES as ln, DEFAULT_ALERT_RATIO as lo, MAX_CI_CHECKS as lr, ErrorCode as ls, ReadSensitiveInputSchema as lt, GetStateInputSchema as m, FILE_CREATOR_ACTIONS as ma, REVIEW_DOMAINS as mi, ReportDeviationInputSchema as mn, DEFAULT_VALIDATION_POINTS as mo, CheckCallInputSchema as mr, ORDER_EVENT_TYPES as mt, randomBytes as n, ProposeRetrospectiveInputSchema as na, qaProofBelongs as ni, EXCHANGE_EVENT_TYPES as nn, ReportCostInputSchema as no, INSTALL_EVENT_TYPES as nr, ULID_PATTERN as ns, KEY_ID_PATTERN as nt, fromUtf8 as o, commonIdOf as oa, criteriaInLine as oi, ELICITATION_TIMEOUT_MS as on, SubmitResultInputSchema as oo, CiReportedPayloadSchema as or, extensionModuleOf as os, PRODUCT_KEY_EVENT_TYPES as ot, SyncManifestSchema as p, CreatorActionSchema as pa, JUDGE_LENS as pi, REQUIREMENT_STATUSES as pn, DEFAULT_VALIDATION_MODE as po, CHAIN_EVENT_TYPES as pr, utf8Length as pt, SPRINT_TITLE_PREFIX as q, DeferredIdInputSchema as qa, hasHiddenCharacter as qi, KNOWLEDGE_SOURCES_FIELD as qn, GIT_MERGE_MODES as qo, AgentOverrideSchema as qr, missingDeclarations as qt, sha256 as r, ReadMemoryInputSchema as ra, qaProofKind as ri, SummarizeInputSchema as rn, ReportProgressInputSchema as ro, CI_EVENT_TYPES as rr, eventInvalid as rs, MAX_SENSITIVE_CONTENT_BYTES as rt, toBase64url as s, lessonIdOf as sa, criterionId as si, ElicitationChannelSchema as sn, UpdateStoryInputSchema as so, CiUrlSchema as sr, isExtensionEventType as ss, PRODUCT_KEY_EXPORT_PREFIX as st, gitBlobId as t, ProposePromotionInputSchema as ta, QA_PROOF_DIR as ti, RepositoryPathSchema as tn, NextInputSchema as to, DependenciesSchema as tr, SIGNATURE_REASON as ts, ENCRYPTED_FILE_PREFIX as tt, historyCsv as u, scopeLabel as ua, SettleGapInputSchema as ui, DeviationIdInputSchema as un, DEFAULT_INSTALL_MODE as uo, CHECKPOINT_DECIDED_EVENT_TYPES as ur, SENSITIVE_AREAS as ut, eventTypeSpec as v, proofCommandsRisk as va, StartReviewInputSchema as vi, deviationIdOf as vn, InstallSettingsSchema as vo, BUDGET_TITLE_PREFIX as vr, MigrationStepIdSchema as vt, USAGE_SOURCES as w, ProofsFileSchema as wa, isSilentLens as wi, CritiqueInputSchema as wn, ProfileSchema as wo, DEVICE_TRUST_EVENT_TYPES as wr, SUBSTANTIVE_CLASSES as wt, isTestEventType as x, WRITE_TEXT_MAX as xa, TriageReviewInputSchema as xi, NOAH_AGENT as xn, PHASE_IDS as xo, WEB_ANSWER_STALE_MS as xr, GetMergeOrderInputSchema as xt, eventTypeUpgrade as y, CheckWriteInputSchema as ya, StoryReviewInputSchema as yi, DELEGATION_EVENT_TYPES as yn, MethodConfigSchema as yo, MAX_BUDGET_USD as yr, CONFLICT_CLASSES as yt, AskStackInputSchema as z, contentSections as za, checkpointIdOf as zi, ArchitectureHeaderSchema as zn, MODEL_CLIENT_IDS as zo, MessageDigestSchema as zr, HUMAN_EVENT_TYPES as zt };