@younndai/lyt 0.13.5 → 0.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +27 -19
  2. package/dist/automator-run.d.ts +1 -0
  3. package/dist/automator-run.d.ts.map +1 -1
  4. package/dist/automator-run.js +5 -3
  5. package/dist/automator-run.js.map +1 -1
  6. package/dist/bench/pod-harness.d.ts.map +1 -1
  7. package/dist/bench/pod-harness.js +49 -1
  8. package/dist/bench/pod-harness.js.map +1 -1
  9. package/dist/build-program.d.ts +10 -1
  10. package/dist/build-program.d.ts.map +1 -1
  11. package/dist/build-program.js +23 -3
  12. package/dist/build-program.js.map +1 -1
  13. package/dist/cli.js +10 -4
  14. package/dist/cli.js.map +1 -1
  15. package/dist/commands/capture.d.ts.map +1 -1
  16. package/dist/commands/capture.js +1 -2
  17. package/dist/commands/capture.js.map +1 -1
  18. package/dist/commands/init.d.ts +2 -0
  19. package/dist/commands/init.d.ts.map +1 -1
  20. package/dist/commands/init.js +404 -244
  21. package/dist/commands/init.js.map +1 -1
  22. package/dist/commands/install.d.ts +4 -0
  23. package/dist/commands/install.d.ts.map +1 -0
  24. package/dist/commands/install.js +107 -0
  25. package/dist/commands/install.js.map +1 -0
  26. package/dist/commands/outdated.d.ts.map +1 -1
  27. package/dist/commands/outdated.js +19 -5
  28. package/dist/commands/outdated.js.map +1 -1
  29. package/dist/commands/update.d.ts +90 -2
  30. package/dist/commands/update.d.ts.map +1 -1
  31. package/dist/commands/update.js +883 -48
  32. package/dist/commands/update.js.map +1 -1
  33. package/dist/flows/init-bootstrap.d.ts +7 -1
  34. package/dist/flows/init-bootstrap.d.ts.map +1 -1
  35. package/dist/flows/init-bootstrap.js +240 -69
  36. package/dist/flows/init-bootstrap.js.map +1 -1
  37. package/dist/index.d.ts +6 -0
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +3 -0
  40. package/dist/index.js.map +1 -1
  41. package/dist/install/doctor-health.d.ts +16 -0
  42. package/dist/install/doctor-health.d.ts.map +1 -0
  43. package/dist/install/doctor-health.js +575 -0
  44. package/dist/install/doctor-health.js.map +1 -0
  45. package/dist/install/provider-inventory.d.ts +40 -0
  46. package/dist/install/provider-inventory.d.ts.map +1 -0
  47. package/dist/install/provider-inventory.js +73 -0
  48. package/dist/install/provider-inventory.js.map +1 -0
  49. package/dist/install/reconcile-engine.d.ts +87 -0
  50. package/dist/install/reconcile-engine.d.ts.map +1 -0
  51. package/dist/install/reconcile-engine.js +771 -0
  52. package/dist/install/reconcile-engine.js.map +1 -0
  53. package/dist/install/target-artifacts.d.ts +91 -0
  54. package/dist/install/target-artifacts.d.ts.map +1 -0
  55. package/dist/install/target-artifacts.js +597 -0
  56. package/dist/install/target-artifacts.js.map +1 -0
  57. package/dist/install/update-operation.d.ts +47 -0
  58. package/dist/install/update-operation.d.ts.map +1 -0
  59. package/dist/install/update-operation.js +318 -0
  60. package/dist/install/update-operation.js.map +1 -0
  61. package/dist/install/update-plan.d.ts +132 -0
  62. package/dist/install/update-plan.d.ts.map +1 -0
  63. package/dist/install/update-plan.js +418 -0
  64. package/dist/install/update-plan.js.map +1 -0
  65. package/package.json +16 -6
@@ -0,0 +1,40 @@
1
+ import { type Runtime } from "@younndai/lyt-skills";
2
+ import { type UpdatePackageName } from "./update-plan.js";
3
+ export interface InstallProviderV1 {
4
+ readonly schema_id: "lyt.install-provider";
5
+ readonly schema_version: Readonly<{
6
+ major: 1;
7
+ minor: 0;
8
+ }>;
9
+ readonly package: UpdatePackageName;
10
+ readonly version: string;
11
+ readonly objects: readonly InstallableProviderObjectV1[];
12
+ }
13
+ export type InstallableProviderObjectV1 = Readonly<{
14
+ object_id: string;
15
+ kind: "directory-link";
16
+ provider_package: "@younndai/lyt-skills";
17
+ provider_version: string;
18
+ source_path: string;
19
+ target_path: string;
20
+ expected_digest: string;
21
+ trusted_legacy_digests: readonly string[];
22
+ }> | Readonly<{
23
+ object_id: string;
24
+ kind: "marker-file";
25
+ provider_package: "@younndai/lyt-vault";
26
+ provider_version: string;
27
+ target_path: string;
28
+ content: string;
29
+ expected_digest: string;
30
+ marker_begin: string;
31
+ marker_end: string;
32
+ trusted_legacy_digests: readonly string[];
33
+ }>;
34
+ export interface BuildProviderInventoryOptions {
35
+ readonly homeDir?: string;
36
+ readonly runtimes?: readonly Runtime[];
37
+ readonly skillsSourceDir?: string;
38
+ }
39
+ export declare function buildInstallProviderInventoryV1(options?: BuildProviderInventoryOptions): Promise<readonly InstallProviderV1[]>;
40
+ //# sourceMappingURL=provider-inventory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-inventory.d.ts","sourceRoot":"","sources":["../../src/install/provider-inventory.ts"],"names":[],"mappings":"AAOA,OAAO,EAIL,KAAK,OAAO,EACb,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAwB,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEhF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAC;IAC3C,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;QAAE,KAAK,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC;IAC1D,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,SAAS,2BAA2B,EAAE,CAAC;CAC1D;AAED,MAAM,MAAM,2BAA2B,GACnC,QAAQ,CAAC;IACP,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,gBAAgB,CAAC;IACvB,gBAAgB,EAAE,sBAAsB,CAAC;IACzC,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C,CAAC,GACF,QAAQ,CAAC;IACP,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,aAAa,CAAC;IACpB,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C,CAAC,CAAC;AAEP,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IACvC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,wBAAsB,+BAA+B,CACnD,OAAO,GAAE,6BAAkC,GAC1C,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAyDvC"}
@@ -0,0 +1,73 @@
1
+ /*
2
+ * Copyright 2026 MARLINK TRADING SRL (YounndAI)
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { homedir } from "node:os";
17
+ import { buildVaultInstallProviderObjectsV1, detectInstalledRuntimes } from "@younndai/lyt-vault";
18
+ import { ALL_RUNTIMES, buildSkillsInstallProviderObjectsV1, getBundledSkillsDir, } from "@younndai/lyt-skills";
19
+ import { digestPathTree, readPackageVersion } from "./reconcile-engine.js";
20
+ import { UPDATE_PLAN_PACKAGES } from "./update-plan.js";
21
+ export async function buildInstallProviderInventoryV1(options = {}) {
22
+ const home = options.homeDir ?? homedir();
23
+ const skillsSource = options.skillsSourceDir ?? getBundledSkillsDir();
24
+ const skillsVersion = readPackageVersion("@younndai/lyt-skills");
25
+ const vaultVersion = readPackageVersion("@younndai/lyt-vault");
26
+ const requestedRuntimes = options.runtimes ?? ALL_RUNTIMES;
27
+ const detectedRuntimes = detectInstalledRuntimes(home);
28
+ const skillObjects = buildSkillsInstallProviderObjectsV1({
29
+ version: skillsVersion,
30
+ homeDir: home,
31
+ runtimes: requestedRuntimes,
32
+ sourceDir: skillsSource,
33
+ detectedRuntimes,
34
+ digestTree: digestPathTree,
35
+ });
36
+ const manualObjects = await buildVaultInstallProviderObjectsV1({
37
+ version: vaultVersion,
38
+ homeDir: home,
39
+ runtimes: requestedRuntimes,
40
+ skillsDir: skillsSource,
41
+ });
42
+ const owned = new Map([
43
+ [
44
+ "@younndai/lyt-skills",
45
+ Object.freeze({
46
+ schema_id: "lyt.install-provider",
47
+ schema_version: Object.freeze({ major: 1, minor: 0 }),
48
+ package: "@younndai/lyt-skills",
49
+ version: skillsVersion,
50
+ objects: Object.freeze(skillObjects),
51
+ }),
52
+ ],
53
+ [
54
+ "@younndai/lyt-vault",
55
+ Object.freeze({
56
+ schema_id: "lyt.install-provider",
57
+ schema_version: Object.freeze({ major: 1, minor: 0 }),
58
+ package: "@younndai/lyt-vault",
59
+ version: vaultVersion,
60
+ objects: Object.freeze(manualObjects),
61
+ }),
62
+ ],
63
+ ]);
64
+ return Object.freeze(UPDATE_PLAN_PACKAGES.map((packageName) => owned.get(packageName) ??
65
+ Object.freeze({
66
+ schema_id: "lyt.install-provider",
67
+ schema_version: Object.freeze({ major: 1, minor: 0 }),
68
+ package: packageName,
69
+ version: readPackageVersion(packageName),
70
+ objects: Object.freeze([]),
71
+ })));
72
+ }
73
+ //# sourceMappingURL=provider-inventory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-inventory.js","sourceRoot":"","sources":["../../src/install/provider-inventory.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,kCAAkC,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAClG,OAAO,EACL,YAAY,EACZ,mCAAmC,EACnC,mBAAmB,GAEpB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAA0B,MAAM,kBAAkB,CAAC;AAwChF,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,UAAyC,EAAE;IAE3C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC;IAC1C,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,IAAI,mBAAmB,EAAE,CAAC;IACtE,MAAM,aAAa,GAAG,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;IAC/D,MAAM,iBAAiB,GAAG,OAAO,CAAC,QAAQ,IAAI,YAAY,CAAC;IAC3D,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,IAAI,CAAuB,CAAC;IAC7E,MAAM,YAAY,GAAG,mCAAmC,CAAC;QACvD,OAAO,EAAE,aAAa;QACtB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,iBAAiB;QAC3B,SAAS,EAAE,YAAY;QACvB,gBAAgB;QAChB,UAAU,EAAE,cAAc;KAC3B,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,MAAM,kCAAkC,CAAC;QAC7D,OAAO,EAAE,YAAY;QACrB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,iBAAiB;QAC3B,SAAS,EAAE,YAAY;KACxB,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,IAAI,GAAG,CAAuC;QAC1D;YACE,sBAAsB;YACtB,MAAM,CAAC,MAAM,CAAC;gBACZ,SAAS,EAAE,sBAA+B;gBAC1C,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAU,EAAE,KAAK,EAAE,CAAU,EAAE,CAAC;gBACvE,OAAO,EAAE,sBAA+B;gBACxC,OAAO,EAAE,aAAa;gBACtB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;aACrC,CAAC;SACH;QACD;YACE,qBAAqB;YACrB,MAAM,CAAC,MAAM,CAAC;gBACZ,SAAS,EAAE,sBAA+B;gBAC1C,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAU,EAAE,KAAK,EAAE,CAAU,EAAE,CAAC;gBACvE,OAAO,EAAE,qBAA8B;gBACvC,OAAO,EAAE,YAAY;gBACrB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;aACtC,CAAC;SACH;KACF,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,CAClB,oBAAoB,CAAC,GAAG,CACtB,CAAC,WAAW,EAAE,EAAE,CACd,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;QACtB,MAAM,CAAC,MAAM,CAAC;YACZ,SAAS,EAAE,sBAA+B;YAC1C,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAU,EAAE,KAAK,EAAE,CAAU,EAAE,CAAC;YACvE,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,kBAAkB,CAAC,WAAW,CAAC;YACxC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;SAC3B,CAAC,CACL,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,87 @@
1
+ import { openReceiptAttempt, reopenReceiptAttempt, type ReceiptV1 } from "@younndai/lyt-vault";
2
+ import type { InstallableProviderObjectV1, InstallProviderV1 } from "./provider-inventory.js";
3
+ export type ReconcileObjectDisposition = "already-current" | "planned" | "refused";
4
+ export interface ReconcileObjectPlanV1 {
5
+ readonly object_id: string;
6
+ readonly provider_package: string;
7
+ readonly provider_version: string;
8
+ readonly kind: InstallableProviderObjectV1["kind"];
9
+ readonly target_path: string;
10
+ readonly expected_digest: string;
11
+ readonly observed_digest: string | null;
12
+ readonly expected_applied_digest: string;
13
+ readonly trusted_legacy_digests: readonly string[];
14
+ readonly disposition: ReconcileObjectDisposition;
15
+ readonly refusal_code: string | null;
16
+ }
17
+ export interface InstallReconcilePlanV1 {
18
+ readonly schema_id: "lyt.install-reconcile-plan";
19
+ readonly schema_version: Readonly<{
20
+ major: 1;
21
+ minor: 0;
22
+ }>;
23
+ readonly operation_id: string;
24
+ readonly plan_digest: string;
25
+ readonly journal_root: string;
26
+ readonly objects: readonly ReconcileObjectPlanV1[];
27
+ }
28
+ interface ReconcileJournalV1 {
29
+ readonly schema_id: "lyt.install-reconcile-journal";
30
+ readonly schema_version: Readonly<{
31
+ major: 1;
32
+ minor: 0;
33
+ }>;
34
+ readonly plan: InstallReconcilePlanV1;
35
+ readonly completed: readonly string[];
36
+ readonly pending: readonly string[];
37
+ readonly refused: readonly string[];
38
+ readonly active_attempt_id: string | null;
39
+ readonly active_started_at: string | null;
40
+ readonly status: "pending" | "complete" | "refused" | "interrupted";
41
+ }
42
+ export interface InstallReconcileEnvelopeV1 {
43
+ readonly schema_id: "lyt.install-reconcile-result";
44
+ readonly schema_version: Readonly<{
45
+ major: 1;
46
+ minor: 0;
47
+ }>;
48
+ readonly success: boolean;
49
+ readonly status: "planned" | "success" | "no-op" | "partial" | "refused" | "failed";
50
+ readonly operation_id: string;
51
+ readonly attempt_id: string;
52
+ readonly plan_digest: string;
53
+ readonly plan: InstallReconcilePlanV1;
54
+ readonly mutations: number;
55
+ readonly completed: readonly string[];
56
+ readonly pending: readonly string[];
57
+ readonly refused: readonly string[];
58
+ readonly next_action: string | null;
59
+ readonly receipt: ReceiptV1;
60
+ }
61
+ export interface ReconcileEngineOptions {
62
+ readonly journalRoot?: string;
63
+ readonly now?: () => Date;
64
+ readonly newAttemptId?: () => string;
65
+ readonly receiptOpen?: typeof openReceiptAttempt;
66
+ readonly receiptReopen?: typeof reopenReceiptAttempt;
67
+ readonly failAfterObject?: string;
68
+ readonly failBeforeJournalAfterObject?: string;
69
+ }
70
+ export declare function defaultReconcileJournalRoot(homeDir?: string): string;
71
+ export declare function buildInstallReconcileFailureEnvelopeV1(error: unknown, options?: Pick<ReconcileEngineOptions, "journalRoot" | "now" | "newAttemptId">): InstallReconcileEnvelopeV1;
72
+ export declare function readPackageVersion(packageName: string): string;
73
+ export declare function prepareInstallReconcilePlanV1(providers: readonly InstallProviderV1[], options?: Pick<ReconcileEngineOptions, "journalRoot">): InstallReconcilePlanV1;
74
+ export declare function reconcileInstallProvidersV1(providers: readonly InstallProviderV1[], input?: Readonly<{
75
+ apply: boolean;
76
+ resumeOperationId?: string;
77
+ }>, options?: ReconcileEngineOptions): Promise<InstallReconcileEnvelopeV1>;
78
+ export declare function inspectReconcileJournalV1(root: string, operationId: string): Readonly<{
79
+ valid: boolean;
80
+ journal: ReconcileJournalV1 | null;
81
+ error_code: string | null;
82
+ }>;
83
+ export declare function assertPathChainHasNoLinks(path: string, includeLeaf: boolean): void;
84
+ export declare function digestBytes(value: Uint8Array): string;
85
+ export declare function digestPathTree(path: string): string;
86
+ export {};
87
+ //# sourceMappingURL=reconcile-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconcile-engine.d.ts","sourceRoot":"","sources":["../../src/install/reconcile-engine.ts"],"names":[],"mappings":"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"}