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/agent-commands.js +357 -18
- package/dist/forge-follow.js +2 -2
- package/dist/hash.js +289 -113
- package/dist/launcher.js +1 -1
- package/dist/main.js +34 -19
- package/dist/method/agents/noah/SKILL.md +19 -17
- package/dist/method/agents/noah/references/conduct.md +4 -1
- package/dist/method/agents/noah/references/decisions.md +1 -0
- package/dist/product-root.js +15624 -15071
- package/dist/webauthn-verify.js +1 -1
- package/package.json +9 -9
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 =
|
|
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)
|
|
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/
|
|
6014
|
-
/**
|
|
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
|
|
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
|
-
|
|
6024
|
-
|
|
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
|
-
|
|
6028
|
-
|
|
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
|
-
|
|
6088
|
+
...IGNORED_OLD_FIELDS
|
|
6037
6089
|
});
|
|
6038
6090
|
z.strictObject({
|
|
6039
|
-
|
|
6040
|
-
|
|
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
|
-
|
|
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
|
|
6101
|
+
/** Who the creator spoke to. */
|
|
6054
6102
|
to: AgentTargetSchema,
|
|
6055
|
-
/** The agent the
|
|
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
|
-
/**
|
|
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
|
|
11467
|
-
* text, so that their other devices see it)
|
|
11468
|
-
*
|
|
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
|
|
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 $,
|
|
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 };
|