@hasna/instructions 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +180 -0
  3. package/dist/cli/index.d.ts +3 -0
  4. package/dist/cli/index.d.ts.map +1 -0
  5. package/dist/cli/index.js +8080 -0
  6. package/dist/cli/output.test.d.ts +2 -0
  7. package/dist/cli/output.test.d.ts.map +1 -0
  8. package/dist/cli/session.test.d.ts +2 -0
  9. package/dist/cli/session.test.d.ts.map +1 -0
  10. package/dist/cli/storage.d.ts +3 -0
  11. package/dist/cli/storage.d.ts.map +1 -0
  12. package/dist/cli/storage.test.d.ts +2 -0
  13. package/dist/cli/storage.test.d.ts.map +1 -0
  14. package/dist/db/configs.d.ts +10 -0
  15. package/dist/db/configs.d.ts.map +1 -0
  16. package/dist/db/configs.test.d.ts +2 -0
  17. package/dist/db/configs.test.d.ts.map +1 -0
  18. package/dist/db/database.d.ts +7 -0
  19. package/dist/db/database.d.ts.map +1 -0
  20. package/dist/db/database.test.d.ts +2 -0
  21. package/dist/db/database.test.d.ts.map +1 -0
  22. package/dist/db/machines.d.ts +9 -0
  23. package/dist/db/machines.d.ts.map +1 -0
  24. package/dist/db/machines.test.d.ts +2 -0
  25. package/dist/db/machines.test.d.ts.map +1 -0
  26. package/dist/db/pg-migrations.d.ts +7 -0
  27. package/dist/db/pg-migrations.d.ts.map +1 -0
  28. package/dist/db/profiles.d.ts +14 -0
  29. package/dist/db/profiles.d.ts.map +1 -0
  30. package/dist/db/profiles.test.d.ts +2 -0
  31. package/dist/db/profiles.test.d.ts.map +1 -0
  32. package/dist/db/remote-storage.d.ts +13 -0
  33. package/dist/db/remote-storage.d.ts.map +1 -0
  34. package/dist/db/snapshots.d.ts +8 -0
  35. package/dist/db/snapshots.d.ts.map +1 -0
  36. package/dist/db/snapshots.test.d.ts +2 -0
  37. package/dist/db/snapshots.test.d.ts.map +1 -0
  38. package/dist/db/storage-sync.d.ts +53 -0
  39. package/dist/db/storage-sync.d.ts.map +1 -0
  40. package/dist/db/storage-sync.test.d.ts +2 -0
  41. package/dist/db/storage-sync.test.d.ts.map +1 -0
  42. package/dist/generated/storage-kit/health.d.ts +20 -0
  43. package/dist/generated/storage-kit/health.d.ts.map +1 -0
  44. package/dist/generated/storage-kit/index.d.ts +8 -0
  45. package/dist/generated/storage-kit/index.d.ts.map +1 -0
  46. package/dist/generated/storage-kit/migrations.d.ts +48 -0
  47. package/dist/generated/storage-kit/migrations.d.ts.map +1 -0
  48. package/dist/generated/storage-kit/mode.d.ts +48 -0
  49. package/dist/generated/storage-kit/mode.d.ts.map +1 -0
  50. package/dist/generated/storage-kit/pool.d.ts +34 -0
  51. package/dist/generated/storage-kit/pool.d.ts.map +1 -0
  52. package/dist/generated/storage-kit/query.d.ts +36 -0
  53. package/dist/generated/storage-kit/query.d.ts.map +1 -0
  54. package/dist/generated/storage-kit/tls.d.ts +26 -0
  55. package/dist/generated/storage-kit/tls.d.ts.map +1 -0
  56. package/dist/index.d.ts +37 -0
  57. package/dist/index.d.ts.map +1 -0
  58. package/dist/index.js +3749 -0
  59. package/dist/lib/apply-batch.test.d.ts +2 -0
  60. package/dist/lib/apply-batch.test.d.ts.map +1 -0
  61. package/dist/lib/apply.d.ts +16 -0
  62. package/dist/lib/apply.d.ts.map +1 -0
  63. package/dist/lib/apply.test.d.ts +2 -0
  64. package/dist/lib/apply.test.d.ts.map +1 -0
  65. package/dist/lib/compact-output.d.ts +78 -0
  66. package/dist/lib/compact-output.d.ts.map +1 -0
  67. package/dist/lib/compact-output.test.d.ts +2 -0
  68. package/dist/lib/compact-output.test.d.ts.map +1 -0
  69. package/dist/lib/export-import.test.d.ts +2 -0
  70. package/dist/lib/export-import.test.d.ts.map +1 -0
  71. package/dist/lib/export.d.ts +12 -0
  72. package/dist/lib/export.d.ts.map +1 -0
  73. package/dist/lib/import.d.ts +14 -0
  74. package/dist/lib/import.d.ts.map +1 -0
  75. package/dist/lib/machine.d.ts +21 -0
  76. package/dist/lib/machine.d.ts.map +1 -0
  77. package/dist/lib/machine.test.d.ts +2 -0
  78. package/dist/lib/machine.test.d.ts.map +1 -0
  79. package/dist/lib/package-version.d.ts +2 -0
  80. package/dist/lib/package-version.d.ts.map +1 -0
  81. package/dist/lib/platform-profiles.d.ts +5 -0
  82. package/dist/lib/platform-profiles.d.ts.map +1 -0
  83. package/dist/lib/project-dashboard-standard.d.ts +7 -0
  84. package/dist/lib/project-dashboard-standard.d.ts.map +1 -0
  85. package/dist/lib/project-dashboard-standard.test.d.ts +2 -0
  86. package/dist/lib/project-dashboard-standard.test.d.ts.map +1 -0
  87. package/dist/lib/redact.d.ts +29 -0
  88. package/dist/lib/redact.d.ts.map +1 -0
  89. package/dist/lib/redact.test.d.ts +2 -0
  90. package/dist/lib/redact.test.d.ts.map +1 -0
  91. package/dist/lib/session-apply.d.ts +48 -0
  92. package/dist/lib/session-apply.d.ts.map +1 -0
  93. package/dist/lib/session-apply.test.d.ts +2 -0
  94. package/dist/lib/session-apply.test.d.ts.map +1 -0
  95. package/dist/lib/session-render.d.ts +176 -0
  96. package/dist/lib/session-render.d.ts.map +1 -0
  97. package/dist/lib/session-render.test.d.ts +2 -0
  98. package/dist/lib/session-render.test.d.ts.map +1 -0
  99. package/dist/lib/sync-dir.d.ts +13 -0
  100. package/dist/lib/sync-dir.d.ts.map +1 -0
  101. package/dist/lib/sync-dir.test.d.ts +2 -0
  102. package/dist/lib/sync-dir.test.d.ts.map +1 -0
  103. package/dist/lib/sync-known.test.d.ts +2 -0
  104. package/dist/lib/sync-known.test.d.ts.map +1 -0
  105. package/dist/lib/sync.d.ts +54 -0
  106. package/dist/lib/sync.d.ts.map +1 -0
  107. package/dist/lib/sync.test.d.ts +2 -0
  108. package/dist/lib/sync.test.d.ts.map +1 -0
  109. package/dist/lib/template.d.ts +10 -0
  110. package/dist/lib/template.d.ts.map +1 -0
  111. package/dist/lib/template.test.d.ts +2 -0
  112. package/dist/lib/template.test.d.ts.map +1 -0
  113. package/dist/lib/transforms.d.ts +11 -0
  114. package/dist/lib/transforms.d.ts.map +1 -0
  115. package/dist/lib/transforms.test.d.ts +2 -0
  116. package/dist/lib/transforms.test.d.ts.map +1 -0
  117. package/dist/mcp/http.d.ts +28 -0
  118. package/dist/mcp/http.d.ts.map +1 -0
  119. package/dist/mcp/http.test.d.ts +2 -0
  120. package/dist/mcp/http.test.d.ts.map +1 -0
  121. package/dist/mcp/index.d.ts +3 -0
  122. package/dist/mcp/index.d.ts.map +1 -0
  123. package/dist/mcp/index.js +2591 -0
  124. package/dist/mcp/mcp.test.d.ts +2 -0
  125. package/dist/mcp/mcp.test.d.ts.map +1 -0
  126. package/dist/mcp/server.d.ts +4 -0
  127. package/dist/mcp/server.d.ts.map +1 -0
  128. package/dist/server/cloud.d.ts +39 -0
  129. package/dist/server/cloud.d.ts.map +1 -0
  130. package/dist/server/index.d.ts +8 -0
  131. package/dist/server/index.d.ts.map +1 -0
  132. package/dist/server/index.js +19062 -0
  133. package/dist/server/openapi.d.ts +578 -0
  134. package/dist/server/openapi.d.ts.map +1 -0
  135. package/dist/server/server.test.d.ts +2 -0
  136. package/dist/server/server.test.d.ts.map +1 -0
  137. package/dist/server/v1.d.ts +9 -0
  138. package/dist/server/v1.d.ts.map +1 -0
  139. package/dist/status.d.ts +56 -0
  140. package/dist/status.d.ts.map +1 -0
  141. package/dist/status.test.d.ts +2 -0
  142. package/dist/status.test.d.ts.map +1 -0
  143. package/dist/storage/cloud-store.d.ts +17 -0
  144. package/dist/storage/cloud-store.d.ts.map +1 -0
  145. package/dist/storage/schema.d.ts +12 -0
  146. package/dist/storage/schema.d.ts.map +1 -0
  147. package/dist/storage.d.ts +5 -0
  148. package/dist/storage.d.ts.map +1 -0
  149. package/dist/storage.js +537 -0
  150. package/dist/types/index.d.ts +189 -0
  151. package/dist/types/index.d.ts.map +1 -0
  152. package/package.json +96 -0
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=apply-batch.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-batch.test.d.ts","sourceRoot":"","sources":["../../src/lib/apply-batch.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import type { ApplyResult, Config } from "../types/index.js";
2
+ import { getDatabase } from "../db/database.js";
3
+ import type { ProfileVariables } from "../types/index.js";
4
+ export declare function getConfigHome(): string;
5
+ export declare function expandPath(p: string): string;
6
+ export declare function normalizeTargetPath(p: string): string;
7
+ export interface ApplyOptions {
8
+ dryRun?: boolean;
9
+ force?: boolean;
10
+ db?: ReturnType<typeof getDatabase>;
11
+ vars?: ProfileVariables;
12
+ outputAgent?: Config["agent"];
13
+ }
14
+ export declare function applyConfig(config: Config, opts?: ApplyOptions): Promise<ApplyResult>;
15
+ export declare function applyConfigs(configs: Config[], opts?: ApplyOptions): Promise<ApplyResult[]>;
16
+ //# sourceMappingURL=apply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../src/lib/apply.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAgB,MAAM,mBAAmB,CAAC;AAE3E,OAAO,EAAE,WAAW,EAAO,MAAM,mBAAmB,CAAC;AAGrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI1D,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAK5C;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAsBrD;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,EAAE,CAAC,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IACpC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;CAC/B;AAuDD,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,WAAW,CAAC,CA4CtB;AAeD,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,WAAW,EAAE,CAAC,CAOxB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=apply.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.test.d.ts","sourceRoot":"","sources":["../../src/lib/apply.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,78 @@
1
+ import type { ApplyResult, Config, Profile } from "../types/index.js";
2
+ export declare const DEFAULT_LIST_LIMIT = 20;
3
+ export declare const MAX_LIST_LIMIT = 100;
4
+ export interface Page<T> {
5
+ items: T[];
6
+ total: number;
7
+ limit: number;
8
+ cursor: number;
9
+ next_cursor: number | null;
10
+ has_more: boolean;
11
+ }
12
+ export interface PagedPayload<T> extends Page<T> {
13
+ hint?: string;
14
+ }
15
+ export declare function parseLimit(value: unknown, fallback?: number, max?: number): number;
16
+ export declare function parseCursor(value: unknown): number;
17
+ export declare function paginate<T>(items: T[], opts?: {
18
+ limit?: unknown;
19
+ cursor?: unknown;
20
+ defaultLimit?: number;
21
+ maxLimit?: number;
22
+ }): Page<T>;
23
+ export declare function pagedPayload<T>(items: T[], opts?: {
24
+ limit?: unknown;
25
+ cursor?: unknown;
26
+ defaultLimit?: number;
27
+ maxLimit?: number;
28
+ hint?: string;
29
+ }): PagedPayload<T>;
30
+ export declare function truncateText(value: string | null | undefined, max?: number): string;
31
+ export declare function truncateMiddle(value: string | null | undefined, max?: number): string;
32
+ export interface ConfigSummary {
33
+ id: string;
34
+ slug: string;
35
+ name: string;
36
+ category: Config["category"];
37
+ agent: Config["agent"];
38
+ kind: Config["kind"];
39
+ format: Config["format"];
40
+ target_path: string | null;
41
+ output_count: number;
42
+ version: number;
43
+ is_template: boolean;
44
+ updated_at?: string;
45
+ description?: string | null;
46
+ tags?: string[];
47
+ outputs?: Config["outputs"];
48
+ }
49
+ export declare function summarizeConfig(config: Config, opts?: {
50
+ verbose?: boolean;
51
+ }): ConfigSummary;
52
+ export interface ProfileSummary {
53
+ id: string;
54
+ slug: string;
55
+ name: string;
56
+ description?: string | null;
57
+ selector_count: number;
58
+ variable_count: number;
59
+ created_at?: string;
60
+ updated_at?: string;
61
+ selectors?: Profile["selectors"];
62
+ variables?: Profile["variables"];
63
+ }
64
+ export declare function summarizeProfile(profile: Profile, opts?: {
65
+ verbose?: boolean;
66
+ }): ProfileSummary;
67
+ export interface ApplyResultSummary {
68
+ config_id: string;
69
+ path: string;
70
+ dry_run: boolean;
71
+ changed: boolean;
72
+ agent?: ApplyResult["agent"];
73
+ transform?: ApplyResult["transform"];
74
+ output_count: number;
75
+ outputs?: ApplyResultSummary[];
76
+ }
77
+ export declare function summarizeApplyResult(result: ApplyResult): ApplyResultSummary;
78
+ //# sourceMappingURL=compact-output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compact-output.d.ts","sourceRoot":"","sources":["../../src/lib/compact-output.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=compact-output.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compact-output.test.d.ts","sourceRoot":"","sources":["../../src/lib/compact-output.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=export-import.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-import.test.d.ts","sourceRoot":"","sources":["../../src/lib/export-import.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import type { ConfigFilter } from "../types/index.js";
2
+ import { getDatabase } from "../db/database.js";
3
+ export interface ExportOptions {
4
+ filter?: ConfigFilter;
5
+ profileId?: string;
6
+ db?: ReturnType<typeof getDatabase>;
7
+ }
8
+ export declare function exportConfigs(outputPath: string, opts?: ExportOptions): Promise<{
9
+ path: string;
10
+ count: number;
11
+ }>;
12
+ //# sourceMappingURL=export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/lib/export.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAkB,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAO,MAAM,mBAAmB,CAAC;AAGrD,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;CACrC;AAED,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CA0C1C"}
@@ -0,0 +1,14 @@
1
+ import { getDatabase } from "../db/database.js";
2
+ export type ImportConflict = "skip" | "overwrite" | "version";
3
+ export interface ImportOptions {
4
+ conflict?: ImportConflict;
5
+ db?: ReturnType<typeof getDatabase>;
6
+ }
7
+ export interface ImportResult {
8
+ created: number;
9
+ updated: number;
10
+ skipped: number;
11
+ errors: string[];
12
+ }
13
+ export declare function importConfigs(bundlePath: string, opts?: ImportOptions): Promise<ImportResult>;
14
+ //# sourceMappingURL=import.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/lib/import.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;AAE9D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,EAAE,CAAC,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,YAAY,CAAC,CAuEvB"}
@@ -0,0 +1,21 @@
1
+ import type { MachineContext, Profile, ProfileVariables } from "../types/index.js";
2
+ export interface MachineContextOverrides {
3
+ hostname?: string;
4
+ os?: string;
5
+ arch?: string;
6
+ home_dir?: string;
7
+ workspace_root?: string;
8
+ bun_bin_dir?: string;
9
+ bun_path?: string;
10
+ path_prefix?: string;
11
+ }
12
+ export declare function normalizeOsFamily(os?: string | null): string;
13
+ export declare function detectMachineContext(overrides?: MachineContextOverrides): MachineContext;
14
+ export declare function machineContextToVariables(machine: MachineContext): ProfileVariables;
15
+ export declare function resolveProfileVariables(profile: Pick<Profile, "variables"> | null | undefined, machine: MachineContext): ProfileVariables;
16
+ export declare function templateizeMachineContent(content: string, machine: MachineContext): {
17
+ content: string;
18
+ changed: boolean;
19
+ };
20
+ export declare function renderMachineAwareContent(content: string, variables: ProfileVariables): string;
21
+ //# sourceMappingURL=machine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"machine.d.ts","sourceRoot":"","sources":["../../src/lib/machine.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGnF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAID,wBAAgB,iBAAiB,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAM5D;AAED,wBAAgB,oBAAoB,CAClC,SAAS,GAAE,uBAA4B,GACtC,cAAc,CAuBhB;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,cAAc,GAAG,gBAAgB,CAYnF;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,IAAI,GAAG,SAAS,EACtD,OAAO,EAAE,cAAc,GACtB,gBAAgB,CA0BlB;AAOD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,cAAc,GACtB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAqBvC;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,gBAAgB,GAC1B,MAAM,CAER"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=machine.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"machine.test.d.ts","sourceRoot":"","sources":["../../src/lib/machine.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export declare function getPackageVersion(): string;
2
+ //# sourceMappingURL=package-version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-version.d.ts","sourceRoot":"","sources":["../../src/lib/package-version.ts"],"names":[],"mappings":"AAOA,wBAAgB,iBAAiB,IAAI,MAAM,CAsB1C"}
@@ -0,0 +1,5 @@
1
+ import type { Database } from "bun:sqlite";
2
+ import type { CreateProfileInput, Profile } from "../types/index.js";
3
+ export declare const PLATFORM_PROFILE_PRESETS: CreateProfileInput[];
4
+ export declare function ensurePlatformProfiles(db?: Database): Profile[];
5
+ //# sourceMappingURL=platform-profiles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-profiles.d.ts","sourceRoot":"","sources":["../../src/lib/platform-profiles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAKrE,eAAO,MAAM,wBAAwB,EAAE,kBAAkB,EAyBxD,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,EAAE,CA0B/D"}
@@ -0,0 +1,7 @@
1
+ import type { Database } from "bun:sqlite";
2
+ import type { Config, ProfileVariables } from "../types/index.js";
3
+ export declare const PROJECT_DASHBOARD_STANDARD_SLUG = "agent-managed-project-dashboard-standard";
4
+ export declare const PROJECT_DASHBOARD_PROFILE_VARIABLES: ProfileVariables;
5
+ export declare const PROJECT_DASHBOARD_STANDARD_CONTENT = "# Agent-Managed Project Dashboard Standard\n\nThis standard applies to Hasna work projects under `Workspace/<division>/project/<slug>`.\nHumans do not work directly inside these folders; agents keep structure,\nevidence, tasks, knowledge, and dashboard output consistent.\n\n## Canonical Files\n\n- Project manifest root: `.hasna/project/`\n- Dashboard render manifest: `.hasna/project/dashboard/render.json`\n- Latest snapshot: `.hasna/project/dashboard/snapshots/latest.snapshot.json`\n- Dashboard schema ids come from `@hasna/contracts`.\n- Project folders may contain private documents, but render JSON must contain\n only ids, counts, statuses, resource refs, evidence refs, and redacted\n summaries.\n\n## Viewer Commands\n\nUse the Projects-owned viewer. Do not invent a separate per-project app unless\n`open-projects` cannot express the surface.\n\n```bash\nprojects dashboard snapshot <project> --write --json\nprojects dashboard render <project> --json\nprojects dashboard validate <project> --json\nPROJECTS_DASHBOARD_TOKEN=<token> projects dashboard serve <project> --host 0.0.0.0 --port <port>\n```\n\nNon-loopback serving must use `--token`, `PROJECTS_DASHBOARD_TOKEN`, or an\nexplicit `--trust-network` choice. Never put the token in a URL, task\nevidence, render spec, or report.\n\n## Provider Panels\n\nProvider CLIs emit bounded `hasna.project_panel.v1` summaries:\n\n```bash\ntodos project-panel --project <project> --json --contract\nfiles project-panel --project <project> --json --contract\nmailery project-panel --project <project> --limit 20 --json --contract\nconversations project-panel --project <project> --limit 30 --json --contract\nknowledge project-panel --project <project> --scope project --limit 30 --json --contract\nmementos --json project-panel --project <project> --contract\nreports project-panel --project <project> --json --contract\n```\n\nProviders must degrade to unavailable/error panels instead of dumping raw\ncontent. Mailery is workspace-scoped until explicit project-email mapping is\nconfigured; Knowledge must run from the project cwd or with the correct store\ncontext.\n\n## Coordination\n\n- Project conversation channels use `iproj-<project-slug>` in the CLI and are\n displayed to humans as `#iproj-<project-slug>`.\n- Todos tasks are the source of truth for work; messages are only coordination.\n- Durable Codewith goal plans should own long-running implementation.\n- New implementation/verification work should route through task-triggered fresh\n agent runs, not by opening or pasting into existing tmux panes.\n- Agent handoff should reference task ids, project ids, commit ids, evidence\n paths, and dashboard URLs without exposing secrets or raw private documents.\n\n## Report Rules\n\nReports and dashboards should use JSON Render/React Flow through\n`projects dashboard render`. Include decisions, open questions, bank/document\nids, tasks, and evidence refs. Exclude raw email bodies, account numbers, tax\nids, passport numbers, credentials, and contract clauses unless an explicit\napproved storage policy exists.\n";
6
+ export declare function ensureProjectDashboardStandardConfig(db?: Database): Config;
7
+ //# sourceMappingURL=project-dashboard-standard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-dashboard-standard.d.ts","sourceRoot":"","sources":["../../src/lib/project-dashboard-standard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGlE,eAAO,MAAM,+BAA+B,6CAA6C,CAAC;AAE1F,eAAO,MAAM,mCAAmC,EAAE,gBAKjD,CAAC;AAEF,eAAO,MAAM,kCAAkC,2hGAqE9C,CAAC;AAEF,wBAAgB,oCAAoC,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CA4B1E"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=project-dashboard-standard.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-dashboard-standard.test.d.ts","sourceRoot":"","sources":["../../src/lib/project-dashboard-standard.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Secret redaction engine.
3
+ *
4
+ * Detects and replaces sensitive values with {{VARNAME}} template placeholders
5
+ * so they are NEVER stored in the DB. The config becomes a template that can
6
+ * be rendered with real values at apply-time.
7
+ *
8
+ * Strategy:
9
+ * 1. Key-name matching — if an assignment's LHS looks like a secret key name
10
+ * 2. Value-pattern matching — known token formats (npm, GitHub, Anthropic, etc.)
11
+ * regardless of key name
12
+ */
13
+ export interface RedactResult {
14
+ content: string;
15
+ redacted: RedactedVar[];
16
+ isTemplate: boolean;
17
+ }
18
+ export interface RedactedVar {
19
+ varName: string;
20
+ line: number;
21
+ reason: string;
22
+ }
23
+ export type RedactFormat = "shell" | "json" | "toml" | "ini" | "markdown" | "text" | "yaml";
24
+ export declare function redactContent(content: string, format: RedactFormat): RedactResult;
25
+ /** Detect secrets without modifying content. Returns list of findings. */
26
+ export declare function scanSecrets(content: string, format: RedactFormat): RedactedVar[];
27
+ /** Returns true if content contains any detectable secrets. */
28
+ export declare function hasSecrets(content: string, format: RedactFormat): boolean;
29
+ //# sourceMappingURL=redact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redact.d.ts","sourceRoot":"","sources":["../../src/lib/redact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAsMD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5F,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,YAAY,CAQjF;AAED,0EAA0E;AAC1E,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,WAAW,EAAE,CAGhF;AAED,+DAA+D;AAC/D,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAEzE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=redact.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redact.test.d.ts","sourceRoot":"","sources":["../../src/lib/redact.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,48 @@
1
+ import { type SessionRenderFileRole, type SessionRenderPlan } from "./session-render.js";
2
+ export type SessionApplyAction = "create" | "update" | "delete" | "unchanged" | "conflict";
3
+ export interface SessionApplyFileResult {
4
+ path: string;
5
+ relativePath: string;
6
+ role: SessionRenderFileRole;
7
+ action: SessionApplyAction;
8
+ changed: boolean;
9
+ previousSha256: string | null;
10
+ newSha256: string;
11
+ reason: string | null;
12
+ }
13
+ export interface SessionDriftEntry {
14
+ path: string;
15
+ relativePath: string;
16
+ expectedSha256: string;
17
+ actualSha256: string | null;
18
+ reason: "missing" | "hash_mismatch";
19
+ }
20
+ export interface SessionDriftCheck {
21
+ checked: boolean;
22
+ clean: boolean;
23
+ manifestPath: string;
24
+ checkedAt: string;
25
+ missing: SessionDriftEntry[];
26
+ drifted: SessionDriftEntry[];
27
+ }
28
+ export interface SessionApplyResult {
29
+ dryRun: boolean;
30
+ applied: boolean;
31
+ targetHome: string;
32
+ manifestPath: string;
33
+ snapshotPath: string | null;
34
+ env: Record<string, string>;
35
+ files: SessionApplyFileResult[];
36
+ conflicts: SessionApplyFileResult[];
37
+ drift: SessionDriftCheck;
38
+ }
39
+ export interface SessionApplyOptions {
40
+ dryRun?: boolean;
41
+ force?: boolean;
42
+ }
43
+ export declare class SessionApplyError extends Error {
44
+ constructor(message: string);
45
+ }
46
+ export declare function applySessionRender(plan: SessionRenderPlan, options?: SessionApplyOptions): SessionApplyResult;
47
+ export declare function checkSessionRenderDrift(targetHome: string, manifestPath?: string): SessionDriftCheck;
48
+ //# sourceMappingURL=session-apply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-apply.d.ts","sourceRoot":"","sources":["../../src/lib/session-apply.ts"],"names":[],"mappings":"AAWA,OAAO,EAIL,KAAK,qBAAqB,EAE1B,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;AAE3F,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,qBAAqB,CAAC;IAC5B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,SAAS,GAAG,eAAe,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAChC,SAAS,EAAE,sBAAsB,EAAE,CAAC;IACpC,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,iBAAiB,EACvB,OAAO,GAAE,mBAAwB,GAChC,kBAAkB,CA6DpB;AAED,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAoDpG"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=session-apply.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-apply.test.d.ts","sourceRoot":"","sources":["../../src/lib/session-apply.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,176 @@
1
+ import type { Config } from "../types/index.js";
2
+ export declare const CODEWITH_NATIVE_IMPORTS_ENV = "HASNA_CONFIGS_CODEWITH_NATIVE_IMPORTS";
3
+ export declare const SESSION_RENDER_MANAGED_MARKER = "Managed by @hasna/configs session render";
4
+ export declare const SESSION_RENDER_SCHEMA = "hasna.configs.session-render/v1";
5
+ export declare const RAW_STORE_ROOT_ENV = "HASNA_CONFIGS_HOME";
6
+ export declare const SESSION_RENDER_TOOLS: readonly ["claude", "codex", "cursor", "opencode", "codewith"];
7
+ export type SessionRenderTool = (typeof SESSION_RENDER_TOOLS)[number];
8
+ export type SessionRenderMode = "native-imports" | "flattened-markdown" | "cursor-mdc" | "opencode-instructions";
9
+ export type SessionInstructionLayer = "global" | "tool" | "account" | "agent" | "project" | "local";
10
+ export type SessionInstructionMerge = "append" | "replace";
11
+ export type SessionRenderFileRole = "index" | "fragment" | "rule" | "config" | "manifest";
12
+ export type SessionRenderTargetKind = "session-home" | "project-root" | "blocked";
13
+ export type SessionTargetOwnerKind = "provider-profile" | "project" | "blocked";
14
+ export interface SessionInstructionOwner {
15
+ kind: string;
16
+ id: string;
17
+ }
18
+ export interface SessionInstructionSourcePath {
19
+ path: string;
20
+ editable?: boolean;
21
+ required?: boolean;
22
+ hash?: string;
23
+ }
24
+ export interface SessionInstructionRule {
25
+ id: string;
26
+ content: string;
27
+ label?: string;
28
+ path?: string;
29
+ globs?: string[];
30
+ hash?: string;
31
+ metadata?: Record<string, unknown> | null;
32
+ }
33
+ export interface SessionToolAdapter {
34
+ tool: SessionRenderTool;
35
+ mode: SessionRenderMode;
36
+ indexFile?: string;
37
+ configFile?: string;
38
+ managedDir: string;
39
+ envVar?: string;
40
+ nativeImports: boolean;
41
+ description: string;
42
+ }
43
+ export interface SessionInstructionSource {
44
+ id: string;
45
+ content: string;
46
+ label?: string;
47
+ layer?: SessionInstructionLayer;
48
+ merge?: SessionInstructionMerge;
49
+ order?: number;
50
+ path?: string;
51
+ rules?: SessionInstructionRule[];
52
+ provenance?: Record<string, unknown> | null;
53
+ targetProviders?: string[];
54
+ owner?: SessionInstructionOwner | null;
55
+ sourcePaths?: SessionInstructionSourcePath[];
56
+ globs?: string[];
57
+ hash?: string;
58
+ nonOverridable?: boolean;
59
+ replacementScope?: string;
60
+ metadata?: Record<string, unknown> | null;
61
+ }
62
+ export interface SessionTargetOwner {
63
+ kind: SessionTargetOwnerKind;
64
+ tool: SessionRenderTool;
65
+ profile: string;
66
+ targetHome: string;
67
+ projectRoot: string | null;
68
+ ownedBy: "open-configs";
69
+ reason: string;
70
+ }
71
+ export interface SessionRenderInput {
72
+ tool: SessionRenderTool;
73
+ profile: string;
74
+ sources: SessionInstructionSource[];
75
+ projectRoot?: string;
76
+ targetHome?: string;
77
+ sessionId?: string;
78
+ generatedAt?: string;
79
+ codewithNativeImports?: boolean;
80
+ allowEmptySources?: boolean;
81
+ }
82
+ export interface SessionRenderFile {
83
+ path: string;
84
+ relativePath: string;
85
+ role: SessionRenderFileRole;
86
+ content: string;
87
+ sha256: string;
88
+ sourceIds: string[];
89
+ }
90
+ export interface SessionRenderManifest {
91
+ schema: typeof SESSION_RENDER_SCHEMA;
92
+ tool: SessionRenderTool;
93
+ adapterMode: SessionRenderMode;
94
+ profile: string;
95
+ sessionId: string | null;
96
+ targetHome: string;
97
+ targetKind: SessionRenderTargetKind;
98
+ targetOwner: SessionTargetOwner;
99
+ writable: boolean;
100
+ blocked: boolean;
101
+ blockers: string[];
102
+ generatedAt: string;
103
+ env: Record<string, string>;
104
+ sourceHash: string;
105
+ sources: Array<{
106
+ id: string;
107
+ label: string;
108
+ layer: SessionInstructionLayer;
109
+ merge: SessionInstructionMerge;
110
+ order: number;
111
+ path: string | null;
112
+ targetProviders: string[];
113
+ owner: SessionInstructionOwner | null;
114
+ sourcePaths: SessionInstructionSourcePath[];
115
+ hash: string | null;
116
+ nonOverridable: boolean;
117
+ replacementScope: string | null;
118
+ rules: Array<{
119
+ id: string;
120
+ label: string;
121
+ path: string;
122
+ globs: string[];
123
+ hash: string | null;
124
+ }>;
125
+ provenance: Record<string, unknown> | null;
126
+ }>;
127
+ skippedSources: Array<{
128
+ id: string;
129
+ label: string;
130
+ targetProviders: string[];
131
+ reason: string;
132
+ }>;
133
+ files: Array<{
134
+ path: string;
135
+ relativePath: string;
136
+ role: SessionRenderFileRole;
137
+ sha256: string;
138
+ sourceIds: string[];
139
+ }>;
140
+ warnings: string[];
141
+ }
142
+ export interface SessionRenderPlan {
143
+ dryRun: true;
144
+ tool: SessionRenderTool;
145
+ adapter: SessionToolAdapter;
146
+ profile: string;
147
+ sessionId: string | null;
148
+ targetHome: string;
149
+ targetKind: SessionRenderTargetKind;
150
+ targetOwner: SessionTargetOwner;
151
+ writable: boolean;
152
+ blocked: boolean;
153
+ blockers: string[];
154
+ env: Record<string, string>;
155
+ files: SessionRenderFile[];
156
+ manifest: SessionRenderManifest;
157
+ manifestFile: SessionRenderFile;
158
+ allFiles: SessionRenderFile[];
159
+ warnings: string[];
160
+ }
161
+ export declare const SESSION_TOOL_ADAPTERS: Record<SessionRenderTool, SessionToolAdapter>;
162
+ export declare function cleanSessionPathInput(path: string): string;
163
+ export declare function resolveSessionPath(path: string): string;
164
+ export declare function resolveSessionTargetOwnership(input: Pick<SessionRenderInput, "tool" | "profile" | "projectRoot">, target: {
165
+ targetHome: string;
166
+ targetKind: SessionRenderTargetKind;
167
+ }): SessionTargetOwner;
168
+ export declare function planSessionRender(input: SessionRenderInput): SessionRenderPlan;
169
+ export declare function sourceFromFilePath(path: string, content: string, order?: number): SessionInstructionSource;
170
+ export declare function sourceFromConfig(config: Pick<Config, "slug" | "name" | "content" | "agent" | "target_path">, order?: number, layer?: SessionInstructionLayer): SessionInstructionSource;
171
+ export declare function sourcesFromIdentityExport(value: unknown, options?: {
172
+ path?: string;
173
+ tool?: SessionRenderTool;
174
+ orderOffset?: number;
175
+ }): SessionInstructionSource[];
176
+ //# sourceMappingURL=session-render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-render.d.ts","sourceRoot":"","sources":["../../src/lib/session-render.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=session-render.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-render.test.d.ts","sourceRoot":"","sources":["../../src/lib/session-render.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import type { SyncResult } from "../types/index.js";
2
+ import { getDatabase } from "../db/database.js";
3
+ export interface SyncFromDirOptions {
4
+ db?: ReturnType<typeof getDatabase>;
5
+ dryRun?: boolean;
6
+ recursive?: boolean;
7
+ }
8
+ export declare function syncFromDir(dir: string, opts?: SyncFromDirOptions): Promise<SyncResult>;
9
+ export declare function syncToDir(dir: string, opts?: {
10
+ db?: ReturnType<typeof getDatabase>;
11
+ dryRun?: boolean;
12
+ }): Promise<SyncResult>;
13
+ //# sourceMappingURL=sync-dir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-dir.d.ts","sourceRoot":"","sources":["../../src/lib/sync-dir.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAQhD,MAAM,WAAW,kBAAkB;IACjC,EAAE,CAAC,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC,CA8BjG;AAED,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,EAAE,CAAC,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAetI"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sync-dir.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-dir.test.d.ts","sourceRoot":"","sources":["../../src/lib/sync-dir.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sync-known.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-known.test.d.ts","sourceRoot":"","sources":["../../src/lib/sync-known.test.ts"],"names":[],"mappings":""}