openplanr 2.2641.1 → 2.2641.2
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 +21 -0
- package/README.md +1 -1
- package/dist/cli/commands/artifact.js +1 -1
- package/dist/cli/commands/artifact.js.map +1 -1
- package/dist/cli/commands/github.d.ts.map +1 -1
- package/dist/cli/commands/github.js +7 -10
- package/dist/cli/commands/github.js.map +1 -1
- package/dist/cli/commands/linear.js +1 -1
- package/dist/cli/commands/linear.js.map +1 -1
- package/dist/cli/commands/report.d.ts.map +1 -1
- package/dist/cli/commands/report.js +28 -32
- package/dist/cli/commands/report.js.map +1 -1
- package/dist/dashboard/.vite/manifest.json +1 -1
- package/dist/dashboard/assets/{index-DGyC7RDz.js → index-DI_TKz9J.js} +2 -2
- package/dist/dashboard/assets/{index-DGyC7RDz.js.map → index-DI_TKz9J.js.map} +1 -1
- package/dist/dashboard/dashboard-manifest.json +8 -8
- package/dist/dashboard/index.html +1 -1
- package/dist/models/schema.d.ts +0 -4
- package/dist/models/schema.d.ts.map +1 -1
- package/dist/models/schema.js +0 -2
- package/dist/models/schema.js.map +1 -1
- package/dist/models/types.d.ts +1 -4
- package/dist/models/types.d.ts.map +1 -1
- package/dist/services/credentials-service.js +1 -1
- package/dist/services/credentials-service.js.map +1 -1
- package/dist/services/distribution-service.d.ts +1 -4
- package/dist/services/distribution-service.d.ts.map +1 -1
- package/dist/services/distribution-service.js +1 -60
- package/dist/services/distribution-service.js.map +1 -1
- package/dist/services/github-service.d.ts +7 -4
- package/dist/services/github-service.d.ts.map +1 -1
- package/dist/services/github-service.js +16 -15
- package/dist/services/github-service.js.map +1 -1
- package/dist/services/linear-push-service.d.ts +3 -4
- package/dist/services/linear-push-service.d.ts.map +1 -1
- package/dist/services/linear-push-service.js +5 -6
- package/dist/services/linear-push-service.js.map +1 -1
- package/dist/services/spec-service.d.ts.map +1 -1
- package/dist/services/spec-service.js +34 -69
- package/dist/services/spec-service.js.map +1 -1
- package/dist/templates/rules/shared/capability-map.md.hbs +1 -1
- package/docs/CLI.md +10 -14
- package/lib/host-packages/adapter-registry.json +5 -5
- package/lib/host-packages/capability-map.json +8 -8
- package/lib/host-packages/claude/.claude-plugin/marketplace.json +2 -2
- package/lib/host-packages/claude/openplanr/.claude-plugin/plugin.json +1 -1
- package/lib/host-packages/claude/openplanr/.openplanr-content.json +80 -64
- package/lib/host-packages/claude/openplanr/README.md +8 -12
- package/lib/host-packages/claude/openplanr/agents/planr-backend.md +49 -55
- package/lib/host-packages/claude/openplanr/agents/planr-database.md +56 -92
- package/lib/host-packages/claude/openplanr/agents/planr-designer.md +35 -51
- package/lib/host-packages/claude/openplanr/agents/planr-devops.md +37 -51
- package/lib/host-packages/claude/openplanr/agents/planr-documentation.md +29 -52
- package/lib/host-packages/claude/openplanr/agents/planr-entity-scaffold.md +24 -23
- package/lib/host-packages/claude/openplanr/agents/planr-frontend.md +46 -58
- package/lib/host-packages/claude/openplanr/agents/planr-qa.md +4 -2
- package/lib/host-packages/claude/openplanr/agents/planr-specification.md +54 -51
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/default/backend.md +21 -65
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/default/designer.md +5 -6
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/default/devops.md +2 -3
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/default/doc-gen.md +3 -4
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/default/frontend.md +19 -64
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/default/specification.md +10 -12
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/spec-driven/backend.md +19 -62
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/spec-driven/designer.md +3 -4
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/spec-driven/devops.md +2 -3
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/spec-driven/doc-gen.md +2 -3
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/spec-driven/frontend.md +16 -59
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/spec-driven/specification.md +9 -11
- package/lib/host-packages/claude/openplanr/references/pipeline/stacks/database/mongodb.md +4 -4
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-review.mjs +24 -9
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-share.mjs +3 -3
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/package.json +3 -3
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/share.js +1 -1
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +1 -1
- package/lib/host-packages/claude/openplanr/runtime/plan/scripts/design.mjs +1 -1
- package/lib/host-packages/claude/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +1 -1
- package/lib/host-packages/claude/openplanr/skills/artifact/SKILL.md +2 -2
- package/lib/host-packages/claude/openplanr/skills/artifact/references/diagram-sharing.md +1 -1
- package/lib/host-packages/claude/openplanr/skills/ceo-review/SKILL.md +0 -1
- package/lib/host-packages/claude/openplanr/skills/ceo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/claude/openplanr/skills/chair-review/SKILL.md +6 -2
- package/lib/host-packages/claude/openplanr/skills/challenger-review/SKILL.md +6 -2
- package/lib/host-packages/claude/openplanr/skills/cmo-review/SKILL.md +0 -1
- package/lib/host-packages/claude/openplanr/skills/cmo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/claude/openplanr/skills/coo-review/SKILL.md +0 -1
- package/lib/host-packages/claude/openplanr/skills/coo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/claude/openplanr/skills/cpo-review/SKILL.md +0 -1
- package/lib/host-packages/claude/openplanr/skills/cpo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/claude/openplanr/skills/cto-review/SKILL.md +0 -1
- package/lib/host-packages/claude/openplanr/skills/cto-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/claude/openplanr/skills/delegate/SKILL.md +7 -0
- package/lib/host-packages/claude/openplanr/skills/delegate/references/capsule-contract.md +16 -1
- package/lib/host-packages/claude/openplanr/skills/delegate/references/operator-guide.md +7 -5
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/adapters/claude.mjs +11 -4
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/adapters/native.mjs +1 -1
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/backend-diagnostics.mjs +14 -48
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/context.mjs +84 -22
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/credentials.mjs +167 -0
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/presentation.mjs +3 -2
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/run-contract.mjs +5 -7
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/run-preparation.mjs +2 -0
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/run-record.mjs +2 -3
- package/lib/host-packages/claude/openplanr/skills/diagram/references/diagram-sharing.md +1 -1
- package/lib/host-packages/claude/openplanr/skills/operate/SKILL.md +5 -3
- package/lib/host-packages/claude/openplanr/skills/plan/SKILL.md +8 -2
- package/lib/host-packages/claude/openplanr/skills/sprint/SKILL.md +5 -4
- package/lib/host-packages/claude/openplanr/skills/sprint/references/tracker-connections.md +70 -0
- package/lib/host-packages/claude/openplanr/skills/status/SKILL.md +4 -3
- package/lib/host-packages/claude/openplanr/skills/status/references/tracker-connections.md +70 -0
- package/lib/host-packages/claude/openplanr/skills/sync/SKILL.md +11 -20
- package/lib/host-packages/claude/openplanr/skills/sync/references/tracker-connections.md +70 -0
- package/lib/host-packages/claude/openplanr/skills/sync/scripts/sync.mjs +2 -2
- package/lib/host-packages/cursor/openplanr/.openplanr-content.json +52 -36
- package/lib/host-packages/cursor/openplanr/manifest.json +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-artifact/references/diagram-sharing.md +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-artifact.mdc +2 -2
- package/lib/host-packages/cursor/openplanr/rules/planr-ceo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-chair-review.mdc +6 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-challenger-review.mdc +6 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-cmo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-coo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-cpo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-cto-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/references/capsule-contract.md +16 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/references/operator-guide.md +7 -5
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/adapters/claude.mjs +11 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/adapters/native.mjs +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/backend-diagnostics.mjs +14 -48
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/context.mjs +84 -22
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/credentials.mjs +167 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/presentation.mjs +3 -2
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/run-contract.mjs +5 -7
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/run-preparation.mjs +2 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/run-record.mjs +2 -3
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate.mdc +7 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-diagram/references/diagram-sharing.md +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-operate.mdc +5 -3
- package/lib/host-packages/cursor/openplanr/rules/planr-plan.mdc +8 -2
- package/lib/host-packages/cursor/openplanr/rules/planr-sprint/references/tracker-connections.md +70 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-sprint.mdc +5 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-status/references/tracker-connections.md +70 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-status.mdc +4 -3
- package/lib/host-packages/cursor/openplanr/rules/planr-sync/references/tracker-connections.md +70 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-sync/scripts/sync.mjs +2 -2
- package/lib/host-packages/cursor/openplanr/rules/planr-sync.mdc +11 -20
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-review.mjs +24 -9
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-share.mjs +3 -3
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/package.json +3 -3
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/share.js +1 -1
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +1 -1
- package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/design.mjs +1 -1
- package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +1 -1
- package/lib/host-packages/openai/.claude-plugin/marketplace.json +2 -2
- package/lib/host-packages/openai/openplanr/.codex-plugin/plugin.json +1 -1
- package/lib/host-packages/openai/openplanr/.openplanr-content.json +61 -45
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-review.mjs +24 -9
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-share.mjs +3 -3
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/package.json +3 -3
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/share.js +1 -1
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +1 -1
- package/lib/host-packages/openai/openplanr/runtime/plan/scripts/design.mjs +1 -1
- package/lib/host-packages/openai/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +1 -1
- package/lib/host-packages/openai/openplanr/skills/artifact/SKILL.md +2 -2
- package/lib/host-packages/openai/openplanr/skills/artifact/references/diagram-sharing.md +1 -1
- package/lib/host-packages/openai/openplanr/skills/ceo-review/SKILL.md +0 -1
- package/lib/host-packages/openai/openplanr/skills/ceo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/openai/openplanr/skills/chair-review/SKILL.md +6 -2
- package/lib/host-packages/openai/openplanr/skills/challenger-review/SKILL.md +6 -2
- package/lib/host-packages/openai/openplanr/skills/cmo-review/SKILL.md +0 -1
- package/lib/host-packages/openai/openplanr/skills/cmo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/openai/openplanr/skills/coo-review/SKILL.md +0 -1
- package/lib/host-packages/openai/openplanr/skills/coo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/openai/openplanr/skills/cpo-review/SKILL.md +0 -1
- package/lib/host-packages/openai/openplanr/skills/cpo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/openai/openplanr/skills/cto-review/SKILL.md +0 -1
- package/lib/host-packages/openai/openplanr/skills/cto-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/openai/openplanr/skills/delegate/SKILL.md +7 -0
- package/lib/host-packages/openai/openplanr/skills/delegate/openplanr.skill.json +11 -0
- package/lib/host-packages/openai/openplanr/skills/delegate/references/capsule-contract.md +16 -1
- package/lib/host-packages/openai/openplanr/skills/delegate/references/operator-guide.md +7 -5
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/adapters/claude.mjs +11 -4
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/adapters/native.mjs +1 -1
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/backend-diagnostics.mjs +14 -48
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/context.mjs +84 -22
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/credentials.mjs +167 -0
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/presentation.mjs +3 -2
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/run-contract.mjs +5 -7
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/run-preparation.mjs +2 -0
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/run-record.mjs +2 -3
- package/lib/host-packages/openai/openplanr/skills/diagram/references/diagram-sharing.md +1 -1
- package/lib/host-packages/openai/openplanr/skills/operate/SKILL.md +5 -3
- package/lib/host-packages/openai/openplanr/skills/plan/SKILL.md +8 -2
- package/lib/host-packages/openai/openplanr/skills/sprint/SKILL.md +5 -4
- package/lib/host-packages/openai/openplanr/skills/sprint/openplanr.skill.json +11 -0
- package/lib/host-packages/openai/openplanr/skills/sprint/references/tracker-connections.md +70 -0
- package/lib/host-packages/openai/openplanr/skills/status/SKILL.md +4 -3
- package/lib/host-packages/openai/openplanr/skills/status/openplanr.skill.json +11 -0
- package/lib/host-packages/openai/openplanr/skills/status/references/tracker-connections.md +70 -0
- package/lib/host-packages/openai/openplanr/skills/sync/SKILL.md +11 -20
- package/lib/host-packages/openai/openplanr/skills/sync/openplanr.skill.json +11 -0
- package/lib/host-packages/openai/openplanr/skills/sync/references/tracker-connections.md +70 -0
- package/lib/host-packages/openai/openplanr/skills/sync/scripts/sync.mjs +2 -2
- package/lib/integrations.mjs +2 -2
- package/package.json +2 -2
- package/dist/services/connectors/adapters/business-metrics.d.ts +0 -5
- package/dist/services/connectors/adapters/business-metrics.d.ts.map +0 -1
- package/dist/services/connectors/adapters/business-metrics.js +0 -41
- package/dist/services/connectors/adapters/business-metrics.js.map +0 -1
- package/dist/services/connectors/adapters/deployment-health.d.ts +0 -18
- package/dist/services/connectors/adapters/deployment-health.d.ts.map +0 -1
- package/dist/services/connectors/adapters/deployment-health.js +0 -67
- package/dist/services/connectors/adapters/deployment-health.js.map +0 -1
- package/dist/services/connectors/adapters/github.d.ts +0 -5
- package/dist/services/connectors/adapters/github.d.ts.map +0 -1
- package/dist/services/connectors/adapters/github.js +0 -31
- package/dist/services/connectors/adapters/github.js.map +0 -1
- package/dist/services/connectors/adapters/linear-jira.d.ts +0 -5
- package/dist/services/connectors/adapters/linear-jira.d.ts.map +0 -1
- package/dist/services/connectors/adapters/linear-jira.js +0 -26
- package/dist/services/connectors/adapters/linear-jira.js.map +0 -1
- package/dist/services/connectors/adapters/posthog.d.ts +0 -5
- package/dist/services/connectors/adapters/posthog.d.ts.map +0 -1
- package/dist/services/connectors/adapters/posthog.js +0 -31
- package/dist/services/connectors/adapters/posthog.js.map +0 -1
- package/dist/services/connectors/adapters/sentry.d.ts +0 -5
- package/dist/services/connectors/adapters/sentry.d.ts.map +0 -1
- package/dist/services/connectors/adapters/sentry.js +0 -31
- package/dist/services/connectors/adapters/sentry.js.map +0 -1
- package/dist/services/connectors/checkpoint-custody.d.ts +0 -45
- package/dist/services/connectors/checkpoint-custody.d.ts.map +0 -1
- package/dist/services/connectors/checkpoint-custody.js +0 -499
- package/dist/services/connectors/checkpoint-custody.js.map +0 -1
- package/dist/services/connectors/connector-registry.d.ts +0 -144
- package/dist/services/connectors/connector-registry.d.ts.map +0 -1
- package/dist/services/connectors/connector-registry.js +0 -423
- package/dist/services/connectors/connector-registry.js.map +0 -1
- package/dist/services/connectors/connector-runtime.d.ts +0 -208
- package/dist/services/connectors/connector-runtime.d.ts.map +0 -1
- package/dist/services/connectors/connector-runtime.js +0 -1305
- package/dist/services/connectors/connector-runtime.js.map +0 -1
- package/dist/services/connectors/credential-custody.d.ts +0 -96
- package/dist/services/connectors/credential-custody.d.ts.map +0 -1
- package/dist/services/connectors/credential-custody.js +0 -390
- package/dist/services/connectors/credential-custody.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connector-runtime.js","sourceRoot":"","sources":["../../../src/services/connectors/connector-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import type { ConnectorProviderIdentityV2 } from './connector-registry.js';
|
|
2
|
-
export type ConnectorCredentialSourceV2 = Readonly<{
|
|
3
|
-
kind: 'environment-name';
|
|
4
|
-
name: string;
|
|
5
|
-
}> | Readonly<{
|
|
6
|
-
kind: 'os-custody-key';
|
|
7
|
-
service: string;
|
|
8
|
-
account: string;
|
|
9
|
-
}>;
|
|
10
|
-
export type ConnectorCredentialLocalBindingV2 = Readonly<{
|
|
11
|
-
credentialRef: string;
|
|
12
|
-
provider: ConnectorProviderIdentityV2;
|
|
13
|
-
adapterVersion: string;
|
|
14
|
-
accountIdentityHash: `sha256:${string}`;
|
|
15
|
-
source: ConnectorCredentialSourceV2;
|
|
16
|
-
}>;
|
|
17
|
-
export type ConnectorCredentialProtocolBindingV2 = Readonly<{
|
|
18
|
-
actorId: string;
|
|
19
|
-
credentialRef: string;
|
|
20
|
-
consentRecordId: string;
|
|
21
|
-
protocolDocketHash: `sha256:${string}`;
|
|
22
|
-
provider: ConnectorProviderIdentityV2;
|
|
23
|
-
adapterVersion: string;
|
|
24
|
-
accountIdentityHash: `sha256:${string}`;
|
|
25
|
-
}>;
|
|
26
|
-
export type ConnectorCredentialCapabilityBindingV2 = ConnectorCredentialProtocolBindingV2 & Readonly<{
|
|
27
|
-
requestHash: `sha256:${string}`;
|
|
28
|
-
}>;
|
|
29
|
-
declare const OWNER_CONFIRMATION_BRAND: unique symbol;
|
|
30
|
-
declare const CREDENTIAL_CAPABILITY_BRAND: unique symbol;
|
|
31
|
-
export type ConnectorOwnerConfirmationV2 = Readonly<{
|
|
32
|
-
readonly [OWNER_CONFIRMATION_BRAND]: true;
|
|
33
|
-
}>;
|
|
34
|
-
export type ConnectorCredentialCapabilityV2 = Readonly<{
|
|
35
|
-
readonly [CREDENTIAL_CAPABILITY_BRAND]: true;
|
|
36
|
-
}>;
|
|
37
|
-
export type ConnectorOwnerConfirmationDocketV2 = Readonly<{
|
|
38
|
-
kind: 'openplanr-live-evidence-owner-confirmation-docket';
|
|
39
|
-
schemaVersion: '1.0.0';
|
|
40
|
-
actorId: string;
|
|
41
|
-
consentRecordId: string;
|
|
42
|
-
requestHash: `sha256:${string}`;
|
|
43
|
-
logicalCredentialRef: string;
|
|
44
|
-
protocolDocket: Readonly<Record<string, unknown>>;
|
|
45
|
-
protocolDocketHash: `sha256:${string}`;
|
|
46
|
-
effect: 'provider-call';
|
|
47
|
-
authorityBoundary: 'confirmation-is-not-credential-authority';
|
|
48
|
-
choices: readonly ['approve', 'cancel'];
|
|
49
|
-
defaultChoice: null;
|
|
50
|
-
cancelEffect: 'none';
|
|
51
|
-
expiresAt: string;
|
|
52
|
-
}>;
|
|
53
|
-
export type ConnectorCredentialCustodyErrorCode = 'LIVE_EVIDENCE_CREDENTIAL_CONFIG_INVALID' | 'LIVE_EVIDENCE_CREDENTIAL_CUSTODY_UNAVAILABLE' | 'LIVE_EVIDENCE_CREDENTIAL_READ_FAILED' | 'LIVE_EVIDENCE_CREDENTIAL_UNAVAILABLE' | 'LIVE_EVIDENCE_CONSENT_INVALID' | 'LIVE_EVIDENCE_CONSENT_EXPIRED' | 'LIVE_EVIDENCE_OWNER_CONFIRMATION_REQUIRED' | 'LIVE_EVIDENCE_OWNER_CONFIRMATION_INVALID' | 'LIVE_EVIDENCE_CAPABILITY_INVALID' | 'LIVE_EVIDENCE_CAPABILITY_EXPIRED' | 'LIVE_EVIDENCE_CAPABILITY_REPLAYED';
|
|
54
|
-
type ConnectorCredentialSourceErrorCode = 'LIVE_EVIDENCE_KEYRING_UNAVAILABLE' | 'LIVE_EVIDENCE_KEYRING_READ_FAILED';
|
|
55
|
-
export declare class ConnectorCredentialCustodyError extends Error {
|
|
56
|
-
readonly code: ConnectorCredentialCustodyErrorCode;
|
|
57
|
-
readonly sourceCode?: ConnectorCredentialSourceErrorCode | undefined;
|
|
58
|
-
constructor(code: ConnectorCredentialCustodyErrorCode, message: string, sourceCode?: ConnectorCredentialSourceErrorCode | undefined);
|
|
59
|
-
}
|
|
60
|
-
export declare class ConnectorCredentialCustodyV2 {
|
|
61
|
-
#private;
|
|
62
|
-
constructor(input: {
|
|
63
|
-
contracts: Readonly<{
|
|
64
|
-
assertOperatingLiveEvidenceConsentRecordV2(record: unknown): Readonly<Record<string, unknown>>;
|
|
65
|
-
}>;
|
|
66
|
-
bindings: readonly ConnectorCredentialLocalBindingV2[];
|
|
67
|
-
allowedEnvironmentNames: readonly string[];
|
|
68
|
-
loadConsentRecord(consentRecordId: string): Promise<unknown | null>;
|
|
69
|
-
persistConsentRecord(record: Readonly<Record<string, unknown>>): Promise<unknown>;
|
|
70
|
-
confirmOwner(docket: ConnectorOwnerConfirmationDocketV2): Promise<Readonly<{
|
|
71
|
-
approved: boolean;
|
|
72
|
-
actorId: string;
|
|
73
|
-
}>>;
|
|
74
|
-
readEnvironment?: (name: string) => string | Uint8Array | undefined;
|
|
75
|
-
readKeychain?: (service: string, account: string) => Promise<string | Uint8Array | undefined>;
|
|
76
|
-
now?: () => number;
|
|
77
|
-
entropy?: () => Uint8Array;
|
|
78
|
-
ttlMs?: number;
|
|
79
|
-
});
|
|
80
|
-
validatedConsent(binding: ConnectorCredentialCapabilityBindingV2): Promise<Readonly<Record<string, unknown>>>;
|
|
81
|
-
issueOwnerConfirmation(input: Readonly<{
|
|
82
|
-
binding: ConnectorCredentialCapabilityBindingV2;
|
|
83
|
-
proposedConsentRecord: unknown;
|
|
84
|
-
}>): Promise<ConnectorOwnerConfirmationV2>;
|
|
85
|
-
issueCapability(input: {
|
|
86
|
-
binding: ConnectorCredentialCapabilityBindingV2;
|
|
87
|
-
ownerConfirmation?: ConnectorOwnerConfirmationV2;
|
|
88
|
-
}): Promise<ConnectorCredentialCapabilityV2>;
|
|
89
|
-
capabilityHash(capability: ConnectorCredentialCapabilityV2): `sha256:${string}`;
|
|
90
|
-
/** Stable, non-authoritative protocol custody for restart-safe checkpoint identity. */
|
|
91
|
-
protocolBindingHash(binding: ConnectorCredentialProtocolBindingV2): Promise<`sha256:${string}`>;
|
|
92
|
-
withResolvedCredential<T>(capability: ConnectorCredentialCapabilityV2, binding: ConnectorCredentialCapabilityBindingV2, use: (credential: Uint8Array) => Promise<T>): Promise<T>;
|
|
93
|
-
}
|
|
94
|
-
export declare function createConnectorCredentialCustodyV2(input: ConstructorParameters<typeof ConnectorCredentialCustodyV2>[0]): ConnectorCredentialCustodyV2;
|
|
95
|
-
export {};
|
|
96
|
-
//# sourceMappingURL=credential-custody.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"credential-custody.d.ts","sourceRoot":"","sources":["../../../src/services/connectors/credential-custody.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,390 +0,0 @@
|
|
|
1
|
-
import { createHash, randomBytes } from 'node:crypto';
|
|
2
|
-
import { sha256CanonicalJson } from '../canonical-json.js';
|
|
3
|
-
class ConnectorCredentialSourceError extends Error {
|
|
4
|
-
code;
|
|
5
|
-
constructor(code, message) {
|
|
6
|
-
super(message);
|
|
7
|
-
this.code = code;
|
|
8
|
-
this.name = code;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
export class ConnectorCredentialCustodyError extends Error {
|
|
12
|
-
code;
|
|
13
|
-
sourceCode;
|
|
14
|
-
constructor(code, message, sourceCode) {
|
|
15
|
-
super(message);
|
|
16
|
-
this.code = code;
|
|
17
|
-
this.sourceCode = sourceCode;
|
|
18
|
-
this.name = code;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
const HASH = /^sha256:[a-f0-9]{64}$/u;
|
|
22
|
-
const TEXT_ID = /^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/u;
|
|
23
|
-
const VERSION = /^(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)$/u;
|
|
24
|
-
function fail(code, message) {
|
|
25
|
-
throw new ConnectorCredentialCustodyError(code, message);
|
|
26
|
-
}
|
|
27
|
-
function object(value, label) {
|
|
28
|
-
if (value === null || typeof value !== 'object' || Array.isArray(value)) {
|
|
29
|
-
fail('LIVE_EVIDENCE_CONSENT_INVALID', `${label} is unavailable or invalid.`);
|
|
30
|
-
}
|
|
31
|
-
return value;
|
|
32
|
-
}
|
|
33
|
-
function createOpaqueHandle(label) {
|
|
34
|
-
const handle = Object.create(null);
|
|
35
|
-
Object.defineProperty(handle, 'toJSON', {
|
|
36
|
-
enumerable: false,
|
|
37
|
-
value: () => {
|
|
38
|
-
throw new TypeError(`${label} is process-local and cannot be serialized.`);
|
|
39
|
-
},
|
|
40
|
-
});
|
|
41
|
-
return Object.freeze(handle);
|
|
42
|
-
}
|
|
43
|
-
function deepFreeze(value) {
|
|
44
|
-
if (value && typeof value === 'object' && !Object.isFrozen(value)) {
|
|
45
|
-
for (const nested of Object.values(value))
|
|
46
|
-
deepFreeze(nested);
|
|
47
|
-
Object.freeze(value);
|
|
48
|
-
}
|
|
49
|
-
return value;
|
|
50
|
-
}
|
|
51
|
-
function bytesHash(bytes) {
|
|
52
|
-
return `sha256:${createHash('sha256').update(bytes).digest('hex')}`;
|
|
53
|
-
}
|
|
54
|
-
function assertProtocolBinding(binding) {
|
|
55
|
-
if (!TEXT_ID.test(binding.actorId) ||
|
|
56
|
-
!TEXT_ID.test(binding.credentialRef) ||
|
|
57
|
-
!TEXT_ID.test(binding.consentRecordId) ||
|
|
58
|
-
!TEXT_ID.test(binding.provider.id) ||
|
|
59
|
-
!VERSION.test(binding.provider.version) ||
|
|
60
|
-
!VERSION.test(binding.adapterVersion) ||
|
|
61
|
-
!HASH.test(binding.protocolDocketHash) ||
|
|
62
|
-
!HASH.test(binding.accountIdentityHash)) {
|
|
63
|
-
fail('LIVE_EVIDENCE_CREDENTIAL_CONFIG_INVALID', 'Credential capability binding is invalid.');
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
function assertBinding(binding) {
|
|
67
|
-
assertProtocolBinding(binding);
|
|
68
|
-
if (!HASH.test(binding.requestHash)) {
|
|
69
|
-
fail('LIVE_EVIDENCE_CREDENTIAL_CONFIG_INVALID', 'Credential request binding is invalid.');
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
function localBindingHash(binding) {
|
|
73
|
-
return sha256CanonicalJson({
|
|
74
|
-
credentialRef: binding.credentialRef,
|
|
75
|
-
provider: binding.provider,
|
|
76
|
-
adapterVersion: binding.adapterVersion,
|
|
77
|
-
accountIdentityHash: binding.accountIdentityHash,
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
function capabilityBindingHash(binding) {
|
|
81
|
-
assertBinding(binding);
|
|
82
|
-
return sha256CanonicalJson({
|
|
83
|
-
actorId: binding.actorId,
|
|
84
|
-
credentialRef: binding.credentialRef,
|
|
85
|
-
requestHash: binding.requestHash,
|
|
86
|
-
consentRecordId: binding.consentRecordId,
|
|
87
|
-
protocolDocketHash: binding.protocolDocketHash,
|
|
88
|
-
provider: binding.provider,
|
|
89
|
-
adapterVersion: binding.adapterVersion,
|
|
90
|
-
accountIdentityHash: binding.accountIdentityHash,
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
function matchesLocalBinding(local, requested) {
|
|
94
|
-
return (local.credentialRef === requested.credentialRef &&
|
|
95
|
-
local.provider.id === requested.provider.id &&
|
|
96
|
-
local.provider.version === requested.provider.version &&
|
|
97
|
-
local.adapterVersion === requested.adapterVersion &&
|
|
98
|
-
local.accountIdentityHash === requested.accountIdentityHash);
|
|
99
|
-
}
|
|
100
|
-
async function defaultKeychainRead(service, account) {
|
|
101
|
-
let Entry;
|
|
102
|
-
try {
|
|
103
|
-
({ Entry } = await import('@napi-rs/keyring'));
|
|
104
|
-
}
|
|
105
|
-
catch {
|
|
106
|
-
throw new ConnectorCredentialSourceError('LIVE_EVIDENCE_KEYRING_UNAVAILABLE', 'OS credential-store support is unavailable on this platform.');
|
|
107
|
-
}
|
|
108
|
-
try {
|
|
109
|
-
return new Entry(service, account).getPassword() ?? undefined;
|
|
110
|
-
}
|
|
111
|
-
catch {
|
|
112
|
-
throw new ConnectorCredentialSourceError('LIVE_EVIDENCE_KEYRING_READ_FAILED', 'The OS credential store refused or failed the credential read.');
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
function credentialSourceError(error) {
|
|
116
|
-
if (error instanceof ConnectorCredentialSourceError)
|
|
117
|
-
return error;
|
|
118
|
-
return new ConnectorCredentialSourceError('LIVE_EVIDENCE_KEYRING_READ_FAILED', 'The OS credential store refused or failed the credential read.');
|
|
119
|
-
}
|
|
120
|
-
export class ConnectorCredentialCustodyV2 {
|
|
121
|
-
#bindings;
|
|
122
|
-
#allowedEnvironmentNames;
|
|
123
|
-
#assertConsent;
|
|
124
|
-
#loadConsentRecord;
|
|
125
|
-
#persistConsentRecord;
|
|
126
|
-
#confirmOwner;
|
|
127
|
-
#readEnvironment;
|
|
128
|
-
#readKeychain;
|
|
129
|
-
#now;
|
|
130
|
-
#entropy;
|
|
131
|
-
#ttlMs;
|
|
132
|
-
#ownerConfirmations = new WeakMap();
|
|
133
|
-
#capabilities = new WeakMap();
|
|
134
|
-
constructor(input) {
|
|
135
|
-
if (!Number.isSafeInteger(input.ttlMs ?? 60_000) ||
|
|
136
|
-
(input.ttlMs ?? 60_000) < 1_000 ||
|
|
137
|
-
(input.ttlMs ?? 60_000) > 300_000) {
|
|
138
|
-
fail('LIVE_EVIDENCE_CREDENTIAL_CONFIG_INVALID', 'Credential capability TTL is invalid.');
|
|
139
|
-
}
|
|
140
|
-
const environmentNames = new Set(input.allowedEnvironmentNames);
|
|
141
|
-
if (environmentNames.size !== input.allowedEnvironmentNames.length) {
|
|
142
|
-
fail('LIVE_EVIDENCE_CREDENTIAL_CONFIG_INVALID', 'Environment allowlist is not unique.');
|
|
143
|
-
}
|
|
144
|
-
const identities = new Set();
|
|
145
|
-
this.#bindings = Object.freeze(input.bindings.map((binding) => {
|
|
146
|
-
if (!TEXT_ID.test(binding.credentialRef) ||
|
|
147
|
-
!TEXT_ID.test(binding.provider.id) ||
|
|
148
|
-
!VERSION.test(binding.provider.version) ||
|
|
149
|
-
!VERSION.test(binding.adapterVersion) ||
|
|
150
|
-
!HASH.test(binding.accountIdentityHash)) {
|
|
151
|
-
fail('LIVE_EVIDENCE_CREDENTIAL_CONFIG_INVALID', 'Credential binding is invalid.');
|
|
152
|
-
}
|
|
153
|
-
if (binding.source.kind === 'environment-name' &&
|
|
154
|
-
!environmentNames.has(binding.source.name)) {
|
|
155
|
-
fail('LIVE_EVIDENCE_CREDENTIAL_CONFIG_INVALID', 'Credential source is not allowlisted.');
|
|
156
|
-
}
|
|
157
|
-
if (binding.source.kind === 'os-custody-key' &&
|
|
158
|
-
(!binding.source.service.trim() || !binding.source.account.trim())) {
|
|
159
|
-
fail('LIVE_EVIDENCE_CREDENTIAL_CONFIG_INVALID', 'Credential source is invalid.');
|
|
160
|
-
}
|
|
161
|
-
const identity = localBindingHash(binding);
|
|
162
|
-
if (identities.has(identity)) {
|
|
163
|
-
fail('LIVE_EVIDENCE_CREDENTIAL_CONFIG_INVALID', 'Credential binding is duplicated.');
|
|
164
|
-
}
|
|
165
|
-
identities.add(identity);
|
|
166
|
-
return Object.freeze(structuredClone(binding));
|
|
167
|
-
}));
|
|
168
|
-
this.#allowedEnvironmentNames = environmentNames;
|
|
169
|
-
this.#assertConsent = input.contracts.assertOperatingLiveEvidenceConsentRecordV2;
|
|
170
|
-
this.#loadConsentRecord = input.loadConsentRecord;
|
|
171
|
-
this.#persistConsentRecord = input.persistConsentRecord;
|
|
172
|
-
this.#confirmOwner = input.confirmOwner;
|
|
173
|
-
this.#readEnvironment = input.readEnvironment ?? ((name) => process.env[name]);
|
|
174
|
-
this.#readKeychain = input.readKeychain ?? defaultKeychainRead;
|
|
175
|
-
this.#now = input.now ?? Date.now;
|
|
176
|
-
this.#entropy = input.entropy ?? (() => randomBytes(32));
|
|
177
|
-
this.#ttlMs = input.ttlMs ?? 60_000;
|
|
178
|
-
}
|
|
179
|
-
#assertExactConsent(binding, value) {
|
|
180
|
-
assertProtocolBinding(binding);
|
|
181
|
-
let asserted;
|
|
182
|
-
try {
|
|
183
|
-
asserted = this.#assertConsent(value);
|
|
184
|
-
}
|
|
185
|
-
catch {
|
|
186
|
-
fail('LIVE_EVIDENCE_CONSENT_INVALID', 'The trusted local consent is invalid.');
|
|
187
|
-
}
|
|
188
|
-
const consent = object(asserted, 'Consent record');
|
|
189
|
-
const actor = object(consent.actor, 'Consent actor');
|
|
190
|
-
const provider = object(consent.provider, 'Consent provider');
|
|
191
|
-
const expiresAtMs = Date.parse(String(consent.expiresAt));
|
|
192
|
-
const consentHash = String(consent.consentHash);
|
|
193
|
-
if (consent.kind !== 'operating-live-evidence-consent-record' ||
|
|
194
|
-
consent.consentRecordId !== binding.consentRecordId ||
|
|
195
|
-
consent.decision !== 'approved' ||
|
|
196
|
-
consent.authority !== 'none' ||
|
|
197
|
-
actor.actorId !== binding.actorId ||
|
|
198
|
-
actor.kind !== 'human' ||
|
|
199
|
-
provider.id !== binding.provider.id ||
|
|
200
|
-
provider.version !== binding.provider.version ||
|
|
201
|
-
consent.adapterVersion !== binding.adapterVersion ||
|
|
202
|
-
consent.accountIdentityHash !== binding.accountIdentityHash ||
|
|
203
|
-
consent.docketHash !== binding.protocolDocketHash ||
|
|
204
|
-
!HASH.test(consentHash) ||
|
|
205
|
-
!Number.isFinite(expiresAtMs)) {
|
|
206
|
-
fail('LIVE_EVIDENCE_CONSENT_INVALID', 'The exact trusted local consent does not match the request.');
|
|
207
|
-
}
|
|
208
|
-
if (expiresAtMs <= this.#now()) {
|
|
209
|
-
fail('LIVE_EVIDENCE_CONSENT_EXPIRED', 'The exact trusted local consent has expired.');
|
|
210
|
-
}
|
|
211
|
-
return { record: consent, consentHash: consentHash, expiresAtMs };
|
|
212
|
-
}
|
|
213
|
-
async #loadExactConsent(binding, optional = false) {
|
|
214
|
-
const value = await this.#loadConsentRecord(binding.consentRecordId);
|
|
215
|
-
if (value === null || value === undefined) {
|
|
216
|
-
if (optional)
|
|
217
|
-
return null;
|
|
218
|
-
fail('LIVE_EVIDENCE_CONSENT_INVALID', 'The trusted local consent is unavailable.');
|
|
219
|
-
}
|
|
220
|
-
try {
|
|
221
|
-
return await this.#assertExactConsent(binding, value);
|
|
222
|
-
}
|
|
223
|
-
catch (error) {
|
|
224
|
-
if (optional && error instanceof ConnectorCredentialCustodyError)
|
|
225
|
-
return null;
|
|
226
|
-
throw error;
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
async validatedConsent(binding) {
|
|
230
|
-
const consent = await this.#loadExactConsent(binding);
|
|
231
|
-
if (!consent)
|
|
232
|
-
fail('LIVE_EVIDENCE_CONSENT_INVALID', 'The trusted local consent is unavailable.');
|
|
233
|
-
return Object.freeze(structuredClone(consent.record));
|
|
234
|
-
}
|
|
235
|
-
async issueOwnerConfirmation(input) {
|
|
236
|
-
const { binding } = input;
|
|
237
|
-
const { record, consentHash, expiresAtMs } = await this.#assertExactConsent(binding, input.proposedConsentRecord);
|
|
238
|
-
const docket = Object.freeze({
|
|
239
|
-
kind: 'openplanr-live-evidence-owner-confirmation-docket',
|
|
240
|
-
schemaVersion: '1.0.0',
|
|
241
|
-
actorId: binding.actorId,
|
|
242
|
-
consentRecordId: binding.consentRecordId,
|
|
243
|
-
requestHash: binding.requestHash,
|
|
244
|
-
logicalCredentialRef: binding.credentialRef,
|
|
245
|
-
protocolDocket: deepFreeze(structuredClone(object(record.docket, 'Consent protocol docket'))),
|
|
246
|
-
protocolDocketHash: binding.protocolDocketHash,
|
|
247
|
-
effect: 'provider-call',
|
|
248
|
-
authorityBoundary: 'confirmation-is-not-credential-authority',
|
|
249
|
-
choices: Object.freeze(['approve', 'cancel']),
|
|
250
|
-
defaultChoice: null,
|
|
251
|
-
cancelEffect: 'none',
|
|
252
|
-
expiresAt: new Date(Math.min(expiresAtMs, this.#now() + this.#ttlMs)).toISOString(),
|
|
253
|
-
});
|
|
254
|
-
const decision = await this.#confirmOwner(docket);
|
|
255
|
-
if (decision.approved !== true || decision.actorId !== binding.actorId) {
|
|
256
|
-
fail('LIVE_EVIDENCE_OWNER_CONFIRMATION_INVALID', 'Owner confirmation was declined or mismatched.');
|
|
257
|
-
}
|
|
258
|
-
const handle = createOpaqueHandle('Owner confirmation');
|
|
259
|
-
this.#ownerConfirmations.set(handle, {
|
|
260
|
-
bindingHash: capabilityBindingHash(binding),
|
|
261
|
-
consentHash,
|
|
262
|
-
consentRecord: Object.freeze(structuredClone(record)),
|
|
263
|
-
expiresAtMs: Math.min(expiresAtMs, this.#now() + this.#ttlMs),
|
|
264
|
-
used: false,
|
|
265
|
-
});
|
|
266
|
-
return handle;
|
|
267
|
-
}
|
|
268
|
-
async issueCapability(input) {
|
|
269
|
-
const { binding } = input;
|
|
270
|
-
const bindingHash = capabilityBindingHash(binding);
|
|
271
|
-
let consent = await this.#loadExactConsent(binding, true);
|
|
272
|
-
if (!consent) {
|
|
273
|
-
const confirmation = input.ownerConfirmation
|
|
274
|
-
? this.#ownerConfirmations.get(input.ownerConfirmation)
|
|
275
|
-
: undefined;
|
|
276
|
-
if (!confirmation) {
|
|
277
|
-
fail('LIVE_EVIDENCE_OWNER_CONFIRMATION_REQUIRED', 'A one-shot owner confirmation is required.');
|
|
278
|
-
}
|
|
279
|
-
if (confirmation.used ||
|
|
280
|
-
confirmation.bindingHash !== bindingHash ||
|
|
281
|
-
confirmation.expiresAtMs <= this.#now()) {
|
|
282
|
-
fail('LIVE_EVIDENCE_OWNER_CONFIRMATION_INVALID', 'Owner confirmation is expired, replayed, or foreign.');
|
|
283
|
-
}
|
|
284
|
-
confirmation.used = true;
|
|
285
|
-
await this.#persistConsentRecord(Object.freeze(structuredClone(confirmation.consentRecord)));
|
|
286
|
-
consent = await this.#loadExactConsent(binding);
|
|
287
|
-
if (!consent || consent.consentHash !== confirmation.consentHash) {
|
|
288
|
-
fail('LIVE_EVIDENCE_CONSENT_INVALID', 'Persisted consent does not match the confirmed grant.');
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
const { consentHash, expiresAtMs } = consent;
|
|
292
|
-
const entropy = this.#entropy();
|
|
293
|
-
if (!(entropy instanceof Uint8Array) || entropy.byteLength < 32) {
|
|
294
|
-
fail('LIVE_EVIDENCE_CREDENTIAL_CONFIG_INVALID', 'Credential capability entropy is invalid.');
|
|
295
|
-
}
|
|
296
|
-
const capability = createOpaqueHandle('Credential capability');
|
|
297
|
-
this.#capabilities.set(capability, {
|
|
298
|
-
bindingHash,
|
|
299
|
-
capabilityHash: bytesHash(entropy),
|
|
300
|
-
consentHash,
|
|
301
|
-
expiresAtMs: Math.min(expiresAtMs, this.#now() + this.#ttlMs),
|
|
302
|
-
used: false,
|
|
303
|
-
});
|
|
304
|
-
return capability;
|
|
305
|
-
}
|
|
306
|
-
capabilityHash(capability) {
|
|
307
|
-
const state = this.#capabilities.get(capability);
|
|
308
|
-
if (!state)
|
|
309
|
-
fail('LIVE_EVIDENCE_CAPABILITY_INVALID', 'Credential capability is invalid.');
|
|
310
|
-
return state.capabilityHash;
|
|
311
|
-
}
|
|
312
|
-
/** Stable, non-authoritative protocol custody for restart-safe checkpoint identity. */
|
|
313
|
-
async protocolBindingHash(binding) {
|
|
314
|
-
const consent = await this.#loadExactConsent(binding);
|
|
315
|
-
if (!consent)
|
|
316
|
-
fail('LIVE_EVIDENCE_CONSENT_INVALID', 'The trusted local consent is unavailable.');
|
|
317
|
-
return sha256CanonicalJson({
|
|
318
|
-
domain: 'openplanr-local-live-evidence-capability-binding-v2',
|
|
319
|
-
authority: 'none',
|
|
320
|
-
bindingHash: sha256CanonicalJson({
|
|
321
|
-
actorId: binding.actorId,
|
|
322
|
-
credentialRef: binding.credentialRef,
|
|
323
|
-
consentRecordId: binding.consentRecordId,
|
|
324
|
-
protocolDocketHash: binding.protocolDocketHash,
|
|
325
|
-
provider: binding.provider,
|
|
326
|
-
adapterVersion: binding.adapterVersion,
|
|
327
|
-
accountIdentityHash: binding.accountIdentityHash,
|
|
328
|
-
}),
|
|
329
|
-
consentHash: consent.consentHash,
|
|
330
|
-
});
|
|
331
|
-
}
|
|
332
|
-
async withResolvedCredential(capability, binding, use) {
|
|
333
|
-
const state = this.#capabilities.get(capability);
|
|
334
|
-
if (!state || state.bindingHash !== capabilityBindingHash(binding)) {
|
|
335
|
-
fail('LIVE_EVIDENCE_CAPABILITY_INVALID', 'Credential capability is invalid or foreign.');
|
|
336
|
-
}
|
|
337
|
-
if (state.used) {
|
|
338
|
-
fail('LIVE_EVIDENCE_CAPABILITY_REPLAYED', 'Credential capability has already been consumed.');
|
|
339
|
-
}
|
|
340
|
-
if (state.expiresAtMs <= this.#now()) {
|
|
341
|
-
fail('LIVE_EVIDENCE_CAPABILITY_EXPIRED', 'Credential capability has expired.');
|
|
342
|
-
}
|
|
343
|
-
const consent = await this.#loadExactConsent(binding);
|
|
344
|
-
if (!consent)
|
|
345
|
-
fail('LIVE_EVIDENCE_CONSENT_INVALID', 'The trusted local consent is unavailable.');
|
|
346
|
-
const { consentHash } = consent;
|
|
347
|
-
if (consentHash !== state.consentHash) {
|
|
348
|
-
fail('LIVE_EVIDENCE_CAPABILITY_INVALID', 'Credential capability no longer matches trusted consent.');
|
|
349
|
-
}
|
|
350
|
-
const local = this.#bindings.find((candidate) => matchesLocalBinding(candidate, binding));
|
|
351
|
-
if (!local) {
|
|
352
|
-
fail('LIVE_EVIDENCE_CREDENTIAL_UNAVAILABLE', 'No trusted local credential binding is available.');
|
|
353
|
-
}
|
|
354
|
-
state.used = true;
|
|
355
|
-
let resolved;
|
|
356
|
-
if (local.source.kind === 'environment-name') {
|
|
357
|
-
resolved = this.#allowedEnvironmentNames.has(local.source.name)
|
|
358
|
-
? this.#readEnvironment(local.source.name)
|
|
359
|
-
: undefined;
|
|
360
|
-
}
|
|
361
|
-
else {
|
|
362
|
-
try {
|
|
363
|
-
resolved = await this.#readKeychain(local.source.service, local.source.account);
|
|
364
|
-
}
|
|
365
|
-
catch (error) {
|
|
366
|
-
const cause = credentialSourceError(error);
|
|
367
|
-
if (cause.code === 'LIVE_EVIDENCE_KEYRING_UNAVAILABLE') {
|
|
368
|
-
throw new ConnectorCredentialCustodyError('LIVE_EVIDENCE_CREDENTIAL_CUSTODY_UNAVAILABLE', `OS credential-store support is unavailable for logical credential reference "${binding.credentialRef}".`, cause.code);
|
|
369
|
-
}
|
|
370
|
-
throw new ConnectorCredentialCustodyError('LIVE_EVIDENCE_CREDENTIAL_READ_FAILED', `OS credential-store access failed for logical credential reference "${binding.credentialRef}".`, cause.code);
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
if (!resolved || resolved.length === 0) {
|
|
374
|
-
fail('LIVE_EVIDENCE_CREDENTIAL_UNAVAILABLE', `The trusted local credential "${binding.credentialRef}" is absent from its configured source.`);
|
|
375
|
-
}
|
|
376
|
-
const credential = typeof resolved === 'string'
|
|
377
|
-
? Buffer.from(resolved, 'utf8')
|
|
378
|
-
: Buffer.from(resolved.buffer, resolved.byteOffset, resolved.byteLength);
|
|
379
|
-
try {
|
|
380
|
-
return await use(credential);
|
|
381
|
-
}
|
|
382
|
-
finally {
|
|
383
|
-
credential.fill(0);
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
|
-
}
|
|
387
|
-
export function createConnectorCredentialCustodyV2(input) {
|
|
388
|
-
return new ConnectorCredentialCustodyV2(input);
|
|
389
|
-
}
|
|
390
|
-
//# sourceMappingURL=credential-custody.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"credential-custody.js","sourceRoot":"","sources":["../../../src/services/connectors/credential-custody.ts"],"names":[],"mappings":"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"}
|