pi-daddy 0.19.0 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +65 -0
- package/README.md +105 -36
- package/contracts/ledger/v3/README.md +36 -0
- package/contracts/ledger/v3/fixtures/capability-decision.json +98 -0
- package/contracts/ledger/v3/fixtures/check-receipt.json +42 -0
- package/contracts/ledger/v3/fixtures/child-lifecycle.json +45 -0
- package/contracts/ledger/v3/fixtures/workflow-fact.json +41 -0
- package/contracts/ledger/v3/fixtures/workspace-lease.json +43 -0
- package/contracts/ledger/v3/ledger-event.schema.json +930 -0
- package/dist/check-runner.d.ts.map +1 -1
- package/dist/check-runner.js +14 -0
- package/dist/check-runner.js.map +1 -1
- package/dist/cli.js +0 -0
- package/dist/correlation.d.ts.map +1 -1
- package/dist/correlation.js +10 -0
- package/dist/correlation.js.map +1 -1
- package/dist/dashboard-cli.d.ts +18 -0
- package/dist/dashboard-cli.d.ts.map +1 -0
- package/dist/dashboard-cli.js +154 -0
- package/dist/dashboard-cli.js.map +1 -0
- package/dist/dashboard-handshake.d.ts +37 -0
- package/dist/dashboard-handshake.d.ts.map +1 -0
- package/dist/dashboard-handshake.js +127 -0
- package/dist/dashboard-handshake.js.map +1 -0
- package/dist/dashboard-herdr.d.ts +54 -0
- package/dist/dashboard-herdr.d.ts.map +1 -0
- package/dist/dashboard-herdr.js +286 -0
- package/dist/dashboard-herdr.js.map +1 -0
- package/dist/dashboard-projection.d.ts +73 -0
- package/dist/dashboard-projection.d.ts.map +1 -0
- package/dist/dashboard-projection.js +294 -0
- package/dist/dashboard-projection.js.map +1 -0
- package/dist/dashboard-render.d.ts +10 -0
- package/dist/dashboard-render.d.ts.map +1 -0
- package/dist/dashboard-render.js +208 -0
- package/dist/dashboard-render.js.map +1 -0
- package/dist/delegate-types.d.ts +6 -2
- package/dist/delegate-types.d.ts.map +1 -1
- package/dist/delegate-types.js.map +1 -1
- package/dist/delegate.d.ts.map +1 -1
- package/dist/delegate.js +4 -1
- package/dist/delegate.js.map +1 -1
- package/dist/execution-id.d.ts +6 -0
- package/dist/execution-id.d.ts.map +1 -0
- package/dist/execution-id.js +13 -0
- package/dist/execution-id.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/ledger-events.d.ts +27 -4
- package/dist/ledger-events.d.ts.map +1 -1
- package/dist/ledger-events.js +30 -9
- package/dist/ledger-events.js.map +1 -1
- package/dist/ledger-identifiers.d.ts +7 -0
- package/dist/ledger-identifiers.d.ts.map +1 -0
- package/dist/ledger-identifiers.js +20 -0
- package/dist/ledger-identifiers.js.map +1 -0
- package/dist/ledger-report.d.ts +5 -2
- package/dist/ledger-report.d.ts.map +1 -1
- package/dist/ledger-report.js +38 -14
- package/dist/ledger-report.js.map +1 -1
- package/dist/ledger-v3-validation.d.ts +11 -0
- package/dist/ledger-v3-validation.d.ts.map +1 -0
- package/dist/ledger-v3-validation.js +265 -0
- package/dist/ledger-v3-validation.js.map +1 -0
- package/dist/ledger.d.ts +18 -5
- package/dist/ledger.d.ts.map +1 -1
- package/dist/ledger.js +29 -7
- package/dist/ledger.js.map +1 -1
- package/dist/propagation.d.ts +3 -1
- package/dist/propagation.d.ts.map +1 -1
- package/dist/propagation.js +3 -0
- package/dist/propagation.js.map +1 -1
- package/dist/run-child.d.ts +3 -1
- package/dist/run-child.d.ts.map +1 -1
- package/dist/run-child.js +30 -2
- package/dist/run-child.js.map +1 -1
- package/dist/run-herdr.d.ts +2 -0
- package/dist/run-herdr.d.ts.map +1 -1
- package/dist/run-herdr.js +8 -0
- package/dist/run-herdr.js.map +1 -1
- package/dist/workflow-fact-id.d.ts +4 -0
- package/dist/workflow-fact-id.d.ts.map +1 -0
- package/dist/workflow-fact-id.js +14 -0
- package/dist/workflow-fact-id.js.map +1 -0
- package/dist/workflow-facts.d.ts +34 -0
- package/dist/workflow-facts.d.ts.map +1 -0
- package/dist/workflow-facts.js +43 -0
- package/dist/workflow-facts.js.map +1 -0
- package/extensions/chain-ledger.ts +4 -0
- package/extensions/chain-plan.ts +98 -0
- package/extensions/delegate-chain.ts +63 -122
- package/extensions/delegation-ledger.ts +60 -0
- package/extensions/delegation.ts +13 -13
- package/extensions/execute-child.ts +85 -21
- package/extensions/execution-occurrence.ts +20 -0
- package/extensions/grants-command.ts +22 -3
- package/extensions/grants.ts +44 -0
- package/extensions/run-delegation.ts +36 -56
- package/extensions/session.ts +7 -2
- package/extensions/workspace-runtime.ts +10 -0
- package/herdr-plugin/herdr-plugin.toml +18 -0
- package/package.json +16 -4
- package/src/check-runner.ts +16 -0
- package/src/correlation.ts +11 -0
- package/src/dashboard-cli.ts +171 -0
- package/src/dashboard-handshake.ts +185 -0
- package/src/dashboard-herdr.ts +355 -0
- package/src/dashboard-projection.ts +390 -0
- package/src/dashboard-render.ts +254 -0
- package/src/delegate-types.ts +6 -2
- package/src/delegate.ts +4 -2
- package/src/execution-id.ts +18 -0
- package/src/index.ts +25 -0
- package/src/ledger-events.ts +54 -10
- package/src/ledger-identifiers.ts +21 -0
- package/src/ledger-report.ts +40 -19
- package/src/ledger-v3-validation.ts +266 -0
- package/src/ledger.ts +49 -10
- package/src/propagation.ts +3 -0
- package/src/run-child.ts +35 -3
- package/src/run-herdr.ts +9 -0
- package/src/workflow-fact-id.ts +16 -0
- package/src/workflow-facts.ts +65 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-runner.d.ts","sourceRoot":"","sources":["../src/check-runner.ts"],"names":[],"mappings":"AAIA,OAAO,EAAwB,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AASlF,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,eAAe,EAGrB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"check-runner.d.ts","sourceRoot":"","sources":["../src/check-runner.ts"],"names":[],"mappings":"AAIA,OAAO,EAAwB,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AASlF,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,eAAe,EAGrB,MAAM,gBAAgB,CAAC;AAIxB,MAAM,WAAW,eAAe;IAC9B,gGAAgG;IAChG,UAAU,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,+EAA+E;IAC/E,gBAAgB,CAAC,EAAE,eAAe,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,KAAK,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,eAAe,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,mBAAmB,CAAC;CACnC;AAKD,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,eAAe,EAC3B,SAAS,GAAE,MAAM,CAAC,UAAwB,GACzC,MAAM,CAAC,UAAU,CAWnB;AAkCD,wBAAsB,aAAa,CAAC,KAAK,EAAE;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,aAAa,CAAC;IACxB,SAAS,EAAE,kBAAkB,CAAC;IAC9B,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,YAAY,CAAC;CACvB,CAAC,CA8ND"}
|
package/dist/check-runner.js
CHANGED
|
@@ -8,6 +8,8 @@ import { computeGitCandidateIdentity } from "./git-identity.js";
|
|
|
8
8
|
import { runChild } from "./run-child.js";
|
|
9
9
|
import { GovernanceRefusal, refusal } from "./refusals.js";
|
|
10
10
|
import { acquireWorkspaceLease, defaultWorkspaceLeaseDir, leaseAcquisitionOutcome, leaseReleaseLedgerOutcome, } from "./workspace.js";
|
|
11
|
+
import { newExecutionId } from "./execution-id.js";
|
|
12
|
+
import { isLedgerDisplayIdentifier } from "./ledger-identifiers.js";
|
|
11
13
|
const SAFE_ENV_NAME = /^[A-Za-z_][A-Za-z0-9_]*$/;
|
|
12
14
|
const SENSITIVE_ENV_NAME = /(?:^|_)(?:TOKEN|SECRET|PASSWORD|PASSWD|CREDENTIAL|AUTH|COOKIE|PRIVATE_KEY|API_KEY)(?:_|$)|^PI_GRANTS_|^(?:AWS|GITHUB|GITLAB|AZURE|GOOGLE)_/i;
|
|
13
15
|
export function buildCheckEnvironment(definition, inherited = process.env) {
|
|
@@ -26,6 +28,10 @@ export function buildCheckEnvironment(definition, inherited = process.env) {
|
|
|
26
28
|
return env;
|
|
27
29
|
}
|
|
28
30
|
function validateDefinition(checkId, value) {
|
|
31
|
+
// `check:<id>:<uuid>` is also the v3 childId, whose closed display-identifier bound is 512 characters.
|
|
32
|
+
if (!isLedgerDisplayIdentifier(checkId) || checkId.length > 460) {
|
|
33
|
+
throw new GovernanceRefusal(refusal("CHECK_CONFIGURATION_INVALID", `check ${JSON.stringify(checkId)} must be an ASCII identifier`, { check_id: checkId }));
|
|
34
|
+
}
|
|
29
35
|
if (!value) {
|
|
30
36
|
throw new GovernanceRefusal(refusal("CHECK_NOT_CONFIGURED", `check ${JSON.stringify(checkId)} is not present in operator-owned configuration`, { check_id: checkId }));
|
|
31
37
|
}
|
|
@@ -63,6 +69,8 @@ export async function runNamedCheck(input) {
|
|
|
63
69
|
// governed writer. `access` still records what the configured executable is intended to do.
|
|
64
70
|
const leaseAccess = "write";
|
|
65
71
|
const ownerId = `check:${input.checkId}:${randomUUID()}`;
|
|
72
|
+
const executionId = newExecutionId();
|
|
73
|
+
const parentExecutionId = null;
|
|
66
74
|
const correlation = normaliseCorrelation(input.correlation);
|
|
67
75
|
let lease;
|
|
68
76
|
let stagedDir;
|
|
@@ -79,6 +87,7 @@ export async function runNamedCheck(input) {
|
|
|
79
87
|
catch (error) {
|
|
80
88
|
if (input.ledgerPath)
|
|
81
89
|
await appendLedgerEvent({ path: input.ledgerPath, strict: true }, buildWorkspaceLeaseEvent({
|
|
90
|
+
executionId, parentExecutionId,
|
|
82
91
|
childId: ownerId, workspaceId: input.workspace.workspaceId, root: input.workspace.root, access: leaseAccess,
|
|
83
92
|
outcome: "refused",
|
|
84
93
|
correlation, now: new Date(),
|
|
@@ -91,6 +100,7 @@ export async function runNamedCheck(input) {
|
|
|
91
100
|
if (input.ledgerPath) {
|
|
92
101
|
try {
|
|
93
102
|
await appendLedgerEvent({ path: input.ledgerPath, strict: true }, buildWorkspaceLeaseEvent({
|
|
103
|
+
executionId, parentExecutionId,
|
|
94
104
|
childId: ownerId, workspaceId: input.workspace.workspaceId, root: input.workspace.root, access: leaseAccess,
|
|
95
105
|
outcome: leaseAcquisitionOutcome(leaseAccess, lease.recovered), recovered: lease.recovered,
|
|
96
106
|
correlation, now: new Date(),
|
|
@@ -154,6 +164,7 @@ export async function runNamedCheck(input) {
|
|
|
154
164
|
throw new GovernanceRefusal(refusal("WORKSPACE_LEASE_STALE", `check ${JSON.stringify(input.checkId)} lost its workspace lease before receipt`, { check_id: input.checkId }));
|
|
155
165
|
if (input.ledgerPath)
|
|
156
166
|
await appendLedgerEvent({ path: input.ledgerPath, strict: true }, buildWorkspaceLeaseEvent({
|
|
167
|
+
executionId, parentExecutionId,
|
|
157
168
|
childId: ownerId, workspaceId: input.workspace.workspaceId, root: input.workspace.root, access: leaseAccess,
|
|
158
169
|
outcome: leaseReleaseLedgerOutcome(releaseOutcome, releaseReason), releaseReason, correlation, now: new Date(),
|
|
159
170
|
}));
|
|
@@ -169,6 +180,7 @@ export async function runNamedCheck(input) {
|
|
|
169
180
|
const receipt = { receipt_id: receiptId(body), ...body };
|
|
170
181
|
if (input.ledgerPath) {
|
|
171
182
|
await appendLedgerEvent({ path: input.ledgerPath, strict: true }, buildCheckReceiptLedgerEvent({
|
|
183
|
+
executionId, parentExecutionId,
|
|
172
184
|
childId: ownerId, receiptId: receipt.receipt_id, workspaceId: input.workspace.workspaceId,
|
|
173
185
|
checkId: input.checkId, treeSha: receipt.tree_sha, correlation, now: ended,
|
|
174
186
|
}));
|
|
@@ -198,6 +210,7 @@ export async function runNamedCheck(input) {
|
|
|
198
210
|
// how a mutated workspace came to leave a trail that read like a clean run.
|
|
199
211
|
onFailure: (cause) => { notes.push(`check refusal record failed: ${String(cause)}`); },
|
|
200
212
|
}, buildWorkspaceLeaseEvent({
|
|
213
|
+
executionId, parentExecutionId,
|
|
201
214
|
childId: ownerId, workspaceId: input.workspace.workspaceId, root: input.workspace.root, access: leaseAccess,
|
|
202
215
|
outcome: "refused",
|
|
203
216
|
refusal: error instanceof GovernanceRefusal
|
|
@@ -221,6 +234,7 @@ export async function runNamedCheck(input) {
|
|
|
221
234
|
strict: false,
|
|
222
235
|
onFailure: (cause) => { notes.push(`check lease release record failed: ${String(cause)}`); },
|
|
223
236
|
}, buildWorkspaceLeaseEvent({
|
|
237
|
+
executionId, parentExecutionId,
|
|
224
238
|
childId: ownerId, workspaceId: input.workspace.workspaceId, root: input.workspace.root, access: leaseAccess,
|
|
225
239
|
outcome: outcome === "lost"
|
|
226
240
|
? "lost"
|
package/dist/check-runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-runner.js","sourceRoot":"","sources":["../src/check-runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"check-runner.js","sourceRoot":"","sources":["../src/check-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAA4B,MAAM,kBAAkB,CAAC;AAClF,OAAO,EACL,iBAAiB,EACjB,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EAGxB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AA+CpE,MAAM,aAAa,GAAG,0BAA0B,CAAC;AACjD,MAAM,kBAAkB,GAAG,6IAA6I,CAAC;AAEzK,MAAM,UAAU,qBAAqB,CACnC,UAA2B,EAC3B,YAA+B,OAAO,CAAC,GAAG;IAE1C,MAAM,GAAG,GAAsB,EAAE,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;QAChD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QACzE,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC;QACjE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QACzE,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACpB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAe,EAAE,KAAkC;IAC7E,uGAAuG;IACvG,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QAChE,MAAM,IAAI,iBAAiB,CAAC,OAAO,CACjC,6BAA6B,EAAE,SAAS,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,8BAA8B,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CACrH,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,iBAAiB,CAAC,OAAO,CACjC,sBAAsB,EAAE,SAAS,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,iDAAiD,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CACjI,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;QACvH,MAAM,IAAI,iBAAiB,CAAC,OAAO,CACjC,6BAA6B,EAAE,SAAS,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,wDAAwD,EACvH,EAAE,QAAQ,EAAE,OAAO,EAAE,CACtB,CAAC,CAAC;IACL,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC/D,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC;YACpE,MAAM,IAAI,iBAAiB,CAAC,OAAO,CACjC,6BAA6B,EAAE,SAAS,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,mCAAmC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAC1H,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,SAAS,CAAC,OAAyC;IAC1D,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KASnC;IAMC,IAAI,KAAK,CAAC,QAAQ,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,IAAI,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACzG,MAAM,IAAI,iBAAiB,CAAC,OAAO,CAAC,6BAA6B,EAAE,uDAAuD,CAAC,CAAC,CAAC;IAC/H,CAAC;IACD,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3F,IAAI,UAAkB,CAAC;IACvB,IAAI,CAAC;QACH,UAAU,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IACxE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,iBAAiB,CAAC,OAAO,CACjC,6BAA6B,EAAE,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,mCAAmC,MAAM,CAAC,KAAK,CAAC,GAAG,EACxH,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,CAC5B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtG,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1F,MAAM,MAAM,GAAG,UAAU,CAAC,gBAAgB,IAAI,OAAO,CAAC;IACtD,uGAAuG;IACvG,4FAA4F;IAC5F,MAAM,WAAW,GAAoB,OAAO,CAAC;IAC7C,MAAM,OAAO,GAAG,SAAS,KAAK,CAAC,OAAO,IAAI,UAAU,EAAE,EAAE,CAAC;IACzD,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,iBAAiB,GAAG,IAAI,CAAC;IAC/B,MAAM,WAAW,GAAG,oBAAoB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC5D,IAAI,KAAoE,CAAC;IACzE,IAAI,SAA6B,CAAC;IAClC,4GAA4G;IAC5G,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,aAAa,GAAG,QAAQ,CAAC;IAC7B,IAAI,CAAC;QACH,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,qBAAqB,CAAC;gBAClC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,wBAAwB,EAAE;gBACvG,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM;aAC9B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,CAAC,UAAU;gBAAE,MAAM,iBAAiB,CAC3C,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,EACxC,wBAAwB,CAAC;oBACvB,WAAW,EAAE,iBAAiB;oBAC9B,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW;oBAC3G,OAAO,EAAE,SAAS;oBAClB,WAAW,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE;oBAC5B,GAAG,CAAC,KAAK,YAAY,iBAAiB;wBACpC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;wBACjH,CAAC,CAAC,EAAE,CAAC;iBACR,CAAC,CACH,CAAC;YACF,MAAM,KAAK,CAAC;QACd,CAAC;QACD,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,iBAAiB,CACrB,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,EACxC,wBAAwB,CAAC;oBACvB,WAAW,EAAE,iBAAiB;oBAC9B,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW;oBAC3G,OAAO,EAAE,uBAAuB,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1F,WAAW,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE;iBAC7B,CAAC,CACH,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;gBACrC,KAAK,GAAG,SAAS,CAAC;gBAClB,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAClE,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI;YACrC,CAAC,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC;SAChG,EAAE,CAAC;YACX,IAAI,QAAQ,IAAI,QAAQ,KAAK,MAAM;gBAAE,MAAM,IAAI,iBAAiB,CAAC,OAAO,CACtE,yBAAyB,EAAE,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,yCAAyC,EAClH,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAC9C,CAAC,CAAC;QACL,CAAC;QACD,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,gBAAgB,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpF,SAAS,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC,CAAC;QAClE,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QAC/D,MAAM,SAAS,CAAC,gBAAgB,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACpE,MAAM,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;QACrC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;QAC1G,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC;YAC5B,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC;YAC7F,GAAG,EAAE,qBAAqB,CAAC,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;YACrF,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,UAAU,EAAE,cAAc,EAAE,UAAU,CAAC,gBAAgB;YAClG,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAM,CAAC,aAAa,CAAC,GAAG,CAAC;SAC5C,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QACzB,aAAa,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC;QAC5H,oGAAoG;QACpG,uGAAuG;QACvG,sGAAsG;QACtG,mEAAmE;QACnE,IAAI,MAAM,CAAC,UAAU;YAAE,MAAM,IAAI,iBAAiB,CAAC,OAAO,CACxD,sBAAsB,EAAE,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,2CAA2C,EACzG,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,CAC5B,CAAC,CAAC;QACH,IAAI,SAAS;YAAE,MAAM,IAAI,iBAAiB,CAAC,OAAO,CAChD,uBAAuB,EAAE,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,yCAAyC,EACxG,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,CAC5B,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,2BAA2B,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACjE,IAAI,SAAS;YAAE,MAAM,IAAI,iBAAiB,CAAC,OAAO,CAChD,uBAAuB,EAAE,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,0CAA0C,EACzG,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,CAC5B,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;YACzE,MAAM,IAAI,iBAAiB,CAAC,OAAO,CACjC,yBAAyB,EAAE,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,iCAAiC,EAClG,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,CAC5B,CAAC,CAAC;QACL,CAAC;QACD,qGAAqG;QACrG,oGAAoG;QACpG,mGAAmG;QACnG,sGAAsG;QACtG,uGAAuG;QACvG,uEAAuE;QACvE,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC1D,KAAK,GAAG,SAAS,CAAC;QAClB,IAAI,SAAS;YAAE,MAAM,IAAI,iBAAiB,CAAC,OAAO,CAChD,uBAAuB,EAAE,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,0CAA0C,EACzG,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,CAC5B,CAAC,CAAC;QACH,IAAI,KAAK,CAAC,UAAU;YAAE,MAAM,iBAAiB,CAC3C,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,EACxC,wBAAwB,CAAC;gBACvB,WAAW,EAAE,iBAAiB;gBAC9B,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW;gBAC3G,OAAO,EAAE,yBAAyB,CAAC,cAAc,EAAE,aAAa,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE;aAC/G,CAAC,CACH,CAAC;QACF,MAAM,IAAI,GAAqC;YAC7C,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB;YAC/F,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS;YACrG,UAAU,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI;YACxF,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS;YAC/G,aAAa,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAC7E,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,gBAAgB,EAAE,MAAM;YACnE,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5F,CAAC;QACF,MAAM,OAAO,GAAiB,EAAE,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;QACvE,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,iBAAiB,CACrB,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,EACxC,4BAA4B,CAAC;gBAC3B,WAAW,EAAE,iBAAiB;gBAC9B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW;gBACzF,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK;aAC3E,CAAC,CACH,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;IAChG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,+FAA+F;QAC/F,mGAAmG;QACnG,qGAAqG;QACrG,mEAAmE;QACnE,IAAI,aAAa,KAAK,WAAW;YAAE,aAAa,GAAG,SAAS,CAAC;QAC7D,qGAAqG;QACrG,8FAA8F;QAC9F,gGAAgG;QAChG,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,iBAAiB,CACrB;gBACE,IAAI,EAAE,KAAK,CAAC,UAAU;gBACtB,8FAA8F;gBAC9F,2FAA2F;gBAC3F,0CAA0C;gBAC1C,MAAM,EAAE,KAAK;gBACb,+FAA+F;gBAC/F,4FAA4F;gBAC5F,6FAA6F;gBAC7F,4EAA4E;gBAC5E,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,gCAAgC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aACvF,EACD,wBAAwB,CAAC;gBACvB,WAAW,EAAE,iBAAiB;gBAC9B,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW;gBAC3G,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,KAAK,YAAY,iBAAiB;oBACzC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;oBACpG,CAAC,CAAC,OAAO,CAAC,4BAA4B,EAAE,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;gBAC7G,WAAW,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE;aAC7B,CAAC,CACH,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,IAAI,SAAS;YAAE,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,IAAI,KAAK,EAAE,CAAC;YACV,8FAA8F;YAC9F,gGAAgG;YAChG,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YACnD,IAAI,KAAK,CAAC,UAAU;gBAAE,MAAM,iBAAiB,CAC3C;oBACE,IAAI,EAAE,KAAK,CAAC,UAAU;oBACtB,MAAM,EAAE,KAAK;oBACb,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,sCAAsC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;iBAC7F,EACD,wBAAwB,CAAC;oBACvB,WAAW,EAAE,iBAAiB;oBAC9B,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW;oBAC3G,OAAO,EAAE,OAAO,KAAK,MAAM;wBACzB,CAAC,CAAC,MAAM;wBACR,CAAC,CAAC,OAAO,KAAK,qBAAqB;4BACjC,CAAC,CAAC,qBAAqB;4BACvB,CAAC,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;oBAC1D,aAAa,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE;iBAC5C,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
|
package/dist/cli.js
CHANGED
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"correlation.d.ts","sourceRoot":"","sources":["../src/correlation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"correlation.d.ts","sourceRoot":"","sources":["../src/correlation.ts"],"names":[],"mappings":"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"}
|
package/dist/correlation.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import { GovernanceRefusal, refusal } from "./refusals.js";
|
|
3
|
+
import { isLedgerCorrelationIdentifier } from "./ledger-identifiers.js";
|
|
3
4
|
const MAX_CORRELATION_BYTES = 32 * 1024;
|
|
4
5
|
/**
|
|
5
6
|
* Per-field bound on the STRING fields — most are an id, a digest, a label or a timestamp. It does not
|
|
@@ -30,6 +31,12 @@ const CORRELATION_FIELDS = new Set([
|
|
|
30
31
|
const CORRELATION_NUMERIC = new Set([
|
|
31
32
|
"event_seq", "last_change_seq", "last_authority_seq",
|
|
32
33
|
]);
|
|
34
|
+
// These fields are rendered as labels/identities. Treating arbitrary prose as an "id" let a model copy
|
|
35
|
+
// task or output text into the ledger and dashboard through correlation while staying schema-valid.
|
|
36
|
+
const CORRELATION_IDENTIFIERS = new Set([
|
|
37
|
+
"schema_version", "run_id", "task_id", "workspace_id", "context_id", "phase", "assurance",
|
|
38
|
+
"assurance_effective", "policy_label", "assurance_source",
|
|
39
|
+
]);
|
|
33
40
|
function correlationRefusal(message, details) {
|
|
34
41
|
return new GovernanceRefusal(refusal("CORRELATION_INVALID", `correlation metadata: ${message}`, details));
|
|
35
42
|
}
|
|
@@ -98,6 +105,9 @@ export function normaliseCorrelation(input) {
|
|
|
98
105
|
if (value.length > MAX_CORRELATION_FIELD_CHARS) {
|
|
99
106
|
throw correlationTooLarge(`${key} exceeds ${MAX_CORRELATION_FIELD_CHARS} characters`, { field: key, limit: MAX_CORRELATION_FIELD_CHARS, actual: value.length });
|
|
100
107
|
}
|
|
108
|
+
if (CORRELATION_IDENTIFIERS.has(key) && !isLedgerCorrelationIdentifier(value)) {
|
|
109
|
+
throw correlationRefusal(`${key} must be an ASCII identifier, not free-form text`, { field: key });
|
|
110
|
+
}
|
|
101
111
|
output[key] = value;
|
|
102
112
|
}
|
|
103
113
|
return output;
|
package/dist/correlation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"correlation.js","sourceRoot":"","sources":["../src/correlation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"correlation.js","sourceRoot":"","sources":["../src/correlation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
export declare const DASHBOARD_PROTOCOL_VERSION: 1;
|
|
3
|
+
export declare const ENV_DASHBOARD_LEDGER = "PI_DADDY_LEDGER";
|
|
4
|
+
export declare const ENV_DASHBOARD_PROTOCOL = "PI_DADDY_DASHBOARD_PROTOCOL";
|
|
5
|
+
export declare const ENV_DASHBOARD_KEY = "PI_DADDY_DASHBOARD_KEY";
|
|
6
|
+
export declare const DASHBOARD_REFRESH_MS = 250;
|
|
7
|
+
export interface DashboardFrameOptions {
|
|
8
|
+
cwd: string;
|
|
9
|
+
ledgerPath?: string;
|
|
10
|
+
protocol?: number;
|
|
11
|
+
color?: boolean;
|
|
12
|
+
width?: number;
|
|
13
|
+
details?: boolean;
|
|
14
|
+
now?: Date;
|
|
15
|
+
}
|
|
16
|
+
export declare function dashboardFrame(options: DashboardFrameOptions): Promise<string>;
|
|
17
|
+
export declare function runDashboard(argv?: string[], env?: NodeJS.ProcessEnv): Promise<void>;
|
|
18
|
+
//# sourceMappingURL=dashboard-cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard-cli.d.ts","sourceRoot":"","sources":["../src/dashboard-cli.ts"],"names":[],"mappings":";AAQA,eAAO,MAAM,0BAA0B,EAAG,CAAU,CAAC;AACrD,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AACtD,eAAO,MAAM,sBAAsB,gCAAgC,CAAC;AACpE,eAAO,MAAM,iBAAiB,2BAA2B,CAAC;AAC1D,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAExC,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAiCD,wBAAsB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CA8BpF;AAyBD,wBAAsB,YAAY,CAAC,IAAI,WAAwB,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8CpH"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { realpathSync } from "node:fs";
|
|
3
|
+
import { readFile } from "node:fs/promises";
|
|
4
|
+
import { resolve } from "node:path";
|
|
5
|
+
import { pathToFileURL } from "node:url";
|
|
6
|
+
import { parseDashboardLedger } from "./dashboard-projection.js";
|
|
7
|
+
import { renderDashboard } from "./dashboard-render.js";
|
|
8
|
+
export const DASHBOARD_PROTOCOL_VERSION = 1;
|
|
9
|
+
export const ENV_DASHBOARD_LEDGER = "PI_DADDY_LEDGER";
|
|
10
|
+
export const ENV_DASHBOARD_PROTOCOL = "PI_DADDY_DASHBOARD_PROTOCOL";
|
|
11
|
+
export const ENV_DASHBOARD_KEY = "PI_DADDY_DASHBOARD_KEY";
|
|
12
|
+
export const DASHBOARD_REFRESH_MS = 250;
|
|
13
|
+
function shellQuote(value) {
|
|
14
|
+
return `'${value.replaceAll("'", `'"'"'`)}'`;
|
|
15
|
+
}
|
|
16
|
+
function setupFrame(cwd) {
|
|
17
|
+
const ledger = resolve(cwd, ".pi", "grants.jsonl");
|
|
18
|
+
return [
|
|
19
|
+
"PI-DADDY",
|
|
20
|
+
"",
|
|
21
|
+
"pi-daddy is missing or its ledger is inactive in this workspace.",
|
|
22
|
+
"Nothing was installed or configured automatically.",
|
|
23
|
+
"",
|
|
24
|
+
"Run exactly:",
|
|
25
|
+
" pi install npm:pi-daddy",
|
|
26
|
+
` export PI_GRANTS_LEDGER=${shellQuote(ledger)}`,
|
|
27
|
+
" pi",
|
|
28
|
+
"",
|
|
29
|
+
"Then run /grants dashboard inside that Herdr-hosted pi session.",
|
|
30
|
+
].join("\n");
|
|
31
|
+
}
|
|
32
|
+
function incompatibleFrame(protocol) {
|
|
33
|
+
return [
|
|
34
|
+
"PI-DADDY — INCOMPATIBLE DASHBOARD",
|
|
35
|
+
"",
|
|
36
|
+
`dashboard plugin protocol ${DASHBOARD_PROTOCOL_VERSION}; core requested ${protocol}.`,
|
|
37
|
+
"No execution state is rendered because assigning old fields new meaning would be unsafe.",
|
|
38
|
+
"Relink the dashboard from the same installed pi-daddy package, then retry /grants dashboard.",
|
|
39
|
+
].join("\n");
|
|
40
|
+
}
|
|
41
|
+
export async function dashboardFrame(options) {
|
|
42
|
+
if (options.protocol !== undefined && options.protocol !== DASHBOARD_PROTOCOL_VERSION) {
|
|
43
|
+
return incompatibleFrame(options.protocol);
|
|
44
|
+
}
|
|
45
|
+
if (!options.ledgerPath)
|
|
46
|
+
return setupFrame(options.cwd);
|
|
47
|
+
const ledgerPath = resolve(options.cwd, options.ledgerPath);
|
|
48
|
+
let text = "";
|
|
49
|
+
let waiting = false;
|
|
50
|
+
try {
|
|
51
|
+
text = await readFile(ledgerPath, "utf8");
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
if (error.code === "ENOENT")
|
|
55
|
+
waiting = true;
|
|
56
|
+
else {
|
|
57
|
+
return [
|
|
58
|
+
"PI-DADDY — LEDGER UNAVAILABLE",
|
|
59
|
+
"",
|
|
60
|
+
`Configured ledger: ${ledgerPath}`,
|
|
61
|
+
`Could not read it: ${error instanceof Error ? error.message : String(error)}`,
|
|
62
|
+
"The dashboard did not substitute an empty tree for this failure.",
|
|
63
|
+
].join("\n");
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
const rendered = renderDashboard(parseDashboardLedger(text, { now: options.now }), {
|
|
67
|
+
color: options.color,
|
|
68
|
+
width: options.width,
|
|
69
|
+
details: options.details,
|
|
70
|
+
});
|
|
71
|
+
return waiting ? `${rendered}\n\nwaiting for ledger ${ledgerPath}` : rendered;
|
|
72
|
+
}
|
|
73
|
+
function parseArgs(argv) {
|
|
74
|
+
let once = false;
|
|
75
|
+
let details = false;
|
|
76
|
+
let color = process.stdout.isTTY;
|
|
77
|
+
let ledgerPath;
|
|
78
|
+
for (let index = 0; index < argv.length; index += 1) {
|
|
79
|
+
const arg = argv[index];
|
|
80
|
+
if (arg === "--once")
|
|
81
|
+
once = true;
|
|
82
|
+
else if (arg === "--details")
|
|
83
|
+
details = true;
|
|
84
|
+
else if (arg === "--no-color")
|
|
85
|
+
color = false;
|
|
86
|
+
else if (arg === "--ledger")
|
|
87
|
+
ledgerPath = argv[++index];
|
|
88
|
+
else
|
|
89
|
+
throw new Error(`unknown dashboard argument ${JSON.stringify(arg)}`);
|
|
90
|
+
}
|
|
91
|
+
return { once, details, color, ledgerPath };
|
|
92
|
+
}
|
|
93
|
+
export async function runDashboard(argv = process.argv.slice(2), env = process.env) {
|
|
94
|
+
const cli = parseArgs(argv);
|
|
95
|
+
const cwd = process.cwd();
|
|
96
|
+
const ledgerPath = cli.ledgerPath ?? (env[ENV_DASHBOARD_LEDGER]?.trim() || undefined);
|
|
97
|
+
const rawProtocol = env[ENV_DASHBOARD_PROTOCOL]?.trim();
|
|
98
|
+
const protocol = rawProtocol === undefined || rawProtocol === "" ? undefined : Number(rawProtocol);
|
|
99
|
+
const key = env[ENV_DASHBOARD_KEY]?.trim();
|
|
100
|
+
process.title = `pi-daddy-dashboard${key ? `:${key.slice(0, 12)}` : ""}`;
|
|
101
|
+
let previous = "";
|
|
102
|
+
const draw = async (clear) => {
|
|
103
|
+
const frame = await dashboardFrame({
|
|
104
|
+
cwd,
|
|
105
|
+
ledgerPath,
|
|
106
|
+
protocol,
|
|
107
|
+
color: cli.color,
|
|
108
|
+
width: process.stdout.columns || 80,
|
|
109
|
+
details: cli.details,
|
|
110
|
+
});
|
|
111
|
+
if (frame === previous && !clear)
|
|
112
|
+
return;
|
|
113
|
+
previous = frame;
|
|
114
|
+
process.stdout.write(clear ? `\u001b]0;PI-DADDY\u0007\u001b[2J\u001b[H${frame}` : `${frame}\n`);
|
|
115
|
+
};
|
|
116
|
+
if (cli.once) {
|
|
117
|
+
await draw(false);
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
await draw(true);
|
|
121
|
+
let drawing = false;
|
|
122
|
+
const redraw = () => {
|
|
123
|
+
if (drawing)
|
|
124
|
+
return;
|
|
125
|
+
drawing = true;
|
|
126
|
+
void draw(true).finally(() => { drawing = false; });
|
|
127
|
+
};
|
|
128
|
+
const timer = setInterval(redraw, DASHBOARD_REFRESH_MS);
|
|
129
|
+
process.on("SIGWINCH", redraw);
|
|
130
|
+
await new Promise((settle) => {
|
|
131
|
+
const stop = () => {
|
|
132
|
+
clearInterval(timer);
|
|
133
|
+
process.off("SIGWINCH", redraw);
|
|
134
|
+
settle();
|
|
135
|
+
};
|
|
136
|
+
process.once("SIGINT", stop);
|
|
137
|
+
process.once("SIGTERM", stop);
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
const invoked = (() => {
|
|
141
|
+
try {
|
|
142
|
+
return process.argv[1] ? import.meta.url === pathToFileURL(realpathSync(process.argv[1])).href : false;
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
return false;
|
|
146
|
+
}
|
|
147
|
+
})();
|
|
148
|
+
if (invoked) {
|
|
149
|
+
runDashboard().catch((error) => {
|
|
150
|
+
process.stderr.write(`pi-daddy dashboard failed: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
151
|
+
process.exitCode = 1;
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=dashboard-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard-cli.js","sourceRoot":"","sources":["../src/dashboard-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type DashboardOpenResult } from "./dashboard-herdr.ts";
|
|
2
|
+
import type { HerdrExec } from "./herdr-cli.ts";
|
|
3
|
+
export type DashboardPromptChoice = "not-now" | "never";
|
|
4
|
+
export declare function dashboardPreferencePath(agentDir: string): string;
|
|
5
|
+
export interface DashboardHandshakeUI {
|
|
6
|
+
select(title: string, choices: string[]): Promise<string | undefined>;
|
|
7
|
+
notify(message: string, level?: "info" | "warning" | "error"): void;
|
|
8
|
+
}
|
|
9
|
+
export interface DashboardHandshakeInput {
|
|
10
|
+
mode: string;
|
|
11
|
+
env?: NodeJS.ProcessEnv | Record<string, string | undefined>;
|
|
12
|
+
pid?: number;
|
|
13
|
+
exec?: HerdrExec;
|
|
14
|
+
cwd: string;
|
|
15
|
+
ledgerPath?: string;
|
|
16
|
+
pluginRoot: string;
|
|
17
|
+
preferencePath: string;
|
|
18
|
+
paneStatePath: string;
|
|
19
|
+
ui: DashboardHandshakeUI;
|
|
20
|
+
}
|
|
21
|
+
export type DashboardHandshakeOutcome = "not-applicable" | "suppressed" | "already-installed" | "installed" | "deferred" | "failed";
|
|
22
|
+
export declare function offerDashboardHandshake(input: DashboardHandshakeInput): Promise<DashboardHandshakeOutcome>;
|
|
23
|
+
export interface DashboardCommandInput {
|
|
24
|
+
env?: NodeJS.ProcessEnv | Record<string, string | undefined>;
|
|
25
|
+
pid?: number;
|
|
26
|
+
exec?: HerdrExec;
|
|
27
|
+
cwd: string;
|
|
28
|
+
ledgerPath?: string;
|
|
29
|
+
pluginRoot: string;
|
|
30
|
+
paneStatePath: string;
|
|
31
|
+
}
|
|
32
|
+
export declare function openDashboardCommand(input: DashboardCommandInput): Promise<DashboardOpenResult>;
|
|
33
|
+
export declare function defaultDashboardPaths(agentDir: string): {
|
|
34
|
+
preferencePath: string;
|
|
35
|
+
paneStatePath: string;
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=dashboard-handshake.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard-handshake.d.ts","sourceRoot":"","sources":["../src/dashboard-handshake.ts"],"names":[],"mappings":"AAGA,OAAO,EAQL,KAAK,mBAAmB,EACzB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,OAAO,CAAC;AAQxD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEhE;AAiCD,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACtE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,IAAI,CAAC;CACrE;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,EAAE,EAAE,oBAAoB,CAAC;CAC1B;AAED,MAAM,MAAM,yBAAyB,GAAG,gBAAgB,GAAG,YAAY,GAAG,mBAAmB,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEpI,wBAAsB,uBAAuB,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CA2DhH;AAED,MAAM,WAAW,qBAAqB;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA2BrG;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAKzG"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { mkdir, readFile, rename, writeFile } from "node:fs/promises";
|
|
3
|
+
import { dirname, resolve } from "node:path";
|
|
4
|
+
import { DASHBOARD_PLUGIN_ID, dashboardHerdrExec, dashboardPaneStatePath, inspectDashboardPlugin, linkDashboardPlugin, openOrReuseDashboard, verifyHerdrHost, } from "./dashboard-herdr.js";
|
|
5
|
+
import { DASHBOARD_PROTOCOL_VERSION } from "./dashboard-cli.js";
|
|
6
|
+
export function dashboardPreferencePath(agentDir) {
|
|
7
|
+
return resolve(agentDir, "pi-daddy", "dashboard-preference.json");
|
|
8
|
+
}
|
|
9
|
+
async function loadPreference(path) {
|
|
10
|
+
try {
|
|
11
|
+
const parsed = JSON.parse(await readFile(path, "utf8"));
|
|
12
|
+
if (parsed?.version !== 1 || !Number.isInteger(parsed.protocol) ||
|
|
13
|
+
!["not-now", "never"].includes(parsed.choice)) {
|
|
14
|
+
throw new Error("unsupported preference shape");
|
|
15
|
+
}
|
|
16
|
+
return parsed;
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
if (error.code === "ENOENT")
|
|
20
|
+
return null;
|
|
21
|
+
throw new Error(`dashboard preference ${path} is corrupt or unreadable: ${error instanceof Error ? error.message : String(error)}`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
async function savePreference(path, choice) {
|
|
25
|
+
const preference = {
|
|
26
|
+
version: 1,
|
|
27
|
+
protocol: DASHBOARD_PROTOCOL_VERSION,
|
|
28
|
+
choice,
|
|
29
|
+
recordedAt: new Date().toISOString(),
|
|
30
|
+
};
|
|
31
|
+
await mkdir(dirname(path), { recursive: true });
|
|
32
|
+
const temporary = `${path}.${process.pid}.${randomUUID()}.tmp`;
|
|
33
|
+
await writeFile(temporary, `${JSON.stringify(preference, null, 2)}\n`, { encoding: "utf8", mode: 0o600 });
|
|
34
|
+
await rename(temporary, path);
|
|
35
|
+
}
|
|
36
|
+
function quote(value) {
|
|
37
|
+
return `'${value.replaceAll("'", `'"'"'`)}'`;
|
|
38
|
+
}
|
|
39
|
+
export async function offerDashboardHandshake(input) {
|
|
40
|
+
if (input.mode !== "tui")
|
|
41
|
+
return "not-applicable";
|
|
42
|
+
const exec = input.exec ?? dashboardHerdrExec;
|
|
43
|
+
const host = await verifyHerdrHost({ env: input.env, pid: input.pid, exec });
|
|
44
|
+
if (!host.ok)
|
|
45
|
+
return "not-applicable";
|
|
46
|
+
try {
|
|
47
|
+
const preference = await loadPreference(input.preferencePath);
|
|
48
|
+
if (preference)
|
|
49
|
+
return "suppressed";
|
|
50
|
+
const plugin = await inspectDashboardPlugin(exec, input.pluginRoot);
|
|
51
|
+
if (plugin.state === "compatible")
|
|
52
|
+
return "already-installed";
|
|
53
|
+
if (plugin.state !== "absent") {
|
|
54
|
+
input.ui.notify(`pi-daddy dashboard: ${plugin.diagnostic}`, "error");
|
|
55
|
+
return "failed";
|
|
56
|
+
}
|
|
57
|
+
const choice = await input.ui.select("Herdr detected. Install and open the pi-daddy dashboard?", ["Install and open", "Not now", "Never ask"]);
|
|
58
|
+
if (choice !== "Install and open" && choice !== "Not now" && choice !== "Never ask") {
|
|
59
|
+
// Escape, timeout and UI teardown return undefined. None is an operator choice, so none may become a
|
|
60
|
+
// durable preference merely because the dialog disappeared.
|
|
61
|
+
input.ui.notify("pi-daddy dashboard: installation prompt dismissed; no preference was stored.", "info");
|
|
62
|
+
return "deferred";
|
|
63
|
+
}
|
|
64
|
+
if (choice !== "Install and open") {
|
|
65
|
+
const recorded = choice === "Never ask" ? "never" : "not-now";
|
|
66
|
+
await savePreference(input.preferencePath, recorded);
|
|
67
|
+
input.ui.notify(recorded === "never"
|
|
68
|
+
? "pi-daddy dashboard: startup installation prompt disabled. /grants dashboard remains available."
|
|
69
|
+
: "pi-daddy dashboard: not installed. /grants dashboard will report the manual setup when requested.", "info");
|
|
70
|
+
return "deferred";
|
|
71
|
+
}
|
|
72
|
+
await linkDashboardPlugin(input.pluginRoot, exec);
|
|
73
|
+
const linked = await inspectDashboardPlugin(exec, input.pluginRoot);
|
|
74
|
+
if (linked.state !== "compatible")
|
|
75
|
+
throw new Error(linked.diagnostic);
|
|
76
|
+
const opened = await openOrReuseDashboard({
|
|
77
|
+
exec,
|
|
78
|
+
host: host.host,
|
|
79
|
+
ledgerPath: input.ledgerPath ?? "",
|
|
80
|
+
cwd: input.cwd,
|
|
81
|
+
statePath: input.paneStatePath,
|
|
82
|
+
pluginRoot: input.pluginRoot,
|
|
83
|
+
allowInactive: true,
|
|
84
|
+
});
|
|
85
|
+
input.ui.notify(`pi-daddy dashboard ${opened.kind} in pane ${opened.paneId} without changing focus.`, "info");
|
|
86
|
+
return "installed";
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
input.ui.notify(`pi-daddy dashboard setup failed: ${error instanceof Error ? error.message : String(error)}`, "error");
|
|
90
|
+
return "failed";
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
export async function openDashboardCommand(input) {
|
|
94
|
+
const exec = input.exec ?? dashboardHerdrExec;
|
|
95
|
+
// Order is deliberate: a server elsewhere must not make an outside-pi command look hosted.
|
|
96
|
+
const host = await verifyHerdrHost({ env: input.env, pid: input.pid, exec });
|
|
97
|
+
if (!host.ok)
|
|
98
|
+
throw new Error(host.diagnostic);
|
|
99
|
+
if (!input.ledgerPath?.trim()) {
|
|
100
|
+
throw new Error("no pi-daddy ledger is configured — set PI_GRANTS_LEDGER, then retry /grants dashboard");
|
|
101
|
+
}
|
|
102
|
+
const plugin = await inspectDashboardPlugin(exec, input.pluginRoot);
|
|
103
|
+
if (plugin.state === "absent") {
|
|
104
|
+
throw new Error(`the pi-daddy Herdr plugin is not installed. Nothing was installed automatically. Run: ` +
|
|
105
|
+
`herdr plugin link ${quote(resolve(input.pluginRoot))} --enabled`);
|
|
106
|
+
}
|
|
107
|
+
if (plugin.state === "disabled") {
|
|
108
|
+
throw new Error(`the pi-daddy Herdr plugin is disabled. Run: herdr plugin enable ${DASHBOARD_PLUGIN_ID}`);
|
|
109
|
+
}
|
|
110
|
+
if (plugin.state !== "compatible")
|
|
111
|
+
throw new Error(plugin.diagnostic);
|
|
112
|
+
return openOrReuseDashboard({
|
|
113
|
+
exec,
|
|
114
|
+
host: host.host,
|
|
115
|
+
ledgerPath: input.ledgerPath,
|
|
116
|
+
cwd: input.cwd,
|
|
117
|
+
statePath: input.paneStatePath,
|
|
118
|
+
pluginRoot: input.pluginRoot,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
export function defaultDashboardPaths(agentDir) {
|
|
122
|
+
return {
|
|
123
|
+
preferencePath: dashboardPreferencePath(agentDir),
|
|
124
|
+
paneStatePath: dashboardPaneStatePath(agentDir),
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=dashboard-handshake.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard-handshake.js","sourceRoot":"","sources":["../src/dashboard-handshake.ts"],"names":[],"mappings":"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"}
|