@hasna/instructions 0.6.1 → 0.7.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 (85) hide show
  1. package/README.md +141 -10
  2. package/dist/chunks/{apply-ynfn1av7.js → apply-c3sd4agz.js} +5 -3
  3. package/dist/chunks/{apply-sfzja1f3.js → apply-pnn7a3y7.js} +6 -3
  4. package/dist/chunks/database-wstmr56z.js +23 -0
  5. package/dist/chunks/{index-pkscjnj5.js → index-3djthcm6.js} +0 -1
  6. package/dist/chunks/index-5d7zdftc.js +186 -0
  7. package/dist/chunks/{index-1hpwskwd.js → index-6jncnnw7.js} +318 -329
  8. package/dist/chunks/index-8rb7ng2y.js +148 -0
  9. package/dist/chunks/{index-v7dkb384.js → index-aj66f6xr.js} +243 -100
  10. package/dist/chunks/index-fpeyzn3n.js +186 -0
  11. package/dist/chunks/{index-9p9gn7gh.js → index-jg8ptcwh.js} +5 -7
  12. package/dist/chunks/index-mvckkf15.js +363 -0
  13. package/dist/chunks/index-n3fjspr0.js +119 -0
  14. package/dist/chunks/{index-85n5wnd8.js → index-pdpg8a44.js} +5 -7
  15. package/dist/chunks/{index-e9epbsvs.js → index-r7nfef2g.js} +15 -4
  16. package/dist/chunks/{index-axhwg61p.js → index-ypcef3a2.js} +15 -4
  17. package/dist/chunks/legacy-store-migration-z2m5yzyk.js +322 -0
  18. package/dist/chunks/{local-a9nen65z.js → local-0a9gja58.js} +142 -2
  19. package/dist/chunks/{local-0d8qrc92.js → local-969ye538.js} +153 -188
  20. package/dist/chunks/s3-backup-hxe3zpfz.js +240 -0
  21. package/dist/chunks/s3-config-hhght91k.js +14 -0
  22. package/dist/chunks/s3-object-store-n0s82swt.js +14 -0
  23. package/dist/chunks/{sync-vy1yjvs6.js → sync-q5hvwq6e.js} +4 -4
  24. package/dist/chunks/{sync-m46fc257.js → sync-xtkbm5br.js} +5 -4
  25. package/dist/chunks/{template-02wjvv05.js → template-fsfxpe4p.js} +1 -1
  26. package/dist/chunks/{template-ke972qqe.js → template-wgnzdn7h.js} +1 -1
  27. package/dist/cli/index.js +1236 -256
  28. package/dist/data/config-store.d.ts +10 -1
  29. package/dist/data/config-store.d.ts.map +1 -1
  30. package/dist/db/configs.d.ts +4 -1
  31. package/dist/db/configs.d.ts.map +1 -1
  32. package/dist/db/local.d.ts +1 -1
  33. package/dist/db/local.d.ts.map +1 -1
  34. package/dist/index.js +1086 -215
  35. package/dist/lib/apply.d.ts +7 -0
  36. package/dist/lib/apply.d.ts.map +1 -1
  37. package/dist/lib/compact-output.d.ts +3 -18
  38. package/dist/lib/compact-output.d.ts.map +1 -1
  39. package/dist/lib/export.d.ts +22 -3
  40. package/dist/lib/export.d.ts.map +1 -1
  41. package/dist/lib/import.d.ts +18 -0
  42. package/dist/lib/import.d.ts.map +1 -1
  43. package/dist/lib/legacy-store-migration.d.ts +39 -0
  44. package/dist/lib/legacy-store-migration.d.ts.map +1 -0
  45. package/dist/lib/managed-skill-runtimes.d.ts +1 -0
  46. package/dist/lib/managed-skill-runtimes.d.ts.map +1 -1
  47. package/dist/lib/sync-dir.d.ts.map +1 -1
  48. package/dist/mcp/index.js +41 -30
  49. package/dist/mcp/server.d.ts.map +1 -1
  50. package/dist/sdk/index.d.ts +2 -0
  51. package/dist/sdk/index.d.ts.map +1 -1
  52. package/dist/sdk/index.js +229 -10
  53. package/dist/sdk/resolve.d.ts +1 -1
  54. package/dist/sdk/resolve.d.ts.map +1 -1
  55. package/dist/sdk/v1-client.d.ts +58 -0
  56. package/dist/sdk/v1-client.d.ts.map +1 -0
  57. package/dist/sdk/v1.generated.d.ts +242 -21
  58. package/dist/sdk/v1.generated.d.ts.map +1 -1
  59. package/dist/server/cloud.d.ts.map +1 -1
  60. package/dist/server/index.d.ts +13 -5
  61. package/dist/server/index.d.ts.map +1 -1
  62. package/dist/server/index.js +1261 -427
  63. package/dist/server/openapi.d.ts +1379 -93
  64. package/dist/server/openapi.d.ts.map +1 -1
  65. package/dist/server/v1.d.ts +25 -1
  66. package/dist/server/v1.d.ts.map +1 -1
  67. package/dist/storage/cloud-store.d.ts +45 -2
  68. package/dist/storage/cloud-store.d.ts.map +1 -1
  69. package/dist/storage/index.d.ts +7 -0
  70. package/dist/storage/index.d.ts.map +1 -0
  71. package/dist/storage/index.js +744 -0
  72. package/dist/storage/s3-backup.d.ts +76 -0
  73. package/dist/storage/s3-backup.d.ts.map +1 -0
  74. package/dist/storage/s3-config.d.ts +46 -0
  75. package/dist/storage/s3-config.d.ts.map +1 -0
  76. package/dist/storage/s3-object-store.d.ts +70 -0
  77. package/dist/storage/s3-object-store.d.ts.map +1 -0
  78. package/dist/types/index.d.ts +98 -3
  79. package/dist/types/index.d.ts.map +1 -1
  80. package/hasna.contract.json +110 -0
  81. package/migrations/0001_instructions.sql +63 -0
  82. package/migrations/0002_api_keys.sql +20 -0
  83. package/migrations/0003_idempotency_receipts.sql +24 -0
  84. package/package.json +24 -13
  85. package/assets/skills/inbox/SKILL.md +0 -86
@@ -4,6 +4,13 @@ import type { ProfileVariables } from "../types/index.js";
4
4
  import { SESSION_RENDERER_OWNER_ID } from "./session-render.js";
5
5
  export declare function getConfigHome(): string;
6
6
  export declare function expandPath(p: string): string;
7
+ /**
8
+ * Compact a path to `~/...` only when tilde expansion uses the conventional
9
+ * HOME. A custom CONFIGS_HOME is an isolated target root, not permission to
10
+ * reinterpret arbitrary paths below the OS home. Segment-safe relative checks
11
+ * prevent `/home/user2` from being treated as a child of `/home/user`.
12
+ */
13
+ export declare function compactPathForConfigHome(p: string): string;
7
14
  export declare function normalizeTargetPath(p: string): string;
8
15
  export interface ApplyOptions {
9
16
  dryRun?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../src/lib/apply.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAA8B,MAAM,mBAAmB,CAAC;AAEzF,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAQ1D,OAAO,EAGL,yBAAyB,EAC1B,MAAM,qBAAqB,CAAC;AAO7B,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,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B;;;;;OAKG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,yBAAyB,GAAG,2BAA2B,GAAG,yBAAyB,GAAG,+BAA+B,CAAC;IACpI,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,OAAO,EAAE,wBAAwB,EAAE,CAAC;IACpC,QAAQ,EAAE,yBAAyB,EAAE,CAAC;CACvC;AAyRD,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,WAAW,CAAC,CA+BtB;AAkFD,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,WAAW,EAAE,CAAC,CAMxB;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,kBAAkB,CAAC,CAiC7B;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,GAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAM,GACtC,OAAO,CAAC,kBAAkB,CAAC,CAE7B"}
1
+ {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../src/lib/apply.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAA8B,MAAM,mBAAmB,CAAC;AAEzF,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAQ1D,OAAO,EAGL,yBAAyB,EAC1B,MAAM,qBAAqB,CAAC;AAO7B,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAK5C;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAQ1D;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,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B;;;;;OAKG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,yBAAyB,GAAG,2BAA2B,GAAG,yBAAyB,GAAG,+BAA+B,CAAC;IACpI,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,OAAO,EAAE,wBAAwB,EAAE,CAAC;IACpC,QAAQ,EAAE,yBAAyB,EAAE,CAAC;CACvC;AAyRD,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,WAAW,CAAC,CA+BtB;AAkFD,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,WAAW,EAAE,CAAC,CAMxB;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,kBAAkB,CAAC,CAiC7B;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,GAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAM,GACtC,OAAO,CAAC,kBAAkB,CAAC,CAE7B"}
@@ -1,6 +1,8 @@
1
- import type { ApplyResult, Config, Profile } from "../types/index.js";
1
+ import type { ApplyResult, Config, ConfigSummary, Profile } from "../types/index.js";
2
+ export type { ConfigSummary } from "../types/index.js";
2
3
  export declare const DEFAULT_LIST_LIMIT = 20;
3
4
  export declare const MAX_LIST_LIMIT = 100;
5
+ export declare const MAX_LIST_CURSOR = 100000;
4
6
  export interface Page<T> {
5
7
  items: T[];
6
8
  total: number;
@@ -29,23 +31,6 @@ export declare function pagedPayload<T>(items: T[], opts?: {
29
31
  }): PagedPayload<T>;
30
32
  export declare function truncateText(value: string | null | undefined, max?: number): string;
31
33
  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
34
  export declare function summarizeConfig(config: Config, opts?: {
50
35
  verbose?: boolean;
51
36
  }): ConfigSummary;
@@ -1 +1 @@
1
- {"version":3,"file":"compact-output.d.ts","sourceRoot":"","sources":["../../src/lib/compact-output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compact-output.d.ts","sourceRoot":"","sources":["../../src/lib/compact-output.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,31 @@
1
- import type { ConfigFilter } from "../types/index.js";
1
+ import type { ConfigFilter, InstructionsDomainArchiveCounts, InstructionsDomainArchiveIntegrity, InstructionsDomainArchiveV2 } from "../types/index.js";
2
2
  import { type ConfigStore } from "../data/config-store.js";
3
3
  export interface ExportOptions {
4
4
  filter?: ConfigFilter;
5
5
  profileId?: string;
6
6
  store?: ConfigStore;
7
7
  }
8
- export declare function exportConfigs(outputPath: string, opts?: ExportOptions): Promise<{
8
+ export interface ExportResult {
9
9
  path: string;
10
10
  count: number;
11
- }>;
11
+ counts: InstructionsDomainArchiveCounts;
12
+ integrity: InstructionsDomainArchiveIntegrity;
13
+ }
14
+ export declare function canonicalDomainJson(value: unknown): string;
15
+ /**
16
+ * Exact archive/deployment evidence. Every archived operational timestamp is
17
+ * intentionally part of these hashes so an in-place migration cannot erase or
18
+ * rewrite temporal state while retaining the same logical IDs and content.
19
+ */
20
+ export declare function computeDomainIntegrity(domain: InstructionsDomainArchiveV2): InstructionsDomainArchiveIntegrity;
21
+ /**
22
+ * The strongest post-restore comparison exposed by ConfigStore. ConfigStore
23
+ * can recreate domain content, versions, relationships and the applied/null
24
+ * machine state, but it has no API for assigning archived creation/update,
25
+ * snapshot, or exact machine-application timestamps.
26
+ */
27
+ export declare function computeRestorableDomainIntegrity(domain: InstructionsDomainArchiveV2): InstructionsDomainArchiveIntegrity;
28
+ export declare function validateInstructionsDomainArchive(value: unknown): InstructionsDomainArchiveV2;
29
+ export declare function collectInstructionsDomain(opts?: ExportOptions): Promise<InstructionsDomainArchiveV2>;
30
+ export declare function exportConfigs(outputPath: string, opts?: ExportOptions): Promise<ExportResult>;
12
31
  //# sourceMappingURL=export.d.ts.map
@@ -1 +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,EAAsB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE/E,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;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"}
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/lib/export.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEV,YAAY,EACZ,+BAA+B,EAC/B,kCAAkC,EAElC,2BAA2B,EAC5B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE/E,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,+BAA+B,CAAC;IACxC,SAAS,EAAE,kCAAkC,CAAC;CAC/C;AAyCD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE1D;AAmJD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,2BAA2B,GAAG,kCAAkC,CAK9G;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,2BAA2B,GAAG,kCAAkC,CAKxH;AAqBD,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,OAAO,GAAG,2BAA2B,CA4D7F;AAiBD,wBAAsB,yBAAyB,CAC7C,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,2BAA2B,CAAC,CAiEtC;AAED,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,YAAY,CAAC,CAuCvB"}
@@ -1,14 +1,32 @@
1
+ import type { InstructionsDomainArchiveManifestV2 } from "../types/index.js";
1
2
  import { type ConfigStore } from "../data/config-store.js";
2
3
  export type ImportConflict = "skip" | "overwrite" | "version";
3
4
  export interface ImportOptions {
4
5
  conflict?: ImportConflict;
5
6
  store?: ConfigStore;
6
7
  }
8
+ interface MutationCounts {
9
+ created: number;
10
+ updated: number;
11
+ skipped: number;
12
+ }
13
+ export interface ImportDomainCounts {
14
+ configs: MutationCounts;
15
+ config_snapshots: Pick<MutationCounts, "created" | "skipped">;
16
+ profiles: MutationCounts;
17
+ profile_config_bindings: MutationCounts;
18
+ profile_asset_bindings: MutationCounts;
19
+ machines: MutationCounts;
20
+ }
7
21
  export interface ImportResult {
22
+ /** Legacy config-only summary fields retained for CLI/API compatibility. */
8
23
  created: number;
9
24
  updated: number;
10
25
  skipped: number;
26
+ counts: ImportDomainCounts;
11
27
  errors: string[];
28
+ integrity: InstructionsDomainArchiveManifestV2["integrity"] | null;
12
29
  }
13
30
  export declare function importConfigs(bundlePath: string, opts?: ImportOptions): Promise<ImportResult>;
31
+ export {};
14
32
  //# sourceMappingURL=import.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/lib/import.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE/E,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;AAE9D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;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"}
1
+ {"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/lib/import.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAIV,mCAAmC,EAGpC,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAS/E,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;AAE9D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,cAAc,CAAC;IACxB,gBAAgB,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC;IAC9D,QAAQ,EAAE,cAAc,CAAC;IACzB,uBAAuB,EAAE,cAAc,CAAC;IACxC,sBAAsB,EAAE,cAAc,CAAC;IACvC,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,mCAAmC,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;CACpE;AAiXD,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,YAAY,CAAC,CAuBvB"}
@@ -0,0 +1,39 @@
1
+ export type LegacyStoreMergePolicy = "preserve-destination";
2
+ export interface LegacyStoreMigrationOptions {
3
+ sourcePath?: string;
4
+ destinationPath?: string;
5
+ backupPath?: string;
6
+ dryRun?: boolean;
7
+ mergePolicy?: LegacyStoreMergePolicy;
8
+ /** Required acknowledgement that this is an explicit on-box operator action. */
9
+ operatorConfirmed: boolean;
10
+ }
11
+ export interface LegacyStoreMigrationCounts {
12
+ configs: number;
13
+ snapshots: number;
14
+ profiles: number;
15
+ profileConfigs: number;
16
+ machines: number;
17
+ }
18
+ export interface LegacyStoreMigrationResult {
19
+ dryRun: boolean;
20
+ source: LegacyStoreMigrationCounts;
21
+ migrated: LegacyStoreMigrationCounts;
22
+ skipped: LegacyStoreMigrationCounts;
23
+ conflicts: number;
24
+ snapshotsCreated: number;
25
+ backupCreated: boolean;
26
+ sourcePath: string;
27
+ destinationPath: string;
28
+ backupPath: string | null;
29
+ }
30
+ export declare class LegacyStoreMigrationError extends Error {
31
+ readonly code: string;
32
+ constructor(code: string, message: string);
33
+ }
34
+ export declare function legacyInstructionsStorePaths(home?: string): {
35
+ sourcePath: string;
36
+ destinationPath: string;
37
+ };
38
+ export declare function migrateLegacyInstructionsStore(options: LegacyStoreMigrationOptions): LegacyStoreMigrationResult;
39
+ //# sourceMappingURL=legacy-store-migration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-store-migration.d.ts","sourceRoot":"","sources":["../../src/lib/legacy-store-migration.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,sBAAsB,GAAG,sBAAsB,CAAC;AAE5D,MAAM,WAAW,2BAA2B;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,sBAAsB,CAAC;IACrC,gFAAgF;IAChF,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,0BAA0B,CAAC;IACnC,QAAQ,EAAE,0BAA0B,CAAC;IACrC,OAAO,EAAE,0BAA0B,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAK1C;AAaD,wBAAgB,4BAA4B,CAAC,IAAI,SAAgC,GAAG;IAClF,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;CACzB,CAKA;AAkQD,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,2BAA2B,GACnC,0BAA0B,CAiF5B"}
@@ -41,6 +41,7 @@ export interface ManagedSkillRuntimeReconcileReport {
41
41
  }
42
42
  export interface ManagedSkillRuntimeOptions {
43
43
  homeDir?: string;
44
+ /** @deprecated Explicit compatibility input only; manage private skills through the Skills CLI. */
44
45
  assetPath?: string;
45
46
  conversationsCommand?: string;
46
47
  agent?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"managed-skill-runtimes.d.ts","sourceRoot":"","sources":["../../src/lib/managed-skill-runtimes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"managed-skill-runtimes.d.ts","sourceRoot":"","sources":["../../src/lib/managed-skill-runtimes.ts"],"names":[],"mappings":"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"}
@@ -1 +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,EAAsB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAQ/E,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,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,CAoCjG;AAED,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,WAAW,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAmBtH"}
1
+ {"version":3,"file":"sync-dir.d.ts","sourceRoot":"","sources":["../../src/lib/sync-dir.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAQ/E,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,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,CAmCjG;AAED,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,WAAW,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAkBtH"}
package/dist/mcp/index.js CHANGED
@@ -6,11 +6,11 @@ import {
6
6
  import {
7
7
  syncFromDir,
8
8
  syncToDir
9
- } from "../chunks/index-9p9gn7gh.js";
9
+ } from "../chunks/index-jg8ptcwh.js";
10
10
  import {
11
11
  applyConfigsWithReport,
12
12
  normalizeTargetPath
13
- } from "../chunks/index-axhwg61p.js";
13
+ } from "../chunks/index-ypcef3a2.js";
14
14
  import {
15
15
  detectMachineContext,
16
16
  getReportedDbPath,
@@ -18,11 +18,10 @@ import {
18
18
  resolveConfigStore,
19
19
  resolveProfileVariables,
20
20
  summarizeApplyResult,
21
- summarizeConfig,
22
21
  summarizeProfile
23
- } from "../chunks/index-v7dkb384.js";
22
+ } from "../chunks/index-aj66f6xr.js";
24
23
  import"../chunks/index-35z65jsa.js";
25
- import"../chunks/index-pkscjnj5.js";
24
+ import"../chunks/index-3djthcm6.js";
26
25
  import {
27
26
  __commonJS,
28
27
  __require
@@ -32,8 +31,8 @@ import {
32
31
  var require_package = __commonJS((exports, module) => {
33
32
  module.exports = {
34
33
  name: "@hasna/instructions",
35
- version: "0.6.1",
36
- description: "AI coding agent instruction & configuration manager \u2014 store, version, apply, and share all your AI coding configs. CLI + MCP + HTTP API (instructions-serve) + generated SDK.",
34
+ version: "0.7.1",
35
+ description: "AI coding agent instruction and configuration manager with fail-closed hosted clients, explicit local SQLite, native S3 backups, CLI, MCP, HTTP API, and generated SDK.",
37
36
  type: "module",
38
37
  main: "dist/index.js",
39
38
  types: "dist/index.d.ts",
@@ -52,34 +51,41 @@ var require_package = __commonJS((exports, module) => {
52
51
  "./sdk": {
53
52
  types: "./dist/sdk/index.d.ts",
54
53
  import: "./dist/sdk/index.js"
54
+ },
55
+ "./storage": {
56
+ types: "./dist/storage/index.d.ts",
57
+ import: "./dist/storage/index.js"
55
58
  }
56
59
  },
57
60
  files: [
58
61
  "dist",
59
- "assets/skills/inbox/SKILL.md",
60
62
  "LICENSE",
61
63
  "README.md",
62
64
  "!dist/**/*.test.d.ts",
63
65
  "!dist/**/*.test.d.ts.map",
64
- "!dist/test-support/**"
66
+ "!dist/test-support/**",
67
+ "migrations",
68
+ "hasna.contract.json"
65
69
  ],
66
70
  scripts: {
67
71
  clean: "rm -rf dist",
68
- build: 'bun run clean && bun build src/cli/index.tsx --outdir dist --root src --target bun --splitting --chunk-naming "chunks/[name]-[hash].[ext]" --external ink --external react --external chalk --external pg --external @modelcontextprotocol/sdk && bun build src/mcp/index.ts --outdir dist --root src --target bun --splitting --chunk-naming "chunks/[name]-[hash].[ext]" --external pg --external @modelcontextprotocol/sdk && bun build src/server/index.ts --outdir dist/server --target bun --external pg && bun build src/index.ts --outdir dist --target bun --external pg && bun build src/sdk/index.ts --outdir dist/sdk --target bun && tsc --emitDeclarationOnly --outDir dist',
69
- "build:server": 'bun run clean && bun build src/cli/index.tsx --outdir dist --root src --target bun --splitting --chunk-naming "chunks/[name]-[hash].[ext]" --external ink --external react --external chalk --external pg --external @modelcontextprotocol/sdk && bun build src/mcp/index.ts --outdir dist --root src --target bun --splitting --chunk-naming "chunks/[name]-[hash].[ext]" --external pg --external @modelcontextprotocol/sdk && bun build src/server/index.ts --outdir dist/server --target bun --external pg && bun build src/index.ts --outdir dist --target bun --external pg && bun build src/sdk/index.ts --outdir dist/sdk --target bun',
72
+ build: 'bun run clean && bun build src/cli/index.tsx --outdir dist --root src --target bun --splitting --chunk-naming "chunks/[name]-[hash].[ext]" --external ink --external react --external chalk --external pg --external @modelcontextprotocol/sdk && bun build src/mcp/index.ts --outdir dist --root src --target bun --splitting --chunk-naming "chunks/[name]-[hash].[ext]" --external pg --external @modelcontextprotocol/sdk && bun build src/server/index.ts --outdir dist/server --target bun --external pg && bun build src/index.ts --outdir dist --target bun --external pg && bun build src/storage/index.ts --outdir dist/storage --target bun && bun build src/sdk/index.ts --outdir dist/sdk --target bun && tsc --emitDeclarationOnly --outDir dist',
73
+ "build:server": 'bun run clean && bun build src/cli/index.tsx --outdir dist --root src --target bun --splitting --chunk-naming "chunks/[name]-[hash].[ext]" --external ink --external react --external chalk --external pg --external @modelcontextprotocol/sdk && bun build src/mcp/index.ts --outdir dist --root src --target bun --splitting --chunk-naming "chunks/[name]-[hash].[ext]" --external pg --external @modelcontextprotocol/sdk && bun build src/server/index.ts --outdir dist/server --target bun --external pg && bun build src/index.ts --outdir dist --target bun --external pg && bun build src/storage/index.ts --outdir dist/storage --target bun && bun build src/sdk/index.ts --outdir dist/sdk --target bun',
70
74
  migrate: "bun run src/server/index.ts migrate",
71
75
  "generate:sdk": "bun run scripts/generate-sdk.ts",
72
76
  "kit:check": "bunx @hasna/contracts vendor-kit --check",
73
77
  typecheck: "tsc --noEmit",
74
- test: "env -u HASNA_INSTRUCTIONS_API_URL -u HASNA_INSTRUCTIONS_API_KEY -u INSTRUCTIONS_API_URL -u INSTRUCTIONS_API_KEY -u HASNA_INSTRUCTIONS_API_KEY_OVERRIDE -u HASNA_INSTRUCTIONS_API_KEY_REF -u HASNA_PROFILE HASNA_STATE_HOME=$(mktemp -d) bun test",
78
+ test: "env -u HASNA_INSTRUCTIONS_API_URL -u HASNA_INSTRUCTIONS_API_KEY -u INSTRUCTIONS_API_URL -u INSTRUCTIONS_API_KEY -u HASNA_INSTRUCTIONS_API_KEY_OVERRIDE -u HASNA_INSTRUCTIONS_API_KEY_REF -u HASNA_PROFILE HASNA_STATE_HOME=$(mktemp -d) bun test --timeout 120000",
75
79
  "check:package-secrets": "bun run src/cli/index.tsx package-manager-scan --fail-on-findings .",
76
80
  "dev:cli": "bun run src/cli/index.tsx",
77
81
  "dev:mcp": "bun run src/mcp/index.ts",
78
82
  "dev:serve": "bun run src/server/index.ts",
79
83
  seed: "bun run scripts/seed.ts",
80
- prepublishOnly: "bun run scripts/check-publish-hold.ts && bun run build",
84
+ prepublishOnly: "bun run scripts/check-publish-hold.ts && bun run typecheck && bun run test && bun run build && bun run scan:artifact",
81
85
  postinstall: `node -e "const fs=require('node:fs'),path=require('node:path'),os=require('node:os');const home=process.env.HOME||process.env.USERPROFILE||os.homedir();const exact=process.env.HASNA_CONFIGS_HOME;const configHome=process.env.HASNA_CONFIG_HOME;const root=exact&&exact.trim()?path.resolve(exact.trim()):(configHome&&configHome.trim()?path.join(configHome.trim(),'configs'):path.join(home,'.hasna','instructions'));try{fs.mkdirSync(root,{recursive:true,mode:0o700});fs.mkdirSync(path.join(root,'backups'),{recursive:true,mode:0o700});}catch{}"`,
82
- prepack: "bun run build"
86
+ prepack: "bun run build && bun run scan:artifact",
87
+ "test:postgres": "bun scripts/live-postgres-test.ts",
88
+ "scan:artifact": "bun scripts/scan-artifact.ts"
83
89
  },
84
90
  keywords: [
85
91
  "instructions",
@@ -100,10 +106,10 @@ var require_package = __commonJS((exports, module) => {
100
106
  },
101
107
  repository: {
102
108
  type: "git",
103
- url: "git+https://github.com/hasna/apps.git",
109
+ url: "https://github.com/hasna/apps.git",
104
110
  directory: "apps/instructions"
105
111
  },
106
- homepage: "https://github.com/hasna/apps/tree/main/apps/instructions",
112
+ homepage: "https://github.com/hasna/apps/tree/main/apps/instructions#readme",
107
113
  bugs: {
108
114
  url: "https://github.com/hasna/apps/issues"
109
115
  },
@@ -117,12 +123,15 @@ var require_package = __commonJS((exports, module) => {
117
123
  "@modelcontextprotocol/sdk": "^1.12.1",
118
124
  chalk: "^5.4.1",
119
125
  commander: "^13.1.0",
120
- hono: "4.13.3",
126
+ hono: "4.13.7",
121
127
  ink: "^5.2.0",
122
128
  pg: "^8.13.3",
123
129
  react: "^18.3.1",
124
130
  zod: "^3.24.2"
125
131
  },
132
+ overrides: {
133
+ hono: "4.13.7"
134
+ },
126
135
  devDependencies: {
127
136
  "@hasna/contracts": "1.0.2",
128
137
  "@types/bun": "1.3.14",
@@ -130,7 +139,8 @@ var require_package = __commonJS((exports, module) => {
130
139
  "@types/react": "^18.3.18",
131
140
  "bun-types": "1.3.14",
132
141
  typescript: "^5.7.3"
133
- }
142
+ },
143
+ packageManager: "bun@1.3.14"
134
144
  };
135
145
  });
136
146
 
@@ -258,18 +268,19 @@ function buildServer() {
258
268
  try {
259
269
  switch (name) {
260
270
  case "list_configs": {
261
- const configs = await store.listConfigs({
271
+ const filter = {
262
272
  category: args["category"] || undefined,
263
273
  agent: args["agent"] || undefined,
264
274
  kind: args["kind"] || undefined,
265
275
  search: args["search"] || undefined
276
+ };
277
+ const bounds = { limit: args["limit"], cursor: args["cursor"] };
278
+ const page = Boolean(args["verbose"]) ? await store.listConfigSummariesPage(filter, bounds) : await store.listConfigIdentitiesPage(filter, bounds);
279
+ return ok({
280
+ ...page,
281
+ count: page.items.length,
282
+ hint: "Use get_config with id_or_slug for full content; list_configs verbose=true adds content-free path, description, tags, and output counts."
266
283
  });
267
- const summaries = configs.map((c) => summarizeConfig(c, { verbose: Boolean(args["verbose"]) }));
268
- return ok(pagedPayload(summaries, {
269
- limit: args["limit"],
270
- cursor: args["cursor"],
271
- hint: "Use get_config with id_or_slug for full content, or list_configs verbose=true for tags/output targets."
272
- }));
273
284
  }
274
285
  case "get_config": {
275
286
  const c = await store.getConfig(args["id_or_slug"]);
@@ -402,7 +413,7 @@ function buildServer() {
402
413
  const stats = await store.getConfigStats();
403
414
  const allConfigs = await store.listConfigs({ kind: "file" });
404
415
  const { existsSync: ex, readFileSync: rf } = await import("fs");
405
- const { expandPath } = await import("../chunks/apply-ynfn1av7.js");
416
+ const { expandPath } = await import("../chunks/apply-c3sd4agz.js");
406
417
  const { redactContent, redactFormatForTarget } = await import("../chunks/redact-hnq4sc4r.js");
407
418
  let drifted = 0, missing = 0, templates = 0;
408
419
  const driftedSlugs = [];
@@ -434,7 +445,7 @@ function buildServer() {
434
445
  });
435
446
  }
436
447
  case "sync_known": {
437
- const { syncKnown } = await import("../chunks/sync-vy1yjvs6.js");
448
+ const { syncKnown } = await import("../chunks/sync-q5hvwq6e.js");
438
449
  const result = await syncKnown({
439
450
  store,
440
451
  agent: args["agent"] || undefined,
@@ -443,17 +454,17 @@ function buildServer() {
443
454
  return ok(result);
444
455
  }
445
456
  case "sync_project": {
446
- const { syncProject } = await import("../chunks/sync-vy1yjvs6.js");
457
+ const { syncProject } = await import("../chunks/sync-q5hvwq6e.js");
447
458
  const dir = args["project_dir"] || process.cwd();
448
459
  const result = await syncProject({ store, projectDir: dir });
449
460
  return ok(result);
450
461
  }
451
462
  case "render_template": {
452
- const { renderTemplate } = await import("../chunks/template-02wjvv05.js");
463
+ const { renderTemplate } = await import("../chunks/template-fsfxpe4p.js");
453
464
  const config = await store.getConfig(args["id_or_slug"]);
454
465
  const vars = args["vars"] || {};
455
466
  if (args["use_env"]) {
456
- const { extractTemplateVars } = await import("../chunks/template-02wjvv05.js");
467
+ const { extractTemplateVars } = await import("../chunks/template-fsfxpe4p.js");
457
468
  for (const v of extractTemplateVars(config.content)) {
458
469
  if (!(v.name in vars) && process.env[v.name]) {
459
470
  vars[v.name] = process.env[v.name];
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AA6EnE,wBAAgB,WAAW,IAAI,MAAM,CAyWpC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AA6EnE,wBAAgB,WAAW,IAAI,MAAM,CA4WpC"}
@@ -19,4 +19,6 @@
19
19
  export { INSTRUCTIONS_SDK_APP, createInstructionsV1ClientFromEnv, resolveInstructionsSdkTransport, } from "./resolve.js";
20
20
  export type { InstructionsSdkEnv, InstructionsSdkKeychainOptions, InstructionsSdkResolveOptions, InstructionsSdkTransportReport, } from "./resolve.js";
21
21
  export * from "./v1.generated.js";
22
+ export { InstructionsV1Client } from "./v1-client.js";
23
+ export type { InstructionsV1ClientOptions } from "./v1-client.js";
22
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EACL,oBAAoB,EACpB,iCAAiC,EACjC,+BAA+B,GAChC,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,kBAAkB,EAClB,8BAA8B,EAC9B,6BAA6B,EAC7B,8BAA8B,GAC/B,MAAM,cAAc,CAAC;AAItB,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EACL,oBAAoB,EACpB,iCAAiC,EACjC,+BAA+B,GAChC,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,kBAAkB,EAClB,8BAA8B,EAC9B,6BAA6B,EAC7B,8BAA8B,GAC/B,MAAM,cAAc,CAAC;AAItB,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,YAAY,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC"}