@amalgm/live 0.2.81-preview.34544985641 → 0.2.81-preview.35153932651
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/apply/content-results.d.ts +5 -4
- package/dist/apply/content-results.d.ts.map +1 -1
- package/dist/apply/content-results.js +3 -2
- package/dist/apply/content-results.js.map +1 -1
- package/dist/apply/contracts.d.ts +10 -2
- package/dist/apply/contracts.d.ts.map +1 -1
- package/dist/apply/contracts.js +1 -1
- package/dist/apply/contracts.js.map +1 -1
- package/dist/apply/plans.d.ts.map +1 -1
- package/dist/apply/plans.js +10 -5
- package/dist/apply/plans.js.map +1 -1
- package/dist/detection/record-proposal.d.ts +35 -13
- package/dist/detection/record-proposal.d.ts.map +1 -1
- package/dist/detection/record-proposal.js +80 -44
- package/dist/detection/record-proposal.js.map +1 -1
- package/dist/entities/types.d.ts +14 -6
- package/dist/entities/types.d.ts.map +1 -1
- package/dist/entities/types.js +16 -7
- package/dist/entities/types.js.map +1 -1
- package/dist/records/contracts.d.ts.map +1 -1
- package/dist/records/contracts.js +9 -2
- package/dist/records/contracts.js.map +1 -1
- package/dist/records/index.d.ts +1 -0
- package/dist/records/index.d.ts.map +1 -1
- package/dist/records/index.js +1 -0
- package/dist/records/index.js.map +1 -1
- package/dist/records/intentional.d.ts +49 -0
- package/dist/records/intentional.d.ts.map +1 -0
- package/dist/records/intentional.js +58 -0
- package/dist/records/intentional.js.map +1 -0
- package/dist/records/rail.d.ts +27 -5
- package/dist/records/rail.d.ts.map +1 -1
- package/dist/records/rail.js +96 -11
- package/dist/records/rail.js.map +1 -1
- package/dist/records/wire.d.ts +13 -1
- package/dist/records/wire.d.ts.map +1 -1
- package/dist/records/wire.js +17 -1
- package/dist/records/wire.js.map +1 -1
- package/dist/sharing/access.d.ts +11 -10
- package/dist/sharing/access.d.ts.map +1 -1
- package/dist/sharing/access.js +44 -19
- package/dist/sharing/access.js.map +1 -1
- package/dist/sharing/cli.d.ts +9 -9
- package/dist/sharing/cli.d.ts.map +1 -1
- package/dist/sharing/cli.js +35 -41
- package/dist/sharing/cli.js.map +1 -1
- package/dist/sharing/command-input.d.ts +5 -7
- package/dist/sharing/command-input.d.ts.map +1 -1
- package/dist/sharing/command-input.js +7 -17
- package/dist/sharing/command-input.js.map +1 -1
- package/dist/sharing/commands.d.ts +37 -0
- package/dist/sharing/commands.d.ts.map +1 -0
- package/dist/sharing/commands.js +164 -0
- package/dist/sharing/commands.js.map +1 -0
- package/dist/sharing/construct.d.ts +21 -0
- package/dist/sharing/construct.d.ts.map +1 -0
- package/dist/sharing/construct.js +40 -0
- package/dist/sharing/construct.js.map +1 -0
- package/dist/sharing/download.d.ts +31 -0
- package/dist/sharing/download.d.ts.map +1 -0
- package/dist/sharing/download.js +45 -0
- package/dist/sharing/download.js.map +1 -0
- package/dist/sharing/entity.d.ts +34 -0
- package/dist/sharing/entity.d.ts.map +1 -0
- package/dist/sharing/entity.js +51 -0
- package/dist/sharing/entity.js.map +1 -0
- package/dist/sharing/errors.d.ts +1 -1
- package/dist/sharing/errors.d.ts.map +1 -1
- package/dist/sharing/grants.d.ts +29 -0
- package/dist/sharing/grants.d.ts.map +1 -0
- package/dist/sharing/grants.js +103 -0
- package/dist/sharing/grants.js.map +1 -0
- package/dist/sharing/index.d.ts +23 -14
- package/dist/sharing/index.d.ts.map +1 -1
- package/dist/sharing/index.js +12 -9
- package/dist/sharing/index.js.map +1 -1
- package/dist/sharing/mcp.d.ts +13 -13
- package/dist/sharing/mcp.d.ts.map +1 -1
- package/dist/sharing/mcp.js +8 -8
- package/dist/sharing/mcp.js.map +1 -1
- package/dist/sharing/permissions.d.ts +33 -0
- package/dist/sharing/permissions.d.ts.map +1 -0
- package/dist/sharing/permissions.js +45 -0
- package/dist/sharing/permissions.js.map +1 -0
- package/dist/sharing/publish.d.ts +21 -0
- package/dist/sharing/publish.d.ts.map +1 -0
- package/dist/sharing/publish.js +42 -0
- package/dist/sharing/publish.js.map +1 -0
- package/dist/sharing/share.d.ts +32 -0
- package/dist/sharing/share.d.ts.map +1 -0
- package/dist/sharing/share.js +31 -0
- package/dist/sharing/share.js.map +1 -0
- package/dist/sharing/sharing.d.ts +39 -60
- package/dist/sharing/sharing.d.ts.map +1 -1
- package/dist/sharing/sharing.js +18 -196
- package/dist/sharing/sharing.js.map +1 -1
- package/dist/sharing/types.d.ts +83 -106
- package/dist/sharing/types.d.ts.map +1 -1
- package/dist/sharing/types.js +10 -7
- package/dist/sharing/types.js.map +1 -1
- package/dist/transfer/artifacts.d.ts +4 -1
- package/dist/transfer/artifacts.d.ts.map +1 -1
- package/dist/transfer/artifacts.js +9 -2
- package/dist/transfer/artifacts.js.map +1 -1
- package/dist/transfer/upload.d.ts.map +1 -1
- package/dist/transfer/upload.js +7 -5
- package/dist/transfer/upload.js.map +1 -1
- package/dist-cjs/apply/content-results.js +3 -2
- package/dist-cjs/apply/content-results.js.map +1 -1
- package/dist-cjs/apply/contracts.js.map +1 -1
- package/dist-cjs/apply/plans.js +10 -5
- package/dist-cjs/apply/plans.js.map +1 -1
- package/dist-cjs/detection/record-proposal.js +79 -42
- package/dist-cjs/detection/record-proposal.js.map +1 -1
- package/dist-cjs/entities/types.js +18 -8
- package/dist-cjs/entities/types.js.map +1 -1
- package/dist-cjs/records/contracts.js +8 -1
- package/dist-cjs/records/contracts.js.map +1 -1
- package/dist-cjs/records/index.js +1 -0
- package/dist-cjs/records/index.js.map +1 -1
- package/dist-cjs/records/intentional.js +61 -0
- package/dist-cjs/records/intentional.js.map +1 -0
- package/dist-cjs/records/rail.js +96 -11
- package/dist-cjs/records/rail.js.map +1 -1
- package/dist-cjs/records/wire.js +17 -1
- package/dist-cjs/records/wire.js.map +1 -1
- package/dist-cjs/sharing/access.js +47 -22
- package/dist-cjs/sharing/access.js.map +1 -1
- package/dist-cjs/sharing/cli.js +38 -44
- package/dist-cjs/sharing/cli.js.map +1 -1
- package/dist-cjs/sharing/command-input.js +6 -18
- package/dist-cjs/sharing/command-input.js.map +1 -1
- package/dist-cjs/sharing/commands.js +169 -0
- package/dist-cjs/sharing/commands.js.map +1 -0
- package/dist-cjs/sharing/construct.js +46 -0
- package/dist-cjs/sharing/construct.js.map +1 -0
- package/dist-cjs/sharing/download.js +48 -0
- package/dist-cjs/sharing/download.js.map +1 -0
- package/dist-cjs/sharing/entity.js +57 -0
- package/dist-cjs/sharing/entity.js.map +1 -0
- package/dist-cjs/sharing/grants.js +108 -0
- package/dist-cjs/sharing/grants.js.map +1 -0
- package/dist-cjs/sharing/index.js +25 -23
- package/dist-cjs/sharing/index.js.map +1 -1
- package/dist-cjs/sharing/mcp.js +8 -8
- package/dist-cjs/sharing/mcp.js.map +1 -1
- package/dist-cjs/sharing/permissions.js +47 -0
- package/dist-cjs/sharing/permissions.js.map +1 -0
- package/dist-cjs/sharing/publish.js +45 -0
- package/dist-cjs/sharing/publish.js.map +1 -0
- package/dist-cjs/sharing/share.js +36 -0
- package/dist-cjs/sharing/share.js.map +1 -0
- package/dist-cjs/sharing/sharing.js +18 -197
- package/dist-cjs/sharing/sharing.js.map +1 -1
- package/dist-cjs/sharing/types.js +12 -6
- package/dist-cjs/sharing/types.js.map +1 -1
- package/dist-cjs/transfer/artifacts.js +9 -2
- package/dist-cjs/transfer/artifacts.js.map +1 -1
- package/dist-cjs/transfer/upload.js +7 -5
- package/dist-cjs/transfer/upload.js.map +1 -1
- package/package.json +4 -4
- package/dist/sharing/command-surface.d.ts +0 -37
- package/dist/sharing/command-surface.d.ts.map +0 -1
- package/dist/sharing/command-surface.js +0 -170
- package/dist/sharing/command-surface.js.map +0 -1
- package/dist/sharing/pack.d.ts +0 -21
- package/dist/sharing/pack.d.ts.map +0 -1
- package/dist/sharing/pack.js +0 -116
- package/dist/sharing/pack.js.map +0 -1
- package/dist-cjs/sharing/command-surface.js +0 -175
- package/dist-cjs/sharing/command-surface.js.map +0 -1
- package/dist-cjs/sharing/pack.js +0 -124
- package/dist-cjs/sharing/pack.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/** Portable private-result construction for file and
|
|
1
|
+
/** Portable private-result construction for file, link, and construct adapters. */
|
|
2
2
|
import type { Sha256Hex } from '../entities/types.js';
|
|
3
|
-
import type { BinaryApplyPlan, LinkApplyPlan, TextApplyPlan } from './contracts.js';
|
|
3
|
+
import type { BinaryApplyPlan, ConstructApplyPlan, LinkApplyPlan, TextApplyPlan } from './contracts.js';
|
|
4
4
|
/**
|
|
5
5
|
* Construct text privately. The snapshot is mandatory truth. A delta is only
|
|
6
6
|
* a shortcut over the exact immutable base; reproduceTextChange falls back to
|
|
@@ -19,8 +19,9 @@ export interface BinaryApplySink {
|
|
|
19
19
|
/** Fsync/close and verify the staged whole without returning its bytes. */
|
|
20
20
|
seal(): Promise<BinaryApplySinkReceipt>;
|
|
21
21
|
}
|
|
22
|
-
/** Verify reusable
|
|
23
|
-
|
|
22
|
+
/** Verify reusable blocks while streaming them into private staging. A
|
|
23
|
+
* construct payload stages exactly like a binary file. */
|
|
24
|
+
export declare function prepareBinaryResult(plan: BinaryApplyPlan | ConstructApplyPlan, read: (index: number) => Promise<Uint8Array>, sink: BinaryApplySink, sha256Hex: Sha256Hex): Promise<BinaryApplySinkReceipt>;
|
|
24
25
|
/** A link result is only its literal UTF-8 target bytes. */
|
|
25
26
|
export declare function prepareLinkResult(plan: LinkApplyPlan, sha256Hex: Sha256Hex): string;
|
|
26
27
|
//# sourceMappingURL=content-results.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-results.d.ts","sourceRoot":"","sources":["../../src/apply/content-results.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"content-results.d.ts","sourceRoot":"","sources":["../../src/apply/content-results.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAInF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,aAAa,EACd,MAAM,gBAAgB,CAAC;AAcxB;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAE,UAAU,GAAG,IAAI,EAC5B,SAAS,EAAE,SAAS,GACnB,UAAU,CAYZ;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,8EAA8E;IAC9E,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,2EAA2E;IAC3E,IAAI,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACzC;AAED;0DAC0D;AAC1D,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,eAAe,GAAG,kBAAkB,EAC1C,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,EAC5C,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,sBAAsB,CAAC,CAgBjC;AAED,4DAA4D;AAC5D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM,CAKnF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** Portable private-result construction for file and
|
|
1
|
+
/** Portable private-result construction for file, link, and construct adapters. */
|
|
2
2
|
import { reproduceTextChange } from '../detection/content.js';
|
|
3
3
|
import { utf8Encode } from '../entities/bytes.js';
|
|
4
4
|
const exactResult = (bytes, expected, sha256Hex, label) => {
|
|
@@ -26,7 +26,8 @@ export function prepareTextResult(plan, snapshot, exactBase, sha256Hex) {
|
|
|
26
26
|
delta: plan.strategy.delta,
|
|
27
27
|
}, verifiedSnapshot, sha256Hex);
|
|
28
28
|
}
|
|
29
|
-
/** Verify reusable
|
|
29
|
+
/** Verify reusable blocks while streaming them into private staging. A
|
|
30
|
+
* construct payload stages exactly like a binary file. */
|
|
30
31
|
export async function prepareBinaryResult(plan, read, sink, sha256Hex) {
|
|
31
32
|
for (const [index, expected] of plan.manifest.chunks.entries()) {
|
|
32
33
|
const chunk = await read(index);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-results.js","sourceRoot":"","sources":["../../src/apply/content-results.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"content-results.js","sourceRoot":"","sources":["../../src/apply/content-results.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAEnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AASlD,MAAM,WAAW,GAAG,CAClB,KAAiB,EACjB,QAAgB,EAChB,SAAoB,EACpB,KAAa,EACD,EAAE;IACd,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,8CAA8C,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAmB,EACnB,QAAoB,EACpB,SAA4B,EAC5B,SAAoB;IAEpB,MAAM,gBAAgB,GAAG,WAAW,CAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,EAAE,qBAAqB,CACtE,CAAC;IACF,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,gBAAgB,CAAC;IAC/D,OAAO,mBAAmB,CAAC,SAAS,EAAE;QACpC,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,OAAO;QACb,kBAAkB,EAAE,IAAI,CAAC,QAAQ,CAAC,kBAAkB;QACpD,oBAAoB,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW;QAC/C,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK;KAC3B,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;AAClC,CAAC;AAcD;0DAC0D;AAC1D,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAA0C,EAC1C,IAA4C,EAC5C,IAAqB,EACrB,SAAoB;IAEpB,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QAC/D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC;eAC7B,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,KAAK;eACnC,SAAS,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,sBAAsB,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IAClC,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,KAAK;WACpC,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,iBAAiB,CAAC,IAAmB,EAAE,SAAoB;IACzE,WAAW,CACT,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,EAAE,mBAAmB,CACvF,CAAC;IACF,OAAO,IAAI,CAAC,UAAU,CAAC;AACzB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** Portable contracts at the Inbox -> Apply -> Verify boundary. */
|
|
2
2
|
import type { CloudEntityRecord } from '../entities/cloud.js';
|
|
3
|
-
import { type EntityType, type Sha256Hex } from '../entities/types.js';
|
|
3
|
+
import { type ConstructType, type EntityType, type Sha256Hex } from '../entities/types.js';
|
|
4
4
|
import type { ChangeFacet, TextSplice } from '../detection/record-proposal.js';
|
|
5
5
|
import type { AcceptedEntityRecord } from '../records/contracts.js';
|
|
6
6
|
import type { ContentManifest } from '../contracts/content.js';
|
|
@@ -99,7 +99,15 @@ export interface LifecycleApplyPlan extends ApplyPlanBase {
|
|
|
99
99
|
readonly kind: 'lifecycle';
|
|
100
100
|
readonly status: 'trashed' | 'deleted';
|
|
101
101
|
}
|
|
102
|
-
|
|
102
|
+
/** A construct payload stages exactly like a binary file. The product's
|
|
103
|
+
* adapter reports `dependency` from guard while a UUID the payload names is
|
|
104
|
+
* absent locally, and times the reveal: the switch to the received version. */
|
|
105
|
+
export interface ConstructApplyPlan extends ApplyPlanBase {
|
|
106
|
+
readonly kind: ConstructType;
|
|
107
|
+
readonly artifact: TransferArtifact;
|
|
108
|
+
readonly manifest: ContentManifest;
|
|
109
|
+
}
|
|
110
|
+
export type EntityApplyPlan = TextApplyPlan | BinaryApplyPlan | LinkApplyPlan | StructureApplyPlan | ReferenceApplyPlan | RepositoryApplyPlan | LifecycleApplyPlan | ConstructApplyPlan;
|
|
103
111
|
export type ApplyGuard = {
|
|
104
112
|
readonly kind: 'safe';
|
|
105
113
|
} | {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/apply/contracts.ts"],"names":[],"mappings":"AAAA,mEAAmE;AAEnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/apply/contracts.ts"],"names":[],"mappings":"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"}
|
package/dist/apply/contracts.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Portable contracts at the Inbox -> Apply -> Verify boundary. */
|
|
2
|
-
import { isEntityType, UUID_PATTERN } from '../entities/types.js';
|
|
2
|
+
import { isEntityType, UUID_PATTERN, } from '../entities/types.js';
|
|
3
3
|
export const ENTITY_APPLY_INTENT_CONTRACT = 'amalgm.entity-apply-intent@1';
|
|
4
4
|
const HASH = /^[0-9a-f]{64}$/;
|
|
5
5
|
const PHASES = new Set(['declared', 'prepared', 'revealed']);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/apply/contracts.ts"],"names":[],"mappings":"AAAA,mEAAmE;AAGnE,OAAO,
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/apply/contracts.ts"],"names":[],"mappings":"AAAA,mEAAmE;AAGnE,OAAO,EACL,YAAY,EACZ,YAAY,GAIb,MAAM,sBAAsB,CAAC;AAM9B,MAAM,CAAC,MAAM,4BAA4B,GAAG,8BAA8B,CAAC;AA8P3E,MAAM,IAAI,GAAG,gBAAgB,CAAC;AAC9B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;AAE/E,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,QAAQ,GAAG,KAAK,EAAW,EAAE,CAC5D,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7D,MAAM,UAAU,iBAAiB,CAAC,MAAyB;IACzD,IAAI,MAAM,CAAC,QAAQ,KAAK,4BAA4B;WAC/C,CAAC,MAAM,CAAC,WAAW;WACnB,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;WACnC,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC;WAC9B,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC;WACvC,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,YAAY,GAAG,CAAC;WAChD,CAAC,MAAM,CAAC,gBAAgB;WACxB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;WAC9B,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC;WAChC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;WACzB,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAMjC;IACC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC3B,QAAQ,EAAE,4BAA4B;QACtC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,cAAc;QAC5C,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;QACzC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW;QACrC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI;QAC3C,KAAK,EAAE,UAAmB;QAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC,CAAC;IACH,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,MAAyB,EACzB,KAA4C;IAE5C,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,KAAK,KAAK;WAC/B,CAAC,MAAM,CAAC,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,UAAU,CAAC;WACrD,CAAC,MAAM,CAAC,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,UAAU,CAAC,CAAC;IAC3D,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,MAAM,CAAC,KAAK,OAAO,KAAK,EAAE,CAAC,CAAC;IAChG,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../../src/apply/plans.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAK9E,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../../src/apply/plans.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAK9E,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AASpE,OAAO,KAAK,EAGV,eAAe,EACf,eAAe,EAIhB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAqB,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AA6I7E;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,GAAG,eAAe,CAE5F;AAED,iFAAiF;AACjF,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,eAAe,EACrB,QAAQ,EAAE,mBAAmB,EAC7B,SAAS,EAAE,SAAS,GACnB,eAAe,CAiEjB"}
|
package/dist/apply/plans.js
CHANGED
|
@@ -56,17 +56,18 @@ const textPlan = (base, replay, cargo) => {
|
|
|
56
56
|
: Object.freeze({ kind: 'snapshot' }),
|
|
57
57
|
});
|
|
58
58
|
};
|
|
59
|
-
|
|
59
|
+
/** Binary files and constructs both replay as one exact content manifest. */
|
|
60
|
+
const manifestPlan = (base, kind, replay, cargo) => {
|
|
60
61
|
const artifact = requireArtifact(base.target, cargo);
|
|
61
62
|
const manifest = checkContentManifest(replay.manifest, base.target.payloadVersion);
|
|
62
|
-
if (replay.kind !==
|
|
63
|
+
if (replay.kind !== kind
|
|
63
64
|
|| replay.resultPayloadVersion !== base.target.payloadVersion
|
|
64
65
|
|| !manifest.ok) {
|
|
65
|
-
throw new Error(
|
|
66
|
+
throw new Error(`${kind} Apply replay does not describe its complete result manifest`);
|
|
66
67
|
}
|
|
67
68
|
return Object.freeze({
|
|
68
69
|
...base,
|
|
69
|
-
kind
|
|
70
|
+
kind,
|
|
70
71
|
artifact,
|
|
71
72
|
manifest: Object.freeze({
|
|
72
73
|
...manifest.value,
|
|
@@ -167,7 +168,11 @@ export function planSelectedEntityApply(work, selected, sha256Hex) {
|
|
|
167
168
|
case 'file.text':
|
|
168
169
|
return textPlan(common, accepted.change.replay, accepted.change.cargo);
|
|
169
170
|
case 'file.binary':
|
|
170
|
-
|
|
171
|
+
case 'agent':
|
|
172
|
+
case 'automation':
|
|
173
|
+
case 'app':
|
|
174
|
+
case 'tool':
|
|
175
|
+
return manifestPlan(common, target.type, accepted.change.replay, accepted.change.cargo);
|
|
171
176
|
case 'link':
|
|
172
177
|
return linkPlan(common, accepted.change.replay, accepted.change.cargo, sha256Hex);
|
|
173
178
|
case 'repo.git':
|
package/dist/apply/plans.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plans.js","sourceRoot":"","sources":["../../src/apply/plans.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAE9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAkB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"plans.js","sourceRoot":"","sources":["../../src/apply/plans.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* The exact change proposal Record accepts, from either of its two authors.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* complete result and replay instruction so no later rail has to
|
|
7
|
-
*
|
|
4
|
+
* Detect authors one for files from settled filesystem truth. A product
|
|
5
|
+
* authors one for a construct from its own deliberate act. Both carry the
|
|
6
|
+
* complete result and the exact replay instruction so no later rail has to
|
|
7
|
+
* rediscover truth. A proposal is not yet a durable mutation: Record assigns
|
|
8
|
+
* one mutation id, appends it atomically, and then Send publishes that row.
|
|
8
9
|
*/
|
|
9
10
|
import { type CloudEntityRecord } from '../entities/cloud.js';
|
|
11
|
+
import { type ConstructType } from '../entities/types.js';
|
|
10
12
|
import { type ContentManifest } from '../contracts/content.js';
|
|
11
13
|
import { type TransferArtifact } from '../transfer/artifacts.js';
|
|
12
|
-
export declare const DETECTED_CHANGE_CONTRACT = "amalgm.detected-change-proposal@
|
|
13
|
-
export type
|
|
14
|
+
export declare const DETECTED_CHANGE_CONTRACT = "amalgm.detected-change-proposal@3";
|
|
15
|
+
export type ChangeOrigin = 'detected' | 'intentional';
|
|
16
|
+
export type ChangeFacet = 'create' | 'rename' | 'move' | 'retype' | 'content' | 'mode' | 'trash' | 'restore' | 'delete';
|
|
14
17
|
export interface StructureReplay {
|
|
15
18
|
readonly kind: 'structure';
|
|
16
19
|
}
|
|
@@ -47,12 +50,19 @@ export interface RepositoryReplay {
|
|
|
47
50
|
readonly parentTransportVersion: string | null;
|
|
48
51
|
readonly transportVersion: string;
|
|
49
52
|
}
|
|
50
|
-
|
|
53
|
+
/** A construct payload replays exactly like a binary file: one manifest. */
|
|
54
|
+
export interface ConstructReplay {
|
|
55
|
+
readonly kind: ConstructType;
|
|
56
|
+
readonly resultPayloadVersion: string;
|
|
57
|
+
readonly manifest: ContentManifest;
|
|
58
|
+
}
|
|
59
|
+
export type ReplayInstruction = StructureReplay | TextReplay | BinaryReplay | LinkReplay | RepositoryReplay | ConstructReplay;
|
|
51
60
|
export interface DetectedChangeProposal {
|
|
52
61
|
readonly contract: typeof DETECTED_CHANGE_CONTRACT;
|
|
62
|
+
readonly origin: ChangeOrigin;
|
|
53
63
|
/** The permanent UUID whose ordered rail carries this proposal. */
|
|
54
64
|
readonly entityId: string;
|
|
55
|
-
/** Exact logical state
|
|
65
|
+
/** Exact logical state the author read. Lineage only; never an acceptance gate. */
|
|
56
66
|
readonly basedOnState: string | null;
|
|
57
67
|
/** Complete exact result, not a partial update. */
|
|
58
68
|
readonly result: CloudEntityRecord;
|
|
@@ -68,11 +78,23 @@ export interface DetectedChangeInput {
|
|
|
68
78
|
/** Required when Detection is explicitly authorized to propose lifecycle. */
|
|
69
79
|
readonly lifecycleAuthorization?: 'trash' | 'restore';
|
|
70
80
|
}
|
|
81
|
+
/** A product's deliberate act on a construct: the complete result it now
|
|
82
|
+
* holds, and the replay for its payload when that payload changed. */
|
|
83
|
+
export interface IntentionalChangeInput {
|
|
84
|
+
readonly base: CloudEntityRecord | null;
|
|
85
|
+
readonly result: CloudEntityRecord;
|
|
86
|
+
readonly replay: ReplayInstruction;
|
|
87
|
+
}
|
|
71
88
|
/**
|
|
72
|
-
*
|
|
73
|
-
* version.
|
|
74
|
-
*
|
|
75
|
-
* Checkpoint IDs did not move.
|
|
89
|
+
* Detect's proposal for physical ground, or null when settled truth has the
|
|
90
|
+
* same logical version. Detect never proposes permanent deletion and never
|
|
91
|
+
* sees a construct: constructs bypass Watch and Detect by law.
|
|
76
92
|
*/
|
|
77
93
|
export declare function detectedChangeProposal(input: DetectedChangeInput): DetectedChangeProposal | null;
|
|
94
|
+
/**
|
|
95
|
+
* A product's proposal for a construct it changed on purpose. Create,
|
|
96
|
+
* content, rename, trash, restore, and delete are all deliberate acts here,
|
|
97
|
+
* so none needs a separate authorization. Returns null when nothing moved.
|
|
98
|
+
*/
|
|
99
|
+
export declare function intentionalChangeProposal(input: IntentionalChangeInput): DetectedChangeProposal | null;
|
|
78
100
|
//# sourceMappingURL=record-proposal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record-proposal.d.ts","sourceRoot":"","sources":["../../src/detection/record-proposal.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"record-proposal.d.ts","sourceRoot":"","sources":["../../src/detection/record-proposal.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* The exact change proposal Record accepts, from either of its two authors.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* complete result and replay instruction so no later rail has to
|
|
7
|
-
*
|
|
4
|
+
* Detect authors one for files from settled filesystem truth. A product
|
|
5
|
+
* authors one for a construct from its own deliberate act. Both carry the
|
|
6
|
+
* complete result and the exact replay instruction so no later rail has to
|
|
7
|
+
* rediscover truth. A proposal is not yet a durable mutation: Record assigns
|
|
8
|
+
* one mutation id, appends it atomically, and then Send publishes that row.
|
|
8
9
|
*/
|
|
9
10
|
import { assertRecord, } from '../entities/cloud.js';
|
|
10
|
-
import { DERIVED_PAYLOAD } from '../entities/types.js';
|
|
11
|
+
import { CONSTRUCT_TYPES, DERIVED_PAYLOAD } from '../entities/types.js';
|
|
11
12
|
import { checkContentManifest } from '../contracts/content.js';
|
|
12
|
-
import { artifactForRecord } from '../transfer/artifacts.js';
|
|
13
|
-
export const DETECTED_CHANGE_CONTRACT = 'amalgm.detected-change-proposal@
|
|
13
|
+
import { artifactForRecord, artifactKindForType } from '../transfer/artifacts.js';
|
|
14
|
+
export const DETECTED_CHANGE_CONTRACT = 'amalgm.detected-change-proposal@3';
|
|
14
15
|
const HASH = /^[0-9a-f]{64}$/;
|
|
15
16
|
const facetsOf = (base, result) => {
|
|
16
17
|
if (base === null)
|
|
@@ -30,7 +31,9 @@ const facetsOf = (base, result) => {
|
|
|
30
31
|
if (base.type === result.type && base.fileMode !== result.fileMode)
|
|
31
32
|
facets.push('mode');
|
|
32
33
|
if (base.status !== result.status) {
|
|
33
|
-
if (result.status === '
|
|
34
|
+
if (result.status === 'deleted')
|
|
35
|
+
facets.push('delete');
|
|
36
|
+
else if (result.status === 'trashed')
|
|
34
37
|
facets.push('trash');
|
|
35
38
|
else if (base.status === 'trashed' && result.status === 'active')
|
|
36
39
|
facets.push('restore');
|
|
@@ -39,20 +42,26 @@ const facetsOf = (base, result) => {
|
|
|
39
42
|
};
|
|
40
43
|
const contentRequired = (base, result, facets) => result.status === 'active'
|
|
41
44
|
&& (base === null || facets.includes('content') || facets.includes('retype'))
|
|
42
|
-
&&
|
|
45
|
+
&& artifactKindForType(result.type) !== null;
|
|
46
|
+
const validateManifestReplay = (replay, result) => {
|
|
47
|
+
const manifest = checkContentManifest(replay.manifest, result.payloadVersion);
|
|
48
|
+
if (!manifest.ok || replay.resultPayloadVersion !== result.payloadVersion) {
|
|
49
|
+
throw new Error(`${replay.kind} replay does not name its complete result manifest`);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
43
52
|
const validateReplay = (base, result, facets, replay) => {
|
|
44
53
|
const needsContent = contentRequired(base, result, facets);
|
|
45
54
|
if (!needsContent) {
|
|
46
55
|
if (replay.kind !== 'structure') {
|
|
47
|
-
throw new Error('a structural-only
|
|
56
|
+
throw new Error('a structural-only change must use structure replay');
|
|
48
57
|
}
|
|
49
58
|
return;
|
|
50
59
|
}
|
|
51
60
|
if (replay.kind !== result.type) {
|
|
52
|
-
throw new Error(
|
|
61
|
+
throw new Error(`${result.type} content cannot use ${replay.kind} replay`);
|
|
53
62
|
}
|
|
54
63
|
if (result.payloadVersion === null) {
|
|
55
|
-
throw new Error(
|
|
64
|
+
throw new Error(`${result.type} content has no result payload version`);
|
|
56
65
|
}
|
|
57
66
|
switch (replay.kind) {
|
|
58
67
|
case 'file.text':
|
|
@@ -75,13 +84,13 @@ const validateReplay = (base, result, facets, replay) => {
|
|
|
75
84
|
throw new Error('text replay has an invalid byte splice');
|
|
76
85
|
}
|
|
77
86
|
break;
|
|
78
|
-
case 'file.binary':
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
87
|
+
case 'file.binary':
|
|
88
|
+
case 'agent':
|
|
89
|
+
case 'automation':
|
|
90
|
+
case 'app':
|
|
91
|
+
case 'tool':
|
|
92
|
+
validateManifestReplay(replay, result);
|
|
83
93
|
break;
|
|
84
|
-
}
|
|
85
94
|
case 'link':
|
|
86
95
|
if (typeof replay.target !== 'string'
|
|
87
96
|
|| replay.resultPayloadVersion !== result.payloadVersion
|
|
@@ -104,25 +113,20 @@ const validateReplay = (base, result, facets, replay) => {
|
|
|
104
113
|
}
|
|
105
114
|
};
|
|
106
115
|
/**
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
116
|
+
* The one validator behind both builders. Returns null when base and result
|
|
117
|
+
* name the same logical version, so an unchanged construct or file produces
|
|
118
|
+
* no record. Facet derivation, replay validation, and cargo selection are
|
|
119
|
+
* identical whichever author brought the transition.
|
|
111
120
|
*/
|
|
112
|
-
|
|
113
|
-
const result = assertRecord(input.result);
|
|
114
|
-
const base = input.base === null ? null : assertRecord(input.base);
|
|
121
|
+
const changeProposal = (origin, base, result, replay, authorizeLifecycle) => {
|
|
115
122
|
if (base !== null && base.uuid !== result.uuid) {
|
|
116
|
-
throw new Error('a
|
|
123
|
+
throw new Error('a transition cannot change entity UUID');
|
|
117
124
|
}
|
|
118
125
|
if (base === null && result.status !== 'active') {
|
|
119
|
-
throw new Error('
|
|
126
|
+
throw new Error('a new entity must begin active');
|
|
120
127
|
}
|
|
121
128
|
if (base?.status === 'deleted') {
|
|
122
|
-
throw new Error('
|
|
123
|
-
}
|
|
124
|
-
if (result.status === 'deleted') {
|
|
125
|
-
throw new Error('Detection cannot propose permanent deletion; deletion is an explicit lifecycle operation');
|
|
129
|
+
throw new Error('a change cannot resurrect a deleted tombstone');
|
|
126
130
|
}
|
|
127
131
|
if (base?.version === result.version && base.transportVersion === result.transportVersion) {
|
|
128
132
|
const sameState = base.type === result.type
|
|
@@ -143,27 +147,59 @@ export function detectedChangeProposal(input) {
|
|
|
143
147
|
// that could erase a sibling created by another machine.
|
|
144
148
|
return null;
|
|
145
149
|
}
|
|
146
|
-
throw new Error('
|
|
147
|
-
}
|
|
148
|
-
if (facets.includes('trash') && input.lifecycleAuthorization !== 'trash') {
|
|
149
|
-
throw new Error('filesystem absence is not authority to Trash an entity');
|
|
150
|
-
}
|
|
151
|
-
if (facets.includes('restore') && input.lifecycleAuthorization !== 'restore') {
|
|
152
|
-
throw new Error('restoring an entity requires explicit lifecycle authority');
|
|
150
|
+
throw new Error('records disagree without a named logical facet');
|
|
153
151
|
}
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
152
|
+
authorizeLifecycle(facets);
|
|
153
|
+
validateReplay(base, result, facets, replay);
|
|
154
|
+
const artifact = replay.kind === 'structure' ? null : artifactForRecord(result);
|
|
155
|
+
if (replay.kind !== 'structure' && artifact === null) {
|
|
156
|
+
throw new Error(`${result.type} replay has no transferable artifact`);
|
|
158
157
|
}
|
|
159
158
|
return Object.freeze({
|
|
160
159
|
contract: DETECTED_CHANGE_CONTRACT,
|
|
160
|
+
origin,
|
|
161
161
|
entityId: result.uuid,
|
|
162
162
|
basedOnState: base?.version ?? null,
|
|
163
163
|
result,
|
|
164
164
|
facets: Object.freeze(facets),
|
|
165
|
-
replay
|
|
165
|
+
replay,
|
|
166
166
|
cargo: Object.freeze(artifact === null ? [] : [artifact]),
|
|
167
167
|
});
|
|
168
|
+
};
|
|
169
|
+
/**
|
|
170
|
+
* Detect's proposal for physical ground, or null when settled truth has the
|
|
171
|
+
* same logical version. Detect never proposes permanent deletion and never
|
|
172
|
+
* sees a construct: constructs bypass Watch and Detect by law.
|
|
173
|
+
*/
|
|
174
|
+
export function detectedChangeProposal(input) {
|
|
175
|
+
const result = assertRecord(input.result);
|
|
176
|
+
const base = input.base === null ? null : assertRecord(input.base);
|
|
177
|
+
if (CONSTRUCT_TYPES.has(result.type) || (base !== null && CONSTRUCT_TYPES.has(base.type))) {
|
|
178
|
+
throw new Error(`Detection cannot propose a ${result.type}; constructs bypass Detect`);
|
|
179
|
+
}
|
|
180
|
+
if (result.status === 'deleted') {
|
|
181
|
+
throw new Error('Detection cannot propose permanent deletion; deletion is an explicit lifecycle operation');
|
|
182
|
+
}
|
|
183
|
+
return changeProposal('detected', base, result, input.replay, (facets) => {
|
|
184
|
+
if (facets.includes('trash') && input.lifecycleAuthorization !== 'trash') {
|
|
185
|
+
throw new Error('filesystem absence is not authority to Trash an entity');
|
|
186
|
+
}
|
|
187
|
+
if (facets.includes('restore') && input.lifecycleAuthorization !== 'restore') {
|
|
188
|
+
throw new Error('restoring an entity requires explicit lifecycle authority');
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* A product's proposal for a construct it changed on purpose. Create,
|
|
194
|
+
* content, rename, trash, restore, and delete are all deliberate acts here,
|
|
195
|
+
* so none needs a separate authorization. Returns null when nothing moved.
|
|
196
|
+
*/
|
|
197
|
+
export function intentionalChangeProposal(input) {
|
|
198
|
+
const result = assertRecord(input.result);
|
|
199
|
+
const base = input.base === null ? null : assertRecord(input.base);
|
|
200
|
+
if (!CONSTRUCT_TYPES.has(result.type)) {
|
|
201
|
+
throw new Error(`an intentional change cannot propose a ${result.type}; files travel through Detect`);
|
|
202
|
+
}
|
|
203
|
+
return changeProposal('intentional', base, result, input.replay, () => undefined);
|
|
168
204
|
}
|
|
169
205
|
//# sourceMappingURL=record-proposal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record-proposal.js","sourceRoot":"","sources":["../../src/detection/record-proposal.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"record-proposal.js","sourceRoot":"","sources":["../../src/detection/record-proposal.ts"],"names":[],"mappings":"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"}
|
package/dist/entities/types.d.ts
CHANGED
|
@@ -6,10 +6,13 @@
|
|
|
6
6
|
* parentUUID + name chain and are never identity; version is derived on
|
|
7
7
|
* read, never stored.
|
|
8
8
|
*
|
|
9
|
-
* The alphabet is
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
9
|
+
* The alphabet is open to any entity whose adapter can prepare, reveal, and
|
|
10
|
+
* verify it. The first seven types are physical because the first rails were
|
|
11
|
+
* built around files and code. Constructs — agent, automation, app, tool —
|
|
12
|
+
* are intentional-change types: they bypass Watch and Detect, the product
|
|
13
|
+
* that changed one promotes the new version to Record itself, and the
|
|
14
|
+
* product owns the switch to a received version. Their payload is the
|
|
15
|
+
* product's own serialization; Live hashes and moves it and never opens it.
|
|
13
16
|
*
|
|
14
17
|
* This module also names the two ports the pure rules receive instead of a
|
|
15
18
|
* database or node:crypto: a read port over the host's identity store, and
|
|
@@ -19,7 +22,10 @@
|
|
|
19
22
|
* `reference` is the OTHER link kind, never conflated: Amalgm-created by a
|
|
20
23
|
* deliberate act, its payload the TARGET ENTITY'S UUID — identity, not an
|
|
21
24
|
* address. */
|
|
22
|
-
export type EntityType = 'workspace' | 'folder' | 'repo.git' | 'file.text' | 'file.binary' | 'link' | 'reference';
|
|
25
|
+
export type EntityType = 'workspace' | 'folder' | 'repo.git' | 'file.text' | 'file.binary' | 'link' | 'reference' | ConstructType;
|
|
26
|
+
/** The intentional-change types. Roots with `parentUUID: null`; their
|
|
27
|
+
* dependencies are UUIDs inside the payload, never parent links. */
|
|
28
|
+
export type ConstructType = 'agent' | 'automation' | 'app' | 'tool';
|
|
23
29
|
export type ContainerType = 'workspace' | 'folder' | 'repo.git';
|
|
24
30
|
/** active — exists normally; trashed — recoverable, UUID survives;
|
|
25
31
|
* deleted — content permanently gone, the record IS the tombstone. */
|
|
@@ -29,6 +35,8 @@ export type EntityStatus = 'active' | 'trashed' | 'deleted';
|
|
|
29
35
|
* ownership, and directory posture remain machine-local policy. */
|
|
30
36
|
export type PortableFileMode = 0o644 | 0o755;
|
|
31
37
|
export declare const TYPES: ReadonlySet<string>;
|
|
38
|
+
export declare const CONSTRUCT_TYPES: ReadonlySet<string>;
|
|
39
|
+
export declare const isConstructType: (value: unknown) => value is ConstructType;
|
|
32
40
|
/** The three lifecycle states, as one set every validator reads — restated
|
|
33
41
|
* as an inline array it would allocate once per record validated. */
|
|
34
42
|
export declare const STATUSES: ReadonlySet<string>;
|
|
@@ -37,7 +45,7 @@ export declare const CONTAINERS: ReadonlySet<string>;
|
|
|
37
45
|
/** The types a parentless record (a tree root) may wear. `folder` is
|
|
38
46
|
* deliberately absent: a folder inside no workspace is not a thing amalgm
|
|
39
47
|
* registers. `reference` is absent too — a managed pointer is always
|
|
40
|
-
* created inside a tree. */
|
|
48
|
+
* created inside a tree. Every construct is a root. */
|
|
41
49
|
export declare const ROOT_TYPES: ReadonlySet<string>;
|
|
42
50
|
/** Types whose payload IS their membership: derived from the records
|
|
43
51
|
* beneath them, so no observation may attest one. */
|