@unbrained/pm-cli 2026.8.15 → 2026.8.17
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/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +56 -12
- package/README.md +13 -13
- package/dist/cli/error-guidance.d.ts +5 -0
- package/dist/cli/error-guidance.js +15 -2
- package/dist/cli/public.d.ts +2 -0
- package/dist/cli/public.js +21 -0
- package/dist/cli/register-history-author.js +16 -11
- package/dist/cli/register-mutation.js +4 -4
- package/dist/cli-bundle/bundle-manifest.json +143 -143
- package/dist/cli-bundle/chunks/{chunk-J42EGKDK.js → chunk-2QLOXC3V.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-LJHOAVGI.js → chunk-3UEGXBMR.js} +49 -43
- package/dist/cli-bundle/chunks/chunk-4JPYF536.js +35 -0
- package/dist/cli-bundle/chunks/chunk-6VDLG2FC.js +13 -0
- package/dist/cli-bundle/chunks/chunk-7IBRGCHX.js +2 -0
- package/dist/cli-bundle/chunks/chunk-HBJAS566.js +8 -0
- package/dist/cli-bundle/chunks/chunk-ION3E43Q.js +197 -0
- package/dist/cli-bundle/chunks/{chunk-WLPDLNEZ.js → chunk-JOKATURE.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-MEM2ZS3O.js → chunk-TPXZIBIV.js} +5 -5
- package/dist/cli-bundle/chunks/chunk-YM2YAMF7.js +2 -0
- package/dist/cli-bundle/chunks/{register-list-query-CT3LFDDN.js → register-list-query-Q7KII4G5.js} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-NWEVA5YS.js → register-mutation-4WBRPXLV.js} +3 -3
- package/dist/cli-bundle/chunks/{register-operations-AHIAG5KM.js → register-operations-SSENDH5B.js} +2 -2
- package/dist/cli-bundle/chunks/{register-setup-ZJZFVAKE.js → register-setup-DOSFBGKE.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-WTSER4WJ.js → chunk-267MUUS6.js} +11 -11
- package/dist/cli-bundle/focused-chunks/chunk-2NNFLLNG.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-2QSAKMIH.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-ZMFXQ7VF.js → chunk-ATEY76SX.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-BUCG4ZI2.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-M67F5AIN.js → chunk-CYFK5UPB.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-EHXIKD6K.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-EXZA4257.js → chunk-KGEXTMPG.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-KP2VQQVQ.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-MHPIL773.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-POEEAD2V.js +4 -0
- package/dist/cli-bundle/focused-chunks/{chunk-ITAUHSO6.js → chunk-SALH6B6K.js} +47 -47
- package/dist/cli-bundle/focused-chunks/{chunk-KLVUMNXJ.js → chunk-SYZENPIT.js} +3 -3
- package/dist/cli-bundle/focused-chunks/{chunk-KTKH4IMG.js → chunk-XKAMP5OU.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-NSPYTG6G.js → chunk-XPIC53VA.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-6XKF3PGV.js → chunk-ZQPGZZWQ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-ZT2DJS27.js +155 -0
- package/dist/cli-bundle/main.js +10 -10
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +1 -1
- package/dist/cli-bundle/sdk-core.js +31 -31
- package/dist/cli-bundle/sdk-governance.js +1 -1
- package/dist/cli-bundle/sdk-graph.js +1 -1
- package/dist/cli-bundle/sdk-merge.js +32 -32
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +4 -2
- package/dist/core/extensions/loader.js +10 -6
- package/dist/core/extensions/manifest-schema.d.ts +20 -0
- package/dist/core/extensions/manifest-schema.js +52 -0
- package/dist/core/history/replay.js +32 -14
- package/dist/core/history/workspace-history.js +32 -10
- package/dist/core/output/output.js +6 -3
- package/dist/core/schema/fields-file.d.ts +1 -1
- package/dist/core/schema/fields-file.js +2 -2
- package/dist/core/schema/runtime-field-values.js +115 -9
- package/dist/core/schema/runtime-schema.d.ts +3 -1
- package/dist/core/schema/runtime-schema.js +124 -3
- package/dist/core/shared/errors.d.ts +12 -0
- package/dist/core/shared/errors.js +2 -2
- package/dist/core/shared/time.d.ts +2 -0
- package/dist/core/shared/time.js +27 -2
- package/dist/core/store/item-store.js +28 -2
- package/dist/sdk/agent/refusal-reachability.d.ts +56 -8
- package/dist/sdk/agent/refusal-reachability.js +414 -4
- package/dist/sdk/author-attribution.d.ts +56 -11
- package/dist/sdk/author-attribution.js +174 -50
- package/dist/sdk/cli-contracts/flag-contracts.js +5 -2
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +12 -4
- package/dist/sdk/cli-contracts/tool-schema.js +12 -4
- package/dist/sdk/completion.js +11 -4
- package/dist/sdk/compose.d.ts +6 -2
- package/dist/sdk/compose.js +33 -3
- package/dist/sdk/context-intent-contracts.d.ts +8 -4
- package/dist/sdk/context-intent-contracts.js +76 -31
- package/dist/sdk/dependency-flag-validation.d.ts +9 -2
- package/dist/sdk/dependency-flag-validation.js +101 -35
- package/dist/sdk/environment/host-environment-errors.js +25 -7
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +62 -14
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +50 -2
- package/dist/sdk/governance/assurance-action.d.ts +3 -7
- package/dist/sdk/governance/assurance-action.js +97 -2
- package/dist/sdk/governance/boundary-fixtures.d.ts +86 -0
- package/dist/sdk/governance/boundary-fixtures.js +201 -0
- package/dist/sdk/governance/coverage-assurance.d.ts +24 -0
- package/dist/sdk/governance/coverage-assurance.js +61 -0
- package/dist/sdk/governance/defect-recurrence-signals.d.ts +10 -0
- package/dist/sdk/governance/defect-recurrence-signals.js +25 -0
- package/dist/sdk/governance/defect-recurrence.d.ts +242 -0
- package/dist/sdk/governance/defect-recurrence.js +523 -0
- package/dist/sdk/governance/extension-host-version.js +20 -9
- package/dist/sdk/governance.d.ts +2 -0
- package/dist/sdk/governance.js +4 -2
- package/dist/sdk/graph/governance.js +3 -2
- package/dist/sdk/guide-topics.js +191 -2
- package/dist/sdk/index.d.ts +5 -1
- package/dist/sdk/index.js +6 -3
- package/dist/sdk/lifecycle/create.js +4 -2
- package/dist/sdk/lifecycle/update-many.js +15 -2
- package/dist/sdk/lifecycle/update.js +5 -2
- package/dist/sdk/linked-artifacts.js +63 -14
- package/dist/sdk/query/get.d.ts +2 -0
- package/dist/sdk/query/get.js +32 -7
- package/dist/sdk/read-output-contracts.js +5 -3
- package/dist/sdk/relationship-analytics.js +90 -14
- package/dist/sdk/relationship-kinds/contract.d.ts +4 -0
- package/dist/sdk/relationship-kinds/contract.js +3 -2
- package/dist/sdk/relationships.d.ts +1 -1
- package/dist/sdk/relationships.js +11 -2
- package/dist/sdk/runtime.d.ts +2 -5
- package/dist/sdk/runtime.js +3 -2
- package/dist/sdk/schema.d.ts +1 -0
- package/dist/sdk/schema.js +2 -2
- package/dist/sdk/test/execution.d.ts +6 -2
- package/dist/sdk/test/execution.js +39 -13
- package/dist/types.d.ts +29 -2
- package/dist/types.js +4 -2
- package/docs/CONFIGURATION.md +58 -1
- package/docs/CONTEXT_INTEGRITY_CONTRACTS.md +58 -0
- package/docs/DEFECT_RECURRENCE.md +134 -0
- package/docs/DEPENDENCY_KIND_CONTRACT.md +12 -2
- package/docs/README.md +2 -0
- package/docs/READ_OUTPUT_CONTRACTS.md +7 -1
- package/docs/RELATIONSHIP_GRAPH.md +16 -2
- package/docs/RELEASING.md +13 -7
- package/docs/SDK.md +38 -5
- package/docs/SDK_CONTEXT_INTEGRITY.md +33 -5
- package/docs/SDK_CONTEXT_TRUTH_CONTRACTS.md +13 -5
- package/docs/SDK_RUNTIME_BOUNDARIES.md +9 -1
- package/docs/TESTING.md +18 -1
- package/docs/TRUSTWORTHY_CONTEXT_EVIDENCE.md +1 -1
- package/marketplace.json +2 -2
- package/package.json +6 -4
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-claude/skills/pm-audit/SKILL.md +26 -0
- package/plugins/pm-claude/skills/pm-developer/SKILL.md +26 -0
- package/plugins/pm-claude/skills/pm-planner/SKILL.md +26 -0
- package/plugins/pm-claude/skills/pm-release/SKILL.md +26 -0
- package/plugins/pm-claude/skills/pm-workflow/SKILL.md +26 -0
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/pm-codex/skills/pm-auditor/SKILL.md +26 -0
- package/plugins/pm-codex/skills/pm-native/SKILL.md +26 -0
- package/plugins/pm-codex/skills/pm-release/SKILL.md +26 -0
- package/sdk/public-surface.json +716 -33
- package/dist/cli-bundle/chunks/chunk-24GAV7XL.js +0 -8
- package/dist/cli-bundle/chunks/chunk-AIM6VT2N.js +0 -13
- package/dist/cli-bundle/chunks/chunk-DSWDLTDR.js +0 -197
- package/dist/cli-bundle/chunks/chunk-KIEGUBYQ.js +0 -2
- package/dist/cli-bundle/chunks/chunk-KLKYLSDX.js +0 -2
- package/dist/cli-bundle/chunks/chunk-QHPCJWEJ.js +0 -35
- package/dist/cli-bundle/focused-chunks/chunk-4X57RE4U.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-7NJ4QYQ2.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-KT5XMYSX.js +0 -4
- package/dist/cli-bundle/focused-chunks/chunk-OKA6ELTL.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-PUISBOPP.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-QLNMCESQ.js +0 -155
- package/dist/cli-bundle/focused-chunks/chunk-SLKC6QLJ.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-U65UC4G3.js +0 -2
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* workspace configuration, and packages.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
8
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="d09393aa-0253-5ad6-a2fe-245f31b9eb87")}catch(e){}}();
|
|
9
9
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
10
10
|
import { attachOutputOmissionReceipt } from "./output-projection.js";
|
|
11
11
|
import { encodeQueryCursor } from "./pagination.js";
|
|
@@ -25,7 +25,7 @@ export const PM_CONTEXT_INTENT_CONTRACTS = Object.freeze([
|
|
|
25
25
|
"blockers",
|
|
26
26
|
"activity",
|
|
27
27
|
],
|
|
28
|
-
token_budget:
|
|
28
|
+
token_budget: 3000,
|
|
29
29
|
source: "core",
|
|
30
30
|
},
|
|
31
31
|
{
|
|
@@ -211,10 +211,14 @@ const CONTEXT_INTENT_DEFAULT_APPLIERS = {
|
|
|
211
211
|
: ["hierarchy", "blockers", "activity"];
|
|
212
212
|
}
|
|
213
213
|
const tokenBudget = resolveIntentTokenBudget(projected.tokenBudget, contract.token_budget);
|
|
214
|
-
const
|
|
215
|
-
const
|
|
216
|
-
|
|
214
|
+
const budgetDerivedLimit = resolveIntentRowBudget("context", contract.intent, tokenBudget, explicitTokenBudget);
|
|
215
|
+
const requestedLimit = parsePositiveIntentTokenBudget(projected.limit);
|
|
216
|
+
const derivedLimit = String(requestedLimit === undefined
|
|
217
|
+
? budgetDerivedLimit
|
|
218
|
+
: Math.min(requestedLimit, budgetDerivedLimit));
|
|
219
|
+
if (projected.limit === undefined || requestedLimit !== undefined) {
|
|
217
220
|
projected.limit = derivedLimit;
|
|
221
|
+
}
|
|
218
222
|
if (projected.activityLimit === undefined) {
|
|
219
223
|
projected.activityLimit = derivedLimit;
|
|
220
224
|
}
|
|
@@ -232,10 +236,13 @@ const CONTEXT_INTENT_DEFAULT_APPLIERS = {
|
|
|
232
236
|
projected.fields =
|
|
233
237
|
"id,title,status,type,priority,parent,assignee,risk,blocked_by";
|
|
234
238
|
}
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
+
const tokenBudget = resolveIntentTokenBudget(projected.tokenBudget, contract.token_budget);
|
|
240
|
+
const budgetDerivedLimit = resolveIntentRowBudget("list", contract.intent, tokenBudget, explicitTokenBudget);
|
|
241
|
+
const requestedLimit = parsePositiveIntentTokenBudget(projected.limit);
|
|
242
|
+
if (projected.limit === undefined || requestedLimit !== undefined) {
|
|
243
|
+
projected.limit = String(requestedLimit === undefined
|
|
244
|
+
? budgetDerivedLimit
|
|
245
|
+
: Math.min(requestedLimit, budgetDerivedLimit));
|
|
239
246
|
}
|
|
240
247
|
},
|
|
241
248
|
next: (projected) => {
|
|
@@ -248,10 +255,13 @@ const CONTEXT_INTENT_DEFAULT_APPLIERS = {
|
|
|
248
255
|
projected.fields === undefined) {
|
|
249
256
|
projected.compact = true;
|
|
250
257
|
}
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
258
|
+
const tokenBudget = resolveIntentTokenBudget(projected.tokenBudget, contract.token_budget);
|
|
259
|
+
const budgetDerivedLimit = resolveIntentRowBudget("search", contract.intent, tokenBudget, explicitTokenBudget);
|
|
260
|
+
const requestedLimit = parsePositiveIntentTokenBudget(projected.limit);
|
|
261
|
+
if (projected.limit === undefined || requestedLimit !== undefined) {
|
|
262
|
+
projected.limit = String(requestedLimit === undefined
|
|
263
|
+
? budgetDerivedLimit
|
|
264
|
+
: Math.min(requestedLimit, budgetDerivedLimit));
|
|
255
265
|
}
|
|
256
266
|
},
|
|
257
267
|
};
|
|
@@ -341,6 +351,23 @@ function resolveIntentTokenBudget(value, declaredBudget) {
|
|
|
341
351
|
}
|
|
342
352
|
return parsed;
|
|
343
353
|
}
|
|
354
|
+
function resolveIntentRowBudget(command, intent, tokenBudget, explicitTokenBudget) {
|
|
355
|
+
if (command === "get" || command === "next")
|
|
356
|
+
return undefined;
|
|
357
|
+
const contextOrient = command === "context" && intent === "orient";
|
|
358
|
+
const overhead = command === "context"
|
|
359
|
+
? contextOrient
|
|
360
|
+
? 1200
|
|
361
|
+
: 800
|
|
362
|
+
: command === "list"
|
|
363
|
+
? 520
|
|
364
|
+
: 480;
|
|
365
|
+
const rowCost = command === "context" ? (contextOrient ? 600 : 500) : 16;
|
|
366
|
+
const calculatedLimit = Math.max(command === "context" ? 1 : 2, Math.floor((tokenBudget - overhead) / rowCost));
|
|
367
|
+
return explicitTokenBudget
|
|
368
|
+
? calculatedLimit
|
|
369
|
+
: Math.min(command === "context" ? 20 : 100, calculatedLimit);
|
|
370
|
+
}
|
|
344
371
|
/** Update a receipt until its estimate matches the serialized projection that contains it. */
|
|
345
372
|
function updateContextIntentEstimate(projected, receipt) {
|
|
346
373
|
let measuredTokens = receipt.estimated_tokens;
|
|
@@ -495,12 +522,15 @@ export function attachContextIntentReceipt(command, options, result) {
|
|
|
495
522
|
return result;
|
|
496
523
|
const builtInCommand = normalizedCommand;
|
|
497
524
|
const contract = resolveContextIntentContract(builtInCommand, options.for);
|
|
525
|
+
const effectiveTokenBudget = resolveIntentTokenBudget(options.tokenBudget ?? options.token_budget, contract.token_budget);
|
|
498
526
|
const receipt = {
|
|
499
527
|
command: builtInCommand,
|
|
500
528
|
intent: contract.intent,
|
|
501
529
|
source: contract.source,
|
|
502
530
|
included_field_groups: [...contract.included_field_groups],
|
|
503
|
-
token_budget:
|
|
531
|
+
token_budget: effectiveTokenBudget,
|
|
532
|
+
declared_token_budget: contract.token_budget,
|
|
533
|
+
token_budget_override: effectiveTokenBudget - contract.token_budget,
|
|
504
534
|
estimated_tokens: 0,
|
|
505
535
|
within_budget: true,
|
|
506
536
|
degradation: CONTEXT_INTENT_DEGRADATIONS[builtInCommand],
|
|
@@ -508,21 +538,17 @@ export function attachContextIntentReceipt(command, options, result) {
|
|
|
508
538
|
result_omitted: false,
|
|
509
539
|
};
|
|
510
540
|
const resultWithDiagnostics = { ...result };
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
const
|
|
514
|
-
const
|
|
515
|
-
const budgetDerivedLimit = explicitTokenBudget
|
|
516
|
-
? calculatedLimit
|
|
517
|
-
: Math.min(100, calculatedLimit);
|
|
518
|
-
const hasExplicitLimit = options.limit !== undefined;
|
|
541
|
+
const budgetDerivedLimit = resolveIntentRowBudget(builtInCommand, contract.intent, receipt.token_budget, parsePositiveIntentTokenBudget(options.tokenBudget ?? options.token_budget) !== undefined);
|
|
542
|
+
if (budgetDerivedLimit !== undefined) {
|
|
543
|
+
const effectiveLimit = parsePositiveIntentTokenBudget(options.limit);
|
|
544
|
+
const explicitLimitBinds = effectiveLimit !== undefined && effectiveLimit < budgetDerivedLimit;
|
|
519
545
|
receipt.budget_derived_limit = budgetDerivedLimit;
|
|
520
|
-
receipt.binding_constraint =
|
|
546
|
+
receipt.binding_constraint = explicitLimitBinds
|
|
521
547
|
? "explicit_limit"
|
|
522
548
|
: "token_budget";
|
|
523
|
-
receipt.limit_reason =
|
|
524
|
-
? "The caller supplied
|
|
525
|
-
: "The selected intent token budget
|
|
549
|
+
receipt.limit_reason = explicitLimitBinds
|
|
550
|
+
? "The caller supplied a smaller row limit than the budget-derived ceiling."
|
|
551
|
+
: "The selected intent token budget constrains the effective row ceiling.";
|
|
526
552
|
resultWithDiagnostics.budget_derived_limit = budgetDerivedLimit;
|
|
527
553
|
}
|
|
528
554
|
let projected = {
|
|
@@ -543,20 +569,22 @@ export function attachContextIntentReceipt(command, options, result) {
|
|
|
543
569
|
receipt.degradation = "budget_row_compaction";
|
|
544
570
|
updateContextIntentEstimate(projected, receipt);
|
|
545
571
|
}
|
|
572
|
+
receipt.declaration_feasible =
|
|
573
|
+
receipt.estimated_tokens <= receipt.declared_token_budget;
|
|
546
574
|
if (receipt.estimated_tokens > receipt.token_budget) {
|
|
547
575
|
receipt.degradation = "budget_receipt_only";
|
|
548
|
-
receipt.declaration_feasible = false;
|
|
549
576
|
receipt.result_omitted = true;
|
|
550
577
|
receipt.within_budget = false;
|
|
551
578
|
projected = {
|
|
552
579
|
budget_exceeded: {
|
|
553
580
|
omitted_result: true,
|
|
554
|
-
reason:
|
|
555
|
-
|
|
581
|
+
reason: receipt.token_budget_override === 0
|
|
582
|
+
? "declared_budget_infeasible"
|
|
583
|
+
: "effective_budget_infeasible",
|
|
584
|
+
restore_with: buildContextIntentRecoveryCommand(command, builtInCommand, contract.intent, receipt, resultWithDiagnostics),
|
|
556
585
|
},
|
|
557
586
|
context_intent: receipt,
|
|
558
587
|
};
|
|
559
|
-
updateContextIntentEstimate(projected, receipt);
|
|
560
588
|
}
|
|
561
589
|
return projected;
|
|
562
590
|
}
|
|
@@ -594,6 +622,23 @@ function collapseContinuationMetadata(options, result) {
|
|
|
594
622
|
function isOutputRecord(value) {
|
|
595
623
|
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
596
624
|
}
|
|
625
|
+
/** Build a shell-safe bounded retry while retaining required read positionals. */
|
|
626
|
+
function buildContextIntentRecoveryCommand(command, builtInCommand, intent, receipt, result) {
|
|
627
|
+
const recoveryTarget = builtInCommand === "get" &&
|
|
628
|
+
isOutputRecord(result.item) &&
|
|
629
|
+
typeof result.item.id === "string"
|
|
630
|
+
? result.item.id
|
|
631
|
+
: builtInCommand === "search" && typeof result.query === "string"
|
|
632
|
+
? result.query
|
|
633
|
+
: undefined;
|
|
634
|
+
const recoveryPositional = recoveryTarget === undefined
|
|
635
|
+
? ""
|
|
636
|
+
: ` '${recoveryTarget.replaceAll("'", `'"'"'`)}'`;
|
|
637
|
+
const boundedRowLimit = builtInCommand === "get"
|
|
638
|
+
? ""
|
|
639
|
+
: ` --limit ${receipt.budget_derived_limit ?? 1}`;
|
|
640
|
+
return `pm ${command}${recoveryPositional} --for ${intent} --token-budget ${Math.ceil(receipt.estimated_tokens / 100) * 100}${boundedRowLimit}`;
|
|
641
|
+
}
|
|
597
642
|
/** Read one numeric fixed-point estimate from an optional receipt. */
|
|
598
643
|
function receiptEstimate(value, field) {
|
|
599
644
|
if (!isOutputRecord(value))
|
|
@@ -641,4 +686,4 @@ export function attachReadOutputContracts(command, options, result) {
|
|
|
641
686
|
return stabilizeSuppressedRowContractReceipts(Object.fromEntries(Object.entries(projected).filter(([key]) => key !== "row_contract")), options);
|
|
642
687
|
}
|
|
643
688
|
//# sourceMappingURL=context-intent-contracts.js.map
|
|
644
|
-
//# debugId=
|
|
689
|
+
//# debugId=d09393aa-0253-5ad6-a2fe-245f31b9eb87
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Dependency, ItemFormat } from "../types/index.js";
|
|
1
|
+
import type { Dependency, ItemFormat, RuntimeSchemaSettings } from "../types/index.js";
|
|
2
2
|
import { type RelationshipKindRegistry } from "./relationships.js";
|
|
3
3
|
/** Reject malformed shorthand before item-id prefix normalization can create a dangling graph node. */
|
|
4
4
|
export declare function assertValidBareDependencyFlagValue(value: string, structured: boolean): void;
|
|
@@ -8,7 +8,8 @@ export declare function assertValidBareDependencyFlagValue(value: string, struct
|
|
|
8
8
|
*/
|
|
9
9
|
export declare function assertDependencyEdgesAllowed(holderId: string, dependencies: readonly Dependency[] | undefined, registry?: RelationshipKindRegistry): void;
|
|
10
10
|
/**
|
|
11
|
-
* Resolve every newly supplied local dependency
|
|
11
|
+
* Resolve every newly supplied local dependency and enforce declared endpoint
|
|
12
|
+
* chronology before a mutation commits.
|
|
12
13
|
* Explicit external provenance bypasses workspace lookup, while the opt-in
|
|
13
14
|
* unresolved mode returns durable warning tokens instead of pretending that
|
|
14
15
|
* the graph edge resolved successfully.
|
|
@@ -20,4 +21,10 @@ export declare function assertDependencyTargetsResolvable(params: {
|
|
|
20
21
|
itemFormat: ItemFormat;
|
|
21
22
|
typeToFolder: Record<string, string>;
|
|
22
23
|
allowUnresolved?: boolean;
|
|
24
|
+
holders?: readonly {
|
|
25
|
+
id: string;
|
|
26
|
+
createdAt?: string;
|
|
27
|
+
}[];
|
|
28
|
+
schema?: RuntimeSchemaSettings;
|
|
29
|
+
registry?: RelationshipKindRegistry;
|
|
23
30
|
}): Promise<string[]>;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/** @module cli/commands/dependency-flag-validation */
|
|
2
2
|
|
|
3
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
3
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="f9c9b926-c912-548e-a9c7-64c2c69767cd")}catch(e){}}();
|
|
4
4
|
import { EXIT_CODE } from "../core/shared/constants.js";
|
|
5
5
|
import { PmCliError } from "../core/shared/errors.js";
|
|
6
6
|
import { toErrorMessage } from "../core/shared/primitives.js";
|
|
7
|
-
import { locateItem } from "../core/store/item-store.js";
|
|
7
|
+
import { locateItem, readLocatedItem, } from "../core/store/item-store.js";
|
|
8
8
|
import { isExternalDependencySourceKind } from "./dependency-provenance.js";
|
|
9
9
|
import { resolveWorkspaceRelationshipKindRegistry } from "./graph/assembly.js";
|
|
10
10
|
import { assertRelationshipEdgeAllowed, } from "./relationships.js";
|
|
@@ -31,55 +31,121 @@ export function assertDependencyEdgesAllowed(holderId, dependencies, registry =
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
+
async function readDependencyEndpointCreatedAt(located, schema) {
|
|
35
|
+
return (await readLocatedItem(located, { schema })).document.metadata
|
|
36
|
+
.created_at;
|
|
37
|
+
}
|
|
38
|
+
async function resolveDependencyHolderCreatedAt(holder, context) {
|
|
39
|
+
if (holder.createdAt !== undefined)
|
|
40
|
+
return holder.createdAt;
|
|
41
|
+
const located = await locateItem(context.pmRoot, holder.id, context.idPrefix, context.itemFormat, context.typeToFolder);
|
|
42
|
+
return located === null
|
|
43
|
+
? undefined
|
|
44
|
+
: readDependencyEndpointCreatedAt(located, context.schema);
|
|
45
|
+
}
|
|
46
|
+
function dependencyTemporalOrderError(params) {
|
|
47
|
+
const definition = params.registry.require(params.dependency.kind);
|
|
48
|
+
return new PmCliError(`${definition.kind} requires source ${params.holder.id} to be created after target ${params.dependency.id}`, EXIT_CODE.USAGE, {
|
|
49
|
+
code: "dependency_temporal_order_invalid",
|
|
50
|
+
reason: "source_not_after_target",
|
|
51
|
+
required: `${params.holder.id}.created_at must be later than ${params.dependency.id}.created_at for ${definition.kind}.`,
|
|
52
|
+
why: "Chronological recurrence direction must be validated before the relationship is persisted.",
|
|
53
|
+
source_id: params.holder.id,
|
|
54
|
+
source_created_at: params.sourceCreatedAt,
|
|
55
|
+
target_id: params.dependency.id,
|
|
56
|
+
target_created_at: params.targetCreatedAt,
|
|
57
|
+
temporal_order: definition.temporalOrder,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
async function assertTemporalDependencyChronology(params) {
|
|
61
|
+
const temporalDependencies = params.dependencies.filter((dependency) => params.registry.resolve(dependency.kind)?.temporalOrder ===
|
|
62
|
+
"source_after_target" &&
|
|
63
|
+
!params.missingTargets.includes(dependency.id));
|
|
64
|
+
if (temporalDependencies.length === 0 || params.holders.length === 0)
|
|
65
|
+
return;
|
|
66
|
+
const locatedTargets = new Map(params.resolutions.flatMap(({ target, located }) => located === null ? [] : [[target, located]]));
|
|
67
|
+
const targetCreatedAt = new Map(await Promise.all([...new Set(temporalDependencies.map(({ id }) => id))].map(async (target) => [
|
|
68
|
+
target,
|
|
69
|
+
await readDependencyEndpointCreatedAt(locatedTargets.get(target), params.context.schema),
|
|
70
|
+
])));
|
|
71
|
+
for (const holder of params.holders) {
|
|
72
|
+
const sourceCreatedAt = await resolveDependencyHolderCreatedAt(holder, params.context);
|
|
73
|
+
if (sourceCreatedAt === undefined)
|
|
74
|
+
continue;
|
|
75
|
+
for (const dependency of temporalDependencies) {
|
|
76
|
+
const targetTimestamp = targetCreatedAt.get(dependency.id);
|
|
77
|
+
const sourceTime = Date.parse(sourceCreatedAt);
|
|
78
|
+
const targetTime = Date.parse(targetTimestamp);
|
|
79
|
+
if (Number.isFinite(sourceTime) &&
|
|
80
|
+
Number.isFinite(targetTime) &&
|
|
81
|
+
sourceTime > targetTime) {
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
throw dependencyTemporalOrderError({
|
|
85
|
+
holder,
|
|
86
|
+
dependency,
|
|
87
|
+
sourceCreatedAt,
|
|
88
|
+
targetCreatedAt: targetTimestamp,
|
|
89
|
+
registry: params.registry,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
34
94
|
/**
|
|
35
|
-
* Resolve every newly supplied local dependency
|
|
95
|
+
* Resolve every newly supplied local dependency and enforce declared endpoint
|
|
96
|
+
* chronology before a mutation commits.
|
|
36
97
|
* Explicit external provenance bypasses workspace lookup, while the opt-in
|
|
37
98
|
* unresolved mode returns durable warning tokens instead of pretending that
|
|
38
99
|
* the graph edge resolved successfully.
|
|
39
100
|
*/
|
|
40
101
|
export async function assertDependencyTargetsResolvable(params) {
|
|
102
|
+
const registry = params.registry ?? resolveWorkspaceRelationshipKindRegistry();
|
|
103
|
+
const localDependencies = (params.dependencies ?? []).filter((dependency) => !isExternalDependencySourceKind(dependency.source_kind));
|
|
41
104
|
const localTargets = [
|
|
42
|
-
...new Set((
|
|
43
|
-
.filter((dependency) => !isExternalDependencySourceKind(dependency.source_kind))
|
|
44
|
-
.map((dependency) => dependency.id)),
|
|
105
|
+
...new Set(localDependencies.map((dependency) => dependency.id)),
|
|
45
106
|
];
|
|
46
107
|
const resolutions = await Promise.all(localTargets.map(async (target) => ({
|
|
47
108
|
target,
|
|
48
109
|
located: await locateItem(params.pmRoot, target, params.idPrefix, params.itemFormat, params.typeToFolder),
|
|
49
110
|
})));
|
|
50
|
-
const
|
|
111
|
+
const missingTargets = resolutions
|
|
51
112
|
.filter(({ located }) => located === null)
|
|
52
113
|
.map(({ target }) => target)
|
|
53
114
|
.sort((left, right) => (left < right ? -1 : 1));
|
|
54
|
-
if (
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
115
|
+
if (missingTargets.length > 0 && params.allowUnresolved !== true) {
|
|
116
|
+
throw new PmCliError(`Dependency target${missingTargets.length === 1 ? "" : "s"} not found: ${missingTargets.join(", ")}`, EXIT_CODE.NOT_FOUND, {
|
|
117
|
+
code: "dependency_target_not_found",
|
|
118
|
+
reason: "unresolved_local_dependency",
|
|
119
|
+
required: "Every local dependency target must exist before the edge is committed.",
|
|
120
|
+
why: "Fail-fast target resolution prevents dangling graph nodes and preserves reliable traversal semantics.",
|
|
121
|
+
unresolved_targets: missingTargets,
|
|
122
|
+
examples: [
|
|
123
|
+
"--dep id=<existing-item-id>,kind=related",
|
|
124
|
+
"--dep id=<external-id>,kind=related,source_kind=external",
|
|
125
|
+
"--allow-unresolved-deps --dep id=<future-item-id>,kind=related",
|
|
126
|
+
],
|
|
127
|
+
nextSteps: [
|
|
128
|
+
`Create or correct ${missingTargets.length === 1 ? "the target" : "the targets"}, then retry the mutation.`,
|
|
129
|
+
"Use source_kind=external for a cross-workspace reference.",
|
|
130
|
+
"Use --allow-unresolved-deps only when the dangling local edge is intentional.",
|
|
131
|
+
],
|
|
132
|
+
recovery: {
|
|
133
|
+
recovery_mode: "compact",
|
|
134
|
+
missing: missingTargets,
|
|
135
|
+
suggested_flags: ["--allow-unresolved-deps"],
|
|
136
|
+
suggested_retry: `pm search "${missingTargets[0]}" --limit 10`,
|
|
137
|
+
},
|
|
138
|
+
});
|
|
59
139
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
"--dep id=<existing-item-id>,kind=related",
|
|
68
|
-
"--dep id=<external-id>,kind=related,source_kind=external",
|
|
69
|
-
"--allow-unresolved-deps --dep id=<future-item-id>,kind=related",
|
|
70
|
-
],
|
|
71
|
-
nextSteps: [
|
|
72
|
-
`Create or correct ${targets.length === 1 ? "the target" : "the targets"}, then retry the mutation.`,
|
|
73
|
-
"Use source_kind=external for a cross-workspace reference.",
|
|
74
|
-
"Use --allow-unresolved-deps only when the dangling local edge is intentional.",
|
|
75
|
-
],
|
|
76
|
-
recovery: {
|
|
77
|
-
recovery_mode: "compact",
|
|
78
|
-
missing: targets,
|
|
79
|
-
suggested_flags: ["--allow-unresolved-deps"],
|
|
80
|
-
suggested_retry: `pm search "${targets[0]}" --limit 10`,
|
|
81
|
-
},
|
|
140
|
+
await assertTemporalDependencyChronology({
|
|
141
|
+
dependencies: localDependencies,
|
|
142
|
+
missingTargets,
|
|
143
|
+
resolutions,
|
|
144
|
+
holders: params.holders ?? [],
|
|
145
|
+
registry,
|
|
146
|
+
context: params,
|
|
82
147
|
});
|
|
148
|
+
return missingTargets.map((target) => `dependency_target_unresolved:${target}`);
|
|
83
149
|
}
|
|
84
150
|
//# sourceMappingURL=dependency-flag-validation.js.map
|
|
85
|
-
//# debugId=
|
|
151
|
+
//# debugId=f9c9b926-c912-548e-a9c7-64c2c69767cd
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
* leaking local paths or swallowing genuine implementation defects.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
8
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="679bb2a0-aada-586e-a831-591266be2ee0")}catch(e){}}();
|
|
9
|
+
import { constants as osConstants } from "node:os";
|
|
9
10
|
import { EXIT_CODE } from "../../core/shared/constants.js";
|
|
10
11
|
import { PmCliError } from "../../core/shared/errors.js";
|
|
11
12
|
const HOST_ENVIRONMENT_FAULTS = new Map([
|
|
@@ -75,6 +76,16 @@ const HOST_ENVIRONMENT_FAULTS = new Map([
|
|
|
75
76
|
],
|
|
76
77
|
]);
|
|
77
78
|
const OPERATION_PATTERN = /^[a-z][a-z0-9_]{0,63}$/u;
|
|
79
|
+
const HOST_ENVIRONMENT_ERRNO_NAMES = new Map([
|
|
80
|
+
[osConstants.errno.EACCES, "EACCES"],
|
|
81
|
+
[osConstants.errno.EDQUOT, "EDQUOT"],
|
|
82
|
+
[osConstants.errno.EMFILE, "EMFILE"],
|
|
83
|
+
[osConstants.errno.ENFILE, "ENFILE"],
|
|
84
|
+
[osConstants.errno.ENOMEM, "ENOMEM"],
|
|
85
|
+
[osConstants.errno.ENOSPC, "ENOSPC"],
|
|
86
|
+
[osConstants.errno.EPERM, "EPERM"],
|
|
87
|
+
[osConstants.errno.EROFS, "EROFS"],
|
|
88
|
+
]);
|
|
78
89
|
const HOST_ENVIRONMENT_FAULT_CODES = {
|
|
79
90
|
capacity: { code: "host_environment_capacity_fault" },
|
|
80
91
|
permission: { code: "host_environment_permission_fault" },
|
|
@@ -82,12 +93,19 @@ const HOST_ENVIRONMENT_FAULT_CODES = {
|
|
|
82
93
|
};
|
|
83
94
|
/** Return a declared host errno only when it represents recoverable environment state. */
|
|
84
95
|
export function classifyHostEnvironmentFault(error) {
|
|
85
|
-
if (typeof error !== "object" || error === null
|
|
96
|
+
if (typeof error !== "object" || error === null) {
|
|
86
97
|
return null;
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
98
|
+
}
|
|
99
|
+
const errorRecord = error;
|
|
100
|
+
if (typeof errorRecord.code === "string" &&
|
|
101
|
+
HOST_ENVIRONMENT_FAULTS.has(errorRecord.code)) {
|
|
102
|
+
return errorRecord.code;
|
|
103
|
+
}
|
|
104
|
+
if (typeof errorRecord.errno !== "number" ||
|
|
105
|
+
!Number.isInteger(errorRecord.errno)) {
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
return HOST_ENVIRONMENT_ERRNO_NAMES.get(Math.abs(errorRecord.errno)) ?? null;
|
|
91
109
|
}
|
|
92
110
|
/** Translate one known host fault into a stable path-redacted SDK refusal. */
|
|
93
111
|
export function translateHostEnvironmentFault(error, operation, options = {}) {
|
|
@@ -121,4 +139,4 @@ export async function withHostEnvironmentBoundary(operation, run, options = {})
|
|
|
121
139
|
}
|
|
122
140
|
}
|
|
123
141
|
//# sourceMappingURL=host-environment-errors.js.map
|
|
124
|
-
//# debugId=
|
|
142
|
+
//# debugId=679bb2a0-aada-586e-a831-591266be2ee0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** Generated partition 1 of the exhaustive error-code catalog. */
|
|
2
2
|
|
|
3
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
3
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="d188630b-bf34-53f4-a93e-78698013994e")}catch(e){}}();
|
|
4
4
|
export const PM_ERROR_CODE_CATALOG_PART_1 = [
|
|
5
5
|
{
|
|
6
6
|
code: "acceptance_criteria_mutation_conflict",
|
|
@@ -470,6 +470,18 @@ export const PM_ERROR_CODE_CATALOG_PART_1 = [
|
|
|
470
470
|
canonical_code: "dependency_target_not_found",
|
|
471
471
|
aliases: [],
|
|
472
472
|
},
|
|
473
|
+
{
|
|
474
|
+
code: "dependency_temporal_order_invalid",
|
|
475
|
+
meaning: "Dependency temporal order invalid condition.",
|
|
476
|
+
stability: "provisional",
|
|
477
|
+
exit_code: 2,
|
|
478
|
+
class: "usage",
|
|
479
|
+
recovery: "Inspect the structured error guidance and retry the suggested command.",
|
|
480
|
+
sources: ["sdk/dependency-flag-validation.ts"],
|
|
481
|
+
emitting_commands: ["*"],
|
|
482
|
+
canonical_code: "dependency_temporal_order_invalid",
|
|
483
|
+
aliases: [],
|
|
484
|
+
},
|
|
473
485
|
{
|
|
474
486
|
code: "duplicate_command",
|
|
475
487
|
meaning: "Duplicate command condition.",
|
|
@@ -806,6 +818,42 @@ export const PM_ERROR_CODE_CATALOG_PART_1 = [
|
|
|
806
818
|
canonical_code: "github_source_entry_unbuilt",
|
|
807
819
|
aliases: [],
|
|
808
820
|
},
|
|
821
|
+
{
|
|
822
|
+
code: "history_author_acknowledge_plan_conflict",
|
|
823
|
+
meaning: "History author acknowledge plan conflict condition.",
|
|
824
|
+
stability: "provisional",
|
|
825
|
+
exit_code: 4,
|
|
826
|
+
class: "conflict",
|
|
827
|
+
recovery: "Inspect the structured error guidance and retry the suggested command.",
|
|
828
|
+
sources: ["sdk/author-attribution.ts"],
|
|
829
|
+
emitting_commands: ["*"],
|
|
830
|
+
canonical_code: "history_author_acknowledge_plan_conflict",
|
|
831
|
+
aliases: [],
|
|
832
|
+
},
|
|
833
|
+
{
|
|
834
|
+
code: "history_author_acknowledge_plan_fingerprint_required",
|
|
835
|
+
meaning: "History author acknowledge plan fingerprint required condition.",
|
|
836
|
+
stability: "provisional",
|
|
837
|
+
exit_code: 2,
|
|
838
|
+
class: "usage",
|
|
839
|
+
recovery: "Inspect the structured error guidance and retry the suggested command.",
|
|
840
|
+
sources: ["sdk/author-attribution.ts"],
|
|
841
|
+
emitting_commands: ["*"],
|
|
842
|
+
canonical_code: "history_author_acknowledge_plan_fingerprint_required",
|
|
843
|
+
aliases: [],
|
|
844
|
+
},
|
|
845
|
+
{
|
|
846
|
+
code: "history_author_acknowledge_preview_limit_invalid",
|
|
847
|
+
meaning: "History author acknowledge preview limit invalid condition.",
|
|
848
|
+
stability: "provisional",
|
|
849
|
+
exit_code: 2,
|
|
850
|
+
class: "usage",
|
|
851
|
+
recovery: "Inspect the structured error guidance and retry the suggested command.",
|
|
852
|
+
sources: ["sdk/author-attribution.ts"],
|
|
853
|
+
emitting_commands: ["*"],
|
|
854
|
+
canonical_code: "history_author_acknowledge_preview_limit_invalid",
|
|
855
|
+
aliases: [],
|
|
856
|
+
},
|
|
809
857
|
{
|
|
810
858
|
code: "history_author_acknowledge_required_values_missing",
|
|
811
859
|
meaning: "History author acknowledge required values missing condition.",
|
|
@@ -1592,6 +1640,18 @@ export const PM_ERROR_CODE_CATALOG_PART_1 = [
|
|
|
1592
1640
|
canonical_code: "manifest_capabilities_absent",
|
|
1593
1641
|
aliases: [],
|
|
1594
1642
|
},
|
|
1643
|
+
{
|
|
1644
|
+
code: "manifest_unknown_key",
|
|
1645
|
+
meaning: "Manifest unknown key condition.",
|
|
1646
|
+
stability: "provisional",
|
|
1647
|
+
exit_code: 2,
|
|
1648
|
+
class: "usage",
|
|
1649
|
+
recovery: "Inspect the structured error guidance and retry the suggested command.",
|
|
1650
|
+
sources: ["sdk/compose.ts"],
|
|
1651
|
+
emitting_commands: ["*"],
|
|
1652
|
+
canonical_code: "manifest_unknown_key",
|
|
1653
|
+
aliases: [],
|
|
1654
|
+
},
|
|
1595
1655
|
{
|
|
1596
1656
|
code: "merge_conflict_markers_detected",
|
|
1597
1657
|
meaning: "Merge conflict markers detected condition.",
|
|
@@ -1604,18 +1664,6 @@ export const PM_ERROR_CODE_CATALOG_PART_1 = [
|
|
|
1604
1664
|
canonical_code: "merge_conflict_markers_detected",
|
|
1605
1665
|
aliases: ["history_merge_conflict_markers_detected"],
|
|
1606
1666
|
},
|
|
1607
|
-
{
|
|
1608
|
-
code: "merge_decisions_unreviewed",
|
|
1609
|
-
meaning: "Merge decisions unreviewed condition.",
|
|
1610
|
-
stability: "provisional",
|
|
1611
|
-
exit_code: 1,
|
|
1612
|
-
class: "generic_failure",
|
|
1613
|
-
recovery: "Inspect the structured error guidance and retry the suggested command.",
|
|
1614
|
-
sources: ["core/diagnostics/remediation.ts"],
|
|
1615
|
-
emitting_commands: ["*"],
|
|
1616
|
-
canonical_code: "merge_decisions_unreviewed",
|
|
1617
|
-
aliases: [],
|
|
1618
|
-
},
|
|
1619
1667
|
];
|
|
1620
1668
|
//# sourceMappingURL=generated-error-code-catalog-part-1.js.map
|
|
1621
|
-
//# debugId=
|
|
1669
|
+
//# debugId=d188630b-bf34-53f4-a93e-78698013994e
|
|
@@ -1,7 +1,19 @@
|
|
|
1
1
|
/** Generated partition 2 of the exhaustive error-code catalog. */
|
|
2
2
|
|
|
3
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
3
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="43b9f478-8b90-5644-aa06-b6787514ffa1")}catch(e){}}();
|
|
4
4
|
export const PM_ERROR_CODE_CATALOG_PART_2 = [
|
|
5
|
+
{
|
|
6
|
+
code: "merge_decisions_unreviewed",
|
|
7
|
+
meaning: "Merge decisions unreviewed condition.",
|
|
8
|
+
stability: "provisional",
|
|
9
|
+
exit_code: 1,
|
|
10
|
+
class: "generic_failure",
|
|
11
|
+
recovery: "Inspect the structured error guidance and retry the suggested command.",
|
|
12
|
+
sources: ["core/diagnostics/remediation.ts"],
|
|
13
|
+
emitting_commands: ["*"],
|
|
14
|
+
canonical_code: "merge_decisions_unreviewed",
|
|
15
|
+
aliases: [],
|
|
16
|
+
},
|
|
5
17
|
{
|
|
6
18
|
code: "merge_git_config_unwritable",
|
|
7
19
|
meaning: "Merge git config unwritable condition.",
|
|
@@ -207,6 +219,18 @@ export const PM_ERROR_CODE_CATALOG_PART_2 = [
|
|
|
207
219
|
canonical_code: "no_update_fields",
|
|
208
220
|
aliases: [],
|
|
209
221
|
},
|
|
222
|
+
{
|
|
223
|
+
code: "no_version_bounds_declared",
|
|
224
|
+
meaning: "No version bounds declared condition.",
|
|
225
|
+
stability: "provisional",
|
|
226
|
+
exit_code: 1,
|
|
227
|
+
class: "generic_failure",
|
|
228
|
+
recovery: "Inspect the structured error guidance and retry the suggested command.",
|
|
229
|
+
sources: ["sdk/compose.ts"],
|
|
230
|
+
emitting_commands: ["*"],
|
|
231
|
+
canonical_code: "no_version_bounds_declared",
|
|
232
|
+
aliases: [],
|
|
233
|
+
},
|
|
210
234
|
{
|
|
211
235
|
code: "npm_package_not_found",
|
|
212
236
|
meaning: "Npm package not found condition.",
|
|
@@ -774,6 +798,18 @@ export const PM_ERROR_CODE_CATALOG_PART_2 = [
|
|
|
774
798
|
canonical_code: "tracker_root_not_directory",
|
|
775
799
|
aliases: [],
|
|
776
800
|
},
|
|
801
|
+
{
|
|
802
|
+
code: "tracker_root_unreadable",
|
|
803
|
+
meaning: "Tracker root unreadable condition.",
|
|
804
|
+
stability: "provisional",
|
|
805
|
+
exit_code: 1,
|
|
806
|
+
class: "generic_failure",
|
|
807
|
+
recovery: "Inspect the structured error guidance and retry the suggested command.",
|
|
808
|
+
sources: ["core/store/item-store.ts"],
|
|
809
|
+
emitting_commands: ["*"],
|
|
810
|
+
canonical_code: "tracker_root_unreadable",
|
|
811
|
+
aliases: [],
|
|
812
|
+
},
|
|
777
813
|
{
|
|
778
814
|
code: "type_duplicate",
|
|
779
815
|
meaning: "Type duplicate condition.",
|
|
@@ -1507,6 +1543,18 @@ export const PM_ERROR_CODE_CATALOG_PART_2 = [
|
|
|
1507
1543
|
canonical_code: "workflow_type_unknown",
|
|
1508
1544
|
aliases: [],
|
|
1509
1545
|
},
|
|
1546
|
+
{
|
|
1547
|
+
code: "workspace_history_chain_invalid",
|
|
1548
|
+
meaning: "Workspace history chain invalid condition.",
|
|
1549
|
+
stability: "provisional",
|
|
1550
|
+
exit_code: 4,
|
|
1551
|
+
class: "conflict",
|
|
1552
|
+
recovery: "Inspect the structured error guidance and retry the suggested command.",
|
|
1553
|
+
sources: ["core/history/workspace-history.ts"],
|
|
1554
|
+
emitting_commands: ["*"],
|
|
1555
|
+
canonical_code: "workspace_history_chain_invalid",
|
|
1556
|
+
aliases: [],
|
|
1557
|
+
},
|
|
1510
1558
|
{
|
|
1511
1559
|
code: "workspace_history_state_conflict",
|
|
1512
1560
|
meaning: "Workspace history state conflict condition.",
|
|
@@ -1629,4 +1677,4 @@ export const PM_ERROR_CODE_CATALOG_PART_2 = [
|
|
|
1629
1677
|
},
|
|
1630
1678
|
];
|
|
1631
1679
|
//# sourceMappingURL=generated-error-code-catalog-part-2.js.map
|
|
1632
|
-
//# debugId=
|
|
1680
|
+
//# debugId=43b9f478-8b90-5644-aa06-b6787514ffa1
|