@rallycry/conveyor-agent 11.0.22 → 11.0.24
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/{boot-Z3EBJ7GX.js → boot-65PTSADA.js} +30 -2
- package/dist/{chunk-EIHZRSYI.js → chunk-EITUTXXJ.js} +1 -1
- package/dist/{chunk-RW6V7KCE.js → chunk-HW6SHIL7.js} +698 -28
- package/dist/{chunk-WNSX5ZEQ.js → chunk-IWWBG5FI.js} +1 -1
- package/dist/{chunk-W5INK3NE.js → chunk-WCJ6HRVU.js} +3 -0
- package/dist/{chunk-OMD77OIJ.js → chunk-YNI2HFZE.js} +281 -95
- package/dist/cli.js +7 -7
- package/dist/index.d.ts +22 -2
- package/dist/index.js +3 -3
- package/dist/{serve-boot-4O5NJ77J.js → serve-boot-THPACDVI.js} +2 -2
- package/dist/{server-L5CQ5EJB.js → server-E6IYHSMN.js} +2 -2
- package/package.json +1 -1
- package/skills/conveyor-build/SKILL.md +21 -0
- package/skills/conveyor-consensus/SKILL.md +44 -1
- package/skills/conveyor-plan/SKILL.md +23 -0
- package/skills/conveyor-plan/references/product-decisions.md +103 -0
- package/skills/conveyor-review/SKILL.md +11 -0
- package/skills/conveyor-triage/SKILL.md +8 -0
- package/skills/conveyor-workflows/SKILL.md +16 -3
|
@@ -26,6 +26,9 @@ function buildSpawnArgs(input) {
|
|
|
26
26
|
args.push("--permission-mode", "plan");
|
|
27
27
|
}
|
|
28
28
|
args.push("--settings", input.settingsPath);
|
|
29
|
+
if (input.disallowedTools && input.disallowedTools.length > 0) {
|
|
30
|
+
args.push("--disallowed-tools", input.disallowedTools.join(","));
|
|
31
|
+
}
|
|
29
32
|
if (input.appendSystemPrompt) {
|
|
30
33
|
args.push("--append-system-prompt", input.appendSystemPrompt);
|
|
31
34
|
}
|
|
@@ -1446,7 +1446,7 @@ ${q.question}${q.options.length ? "\n" + q.options.map((o) => `- ${o.label}: ${o
|
|
|
1446
1446
|
}
|
|
1447
1447
|
};
|
|
1448
1448
|
|
|
1449
|
-
// ../shared/dist/chunk-
|
|
1449
|
+
// ../shared/dist/chunk-6NPOGQPP.js
|
|
1450
1450
|
import { z } from "zod";
|
|
1451
1451
|
var DEFAULT_SONNET_MODEL = "claude-sonnet-5";
|
|
1452
1452
|
var DEFAULT_OPUS_MODEL = "claude-opus-5";
|
|
@@ -1709,6 +1709,8 @@ import { z as z7 } from "zod";
|
|
|
1709
1709
|
import { z as z8 } from "zod";
|
|
1710
1710
|
import { z as z9 } from "zod";
|
|
1711
1711
|
import { z as z10 } from "zod";
|
|
1712
|
+
import { z as z11 } from "zod";
|
|
1713
|
+
import { z as z12 } from "zod";
|
|
1712
1714
|
var EXTERNAL_AGENT_MESSAGE_SOURCE = "external_agent";
|
|
1713
1715
|
var TUI_KINDS = ["claude-code", "opencode", "codex"];
|
|
1714
1716
|
var ACHIEVEMENT_RARITIES = [
|
|
@@ -1804,6 +1806,13 @@ var TurnEndToolCallSchema = z22.object({
|
|
|
1804
1806
|
output: z22.string().optional(),
|
|
1805
1807
|
timestamp: z22.string().optional()
|
|
1806
1808
|
}).passthrough();
|
|
1809
|
+
var AgentTurnUsageSchema = z22.object({
|
|
1810
|
+
inputTokens: z22.number(),
|
|
1811
|
+
outputTokens: z22.number(),
|
|
1812
|
+
cacheReadInputTokens: z22.number(),
|
|
1813
|
+
cacheCreationInputTokens: z22.number(),
|
|
1814
|
+
totalTokens: z22.number()
|
|
1815
|
+
});
|
|
1807
1816
|
var KnownAgentEventSchema = z22.discriminatedUnion("type", [
|
|
1808
1817
|
// ── Lifecycle / connection ────────────────────────────────────────────
|
|
1809
1818
|
z22.object({
|
|
@@ -1843,7 +1852,11 @@ var KnownAgentEventSchema = z22.discriminatedUnion("type", [
|
|
|
1843
1852
|
z22.object({
|
|
1844
1853
|
type: z22.literal("completed"),
|
|
1845
1854
|
summary: z22.string().optional(),
|
|
1846
|
-
durationMs: z22.number().optional()
|
|
1855
|
+
durationMs: z22.number().optional(),
|
|
1856
|
+
/** Tokens this turn consumed, summed from the transcript's assistant
|
|
1857
|
+
* records. Optional: an older agent build sends none, and the server
|
|
1858
|
+
* then records nothing rather than zeroing the session's totals. */
|
|
1859
|
+
usage: AgentTurnUsageSchema.optional()
|
|
1847
1860
|
}).passthrough(),
|
|
1848
1861
|
z22.object({ type: z22.literal("error"), message: z22.string() }).passthrough(),
|
|
1849
1862
|
z22.object({ type: z22.literal("agent_typing_start") }).passthrough(),
|
|
@@ -3235,135 +3248,304 @@ var CRITICAL_AUTOMATED_SOURCES = /* @__PURE__ */ new Set([
|
|
|
3235
3248
|
// clear the completion guard.
|
|
3236
3249
|
"ci_result"
|
|
3237
3250
|
]);
|
|
3251
|
+
var DECISION_STATUS_LABELS = ["Open", "Decided", "Cancelled"];
|
|
3252
|
+
var DECISION_OPTION_KINDS = ["current", "planned", "proposed"];
|
|
3253
|
+
var DECISION_VOTE_SOURCES = ["web", "slack", "discord", "agent"];
|
|
3254
|
+
var DECISION_OPTIONS_MIN = 2;
|
|
3255
|
+
var DECISION_OPTIONS_MAX = 3;
|
|
3256
|
+
var DECISION_OPTION_LABEL_MAX = 80;
|
|
3257
|
+
var DECISION_QUESTION_MAX = 200;
|
|
3258
|
+
var DECISION_RESOLUTION_MAX = CARD_DESCRIPTION_MAX;
|
|
3259
|
+
var DECISION_VOTE_REASON_MAX = CARD_DESCRIPTION_MAX;
|
|
3260
|
+
var DECISION_DEADLINE_MIN_HOURS = 1;
|
|
3261
|
+
var DECISION_DEADLINE_MAX_DAYS = 30;
|
|
3262
|
+
var DECISION_DEADLINE_MAX_HOURS = DECISION_DEADLINE_MAX_DAYS * 24;
|
|
3263
|
+
var DECISION_LIST_MAX_LIMIT = 200;
|
|
3264
|
+
var decisionIdSchema = z10.string().cuid("Invalid decision ID");
|
|
3265
|
+
var optionInputSchema = z10.object({
|
|
3266
|
+
label: z10.string().min(1, "Option label is required").max(DECISION_OPTION_LABEL_MAX),
|
|
3267
|
+
description: z10.string().min(1, "Describe the option as GIVEN / WHEN / THEN"),
|
|
3268
|
+
kind: z10.enum(DECISION_OPTION_KINDS).optional()
|
|
3269
|
+
});
|
|
3270
|
+
var optionsArraySchema = z10.array(optionInputSchema).min(DECISION_OPTIONS_MIN, `A decision needs at least ${DECISION_OPTIONS_MIN} options`).max(
|
|
3271
|
+
DECISION_OPTIONS_MAX,
|
|
3272
|
+
`A decision takes at most ${DECISION_OPTIONS_MAX} options \u2014 more than that means the question is not framed yet`
|
|
3273
|
+
);
|
|
3274
|
+
var CreateDecisionRequestSchema = z10.object({
|
|
3275
|
+
projectId: z10.string().cuid("Invalid project ID"),
|
|
3276
|
+
/** The question, as one plain sentence. */
|
|
3277
|
+
title: z10.string().min(1, "A decision needs a question").max(DECISION_QUESTION_MAX),
|
|
3278
|
+
description: z10.string().max(CARD_DESCRIPTION_MAX).optional(),
|
|
3279
|
+
context: z10.string().min(1, "Context is required \u2014 say why this is being asked now"),
|
|
3280
|
+
options: optionsArraySchema,
|
|
3281
|
+
/** 1-based position of the option that wins on silence. */
|
|
3282
|
+
defaultOptionOrdinal: z10.number().int().min(1).max(DECISION_OPTIONS_MAX),
|
|
3283
|
+
deadlineHours: z10.number().min(DECISION_DEADLINE_MIN_HOURS).max(DECISION_DEADLINE_MAX_HOURS).optional(),
|
|
3284
|
+
/** Cards this decision blocks, by cuid or slug. */
|
|
3285
|
+
impactedCardRefs: z10.array(z10.string().min(1)).max(50).optional(),
|
|
3286
|
+
tagNames: z10.array(z10.string().min(1)).max(10).optional(),
|
|
3287
|
+
raisedByTaskId: z10.string().min(1).optional(),
|
|
3288
|
+
raisedByPrNumber: z10.number().int().positive().optional()
|
|
3289
|
+
});
|
|
3290
|
+
var VoteDecisionRequestSchema = z10.object({
|
|
3291
|
+
decisionId: decisionIdSchema,
|
|
3292
|
+
optionId: z10.string().cuid("Invalid option ID"),
|
|
3293
|
+
reason: z10.string().max(DECISION_VOTE_REASON_MAX).optional(),
|
|
3294
|
+
source: z10.enum(DECISION_VOTE_SOURCES).optional()
|
|
3295
|
+
});
|
|
3296
|
+
var RemoveDecisionVoteRequestSchema = z10.object({
|
|
3297
|
+
decisionId: decisionIdSchema
|
|
3298
|
+
});
|
|
3299
|
+
var ResolveDecisionRequestSchema = z10.object({
|
|
3300
|
+
decisionId: decisionIdSchema,
|
|
3301
|
+
chosenOptionId: z10.string().cuid("Invalid option ID"),
|
|
3302
|
+
resolution: z10.string().min(1, "A resolution is required \u2014 say what was decided").max(DECISION_RESOLUTION_MAX),
|
|
3303
|
+
resolutionNotes: z10.string().optional()
|
|
3304
|
+
});
|
|
3305
|
+
var CancelDecisionRequestSchema = z10.object({
|
|
3306
|
+
decisionId: decisionIdSchema,
|
|
3307
|
+
/** Why it is being dropped. Posted to the decision thread. */
|
|
3308
|
+
reason: z10.string().max(DECISION_RESOLUTION_MAX).optional()
|
|
3309
|
+
});
|
|
3310
|
+
var ReopenDecisionRequestSchema = z10.object({
|
|
3311
|
+
decisionId: decisionIdSchema,
|
|
3312
|
+
deadlineHours: z10.number().min(DECISION_DEADLINE_MIN_HOURS).max(DECISION_DEADLINE_MAX_HOURS).optional()
|
|
3313
|
+
});
|
|
3314
|
+
var UpdateDecisionRequestSchema = z10.object({
|
|
3315
|
+
decisionId: decisionIdSchema,
|
|
3316
|
+
title: z10.string().min(1).max(200).optional(),
|
|
3317
|
+
description: z10.string().max(CARD_DESCRIPTION_MAX).optional(),
|
|
3318
|
+
context: z10.string().min(1).optional(),
|
|
3319
|
+
deadlineAt: z10.string().datetime().optional(),
|
|
3320
|
+
/** Only accepted while the decision has zero votes. */
|
|
3321
|
+
options: optionsArraySchema.optional(),
|
|
3322
|
+
defaultOptionOrdinal: z10.number().int().min(1).max(DECISION_OPTIONS_MAX).optional(),
|
|
3323
|
+
addImpactedCardRefs: z10.array(z10.string().min(1)).max(50).optional(),
|
|
3324
|
+
removeImpactedCardIds: z10.array(z10.string().min(1)).max(50).optional()
|
|
3325
|
+
});
|
|
3326
|
+
var GetDecisionRequestSchema = z10.object({
|
|
3327
|
+
/** cuid or slug. A slug needs `projectId` to resolve unambiguously. */
|
|
3328
|
+
decisionId: z10.string().min(1),
|
|
3329
|
+
projectId: z10.string().cuid().optional()
|
|
3330
|
+
});
|
|
3331
|
+
var ListDecisionsRequestSchema = z10.object({
|
|
3332
|
+
projectId: z10.string().cuid("Invalid project ID"),
|
|
3333
|
+
status: z10.enum(DECISION_STATUS_LABELS).optional(),
|
|
3334
|
+
/** Tag name, not id — an agent knows the tag it is working under. */
|
|
3335
|
+
tag: z10.string().min(1).optional(),
|
|
3336
|
+
/** Decisions that this card is blocked by (cuid or slug). */
|
|
3337
|
+
cardId: z10.string().min(1).optional(),
|
|
3338
|
+
query: z10.string().min(1).optional(),
|
|
3339
|
+
limit: z10.number().int().min(1).max(DECISION_LIST_MAX_LIMIT).optional()
|
|
3340
|
+
});
|
|
3341
|
+
var optionInput = z11.object({
|
|
3342
|
+
label: z11.string().min(1).max(DECISION_OPTION_LABEL_MAX),
|
|
3343
|
+
description: z11.string().min(1),
|
|
3344
|
+
kind: z11.enum(DECISION_OPTION_KINDS).optional()
|
|
3345
|
+
});
|
|
3346
|
+
var optionsInput = z11.array(optionInput).min(DECISION_OPTIONS_MIN).max(DECISION_OPTIONS_MAX);
|
|
3347
|
+
var deadlineHours = z11.number().min(DECISION_DEADLINE_MIN_HOURS).max(DECISION_DEADLINE_MAX_HOURS).optional();
|
|
3348
|
+
var CreateProjectDecisionRequestSchema = z11.object({
|
|
3349
|
+
projectId: z11.string(),
|
|
3350
|
+
question: z11.string().min(1).max(200),
|
|
3351
|
+
summary: z11.string().max(CARD_DESCRIPTION_MAX).optional(),
|
|
3352
|
+
context: z11.string().min(1),
|
|
3353
|
+
options: optionsInput,
|
|
3354
|
+
defaultOption: z11.number().int().min(1).max(DECISION_OPTIONS_MAX),
|
|
3355
|
+
deadlineHours,
|
|
3356
|
+
impactedCards: z11.array(z11.string().min(1)).max(50).optional(),
|
|
3357
|
+
/**
|
|
3358
|
+
* Pod surface only: also block the card this session is working on. The
|
|
3359
|
+
* session's task id is resolved SERVER-side from `sessionId` — a
|
|
3360
|
+
* client-supplied card id would let a pod block any card in the project.
|
|
3361
|
+
*/
|
|
3362
|
+
includeCurrentCard: z11.boolean().optional(),
|
|
3363
|
+
sessionId: z11.string().optional(),
|
|
3364
|
+
tagNames: z11.array(z11.string().min(1)).max(10).optional(),
|
|
3365
|
+
raisedByPr: z11.number().int().positive().optional(),
|
|
3366
|
+
/** Slug or id of the card that raised the question. A link back, not a block. */
|
|
3367
|
+
raisedByCard: z11.string().min(1).optional(),
|
|
3368
|
+
/** Absolute deadline (ISO 8601). Wins over `deadlineHours` when both are sent. */
|
|
3369
|
+
deadlineAt: z11.string().datetime({ offset: true }).optional(),
|
|
3370
|
+
requestingUserId: z11.string().optional()
|
|
3371
|
+
});
|
|
3372
|
+
var ListProjectDecisionsRequestSchema = z11.object({
|
|
3373
|
+
projectId: z11.string(),
|
|
3374
|
+
status: z11.enum(DECISION_STATUS_LABELS).optional(),
|
|
3375
|
+
tag: z11.string().min(1).optional(),
|
|
3376
|
+
card: z11.string().min(1).optional(),
|
|
3377
|
+
query: z11.string().min(1).optional(),
|
|
3378
|
+
limit: z11.number().int().min(1).max(DECISION_LIST_MAX_LIMIT).optional(),
|
|
3379
|
+
requestingUserId: z11.string().optional()
|
|
3380
|
+
});
|
|
3381
|
+
var GetProjectDecisionRequestSchema = z11.object({
|
|
3382
|
+
projectId: z11.string(),
|
|
3383
|
+
decision: z11.string().min(1),
|
|
3384
|
+
requestingUserId: z11.string().optional()
|
|
3385
|
+
});
|
|
3386
|
+
var VoteProjectDecisionRequestSchema = z11.object({
|
|
3387
|
+
projectId: z11.string(),
|
|
3388
|
+
decision: z11.string().min(1),
|
|
3389
|
+
/** An option id, or its 1-based position. */
|
|
3390
|
+
option: z11.string().min(1),
|
|
3391
|
+
reason: z11.string().max(CARD_DESCRIPTION_MAX).optional(),
|
|
3392
|
+
requestingUserId: z11.string().optional()
|
|
3393
|
+
});
|
|
3394
|
+
var ResolveProjectDecisionRequestSchema = z11.object({
|
|
3395
|
+
projectId: z11.string(),
|
|
3396
|
+
decision: z11.string().min(1),
|
|
3397
|
+
option: z11.string().min(1),
|
|
3398
|
+
resolution: z11.string().min(1).max(DECISION_RESOLUTION_MAX),
|
|
3399
|
+
notes: z11.string().optional(),
|
|
3400
|
+
requestingUserId: z11.string().optional()
|
|
3401
|
+
});
|
|
3402
|
+
var UpdateProjectDecisionRequestSchema = z11.object({
|
|
3403
|
+
projectId: z11.string(),
|
|
3404
|
+
decision: z11.string().min(1),
|
|
3405
|
+
question: z11.string().min(1).max(200).optional(),
|
|
3406
|
+
summary: z11.string().max(CARD_DESCRIPTION_MAX).optional(),
|
|
3407
|
+
context: z11.string().min(1).optional(),
|
|
3408
|
+
/** Accepted only while nobody has voted. */
|
|
3409
|
+
options: optionsInput.optional(),
|
|
3410
|
+
defaultOption: z11.number().int().min(1).max(DECISION_OPTIONS_MAX).optional(),
|
|
3411
|
+
tagNames: z11.array(z11.string().min(1)).max(10).optional(),
|
|
3412
|
+
deadlineHours,
|
|
3413
|
+
/** Absolute deadline (ISO 8601). Wins over `deadlineHours` when both are sent. */
|
|
3414
|
+
deadlineAt: z11.string().datetime({ offset: true }).optional(),
|
|
3415
|
+
addImpactedCards: z11.array(z11.string().min(1)).max(50).optional(),
|
|
3416
|
+
removeImpactedCards: z11.array(z11.string().min(1)).max(50).optional(),
|
|
3417
|
+
status: z11.enum(["Cancelled", "Open"]).optional(),
|
|
3418
|
+
requestingUserId: z11.string().optional()
|
|
3419
|
+
});
|
|
3238
3420
|
var MEETING_CHECKLIST_TITLE_MAX = 300;
|
|
3239
3421
|
var MEETING_TRANSCRIPT_MAX_CHARS = 2e6;
|
|
3240
3422
|
var MEETING_TITLE_MAX = 200;
|
|
3241
3423
|
var MEETING_OCCURRED_AT_MIN_YEAR = 2e3;
|
|
3242
3424
|
var MEETING_OCCURRED_AT_MAX_FUTURE_MS = 48 * 60 * 60 * 1e3;
|
|
3243
3425
|
var OCCURRED_AT_RANGE_MESSAGE = `occurredAt must be a real date: no earlier than ${MEETING_OCCURRED_AT_MIN_YEAR}, and no more than 48 hours in the future.`;
|
|
3244
|
-
var MeetingOccurredAtSchema =
|
|
3426
|
+
var MeetingOccurredAtSchema = z12.string().datetime().refine((value) => {
|
|
3245
3427
|
const ms = Date.parse(value);
|
|
3246
3428
|
if (Number.isNaN(ms)) return false;
|
|
3247
3429
|
if (ms > Date.now() + MEETING_OCCURRED_AT_MAX_FUTURE_MS) return false;
|
|
3248
3430
|
return new Date(ms).getUTCFullYear() >= MEETING_OCCURRED_AT_MIN_YEAR;
|
|
3249
3431
|
}, OCCURRED_AT_RANGE_MESSAGE);
|
|
3250
|
-
var CreateMeetingFromTranscriptRequestSchema =
|
|
3251
|
-
projectId:
|
|
3252
|
-
rawText:
|
|
3253
|
-
title:
|
|
3432
|
+
var CreateMeetingFromTranscriptRequestSchema = z12.object({
|
|
3433
|
+
projectId: z12.string().cuid(),
|
|
3434
|
+
rawText: z12.string().min(1).max(MEETING_TRANSCRIPT_MAX_CHARS),
|
|
3435
|
+
title: z12.string().min(1).max(MEETING_TITLE_MAX).optional(),
|
|
3254
3436
|
/** ISO 8601. Defaults to now when the source carries no date. */
|
|
3255
3437
|
occurredAt: MeetingOccurredAtSchema.optional(),
|
|
3256
3438
|
/** Override auto-detection. Rarely needed; detection handles the three formats. */
|
|
3257
|
-
format:
|
|
3258
|
-
source:
|
|
3439
|
+
format: z12.enum(["text", "vtt", "srt"]).optional(),
|
|
3440
|
+
source: z12.enum(["manual", "slack"]).optional()
|
|
3259
3441
|
});
|
|
3260
|
-
var GetMeetingRequestSchema =
|
|
3261
|
-
projectId:
|
|
3262
|
-
meetingId:
|
|
3442
|
+
var GetMeetingRequestSchema = z12.object({
|
|
3443
|
+
projectId: z12.string().cuid(),
|
|
3444
|
+
meetingId: z12.string().cuid()
|
|
3263
3445
|
});
|
|
3264
|
-
var UpdateMeetingRequestSchema =
|
|
3265
|
-
projectId:
|
|
3266
|
-
meetingId:
|
|
3267
|
-
title:
|
|
3446
|
+
var UpdateMeetingRequestSchema = z12.object({
|
|
3447
|
+
projectId: z12.string().cuid(),
|
|
3448
|
+
meetingId: z12.string().cuid(),
|
|
3449
|
+
title: z12.string().min(1).max(MEETING_TITLE_MAX).optional(),
|
|
3268
3450
|
occurredAt: MeetingOccurredAtSchema.optional()
|
|
3269
3451
|
});
|
|
3270
|
-
var RegenerateMeetingSummaryRequestSchema =
|
|
3271
|
-
projectId:
|
|
3272
|
-
meetingId:
|
|
3452
|
+
var RegenerateMeetingSummaryRequestSchema = z12.object({
|
|
3453
|
+
projectId: z12.string().cuid(),
|
|
3454
|
+
meetingId: z12.string().cuid()
|
|
3273
3455
|
});
|
|
3274
|
-
var DeleteMeetingRequestSchema =
|
|
3275
|
-
projectId:
|
|
3276
|
-
meetingId:
|
|
3456
|
+
var DeleteMeetingRequestSchema = z12.object({
|
|
3457
|
+
projectId: z12.string().cuid(),
|
|
3458
|
+
meetingId: z12.string().cuid()
|
|
3277
3459
|
});
|
|
3278
|
-
var checklistTitle =
|
|
3279
|
-
var ListMeetingChecklistRequestSchema =
|
|
3280
|
-
projectId:
|
|
3281
|
-
meetingId:
|
|
3460
|
+
var checklistTitle = z12.string().min(1).max(MEETING_CHECKLIST_TITLE_MAX);
|
|
3461
|
+
var ListMeetingChecklistRequestSchema = z12.object({
|
|
3462
|
+
projectId: z12.string().cuid(),
|
|
3463
|
+
meetingId: z12.string().cuid()
|
|
3282
3464
|
});
|
|
3283
|
-
var AddMeetingChecklistItemsRequestSchema =
|
|
3284
|
-
projectId:
|
|
3285
|
-
meetingId:
|
|
3286
|
-
items:
|
|
3465
|
+
var AddMeetingChecklistItemsRequestSchema = z12.object({
|
|
3466
|
+
projectId: z12.string().cuid(),
|
|
3467
|
+
meetingId: z12.string().cuid(),
|
|
3468
|
+
items: z12.array(z12.object({ title: checklistTitle })).min(1).max(50)
|
|
3287
3469
|
});
|
|
3288
|
-
var UpdateMeetingChecklistItemRequestSchema =
|
|
3289
|
-
projectId:
|
|
3290
|
-
meetingId:
|
|
3291
|
-
itemId:
|
|
3470
|
+
var UpdateMeetingChecklistItemRequestSchema = z12.object({
|
|
3471
|
+
projectId: z12.string().cuid(),
|
|
3472
|
+
meetingId: z12.string().cuid(),
|
|
3473
|
+
itemId: z12.string().cuid(),
|
|
3292
3474
|
title: checklistTitle.optional(),
|
|
3293
|
-
ordinal:
|
|
3475
|
+
ordinal: z12.number().int().min(0).optional(),
|
|
3294
3476
|
/** Explicit null clears the link; undefined leaves it alone. */
|
|
3295
|
-
linkedTaskId:
|
|
3477
|
+
linkedTaskId: z12.string().cuid().nullable().optional()
|
|
3296
3478
|
}).refine(
|
|
3297
3479
|
(v) => v.title !== void 0 || v.ordinal !== void 0 || v.linkedTaskId !== void 0,
|
|
3298
3480
|
"Pass at least one of title, ordinal, or linkedTaskId."
|
|
3299
3481
|
);
|
|
3300
|
-
var DeleteMeetingChecklistItemRequestSchema =
|
|
3301
|
-
projectId:
|
|
3302
|
-
meetingId:
|
|
3303
|
-
itemId:
|
|
3304
|
-
});
|
|
3305
|
-
var SetMeetingChecklistItemCheckedRequestSchema =
|
|
3306
|
-
projectId:
|
|
3307
|
-
meetingId:
|
|
3308
|
-
itemId:
|
|
3309
|
-
checked:
|
|
3482
|
+
var DeleteMeetingChecklistItemRequestSchema = z12.object({
|
|
3483
|
+
projectId: z12.string().cuid(),
|
|
3484
|
+
meetingId: z12.string().cuid(),
|
|
3485
|
+
itemId: z12.string().cuid()
|
|
3486
|
+
});
|
|
3487
|
+
var SetMeetingChecklistItemCheckedRequestSchema = z12.object({
|
|
3488
|
+
projectId: z12.string().cuid(),
|
|
3489
|
+
meetingId: z12.string().cuid(),
|
|
3490
|
+
itemId: z12.string().cuid(),
|
|
3491
|
+
checked: z12.boolean(),
|
|
3310
3492
|
/** Attach the card in the same call that ticks the item. */
|
|
3311
|
-
linkedTaskId:
|
|
3493
|
+
linkedTaskId: z12.string().cuid().nullable().optional()
|
|
3312
3494
|
});
|
|
3313
|
-
var ListMeetingsRequestSchema =
|
|
3314
|
-
projectId:
|
|
3315
|
-
limit:
|
|
3316
|
-
search:
|
|
3495
|
+
var ListMeetingsRequestSchema = z12.object({
|
|
3496
|
+
projectId: z12.string().cuid(),
|
|
3497
|
+
limit: z12.number().int().min(1).max(50).optional(),
|
|
3498
|
+
search: z12.string().max(200).optional()
|
|
3317
3499
|
});
|
|
3318
|
-
var ReadMeetingTranscriptRequestSchema =
|
|
3319
|
-
projectId:
|
|
3320
|
-
meetingId:
|
|
3321
|
-
offset:
|
|
3322
|
-
limit:
|
|
3500
|
+
var ReadMeetingTranscriptRequestSchema = z12.object({
|
|
3501
|
+
projectId: z12.string().cuid(),
|
|
3502
|
+
meetingId: z12.string().cuid(),
|
|
3503
|
+
offset: z12.number().int().min(0).optional(),
|
|
3504
|
+
limit: z12.number().int().min(1).max(500).optional()
|
|
3323
3505
|
});
|
|
3324
3506
|
var MEETING_SUMMARY_MAX_CHARS = 5e4;
|
|
3325
|
-
var AddProjectMeetingChecklistItemsRequestSchema =
|
|
3326
|
-
projectId:
|
|
3327
|
-
meetingId:
|
|
3328
|
-
items:
|
|
3329
|
-
requestingUserId:
|
|
3330
|
-
});
|
|
3331
|
-
var CheckProjectMeetingChecklistItemRequestSchema =
|
|
3332
|
-
projectId:
|
|
3333
|
-
meetingId:
|
|
3334
|
-
title:
|
|
3335
|
-
checked:
|
|
3507
|
+
var AddProjectMeetingChecklistItemsRequestSchema = z12.object({
|
|
3508
|
+
projectId: z12.string().cuid(),
|
|
3509
|
+
meetingId: z12.string().cuid(),
|
|
3510
|
+
items: z12.array(z12.object({ title: z12.string().min(1).max(MEETING_CHECKLIST_TITLE_MAX) })).min(1).max(50),
|
|
3511
|
+
requestingUserId: z12.string().optional()
|
|
3512
|
+
});
|
|
3513
|
+
var CheckProjectMeetingChecklistItemRequestSchema = z12.object({
|
|
3514
|
+
projectId: z12.string().cuid(),
|
|
3515
|
+
meetingId: z12.string().cuid(),
|
|
3516
|
+
title: z12.string().min(1).max(MEETING_CHECKLIST_TITLE_MAX),
|
|
3517
|
+
checked: z12.boolean(),
|
|
3336
3518
|
/** Card id or slug. Resolved server-side and required to be in the project. */
|
|
3337
|
-
linkedTask:
|
|
3338
|
-
requestingUserId:
|
|
3339
|
-
});
|
|
3340
|
-
var EditProjectMeetingChecklistItemRequestSchema =
|
|
3341
|
-
projectId:
|
|
3342
|
-
meetingId:
|
|
3343
|
-
title:
|
|
3344
|
-
newTitle:
|
|
3345
|
-
requestingUserId:
|
|
3346
|
-
});
|
|
3347
|
-
var RemoveProjectMeetingChecklistItemRequestSchema =
|
|
3348
|
-
projectId:
|
|
3349
|
-
meetingId:
|
|
3350
|
-
title:
|
|
3351
|
-
requestingUserId:
|
|
3352
|
-
});
|
|
3353
|
-
var CreateProjectMeetingRequestSchema =
|
|
3354
|
-
projectId:
|
|
3355
|
-
rawText:
|
|
3356
|
-
title:
|
|
3519
|
+
linkedTask: z12.string().min(1).optional(),
|
|
3520
|
+
requestingUserId: z12.string().optional()
|
|
3521
|
+
});
|
|
3522
|
+
var EditProjectMeetingChecklistItemRequestSchema = z12.object({
|
|
3523
|
+
projectId: z12.string().cuid(),
|
|
3524
|
+
meetingId: z12.string().cuid(),
|
|
3525
|
+
title: z12.string().min(1).max(MEETING_CHECKLIST_TITLE_MAX),
|
|
3526
|
+
newTitle: z12.string().min(1).max(MEETING_CHECKLIST_TITLE_MAX),
|
|
3527
|
+
requestingUserId: z12.string().optional()
|
|
3528
|
+
});
|
|
3529
|
+
var RemoveProjectMeetingChecklistItemRequestSchema = z12.object({
|
|
3530
|
+
projectId: z12.string().cuid(),
|
|
3531
|
+
meetingId: z12.string().cuid(),
|
|
3532
|
+
title: z12.string().min(1).max(MEETING_CHECKLIST_TITLE_MAX),
|
|
3533
|
+
requestingUserId: z12.string().optional()
|
|
3534
|
+
});
|
|
3535
|
+
var CreateProjectMeetingRequestSchema = z12.object({
|
|
3536
|
+
projectId: z12.string().cuid(),
|
|
3537
|
+
rawText: z12.string().min(1).max(MEETING_TRANSCRIPT_MAX_CHARS),
|
|
3538
|
+
title: z12.string().min(1).max(MEETING_TITLE_MAX).optional(),
|
|
3357
3539
|
occurredAt: MeetingOccurredAtSchema.optional(),
|
|
3358
|
-
requestingUserId:
|
|
3540
|
+
requestingUserId: z12.string().optional()
|
|
3359
3541
|
});
|
|
3360
|
-
var UpdateProjectMeetingRequestSchema =
|
|
3361
|
-
projectId:
|
|
3362
|
-
meetingId:
|
|
3363
|
-
title:
|
|
3542
|
+
var UpdateProjectMeetingRequestSchema = z12.object({
|
|
3543
|
+
projectId: z12.string().cuid(),
|
|
3544
|
+
meetingId: z12.string().cuid(),
|
|
3545
|
+
title: z12.string().min(1).max(MEETING_TITLE_MAX).optional(),
|
|
3364
3546
|
occurredAt: MeetingOccurredAtSchema.optional(),
|
|
3365
|
-
summary:
|
|
3366
|
-
requestingUserId:
|
|
3547
|
+
summary: z12.string().min(1).max(MEETING_SUMMARY_MAX_CHARS).optional(),
|
|
3548
|
+
requestingUserId: z12.string().optional()
|
|
3367
3549
|
}).refine(
|
|
3368
3550
|
(v) => v.title !== void 0 || v.occurredAt !== void 0 || v.summary !== void 0,
|
|
3369
3551
|
"Pass at least one of title, occurredAt, or summary."
|
|
@@ -3738,13 +3920,17 @@ var CARD_TYPE_SURFACE = {
|
|
|
3738
3920
|
task: "board",
|
|
3739
3921
|
chat: "board",
|
|
3740
3922
|
incident: "report",
|
|
3741
|
-
suggestion: "report"
|
|
3923
|
+
suggestion: "report",
|
|
3924
|
+
// Decisions get their own surface: they are neither built on the board nor
|
|
3925
|
+
// triaged in the report feeds. Cards → Decisions is their only feed.
|
|
3926
|
+
decision: "decision"
|
|
3742
3927
|
};
|
|
3743
3928
|
var surfaceTypes = (surface) => Object.keys(CARD_TYPE_SURFACE).filter(
|
|
3744
3929
|
(type) => CARD_TYPE_SURFACE[type] === surface
|
|
3745
3930
|
);
|
|
3746
3931
|
var BOARD_CARD_TYPES = surfaceTypes("board");
|
|
3747
3932
|
var REPORT_CARD_TYPES = surfaceTypes("report");
|
|
3933
|
+
var DECISION_CARD_TYPES = surfaceTypes("decision");
|
|
3748
3934
|
|
|
3749
3935
|
// src/runner/git-run.ts
|
|
3750
3936
|
import { execFile } from "child_process";
|
package/dist/cli.js
CHANGED
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
WorkspaceCommandSupervisor,
|
|
8
8
|
startWorkspaceCommandsAfterConnect,
|
|
9
9
|
stopWorkspaceCommands
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-IWWBG5FI.js";
|
|
11
11
|
import {
|
|
12
12
|
PtyHarness,
|
|
13
13
|
SessionRunner,
|
|
@@ -25,13 +25,13 @@ import {
|
|
|
25
25
|
runUsageProbe,
|
|
26
26
|
sampleKeyUsage,
|
|
27
27
|
usesNativeUsageReporting
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-HW6SHIL7.js";
|
|
29
29
|
import "./chunk-37J5MMQT.js";
|
|
30
30
|
import {
|
|
31
31
|
inheritedEnv,
|
|
32
32
|
resolvePtySpawn,
|
|
33
33
|
sessionTempBase
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-WCJ6HRVU.js";
|
|
35
35
|
import {
|
|
36
36
|
AgentConnection,
|
|
37
37
|
CodespacePortVisibility,
|
|
@@ -44,7 +44,7 @@ import {
|
|
|
44
44
|
createServiceLogger,
|
|
45
45
|
fetchBootstrap,
|
|
46
46
|
loadConveyorConfig
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-YNI2HFZE.js";
|
|
48
48
|
import "./chunk-Q4FQOJ7D.js";
|
|
49
49
|
import "./chunk-W4LZ7R6Z.js";
|
|
50
50
|
import "./chunk-372R6E4C.js";
|
|
@@ -1205,7 +1205,7 @@ function wireSpawnChildren(mode, connection, supervisors, logger7) {
|
|
|
1205
1205
|
|
|
1206
1206
|
// src/cli.ts
|
|
1207
1207
|
if (process.argv[2] === "boot") {
|
|
1208
|
-
const { runBoot } = await import("./boot-
|
|
1208
|
+
const { runBoot } = await import("./boot-65PTSADA.js");
|
|
1209
1209
|
process.exit(await runBoot(process.argv.slice(3)));
|
|
1210
1210
|
}
|
|
1211
1211
|
if (isLegacyEntrypointLaunch(process.env)) {
|
|
@@ -1307,7 +1307,7 @@ process.on("unhandledRejection", (reason) => {
|
|
|
1307
1307
|
process.exit(1);
|
|
1308
1308
|
});
|
|
1309
1309
|
if (process.env.CONVEYOR_MODE === "workbench") {
|
|
1310
|
-
const { startWorkbenchServer } = await import("./server-
|
|
1310
|
+
const { startWorkbenchServer } = await import("./server-E6IYHSMN.js");
|
|
1311
1311
|
const { oomWatchdogOptionsFromEnv } = await import("./oom-watchdog-PAC5OJJG.js");
|
|
1312
1312
|
const { DEFAULT_WORKBENCH_PORT } = await import("./protocol-QBCYO4GI.js");
|
|
1313
1313
|
const port = Number(process.env.CONVEYOR_WORKBENCH_PORT) || DEFAULT_WORKBENCH_PORT;
|
|
@@ -1458,7 +1458,7 @@ if (!RUNNER_MODES.includes(CONVEYOR_MODE)) {
|
|
|
1458
1458
|
process.exit(1);
|
|
1459
1459
|
}
|
|
1460
1460
|
if (CONVEYOR_MODE === "serving") {
|
|
1461
|
-
const { runServingSession } = await import("./serve-boot-
|
|
1461
|
+
const { runServingSession } = await import("./serve-boot-THPACDVI.js");
|
|
1462
1462
|
exitContext.runnerMode = "serving";
|
|
1463
1463
|
exitContext.sessionId = process.env.CONVEYOR_SESSION_ID ?? exitContext.sessionId;
|
|
1464
1464
|
const outcome = await runServingSession({
|
package/dist/index.d.ts
CHANGED
|
@@ -732,6 +732,11 @@ declare class SessionRunner {
|
|
|
732
732
|
* it reports pending, heartbeats go out non-idle so the workspace activity
|
|
733
733
|
* clock keeps being bumped and the reconciler can't sleep the pod mid-gate. */
|
|
734
734
|
private readonly backgroundWork;
|
|
735
|
+
/** An armed `ScheduleWakeup` (the dynamic `/loop` mode): the turn ended, but
|
|
736
|
+
* the agent asked to be re-invoked at a deadline. Same liveness contract as
|
|
737
|
+
* `backgroundWork` — while it reports pending, heartbeats go out non-idle so
|
|
738
|
+
* the reconciler cannot sleep the pod before the wakeup fires. */
|
|
739
|
+
private readonly scheduledWakeup;
|
|
735
740
|
/** Boot supervisor handle, set post-construction once it's known (it is
|
|
736
741
|
* started alongside connect(), before the runner itself exists in some
|
|
737
742
|
* call sites) — notified when the core loop goes live so it can release
|
|
@@ -782,6 +787,21 @@ declare class SessionRunner {
|
|
|
782
787
|
* live build costs work.
|
|
783
788
|
*/
|
|
784
789
|
private deferShutdownForLiveChild;
|
|
790
|
+
/**
|
|
791
|
+
* Suppress an idle or dormant shutdown while a `ScheduleWakeup` is armed.
|
|
792
|
+
*
|
|
793
|
+
* Both timers matter. The idle timer (30 min) kills a loop that paces itself
|
|
794
|
+
* slower than that, and the dormant timer (60 min after a `completed` event)
|
|
795
|
+
* kills a one-hour arm — the agent declares completion at the end of every
|
|
796
|
+
* tick, so a dynamic loop sits dormant by construction.
|
|
797
|
+
*
|
|
798
|
+
* The bound is the WAKEUP'S OWN deadline, not `BACKGROUND_WORK_MAX_MS`: the
|
|
799
|
+
* tool clamps `delaySeconds` to one hour, which already exceeds that 45-min
|
|
800
|
+
* cap, so reusing it would shut the pod down before the longest legal arm
|
|
801
|
+
* fired. Once the deadline passes the tracker expires it and this returns
|
|
802
|
+
* false, so a lost timer cannot pin a pod.
|
|
803
|
+
*/
|
|
804
|
+
private deferShutdownForScheduledWakeup;
|
|
785
805
|
/** Epoch ms of the first idle-shutdown deferral for background work in the
|
|
786
806
|
* current idle episode; null when nothing has deferred. Reset when a turn
|
|
787
807
|
* runs, so each idle episode gets its own bounded hold. */
|
|
@@ -1101,8 +1121,8 @@ declare class SessionRunner {
|
|
|
1101
1121
|
/** Mirror the resolved status into the loop-lag buffer so the starvation-proof
|
|
1102
1122
|
* heartbeat worker reports it too. Returns what it wrote. */
|
|
1103
1123
|
private refreshLoopStatus;
|
|
1104
|
-
/** One `tool_use` from the turn stream — registers
|
|
1105
|
-
*
|
|
1124
|
+
/** One `tool_use` from the turn stream — registers work that outlives the
|
|
1125
|
+
* turn: a background launch, or an armed `ScheduleWakeup`. */
|
|
1106
1126
|
private noteToolUseForBackgroundWork;
|
|
1107
1127
|
private setState;
|
|
1108
1128
|
/**
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SessionRunner,
|
|
3
3
|
unshallowRepo
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-HW6SHIL7.js";
|
|
5
5
|
import "./chunk-37J5MMQT.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-WCJ6HRVU.js";
|
|
7
7
|
import {
|
|
8
8
|
AgentConnection,
|
|
9
9
|
GIT_TIMEOUT_MS,
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
stageAndCommit,
|
|
18
18
|
updateRemoteToken,
|
|
19
19
|
workspacePathExists
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-YNI2HFZE.js";
|
|
21
21
|
import "./chunk-Q4FQOJ7D.js";
|
|
22
22
|
import {
|
|
23
23
|
runAuthTokenCommand,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
WorkspaceCommandSupervisor
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-IWWBG5FI.js";
|
|
4
4
|
import {
|
|
5
5
|
AgentConnection,
|
|
6
6
|
CodespacePortVisibility,
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
createServiceLogger,
|
|
12
12
|
ensureOnTaskBranch,
|
|
13
13
|
loadConveyorConfig
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-YNI2HFZE.js";
|
|
15
15
|
import "./chunk-Q4FQOJ7D.js";
|
|
16
16
|
import "./chunk-W4LZ7R6Z.js";
|
|
17
17
|
import "./chunk-IA45XHOA.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rallycry/conveyor-agent",
|
|
3
|
-
"version": "11.0.
|
|
3
|
+
"version": "11.0.24",
|
|
4
4
|
"description": "Conveyor Agent Runner v10 - PTY harness for the task chat (SDK harness for audit/project-chat). Agent-as-User architecture with BaseService patterns. Works locally too.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agent",
|