empirical-sdd 0.26.0 → 0.26.1
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/CHANGELOG.md +12 -1
- package/dist/cli.js +81 -11
- package/dist/demo-integration-repair.js +5 -4
- package/dist/demo-ticket-policy.js +5 -4
- package/dist/index.js +5 -4
- package/dist/integrations.js +1 -1
- package/dist/lifecycle.d.ts +7 -2
- package/dist/mcp.js +5 -4
- package/dist/protocol.d.ts +1 -1
- package/dist/protocol.js +1 -1
- package/docs/demo.md +1 -1
- package/docs/versioning.md +4 -6
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,16 @@ under the alpha rules in [docs/versioning.md](docs/versioning.md).
|
|
|
8
8
|
|
|
9
9
|
## [Unreleased]
|
|
10
10
|
|
|
11
|
+
## [0.26.1] - 2026-08-21
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
|
|
15
|
+
- Made `empirical update` invoke and verify the CLI installed under npm's actual
|
|
16
|
+
global prefix, then fail with actionable diagnostics when an older Empirical
|
|
17
|
+
installation still shadows it through `PATH`.
|
|
18
|
+
- Bounded Linear team discovery pages so the nested project and workflow-state
|
|
19
|
+
connections stay below Linear's GraphQL query-complexity limit.
|
|
20
|
+
|
|
11
21
|
## [0.26.0] - 2026-08-20
|
|
12
22
|
|
|
13
23
|
### Added
|
|
@@ -183,7 +193,8 @@ Published through GitHub Actions trusted publishing with npm provenance.
|
|
|
183
193
|
|
|
184
194
|
- Prepared and released package version `0.20.2`.
|
|
185
195
|
|
|
186
|
-
[Unreleased]: https://github.com/goempirical/empirical-sdd/compare/v0.26.
|
|
196
|
+
[Unreleased]: https://github.com/goempirical/empirical-sdd/compare/v0.26.1...HEAD
|
|
197
|
+
[0.26.1]: https://github.com/goempirical/empirical-sdd/compare/v0.26.0...v0.26.1
|
|
187
198
|
[0.26.0]: https://github.com/goempirical/empirical-sdd/compare/v0.25.0...v0.26.0
|
|
188
199
|
[0.25.0]: https://github.com/goempirical/empirical-sdd/compare/v0.24.1...v0.25.0
|
|
189
200
|
[0.24.1]: https://github.com/goempirical/empirical-sdd/compare/v0.24.0...v0.24.1
|
package/dist/cli.js
CHANGED
|
@@ -14862,7 +14862,7 @@ function verifyReceiptDigest(receipt) {
|
|
|
14862
14862
|
throw new Error(`Evidence receipt ${parsed.id} has an asserted result inconsistent with its provenance.`);
|
|
14863
14863
|
}
|
|
14864
14864
|
}
|
|
14865
|
-
var SCHEMA_VERSION = 5, POLICY_SCHEMA_VERSION = 2, MANIFEST_SCHEMA_VERSION = 2, RECEIPT_SCHEMA_VERSION = 1, PRODUCT_VERSION = "0.26.
|
|
14865
|
+
var SCHEMA_VERSION = 5, POLICY_SCHEMA_VERSION = 2, MANIFEST_SCHEMA_VERSION = 2, RECEIPT_SCHEMA_VERSION = 1, PRODUCT_VERSION = "0.26.1", workflowSchema, executionModeSchema, riskFloorSchema, completionLevelSchema, phaseSchema, workflowStatusSchema, criterionSchema, evidenceKindSchema, commandPolicySchema, evidencePolicySchema, projectPolicySchema, impactManifestSchema, authorizationSchema, COMPLETION_ORDER, receiptProvenanceSchema, receiptBaseSchema, executedReceiptSchema, artifactRecordSchema, collectedReceiptSchema, evidenceReceiptSchema;
|
|
14866
14866
|
var init_protocol = __esm(() => {
|
|
14867
14867
|
init_zod();
|
|
14868
14868
|
workflowSchema = exports_external.enum(["fast", "complex"]);
|
|
@@ -37279,6 +37279,7 @@ var TRACKER_PROGRESS_STATES = [
|
|
|
37279
37279
|
"done"
|
|
37280
37280
|
];
|
|
37281
37281
|
var TRACKER_DISCOVERY_LIMIT = 100;
|
|
37282
|
+
var LINEAR_TEAM_DISCOVERY_PAGE_SIZE = 10;
|
|
37282
37283
|
var TRACKER_ARTIFACT_MAX_COUNT = 10;
|
|
37283
37284
|
var TRACKER_ARTIFACT_MAX_BYTES = 5 * 1024 * 1024;
|
|
37284
37285
|
var TRACKER_ARTIFACT_TOTAL_BYTES = 10 * 1024 * 1024;
|
|
@@ -39247,9 +39248,9 @@ async function discoverLinearResources(authorization, dependencies) {
|
|
|
39247
39248
|
let after = null;
|
|
39248
39249
|
const cursors = new Set;
|
|
39249
39250
|
for (let page = 0;page < TRACKER_DISCOVERY_LIMIT; page += 1) {
|
|
39250
|
-
const data = await linearGraphql(`query EmpiricalTrackerDiscovery($after: String) {
|
|
39251
|
+
const data = await linearGraphql(`query EmpiricalTrackerDiscovery($after: String, $teamFirst: Int!) {
|
|
39251
39252
|
organization { id name urlKey }
|
|
39252
|
-
teams(first:
|
|
39253
|
+
teams(first: $teamFirst, after: $after) {
|
|
39253
39254
|
nodes {
|
|
39254
39255
|
id name key
|
|
39255
39256
|
projects(first: 100) { nodes { id name url } pageInfo { hasNextPage endCursor } }
|
|
@@ -39257,7 +39258,7 @@ async function discoverLinearResources(authorization, dependencies) {
|
|
|
39257
39258
|
}
|
|
39258
39259
|
pageInfo { hasNextPage endCursor }
|
|
39259
39260
|
}
|
|
39260
|
-
}`, { after }, authorization, dependencies);
|
|
39261
|
+
}`, { after, teamFirst: LINEAR_TEAM_DISCOVERY_PAGE_SIZE }, authorization, dependencies);
|
|
39261
39262
|
const organizationValue = data.organization ?? (typeof data.viewer === "object" && data.viewer !== null && !Array.isArray(data.viewer) ? data.viewer.organization : undefined);
|
|
39262
39263
|
const organization = record4(organizationValue, "Linear organization");
|
|
39263
39264
|
const workspaceId = requiredString(organization, "id", "Linear workspace id");
|
|
@@ -44197,15 +44198,38 @@ function normalizeColumns(columns) {
|
|
|
44197
44198
|
|
|
44198
44199
|
// src/lifecycle.ts
|
|
44199
44200
|
import { spawnSync as spawnSync6 } from "node:child_process";
|
|
44200
|
-
|
|
44201
|
-
|
|
44202
|
-
const
|
|
44201
|
+
import { posix as posix2, win32 as win322 } from "node:path";
|
|
44202
|
+
function updateEmpirical(runner = runInherited, platform = process.platform) {
|
|
44203
|
+
const npm = platform === "win32" ? "npm.cmd" : "npm";
|
|
44204
|
+
const empirical = platform === "win32" ? "empirical.cmd" : "empirical";
|
|
44205
|
+
const latestResult = runner(npm, ["view", "empirical-sdd@latest", "version", "--json"], { capture: true });
|
|
44206
|
+
assertStage(latestResult, "UPDATE_LATEST_VERSION_FAILED", "npm latest-version lookup");
|
|
44207
|
+
const expectedVersion = parseNpmVersion(latestResult.stdout);
|
|
44203
44208
|
const packageResult = runner(npm, ["install", "-g", "empirical-sdd@latest"]);
|
|
44204
44209
|
assertStage(packageResult, "UPDATE_PACKAGE_FAILED", "npm package update");
|
|
44205
|
-
const
|
|
44210
|
+
const prefixResult = runner(npm, ["prefix", "--global"], { capture: true });
|
|
44211
|
+
assertStage(prefixResult, "UPDATE_PREFIX_FAILED", "npm global-prefix discovery");
|
|
44212
|
+
const prefix = parseGlobalPrefix(prefixResult.stdout, platform);
|
|
44213
|
+
const installedEmpirical = resolveGlobalEmpirical(prefix, platform);
|
|
44214
|
+
const installedVersionResult = runner(installedEmpirical, ["--version"], { capture: true });
|
|
44215
|
+
assertStage(installedVersionResult, "UPDATE_INSTALLED_VERSION_FAILED", "npm-installed CLI verification");
|
|
44216
|
+
const installedVersion = parseCliVersion(installedVersionResult.stdout, "npm-installed CLI");
|
|
44217
|
+
if (installedVersion !== expectedVersion) {
|
|
44218
|
+
throw new EmpiricalError("UPDATE_INSTALLED_VERSION_MISMATCH", `npm-installed CLI version mismatch: expected ${expectedVersion}, observed ${installedVersion} at ${installedEmpirical}. Retry empirical update after checking npm's registry and global prefix.`);
|
|
44219
|
+
}
|
|
44220
|
+
const integrationResult = runner(installedEmpirical, ["install", "--yes"]);
|
|
44206
44221
|
assertStage(integrationResult, "UPDATE_INTEGRATIONS_FAILED", "agent integration refresh");
|
|
44222
|
+
const pathVersionResult = runner(empirical, ["--version"], { capture: true });
|
|
44223
|
+
assertStage(pathVersionResult, "UPDATE_PATH_VERSION_FAILED", "PATH-visible CLI verification", pathRemediation(prefix, installedEmpirical, platform));
|
|
44224
|
+
const pathVersion = parseCliVersion(pathVersionResult.stdout, "PATH-visible CLI");
|
|
44225
|
+
if (pathVersion !== expectedVersion) {
|
|
44226
|
+
throw new EmpiricalError("UPDATE_PATH_SHADOWED", `PATH-visible empirical version mismatch: expected ${expectedVersion}, observed ${pathVersion}. npm installed the current CLI at ${installedEmpirical}, but another installation is shadowing it. ${pathRemediation(prefix, installedEmpirical, platform)}`);
|
|
44227
|
+
}
|
|
44207
44228
|
return { package: "updated", integrations: "refreshed" };
|
|
44208
44229
|
}
|
|
44230
|
+
function resolveGlobalEmpirical(prefix, platform) {
|
|
44231
|
+
return platform === "win32" ? win322.join(prefix, "empirical.cmd") : posix2.join(prefix, "bin", "empirical");
|
|
44232
|
+
}
|
|
44209
44233
|
function uninstallEmpirical(runner = runInherited) {
|
|
44210
44234
|
const npm = process.platform === "win32" ? "npm.cmd" : "npm";
|
|
44211
44235
|
const result = runner(npm, ["uninstall", "-g", "empirical-sdd"]);
|
|
@@ -44215,9 +44239,55 @@ function uninstallEmpirical(runner = runInherited) {
|
|
|
44215
44239
|
function isUninstallConfirmed(answer) {
|
|
44216
44240
|
return /^(?:y|yes)$/i.test(answer.trim());
|
|
44217
44241
|
}
|
|
44218
|
-
function runInherited(command, args) {
|
|
44219
|
-
const result = spawnSync6(command, args, { stdio: "inherit", shell: false });
|
|
44220
|
-
return {
|
|
44242
|
+
function runInherited(command, args, options = {}) {
|
|
44243
|
+
const result = options.capture ? spawnSync6(command, args, { encoding: "utf8", stdio: ["inherit", "pipe", "pipe"], shell: false }) : spawnSync6(command, args, { stdio: "inherit", shell: false });
|
|
44244
|
+
return {
|
|
44245
|
+
status: result.status,
|
|
44246
|
+
...result.error ? { error: result.error } : {},
|
|
44247
|
+
...typeof result.stdout === "string" ? { stdout: result.stdout } : {}
|
|
44248
|
+
};
|
|
44249
|
+
}
|
|
44250
|
+
function parseNpmVersion(stdout) {
|
|
44251
|
+
const output = requiredOutput(stdout, "npm latest-version lookup");
|
|
44252
|
+
let parsed;
|
|
44253
|
+
try {
|
|
44254
|
+
parsed = JSON.parse(output);
|
|
44255
|
+
} catch {
|
|
44256
|
+
throw new EmpiricalError("UPDATE_LATEST_VERSION_INVALID", "npm latest-version lookup returned malformed JSON");
|
|
44257
|
+
}
|
|
44258
|
+
if (typeof parsed !== "string" || !isVersion(parsed)) {
|
|
44259
|
+
throw new EmpiricalError("UPDATE_LATEST_VERSION_INVALID", "npm latest-version lookup did not return one semantic version");
|
|
44260
|
+
}
|
|
44261
|
+
return parsed;
|
|
44262
|
+
}
|
|
44263
|
+
function parseGlobalPrefix(stdout, platform) {
|
|
44264
|
+
const prefix = requiredOutput(stdout, "npm global-prefix discovery");
|
|
44265
|
+
const absolute = platform === "win32" ? win322.isAbsolute(prefix) : posix2.isAbsolute(prefix);
|
|
44266
|
+
if (!absolute || /[\r\n]/u.test(prefix)) {
|
|
44267
|
+
throw new EmpiricalError("UPDATE_PREFIX_INVALID", "npm global-prefix discovery did not return one absolute path");
|
|
44268
|
+
}
|
|
44269
|
+
return prefix;
|
|
44270
|
+
}
|
|
44271
|
+
function parseCliVersion(stdout, stage) {
|
|
44272
|
+
const version2 = requiredOutput(stdout, stage);
|
|
44273
|
+
if (!isVersion(version2)) {
|
|
44274
|
+
throw new EmpiricalError("UPDATE_CLI_VERSION_INVALID", `${stage} did not return one semantic version`);
|
|
44275
|
+
}
|
|
44276
|
+
return version2;
|
|
44277
|
+
}
|
|
44278
|
+
function requiredOutput(stdout, stage) {
|
|
44279
|
+
const output = stdout?.trim();
|
|
44280
|
+
if (!output)
|
|
44281
|
+
throw new EmpiricalError("UPDATE_OUTPUT_MISSING", `${stage} returned no output`);
|
|
44282
|
+
return output;
|
|
44283
|
+
}
|
|
44284
|
+
function isVersion(value) {
|
|
44285
|
+
return /^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/u.test(value);
|
|
44286
|
+
}
|
|
44287
|
+
function pathRemediation(prefix, installedEmpirical, platform) {
|
|
44288
|
+
const inspect = platform === "win32" ? "where empirical" : "type -a empirical";
|
|
44289
|
+
const bin = platform === "win32" ? prefix : posix2.join(prefix, "bin");
|
|
44290
|
+
return `Run '${inspect}' and place ${bin} before the older Empirical entry in PATH. The npm-installed executable is ${installedEmpirical}.`;
|
|
44221
44291
|
}
|
|
44222
44292
|
function assertStage(result, code, stage, remediation) {
|
|
44223
44293
|
if (!result.error && result.status === 0)
|
|
@@ -14861,7 +14861,7 @@ function verifyReceiptDigest(receipt) {
|
|
|
14861
14861
|
throw new Error(`Evidence receipt ${parsed.id} has an asserted result inconsistent with its provenance.`);
|
|
14862
14862
|
}
|
|
14863
14863
|
}
|
|
14864
|
-
var SCHEMA_VERSION = 5, POLICY_SCHEMA_VERSION = 2, MANIFEST_SCHEMA_VERSION = 2, RECEIPT_SCHEMA_VERSION = 1, PRODUCT_VERSION = "0.26.
|
|
14864
|
+
var SCHEMA_VERSION = 5, POLICY_SCHEMA_VERSION = 2, MANIFEST_SCHEMA_VERSION = 2, RECEIPT_SCHEMA_VERSION = 1, PRODUCT_VERSION = "0.26.1", workflowSchema, executionModeSchema, riskFloorSchema, completionLevelSchema, phaseSchema, workflowStatusSchema, criterionSchema, evidenceKindSchema, commandPolicySchema, evidencePolicySchema, projectPolicySchema, impactManifestSchema, authorizationSchema, COMPLETION_ORDER, receiptProvenanceSchema, receiptBaseSchema, executedReceiptSchema, artifactRecordSchema, collectedReceiptSchema, evidenceReceiptSchema;
|
|
14865
14865
|
var init_protocol = __esm(() => {
|
|
14866
14866
|
init_zod();
|
|
14867
14867
|
workflowSchema = exports_external.enum(["fast", "complex"]);
|
|
@@ -22323,6 +22323,7 @@ var TRACKER_PROGRESS_STATES = [
|
|
|
22323
22323
|
"done"
|
|
22324
22324
|
];
|
|
22325
22325
|
var TRACKER_DISCOVERY_LIMIT = 100;
|
|
22326
|
+
var LINEAR_TEAM_DISCOVERY_PAGE_SIZE = 10;
|
|
22326
22327
|
var TRACKER_ARTIFACT_MAX_COUNT = 10;
|
|
22327
22328
|
var TRACKER_ARTIFACT_MAX_BYTES = 5 * 1024 * 1024;
|
|
22328
22329
|
var TRACKER_ARTIFACT_TOTAL_BYTES = 10 * 1024 * 1024;
|
|
@@ -24291,9 +24292,9 @@ async function discoverLinearResources(authorization, dependencies) {
|
|
|
24291
24292
|
let after = null;
|
|
24292
24293
|
const cursors = new Set;
|
|
24293
24294
|
for (let page = 0;page < TRACKER_DISCOVERY_LIMIT; page += 1) {
|
|
24294
|
-
const data = await linearGraphql(`query EmpiricalTrackerDiscovery($after: String) {
|
|
24295
|
+
const data = await linearGraphql(`query EmpiricalTrackerDiscovery($after: String, $teamFirst: Int!) {
|
|
24295
24296
|
organization { id name urlKey }
|
|
24296
|
-
teams(first:
|
|
24297
|
+
teams(first: $teamFirst, after: $after) {
|
|
24297
24298
|
nodes {
|
|
24298
24299
|
id name key
|
|
24299
24300
|
projects(first: 100) { nodes { id name url } pageInfo { hasNextPage endCursor } }
|
|
@@ -24301,7 +24302,7 @@ async function discoverLinearResources(authorization, dependencies) {
|
|
|
24301
24302
|
}
|
|
24302
24303
|
pageInfo { hasNextPage endCursor }
|
|
24303
24304
|
}
|
|
24304
|
-
}`, { after }, authorization, dependencies);
|
|
24305
|
+
}`, { after, teamFirst: LINEAR_TEAM_DISCOVERY_PAGE_SIZE }, authorization, dependencies);
|
|
24305
24306
|
const organizationValue = data.organization ?? (typeof data.viewer === "object" && data.viewer !== null && !Array.isArray(data.viewer) ? data.viewer.organization : undefined);
|
|
24306
24307
|
const organization = record3(organizationValue, "Linear organization");
|
|
24307
24308
|
const workspaceId = requiredString(organization, "id", "Linear workspace id");
|
|
@@ -14861,7 +14861,7 @@ function verifyReceiptDigest(receipt) {
|
|
|
14861
14861
|
throw new Error(`Evidence receipt ${parsed.id} has an asserted result inconsistent with its provenance.`);
|
|
14862
14862
|
}
|
|
14863
14863
|
}
|
|
14864
|
-
var SCHEMA_VERSION = 5, POLICY_SCHEMA_VERSION = 2, MANIFEST_SCHEMA_VERSION = 2, RECEIPT_SCHEMA_VERSION = 1, PRODUCT_VERSION = "0.26.
|
|
14864
|
+
var SCHEMA_VERSION = 5, POLICY_SCHEMA_VERSION = 2, MANIFEST_SCHEMA_VERSION = 2, RECEIPT_SCHEMA_VERSION = 1, PRODUCT_VERSION = "0.26.1", workflowSchema, executionModeSchema, riskFloorSchema, completionLevelSchema, phaseSchema, workflowStatusSchema, criterionSchema, evidenceKindSchema, commandPolicySchema, evidencePolicySchema, projectPolicySchema, impactManifestSchema, authorizationSchema, COMPLETION_ORDER, receiptProvenanceSchema, receiptBaseSchema, executedReceiptSchema, artifactRecordSchema, collectedReceiptSchema, evidenceReceiptSchema;
|
|
14865
14865
|
var init_protocol = __esm(() => {
|
|
14866
14866
|
init_zod();
|
|
14867
14867
|
workflowSchema = exports_external.enum(["fast", "complex"]);
|
|
@@ -22323,6 +22323,7 @@ var TRACKER_PROGRESS_STATES = [
|
|
|
22323
22323
|
"done"
|
|
22324
22324
|
];
|
|
22325
22325
|
var TRACKER_DISCOVERY_LIMIT = 100;
|
|
22326
|
+
var LINEAR_TEAM_DISCOVERY_PAGE_SIZE = 10;
|
|
22326
22327
|
var TRACKER_ARTIFACT_MAX_COUNT = 10;
|
|
22327
22328
|
var TRACKER_ARTIFACT_MAX_BYTES = 5 * 1024 * 1024;
|
|
22328
22329
|
var TRACKER_ARTIFACT_TOTAL_BYTES = 10 * 1024 * 1024;
|
|
@@ -24291,9 +24292,9 @@ async function discoverLinearResources(authorization, dependencies) {
|
|
|
24291
24292
|
let after = null;
|
|
24292
24293
|
const cursors = new Set;
|
|
24293
24294
|
for (let page = 0;page < TRACKER_DISCOVERY_LIMIT; page += 1) {
|
|
24294
|
-
const data = await linearGraphql(`query EmpiricalTrackerDiscovery($after: String) {
|
|
24295
|
+
const data = await linearGraphql(`query EmpiricalTrackerDiscovery($after: String, $teamFirst: Int!) {
|
|
24295
24296
|
organization { id name urlKey }
|
|
24296
|
-
teams(first:
|
|
24297
|
+
teams(first: $teamFirst, after: $after) {
|
|
24297
24298
|
nodes {
|
|
24298
24299
|
id name key
|
|
24299
24300
|
projects(first: 100) { nodes { id name url } pageInfo { hasNextPage endCursor } }
|
|
@@ -24301,7 +24302,7 @@ async function discoverLinearResources(authorization, dependencies) {
|
|
|
24301
24302
|
}
|
|
24302
24303
|
pageInfo { hasNextPage endCursor }
|
|
24303
24304
|
}
|
|
24304
|
-
}`, { after }, authorization, dependencies);
|
|
24305
|
+
}`, { after, teamFirst: LINEAR_TEAM_DISCOVERY_PAGE_SIZE }, authorization, dependencies);
|
|
24305
24306
|
const organizationValue = data.organization ?? (typeof data.viewer === "object" && data.viewer !== null && !Array.isArray(data.viewer) ? data.viewer.organization : undefined);
|
|
24306
24307
|
const organization = record3(organizationValue, "Linear organization");
|
|
24307
24308
|
const workspaceId = requiredString(organization, "id", "Linear workspace id");
|
package/dist/index.js
CHANGED
|
@@ -14861,7 +14861,7 @@ function verifyReceiptDigest(receipt) {
|
|
|
14861
14861
|
throw new Error(`Evidence receipt ${parsed.id} has an asserted result inconsistent with its provenance.`);
|
|
14862
14862
|
}
|
|
14863
14863
|
}
|
|
14864
|
-
var SCHEMA_VERSION = 5, POLICY_SCHEMA_VERSION = 2, MANIFEST_SCHEMA_VERSION = 2, RECEIPT_SCHEMA_VERSION = 1, PRODUCT_VERSION = "0.26.
|
|
14864
|
+
var SCHEMA_VERSION = 5, POLICY_SCHEMA_VERSION = 2, MANIFEST_SCHEMA_VERSION = 2, RECEIPT_SCHEMA_VERSION = 1, PRODUCT_VERSION = "0.26.1", workflowSchema, executionModeSchema, riskFloorSchema, completionLevelSchema, phaseSchema, workflowStatusSchema, criterionSchema, evidenceKindSchema, commandPolicySchema, evidencePolicySchema, projectPolicySchema, impactManifestSchema, authorizationSchema, COMPLETION_ORDER, receiptProvenanceSchema, receiptBaseSchema, executedReceiptSchema, artifactRecordSchema, collectedReceiptSchema, evidenceReceiptSchema;
|
|
14865
14865
|
var init_protocol = __esm(() => {
|
|
14866
14866
|
init_zod();
|
|
14867
14867
|
workflowSchema = exports_external.enum(["fast", "complex"]);
|
|
@@ -22317,6 +22317,7 @@ var TRACKER_PROGRESS_STATES = [
|
|
|
22317
22317
|
"done"
|
|
22318
22318
|
];
|
|
22319
22319
|
var TRACKER_DISCOVERY_LIMIT = 100;
|
|
22320
|
+
var LINEAR_TEAM_DISCOVERY_PAGE_SIZE = 10;
|
|
22320
22321
|
var TRACKER_ARTIFACT_MAX_COUNT = 10;
|
|
22321
22322
|
var TRACKER_ARTIFACT_MAX_BYTES = 5 * 1024 * 1024;
|
|
22322
22323
|
var TRACKER_ARTIFACT_TOTAL_BYTES = 10 * 1024 * 1024;
|
|
@@ -24285,9 +24286,9 @@ async function discoverLinearResources(authorization, dependencies) {
|
|
|
24285
24286
|
let after = null;
|
|
24286
24287
|
const cursors = new Set;
|
|
24287
24288
|
for (let page = 0;page < TRACKER_DISCOVERY_LIMIT; page += 1) {
|
|
24288
|
-
const data = await linearGraphql(`query EmpiricalTrackerDiscovery($after: String) {
|
|
24289
|
+
const data = await linearGraphql(`query EmpiricalTrackerDiscovery($after: String, $teamFirst: Int!) {
|
|
24289
24290
|
organization { id name urlKey }
|
|
24290
|
-
teams(first:
|
|
24291
|
+
teams(first: $teamFirst, after: $after) {
|
|
24291
24292
|
nodes {
|
|
24292
24293
|
id name key
|
|
24293
24294
|
projects(first: 100) { nodes { id name url } pageInfo { hasNextPage endCursor } }
|
|
@@ -24295,7 +24296,7 @@ async function discoverLinearResources(authorization, dependencies) {
|
|
|
24295
24296
|
}
|
|
24296
24297
|
pageInfo { hasNextPage endCursor }
|
|
24297
24298
|
}
|
|
24298
|
-
}`, { after }, authorization, dependencies);
|
|
24299
|
+
}`, { after, teamFirst: LINEAR_TEAM_DISCOVERY_PAGE_SIZE }, authorization, dependencies);
|
|
24299
24300
|
const organizationValue = data.organization ?? (typeof data.viewer === "object" && data.viewer !== null && !Array.isArray(data.viewer) ? data.viewer.organization : undefined);
|
|
24300
24301
|
const organization = record3(organizationValue, "Linear organization");
|
|
24301
24302
|
const workspaceId = requiredString(organization, "id", "Linear workspace id");
|
package/dist/integrations.js
CHANGED
|
@@ -14861,7 +14861,7 @@ function verifyReceiptDigest(receipt) {
|
|
|
14861
14861
|
throw new Error(`Evidence receipt ${parsed.id} has an asserted result inconsistent with its provenance.`);
|
|
14862
14862
|
}
|
|
14863
14863
|
}
|
|
14864
|
-
var SCHEMA_VERSION = 5, POLICY_SCHEMA_VERSION = 2, MANIFEST_SCHEMA_VERSION = 2, RECEIPT_SCHEMA_VERSION = 1, PRODUCT_VERSION = "0.26.
|
|
14864
|
+
var SCHEMA_VERSION = 5, POLICY_SCHEMA_VERSION = 2, MANIFEST_SCHEMA_VERSION = 2, RECEIPT_SCHEMA_VERSION = 1, PRODUCT_VERSION = "0.26.1", workflowSchema, executionModeSchema, riskFloorSchema, completionLevelSchema, phaseSchema, workflowStatusSchema, criterionSchema, evidenceKindSchema, commandPolicySchema, evidencePolicySchema, projectPolicySchema, impactManifestSchema, authorizationSchema, COMPLETION_ORDER, receiptProvenanceSchema, receiptBaseSchema, executedReceiptSchema, artifactRecordSchema, collectedReceiptSchema, evidenceReceiptSchema;
|
|
14865
14865
|
var init_protocol = __esm(() => {
|
|
14866
14866
|
init_zod();
|
|
14867
14867
|
workflowSchema = exports_external.enum(["fast", "complex"]);
|
package/dist/lifecycle.d.ts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
export interface LifecycleProcessResult {
|
|
2
2
|
status: number | null;
|
|
3
3
|
error?: Error;
|
|
4
|
+
stdout?: string;
|
|
4
5
|
}
|
|
5
|
-
export
|
|
6
|
+
export interface LifecycleRunOptions {
|
|
7
|
+
capture?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export type LifecycleRunner = (command: string, args: string[], options?: LifecycleRunOptions) => LifecycleProcessResult;
|
|
6
10
|
export interface UpdateReport {
|
|
7
11
|
package: "updated";
|
|
8
12
|
integrations: "refreshed";
|
|
@@ -10,6 +14,7 @@ export interface UpdateReport {
|
|
|
10
14
|
export interface PackageUninstallReport {
|
|
11
15
|
package: "removed";
|
|
12
16
|
}
|
|
13
|
-
export declare function updateEmpirical(runner?: LifecycleRunner): UpdateReport;
|
|
17
|
+
export declare function updateEmpirical(runner?: LifecycleRunner, platform?: NodeJS.Platform): UpdateReport;
|
|
18
|
+
export declare function resolveGlobalEmpirical(prefix: string, platform: NodeJS.Platform): string;
|
|
14
19
|
export declare function uninstallEmpirical(runner?: LifecycleRunner): PackageUninstallReport;
|
|
15
20
|
export declare function isUninstallConfirmed(answer: string): boolean;
|
package/dist/mcp.js
CHANGED
|
@@ -14861,7 +14861,7 @@ function verifyReceiptDigest(receipt) {
|
|
|
14861
14861
|
throw new Error(`Evidence receipt ${parsed.id} has an asserted result inconsistent with its provenance.`);
|
|
14862
14862
|
}
|
|
14863
14863
|
}
|
|
14864
|
-
var SCHEMA_VERSION = 5, POLICY_SCHEMA_VERSION = 2, MANIFEST_SCHEMA_VERSION = 2, RECEIPT_SCHEMA_VERSION = 1, PRODUCT_VERSION = "0.26.
|
|
14864
|
+
var SCHEMA_VERSION = 5, POLICY_SCHEMA_VERSION = 2, MANIFEST_SCHEMA_VERSION = 2, RECEIPT_SCHEMA_VERSION = 1, PRODUCT_VERSION = "0.26.1", workflowSchema, executionModeSchema, riskFloorSchema, completionLevelSchema, phaseSchema, workflowStatusSchema, criterionSchema, evidenceKindSchema, commandPolicySchema, evidencePolicySchema, projectPolicySchema, impactManifestSchema, authorizationSchema, COMPLETION_ORDER, receiptProvenanceSchema, receiptBaseSchema, executedReceiptSchema, artifactRecordSchema, collectedReceiptSchema, evidenceReceiptSchema;
|
|
14865
14865
|
var init_protocol = __esm(() => {
|
|
14866
14866
|
init_zod();
|
|
14867
14867
|
workflowSchema = exports_external.enum(["fast", "complex"]);
|
|
@@ -37278,6 +37278,7 @@ var TRACKER_PROGRESS_STATES = [
|
|
|
37278
37278
|
"done"
|
|
37279
37279
|
];
|
|
37280
37280
|
var TRACKER_DISCOVERY_LIMIT = 100;
|
|
37281
|
+
var LINEAR_TEAM_DISCOVERY_PAGE_SIZE = 10;
|
|
37281
37282
|
var TRACKER_ARTIFACT_MAX_COUNT = 10;
|
|
37282
37283
|
var TRACKER_ARTIFACT_MAX_BYTES = 5 * 1024 * 1024;
|
|
37283
37284
|
var TRACKER_ARTIFACT_TOTAL_BYTES = 10 * 1024 * 1024;
|
|
@@ -39246,9 +39247,9 @@ async function discoverLinearResources(authorization, dependencies) {
|
|
|
39246
39247
|
let after = null;
|
|
39247
39248
|
const cursors = new Set;
|
|
39248
39249
|
for (let page = 0;page < TRACKER_DISCOVERY_LIMIT; page += 1) {
|
|
39249
|
-
const data = await linearGraphql(`query EmpiricalTrackerDiscovery($after: String) {
|
|
39250
|
+
const data = await linearGraphql(`query EmpiricalTrackerDiscovery($after: String, $teamFirst: Int!) {
|
|
39250
39251
|
organization { id name urlKey }
|
|
39251
|
-
teams(first:
|
|
39252
|
+
teams(first: $teamFirst, after: $after) {
|
|
39252
39253
|
nodes {
|
|
39253
39254
|
id name key
|
|
39254
39255
|
projects(first: 100) { nodes { id name url } pageInfo { hasNextPage endCursor } }
|
|
@@ -39256,7 +39257,7 @@ async function discoverLinearResources(authorization, dependencies) {
|
|
|
39256
39257
|
}
|
|
39257
39258
|
pageInfo { hasNextPage endCursor }
|
|
39258
39259
|
}
|
|
39259
|
-
}`, { after }, authorization, dependencies);
|
|
39260
|
+
}`, { after, teamFirst: LINEAR_TEAM_DISCOVERY_PAGE_SIZE }, authorization, dependencies);
|
|
39260
39261
|
const organizationValue = data.organization ?? (typeof data.viewer === "object" && data.viewer !== null && !Array.isArray(data.viewer) ? data.viewer.organization : undefined);
|
|
39261
39262
|
const organization = record4(organizationValue, "Linear organization");
|
|
39262
39263
|
const workspaceId = requiredString(organization, "id", "Linear workspace id");
|
package/dist/protocol.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export declare const SCHEMA_VERSION: 5;
|
|
|
3
3
|
export declare const POLICY_SCHEMA_VERSION: 2;
|
|
4
4
|
export declare const MANIFEST_SCHEMA_VERSION: 2;
|
|
5
5
|
export declare const RECEIPT_SCHEMA_VERSION: 1;
|
|
6
|
-
export declare const PRODUCT_VERSION = "0.26.
|
|
6
|
+
export declare const PRODUCT_VERSION = "0.26.1";
|
|
7
7
|
export declare const workflowSchema: z.ZodEnum<{
|
|
8
8
|
complex: "complex";
|
|
9
9
|
fast: "fast";
|
package/dist/protocol.js
CHANGED
|
@@ -14861,7 +14861,7 @@ function verifyReceiptDigest(receipt) {
|
|
|
14861
14861
|
throw new Error(`Evidence receipt ${parsed.id} has an asserted result inconsistent with its provenance.`);
|
|
14862
14862
|
}
|
|
14863
14863
|
}
|
|
14864
|
-
var SCHEMA_VERSION = 5, POLICY_SCHEMA_VERSION = 2, MANIFEST_SCHEMA_VERSION = 2, RECEIPT_SCHEMA_VERSION = 1, PRODUCT_VERSION = "0.26.
|
|
14864
|
+
var SCHEMA_VERSION = 5, POLICY_SCHEMA_VERSION = 2, MANIFEST_SCHEMA_VERSION = 2, RECEIPT_SCHEMA_VERSION = 1, PRODUCT_VERSION = "0.26.1", workflowSchema, executionModeSchema, riskFloorSchema, completionLevelSchema, phaseSchema, workflowStatusSchema, criterionSchema, evidenceKindSchema, commandPolicySchema, evidencePolicySchema, projectPolicySchema, impactManifestSchema, authorizationSchema, COMPLETION_ORDER, receiptProvenanceSchema, receiptBaseSchema, executedReceiptSchema, artifactRecordSchema, collectedReceiptSchema, evidenceReceiptSchema;
|
|
14865
14865
|
var init_protocol = __esm(() => {
|
|
14866
14866
|
init_zod();
|
|
14867
14867
|
workflowSchema = exports_external.enum(["fast", "complex"]);
|
package/docs/demo.md
CHANGED
package/docs/versioning.md
CHANGED
|
@@ -25,12 +25,10 @@ and the prepared changelog heading must match it. `SCHEMA_VERSION` changes only
|
|
|
25
25
|
when durable state compatibility changes; a package version change does not
|
|
26
26
|
imply a schema change.
|
|
27
27
|
|
|
28
|
-
The prepared `0.26.
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
migration; repositories without an explicit question mode retain detailed
|
|
33
|
-
questions until configured otherwise.
|
|
28
|
+
The prepared `0.26.1` release is an alpha PATCH: it bounds Linear team pages so
|
|
29
|
+
tracker discovery remains below Linear's GraphQL query-complexity limit. Schema
|
|
30
|
+
5 and Tracker Policy v1/v2 remain compatible, and existing repositories require
|
|
31
|
+
no state migration.
|
|
34
32
|
|
|
35
33
|
## Changelog rules
|
|
36
34
|
|