@dsh-enhanced/lark-channel 0.1.48 → 0.1.53

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 (205) hide show
  1. package/README.md +20 -8
  2. package/docs/rsi-setup.md +145 -12
  3. package/docs/setup.md +29 -14
  4. package/docs/supervised-growth.md +2 -0
  5. package/lib/adapter.d.ts +6 -0
  6. package/lib/adapter.d.ts.map +1 -1
  7. package/lib/adapter.js +79 -8
  8. package/lib/adapter.js.map +1 -1
  9. package/lib/business-cli-install.d.ts +9 -0
  10. package/lib/business-cli-install.d.ts.map +1 -0
  11. package/lib/business-cli-install.js +367 -0
  12. package/lib/business-cli-install.js.map +1 -0
  13. package/lib/business-environment.d.ts +2 -0
  14. package/lib/business-environment.d.ts.map +1 -0
  15. package/lib/business-environment.js +16 -0
  16. package/lib/business-environment.js.map +1 -0
  17. package/lib/business-skill.d.ts +32 -0
  18. package/lib/business-skill.d.ts.map +1 -0
  19. package/lib/business-skill.js +202 -0
  20. package/lib/business-skill.js.map +1 -0
  21. package/lib/launchd-control.d.ts +24 -0
  22. package/lib/launchd-control.d.ts.map +1 -0
  23. package/lib/launchd-control.js +68 -0
  24. package/lib/launchd-control.js.map +1 -0
  25. package/lib/launchd-identity.d.ts +34 -0
  26. package/lib/launchd-identity.d.ts.map +1 -0
  27. package/lib/launchd-identity.js +184 -0
  28. package/lib/launchd-identity.js.map +1 -0
  29. package/lib/launchd-target-lock.d.ts +6 -0
  30. package/lib/launchd-target-lock.d.ts.map +1 -0
  31. package/lib/launchd-target-lock.js +48 -0
  32. package/lib/launchd-target-lock.js.map +1 -0
  33. package/lib/launchd.d.ts +18 -0
  34. package/lib/launchd.d.ts.map +1 -1
  35. package/lib/launchd.js +211 -54
  36. package/lib/launchd.js.map +1 -1
  37. package/lib/rsi-authority-config.d.ts +29 -0
  38. package/lib/rsi-authority-config.d.ts.map +1 -0
  39. package/lib/rsi-authority-config.js +233 -0
  40. package/lib/rsi-authority-config.js.map +1 -0
  41. package/lib/rsi-authority-resources.d.ts +36 -0
  42. package/lib/rsi-authority-resources.d.ts.map +1 -0
  43. package/lib/rsi-authority-resources.js +139 -0
  44. package/lib/rsi-authority-resources.js.map +1 -0
  45. package/lib/rsi-authority-runtime.d.ts +50 -0
  46. package/lib/rsi-authority-runtime.d.ts.map +1 -0
  47. package/lib/rsi-authority-runtime.js +393 -0
  48. package/lib/rsi-authority-runtime.js.map +1 -0
  49. package/lib/rsi-bootstrap-manifest.d.ts +39 -0
  50. package/lib/rsi-bootstrap-manifest.d.ts.map +1 -0
  51. package/lib/rsi-bootstrap-manifest.js +345 -0
  52. package/lib/rsi-bootstrap-manifest.js.map +1 -0
  53. package/lib/rsi-bootstrap.d.ts +30 -0
  54. package/lib/rsi-bootstrap.d.ts.map +1 -0
  55. package/lib/rsi-bootstrap.js +363 -0
  56. package/lib/rsi-bootstrap.js.map +1 -0
  57. package/lib/rsi-build.d.ts +54 -0
  58. package/lib/rsi-build.d.ts.map +1 -0
  59. package/lib/rsi-build.js +478 -0
  60. package/lib/rsi-build.js.map +1 -0
  61. package/lib/rsi-creation-build.d.ts +48 -0
  62. package/lib/rsi-creation-build.d.ts.map +1 -0
  63. package/lib/rsi-creation-build.js +363 -0
  64. package/lib/rsi-creation-build.js.map +1 -0
  65. package/lib/rsi-host-authorities.d.ts +18 -0
  66. package/lib/rsi-host-authorities.d.ts.map +1 -0
  67. package/lib/rsi-host-authorities.js +129 -0
  68. package/lib/rsi-host-authorities.js.map +1 -0
  69. package/lib/rsi-host-update.d.ts +113 -0
  70. package/lib/rsi-host-update.d.ts.map +1 -0
  71. package/lib/rsi-host-update.js +316 -0
  72. package/lib/rsi-host-update.js.map +1 -0
  73. package/lib/rsi-install-inputs.d.ts +43 -0
  74. package/lib/rsi-install-inputs.d.ts.map +1 -0
  75. package/lib/rsi-install-inputs.js +342 -0
  76. package/lib/rsi-install-inputs.js.map +1 -0
  77. package/lib/rsi-install.d.ts +54 -0
  78. package/lib/rsi-install.d.ts.map +1 -0
  79. package/lib/rsi-install.js +404 -0
  80. package/lib/rsi-install.js.map +1 -0
  81. package/lib/rsi-local-activation.d.ts +78 -0
  82. package/lib/rsi-local-activation.d.ts.map +1 -0
  83. package/lib/rsi-local-activation.js +485 -0
  84. package/lib/rsi-local-activation.js.map +1 -0
  85. package/lib/rsi-local-cohort.d.ts +70 -0
  86. package/lib/rsi-local-cohort.d.ts.map +1 -0
  87. package/lib/rsi-local-cohort.js +781 -0
  88. package/lib/rsi-local-cohort.js.map +1 -0
  89. package/lib/rsi-local-install.d.ts +68 -0
  90. package/lib/rsi-local-install.d.ts.map +1 -0
  91. package/lib/rsi-local-install.js +322 -0
  92. package/lib/rsi-local-install.js.map +1 -0
  93. package/lib/rsi-local-pair-install.d.ts +38 -0
  94. package/lib/rsi-local-pair-install.d.ts.map +1 -0
  95. package/lib/rsi-local-pair-install.js +200 -0
  96. package/lib/rsi-local-pair-install.js.map +1 -0
  97. package/lib/rsi-local-profile-update.d.ts +25 -0
  98. package/lib/rsi-local-profile-update.d.ts.map +1 -0
  99. package/lib/rsi-local-profile-update.js +226 -0
  100. package/lib/rsi-local-profile-update.js.map +1 -0
  101. package/lib/rsi-local-resources.d.ts +37 -0
  102. package/lib/rsi-local-resources.d.ts.map +1 -0
  103. package/lib/rsi-local-resources.js +184 -0
  104. package/lib/rsi-local-resources.js.map +1 -0
  105. package/lib/rsi-local-roots-extension.d.ts +11 -0
  106. package/lib/rsi-local-roots-extension.d.ts.map +1 -0
  107. package/lib/rsi-local-roots-extension.js +31 -0
  108. package/lib/rsi-local-roots-extension.js.map +1 -0
  109. package/lib/rsi-local-update-build.d.ts +18 -0
  110. package/lib/rsi-local-update-build.d.ts.map +1 -0
  111. package/lib/rsi-local-update-build.js +37 -0
  112. package/lib/rsi-local-update-build.js.map +1 -0
  113. package/lib/rsi-local-update.d.ts +39 -0
  114. package/lib/rsi-local-update.d.ts.map +1 -0
  115. package/lib/rsi-local-update.js +205 -0
  116. package/lib/rsi-local-update.js.map +1 -0
  117. package/lib/rsi-memory-learning.d.ts +30 -0
  118. package/lib/rsi-memory-learning.d.ts.map +1 -0
  119. package/lib/rsi-memory-learning.js +104 -0
  120. package/lib/rsi-memory-learning.js.map +1 -0
  121. package/lib/rsi-native-install.d.ts +38 -0
  122. package/lib/rsi-native-install.d.ts.map +1 -0
  123. package/lib/rsi-native-install.js +254 -0
  124. package/lib/rsi-native-install.js.map +1 -0
  125. package/lib/rsi-native-launchd.d.ts +7 -0
  126. package/lib/rsi-native-launchd.d.ts.map +1 -0
  127. package/lib/rsi-native-launchd.js +49 -0
  128. package/lib/rsi-native-launchd.js.map +1 -0
  129. package/lib/rsi-native-profile.d.ts +64 -0
  130. package/lib/rsi-native-profile.d.ts.map +1 -0
  131. package/lib/rsi-native-profile.js +283 -0
  132. package/lib/rsi-native-profile.js.map +1 -0
  133. package/lib/rsi-native-runtime-bootstrap.d.ts +35 -0
  134. package/lib/rsi-native-runtime-bootstrap.d.ts.map +1 -0
  135. package/lib/rsi-native-runtime-bootstrap.js +385 -0
  136. package/lib/rsi-native-runtime-bootstrap.js.map +1 -0
  137. package/lib/rsi-owner-profile.d.ts +37 -0
  138. package/lib/rsi-owner-profile.d.ts.map +1 -0
  139. package/lib/rsi-owner-profile.js +178 -0
  140. package/lib/rsi-owner-profile.js.map +1 -0
  141. package/lib/rsi-plugin-creation.d.ts +32 -0
  142. package/lib/rsi-plugin-creation.d.ts.map +1 -0
  143. package/lib/rsi-plugin-creation.js +189 -0
  144. package/lib/rsi-plugin-creation.js.map +1 -0
  145. package/lib/rsi-profile.d.ts +23 -0
  146. package/lib/rsi-profile.d.ts.map +1 -1
  147. package/lib/rsi-profile.js +154 -43
  148. package/lib/rsi-profile.js.map +1 -1
  149. package/lib/rsi-release-build.d.ts +41 -0
  150. package/lib/rsi-release-build.d.ts.map +1 -0
  151. package/lib/rsi-release-build.js +223 -0
  152. package/lib/rsi-release-build.js.map +1 -0
  153. package/lib/rsi-service-environment.d.ts +6 -0
  154. package/lib/rsi-service-environment.d.ts.map +1 -0
  155. package/lib/rsi-service-environment.js +113 -0
  156. package/lib/rsi-service-environment.js.map +1 -0
  157. package/lib/rsi-service-setup.d.ts +10 -0
  158. package/lib/rsi-service-setup.d.ts.map +1 -0
  159. package/lib/rsi-service-setup.js +34 -0
  160. package/lib/rsi-service-setup.js.map +1 -0
  161. package/lib/rsi-setup.d.ts +35 -2
  162. package/lib/rsi-setup.d.ts.map +1 -1
  163. package/lib/rsi-setup.js +475 -32
  164. package/lib/rsi-setup.js.map +1 -1
  165. package/lib/rsi-source-maintenance.d.ts +25 -0
  166. package/lib/rsi-source-maintenance.d.ts.map +1 -0
  167. package/lib/rsi-source-maintenance.js +348 -0
  168. package/lib/rsi-source-maintenance.js.map +1 -0
  169. package/lib/rsi-source-update.d.ts +26 -0
  170. package/lib/rsi-source-update.d.ts.map +1 -0
  171. package/lib/rsi-source-update.js +276 -0
  172. package/lib/rsi-source-update.js.map +1 -0
  173. package/lib/rsi-source.d.ts +34 -0
  174. package/lib/rsi-source.d.ts.map +1 -0
  175. package/lib/rsi-source.js +487 -0
  176. package/lib/rsi-source.js.map +1 -0
  177. package/lib/rsi-systemd-bootstrap.d.ts +46 -0
  178. package/lib/rsi-systemd-bootstrap.d.ts.map +1 -0
  179. package/lib/rsi-systemd-bootstrap.js +271 -0
  180. package/lib/rsi-systemd-bootstrap.js.map +1 -0
  181. package/lib/sdk.d.ts.map +1 -1
  182. package/lib/sdk.js +26 -1
  183. package/lib/sdk.js.map +1 -1
  184. package/lib/setup-business.d.ts +49 -0
  185. package/lib/setup-business.d.ts.map +1 -0
  186. package/lib/setup-business.js +335 -0
  187. package/lib/setup-business.js.map +1 -0
  188. package/lib/setup-profile.d.ts +1 -1
  189. package/lib/setup-profile.d.ts.map +1 -1
  190. package/lib/setup-profile.js +25 -2
  191. package/lib/setup-profile.js.map +1 -1
  192. package/lib/setup.d.ts +12 -1
  193. package/lib/setup.d.ts.map +1 -1
  194. package/lib/setup.js +265 -48
  195. package/lib/setup.js.map +1 -1
  196. package/lib/systemd.d.ts +10 -0
  197. package/lib/systemd.d.ts.map +1 -1
  198. package/lib/systemd.js +23 -6
  199. package/lib/systemd.js.map +1 -1
  200. package/lib/types.d.ts +7 -0
  201. package/lib/types.d.ts.map +1 -1
  202. package/lib/types.js.map +1 -1
  203. package/lib/version.d.ts +1 -1
  204. package/lib/version.js +1 -1
  205. package/package.json +33 -20
@@ -0,0 +1,30 @@
1
+ import { type MemoryLearningOwner } from '@dsh-enhanced/assistant-growth-contract';
2
+ import type { LearningConfig } from '@dsh-enhanced/assistant-memory-learning';
3
+ import type { MemoryReviewConfig } from '@dsh-enhanced/assistant-verifier';
4
+ import type { MemoryLearningAdoptionGrant } from '@dsh-enhanced/personal-memory';
5
+ export interface RsiMemoryLearningSetup {
6
+ learning: LearningConfig;
7
+ reviews: MemoryReviewConfig;
8
+ adoption: MemoryLearningAdoptionGrant;
9
+ limits: {
10
+ extractions: number;
11
+ scans: number;
12
+ };
13
+ }
14
+ /** Resolve optional public validators only inside the opted-in memory setup path. */
15
+ export declare function getRsiMemoryLearningValidators(): {
16
+ validateLearningConfig: typeof import('@dsh-enhanced/assistant-memory-learning').validateLearningConfig;
17
+ validateMemoryReviewConfig: typeof import('@dsh-enhanced/assistant-verifier').validateMemoryReviewConfig;
18
+ validateMemoryLearningAdoptionGrant: typeof import('@dsh-enhanced/personal-memory').validateMemoryLearningAdoptionGrant;
19
+ };
20
+ /** Validate one owner-bound, finite learning chain before any profile row is enabled. */
21
+ export declare function validateRsiMemoryLearningSetup(input: unknown, expectedOwner: MemoryLearningOwner, now?: number): RsiMemoryLearningSetup;
22
+ /** Compile the same finite memory terms for native and dual-Host deployments. */
23
+ export declare function createRsiMemoryLearningSetup(input: {
24
+ installationId: string;
25
+ stateRoot: string;
26
+ owner: MemoryLearningOwner;
27
+ now: number;
28
+ expiresAt: number;
29
+ }): RsiMemoryLearningSetup;
30
+ //# sourceMappingURL=rsi-memory-learning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rsi-memory-learning.d.ts","sourceRoot":"","sources":["../src/rsi-memory-learning.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmD,KAAK,mBAAmB,EAAE,MAAM,yCAAyC,CAAA;AACnI,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAA;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AAC1E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAA;AAEhF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,cAAc,CAAA;IACxB,OAAO,EAAE,kBAAkB,CAAA;IAC3B,QAAQ,EAAE,2BAA2B,CAAA;IACrC,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAC/C;AAiBD,qFAAqF;AACrF,wBAAgB,8BAA8B,IAAI;IAChD,sBAAsB,EAAE,cAAc,yCAAyC,EAAE,sBAAsB,CAAA;IACvG,0BAA0B,EAAE,cAAc,kCAAkC,EAAE,0BAA0B,CAAA;IACxG,mCAAmC,EAAE,cAAc,+BAA+B,EAAE,mCAAmC,CAAA;CACxH,CASA;AASD,yFAAyF;AACzF,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAC/F,GAAG,SAAa,GAAG,sBAAsB,CA4B1C;AAED,iFAAiF;AACjF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IAClD,cAAc,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,mBAAmB,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CACtG,GAAG,sBAAsB,CAyBzB"}
@@ -0,0 +1,104 @@
1
+ import { join } from 'node:path';
2
+ import { createRequire } from 'node:module';
3
+ import { isDeepStrictEqual } from 'node:util';
4
+ import { growthObjectDigest, validateMemoryLearningOwner } from '@dsh-enhanced/assistant-growth-contract';
5
+ function fail(message) { throw new Error(`rsi memory learning: ${message}`); }
6
+ const requirePeer = createRequire(import.meta.url);
7
+ function installedPeer(name) {
8
+ try {
9
+ requirePeer.resolve(name);
10
+ }
11
+ catch (error) {
12
+ if (error.code === 'MODULE_NOT_FOUND'
13
+ || error.code === 'ERR_MODULE_NOT_FOUND') {
14
+ fail(`opted-in memory learning requires installed peer ${name}`);
15
+ }
16
+ throw error;
17
+ }
18
+ // Resolution above separates a missing direct peer from failures inside it.
19
+ return requirePeer(name);
20
+ }
21
+ /** Resolve optional public validators only inside the opted-in memory setup path. */
22
+ export function getRsiMemoryLearningValidators() {
23
+ const learning = installedPeer('@dsh-enhanced/assistant-memory-learning');
24
+ const verifier = installedPeer('@dsh-enhanced/assistant-verifier');
25
+ const memory = installedPeer('@dsh-enhanced/personal-memory');
26
+ if (typeof learning.validateLearningConfig !== 'function' || typeof verifier.validateMemoryReviewConfig !== 'function'
27
+ || typeof memory.validateMemoryLearningAdoptionGrant !== 'function')
28
+ fail('installed memory validators are unavailable');
29
+ return { validateLearningConfig: learning.validateLearningConfig,
30
+ validateMemoryReviewConfig: verifier.validateMemoryReviewConfig,
31
+ validateMemoryLearningAdoptionGrant: memory.validateMemoryLearningAdoptionGrant };
32
+ }
33
+ function exactFields(value, fields) {
34
+ if (!value || typeof value !== 'object' || Array.isArray(value)
35
+ || Object.getPrototypeOf(value) !== Object.prototype)
36
+ return false;
37
+ const keys = Reflect.ownKeys(value);
38
+ return keys.length === fields.length && keys.every(key => typeof key === 'string' && fields.includes(key))
39
+ && Object.values(Object.getOwnPropertyDescriptors(value)).every(field => field.enumerable && 'value' in field);
40
+ }
41
+ /** Validate one owner-bound, finite learning chain before any profile row is enabled. */
42
+ export function validateRsiMemoryLearningSetup(input, expectedOwner, now = Date.now()) {
43
+ if (!Number.isSafeInteger(now) || now < 0)
44
+ fail('invalid validation time');
45
+ const owner = validateMemoryLearningOwner(expectedOwner);
46
+ if (!exactFields(input, ['adoption', 'learning', 'limits', 'reviews']))
47
+ fail('invalid setup fields');
48
+ const group = input;
49
+ const { validateLearningConfig, validateMemoryReviewConfig, validateMemoryLearningAdoptionGrant } = getRsiMemoryLearningValidators();
50
+ const learning = validateLearningConfig(group.learning);
51
+ const reviews = validateMemoryReviewConfig(group.reviews);
52
+ const adoption = validateMemoryLearningAdoptionGrant(group.adoption);
53
+ for (const [label, candidate] of [['learning', learning.owner], ['reviews', reviews.owner], ['adoption', adoption.owner]]) {
54
+ if (!isDeepStrictEqual(candidate, owner))
55
+ fail(`${label} owner differs from current owner route`);
56
+ }
57
+ const authorities = [learning.authorityId, reviews.authorityId, adoption.authorityId];
58
+ if (authorities.includes(owner.authorityId) || new Set(authorities).size !== 3)
59
+ fail('learning authorities must be independent');
60
+ if (learning.expiresAt <= now || reviews.expiresAt <= now || adoption.expiresAt <= now
61
+ || learning.expiresAt > reviews.expiresAt || learning.expiresAt > adoption.expiresAt)
62
+ fail('learning authority expiry is invalid');
63
+ const reviewDigest = growthObjectDigest(reviews);
64
+ if (learning.reviewAuthorityId !== reviews.authorityId || learning.reviewAuthorityDigest !== reviewDigest
65
+ || adoption.reviewAuthorityId !== reviews.authorityId || adoption.reviewAuthorityDigest !== reviewDigest
66
+ || learning.adoptionAuthorityId !== adoption.authorityId || learning.adoptionGrantDigest !== growthObjectDigest(adoption)) {
67
+ fail('learning authority digest binding differs');
68
+ }
69
+ const limits = group.limits;
70
+ if (!exactFields(limits, ['extractions', 'scans'])
71
+ || !Number.isSafeInteger(limits.extractions) || limits.extractions < 1 || limits.extractions > learning.maxExtractions
72
+ || !Number.isSafeInteger(limits.scans) || limits.scans < 1 || limits.scans > 10_000
73
+ || learning.budgetAmount > limits.extractions || learning.scanBudgetAmount > limits.scans)
74
+ fail('invalid finite automation limits');
75
+ return { learning, reviews, adoption, limits: { extractions: limits.extractions, scans: limits.scans } };
76
+ }
77
+ /** Compile the same finite memory terms for native and dual-Host deployments. */
78
+ export function createRsiMemoryLearningSetup(input) {
79
+ const { installationId: installation, stateRoot: state, owner, now, expiresAt } = input;
80
+ const day = 86_400_000;
81
+ const { validateLearningConfig, validateMemoryReviewConfig, validateMemoryLearningAdoptionGrant } = getRsiMemoryLearningValidators();
82
+ const memoryReview = validateMemoryReviewConfig({ authorityId: `memory-review-${installation}`,
83
+ owner: owner, expiresAt: expiresAt, maxReviews: 1000,
84
+ policy: 'Independently verify exact owner statements for facts and trusted owner objectives with canonical outcomes for experiences. Reject unsupported claims, withdrawn sources, and ambiguous mutations.',
85
+ maxInputBytes: 65_536, maxOutputTokens: 2048, timeoutMs: 120_000 });
86
+ const memoryAdoption = validateMemoryLearningAdoptionGrant({ authorityId: `memory-adopt-${installation}`,
87
+ owner: owner, reviewAuthorityId: memoryReview.authorityId,
88
+ reviewAuthorityDigest: growthObjectDigest(memoryReview), expiresAt: expiresAt,
89
+ maxMutations: 1000, maxTotalContentBytes: 4_096_000, maxRecordTtlMs: 30 * day,
90
+ kinds: ['fact', 'experience'], operations: ['add', 'replace', 'remove'] });
91
+ return validateRsiMemoryLearningSetup({
92
+ learning: validateLearningConfig({ databasePath: join(state, 'memory-learning.sqlite'),
93
+ authorityId: `memory-extract-${installation}`, owner: owner, expiresAt: expiresAt,
94
+ maxExtractions: 1000, maxPending: 100, lookbackMs: 30 * day,
95
+ policy: 'Extract only explicit owner facts or experience grounded in a trusted owner objective and canonical outcome. Do not infer success from a reply. Prefer noop when evidence is insufficient.',
96
+ maxInputBytes: 65_536, maxOutputTokens: 2048, timeoutMs: 120_000,
97
+ budgetId: `rsi-memory-learning-${installation}`, budgetAmount: 1,
98
+ scanBudgetId: `rsi-memory-scan-${installation}`, scanBudgetAmount: 1,
99
+ reviewAuthorityId: memoryReview.authorityId, reviewAuthorityDigest: growthObjectDigest(memoryReview),
100
+ adoptionAuthorityId: memoryAdoption.authorityId, adoptionGrantDigest: growthObjectDigest(memoryAdoption) }),
101
+ reviews: memoryReview, adoption: memoryAdoption, limits: { extractions: 7, scans: 1440 },
102
+ }, owner, now);
103
+ }
104
+ //# sourceMappingURL=rsi-memory-learning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rsi-memory-learning.js","sourceRoot":"","sources":["../src/rsi-memory-learning.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { compileNativeRsiProfile, type NativeRsiSetupManifest } from './rsi-native-profile.js';
2
+ import { rsiSetupPorts } from './rsi-setup.js';
3
+ import { type RsiInstallInput, type RsiInstallResult } from './rsi-install.js';
4
+ import { assertNativeLaunchdPlist, inspectNativeLaunchd, startNativeLaunchd, stopNativeLaunchd, type NativeLaunchdIdentity } from './rsi-native-launchd.js';
5
+ declare function prepare(input: RsiInstallInput, signal: AbortSignal): Promise<{
6
+ source: import("./rsi-source.js").RsiSourceWorkspace;
7
+ resources: import("./rsi-authority-resources.js").RsiAuthorityResources;
8
+ build: import("./rsi-build.js").RsiBuildEnvironment | import("./rsi-native-runtime-bootstrap.js").NativeRsiBuildEnvironment;
9
+ creationBuild: import("./rsi-creation-build.js").RsiCreationBuildEnvironment | import("./rsi-native-runtime-bootstrap.js").NativeRsiCreationBuildEnvironment;
10
+ executor: {
11
+ id: string;
12
+ version: string;
13
+ path: string;
14
+ sha256: string;
15
+ environmentAllowlist: never[];
16
+ };
17
+ }>;
18
+ declare function ready(input: RsiInstallInput & NativeLaunchdIdentity, manifest: NativeRsiSetupManifest, signal: AbortSignal): Promise<void>;
19
+ export interface NativeRsiInstallPorts {
20
+ prepare: typeof prepare;
21
+ compile: typeof compileNativeRsiProfile;
22
+ dump: typeof rsiSetupPorts.dump;
23
+ snapshot: typeof rsiSetupPorts.snapshot;
24
+ inventory: typeof rsiSetupPorts.automationInventory;
25
+ inspect: typeof inspectNativeLaunchd;
26
+ validatePlist: typeof assertNativeLaunchdPlist;
27
+ stop: typeof stopNativeLaunchd;
28
+ start: typeof startNativeLaunchd;
29
+ ready: typeof ready;
30
+ home?: string;
31
+ now: () => number;
32
+ }
33
+ export declare const nativeRsiInstallPorts: NativeRsiInstallPorts;
34
+ /** A single native Host owns the existing task loop. Grants are immutable and
35
+ * finite; retries resume the same grant, and never mint replacement budgets. */
36
+ export declare function installNativeRsiOwnerDeployment(input: RsiInstallInput, ports?: NativeRsiInstallPorts): Promise<RsiInstallResult>;
37
+ export {};
38
+ //# sourceMappingURL=rsi-native-install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rsi-native-install.d.ts","sourceRoot":"","sources":["../src/rsi-native-install.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,uBAAuB,EAAiC,KAAK,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAC7H,OAAO,EAA2B,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEvE,OAAO,EAAiC,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAE7G,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAA0B,KAAK,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AA8BnL,iBAAe,OAAO,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW;;;;;;;;;;;;GAYjE;AACD,iBAAe,KAAK,CAAC,KAAK,EAAE,eAAe,GAAG,qBAAqB,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,EAAE,WAAW,iBAKzH;AACD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,OAAO,CAAA;IACvB,OAAO,EAAE,OAAO,uBAAuB,CAAA;IACvC,IAAI,EAAE,OAAO,aAAa,CAAC,IAAI,CAAA;IAC/B,QAAQ,EAAE,OAAO,aAAa,CAAC,QAAQ,CAAA;IACvC,SAAS,EAAE,OAAO,aAAa,CAAC,mBAAmB,CAAA;IACnD,OAAO,EAAE,OAAO,oBAAoB,CAAA;IACpC,aAAa,EAAE,OAAO,wBAAwB,CAAA;IAC9C,IAAI,EAAE,OAAO,iBAAiB,CAAA;IAC9B,KAAK,EAAE,OAAO,kBAAkB,CAAA;IAChC,KAAK,EAAE,OAAO,KAAK,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,MAAM,CAAA;CAClB;AACD,eAAO,MAAM,qBAAqB,EAAE,qBAGe,CAAA;AAYnD;gFACgF;AAChF,wBAAsB,+BAA+B,CAAC,KAAK,EAAE,eAAe,EAC1E,KAAK,GAAE,qBAA6C,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA0HjF"}
@@ -0,0 +1,254 @@
1
+ import { createHash, randomBytes, randomUUID } from 'node:crypto';
2
+ import { lstat, mkdir, realpath, rename, unlink } from 'node:fs/promises';
3
+ import { dirname, join } from 'node:path';
4
+ import { isDeepStrictEqual } from 'node:util';
5
+ import { listActiveAutomationsLocally } from '@dsh-enhanced/assistant-automations';
6
+ import { withDshHomeLifecycleLock } from './setup.js';
7
+ import { withLaunchAgentTargetLock } from './launchd-target-lock.js';
8
+ import { createLaunchAgent, launchAgentPaths } from './launchd.js';
9
+ import { prepareRsiSourceWorkspace } from './rsi-source.js';
10
+ import { prepareRsiBuildEnvironment, RsiBuildUnavailableError, rsiBuildResources as io } from './rsi-build.js';
11
+ import { prepareRsiCreationBuildEnvironment } from './rsi-creation-build.js';
12
+ import { nativeRsiCreationBuild, prepareNativeRsiRuntime } from './rsi-native-runtime-bootstrap.js';
13
+ import { prepareRsiAuthorityResources } from './rsi-authority-resources.js';
14
+ import { compileNativeRsiProfile } from './rsi-native-profile.js';
15
+ import { assertRsiEffectivePatch, rsiSetupPorts } from './rsi-setup.js';
16
+ import { resolveInstalledRsiDsh } from './rsi-install-inputs.js';
17
+ import { assertRsiMemoryScanActivation } from './rsi-install.js';
18
+ import { rsiDatabasePaths } from './rsi-owner-profile.js';
19
+ import { assertNativeLaunchdPlist, inspectNativeLaunchd, startNativeLaunchd, stopNativeLaunchd, waitNativeRuntimeReady } from './rsi-native-launchd.js';
20
+ import { version } from './version.js';
21
+ const MAX_BYTES = 4_194_304;
22
+ function fail(message) { throw new Error(`rsi native install: ${message}`); }
23
+ const digest = (value) => createHash('sha256').update(value).digest('hex');
24
+ async function optional(path, privateFile = true) {
25
+ try {
26
+ const entry = await lstat(path);
27
+ if (!entry.isFile() || entry.nlink !== 1 || entry.mode & 0o022 || await realpath(path) !== path)
28
+ fail(`unsafe file: ${path}`);
29
+ return (await io.readStable(path, MAX_BYTES, privateFile)).toString('utf8');
30
+ }
31
+ catch (error) {
32
+ if (error.code === 'ENOENT')
33
+ return null;
34
+ throw error;
35
+ }
36
+ }
37
+ async function atomic(path, value) {
38
+ if (value === null) {
39
+ await unlink(path).catch(error => { if (error.code !== 'ENOENT')
40
+ throw error; });
41
+ await io.syncDirectory(dirname(path));
42
+ return;
43
+ }
44
+ const temporary = `${path}.${randomUUID()}.tmp`;
45
+ await io.writeExclusive(temporary, value);
46
+ try {
47
+ await rename(temporary, path);
48
+ await io.syncDirectory(dirname(path));
49
+ }
50
+ finally {
51
+ await unlink(temporary).catch(error => { if (error.code !== 'ENOENT')
52
+ throw error; });
53
+ }
54
+ }
55
+ async function immutable(path, value) {
56
+ const existing = await optional(path);
57
+ if (existing !== null) {
58
+ if (existing !== value)
59
+ fail(`frozen authority changed: ${path}`);
60
+ return;
61
+ }
62
+ await io.writeExclusive(path, value);
63
+ await io.syncDirectory(dirname(path));
64
+ }
65
+ async function privateDirectory(path) {
66
+ await mkdir(path, { mode: 0o700 }).catch(error => { if (error.code !== 'EEXIST')
67
+ throw error; });
68
+ await io.directory(path);
69
+ }
70
+ async function prepare(input, signal) {
71
+ const source = await prepareRsiSourceWorkspace({ ...input, version, signal });
72
+ const resources = await prepareRsiAuthorityResources({ ...input, signal });
73
+ const build = process.platform === 'darwin'
74
+ ? await prepareNativeRsiRuntime({ dshHome: input.dshHome, profile: input.profile, source, signal })
75
+ : await prepareRsiBuildEnvironment({ ...input, source, signal });
76
+ const creationBuild = build.schemaVersion === 2 ? nativeRsiCreationBuild(build)
77
+ : await prepareRsiCreationBuildEnvironment({ ...input, source, build, signal });
78
+ for (const name of ['creation-review-runner', 'creation-adoption-runner'])
79
+ await privateDirectory(join(resources.stateRoot, name));
80
+ const dsh = await resolveInstalledRsiDsh();
81
+ return { source, resources, build, creationBuild,
82
+ executor: { id: 'dsh', version: dsh.version, path: dsh.path, sha256: dsh.pin.sha256, environmentAllowlist: [] } };
83
+ }
84
+ async function ready(input, manifest, signal) {
85
+ await waitNativeRuntimeReady(input, manifest.controlPlane.runtimeObserver, signal);
86
+ const effective = rsiSetupPorts.dump(input.profile, input.dshHome);
87
+ const database = rsiDatabasePaths(effective, input.dshHome).automationsDatabasePath;
88
+ assertRsiMemoryScanActivation(manifest, listActiveAutomationsLocally(database));
89
+ }
90
+ export const nativeRsiInstallPorts = { prepare, compile: compileNativeRsiProfile,
91
+ dump: rsiSetupPorts.dump, snapshot: rsiSetupPorts.snapshot, inventory: rsiSetupPorts.automationInventory,
92
+ inspect: inspectNativeLaunchd, validatePlist: assertNativeLaunchdPlist, stop: stopNativeLaunchd,
93
+ start: startNativeLaunchd, ready, now: Date.now };
94
+ /** A single native Host owns the existing task loop. Grants are immutable and
95
+ * finite; retries resume the same grant, and never mint replacement budgets. */
96
+ export async function installNativeRsiOwnerDeployment(input, ports = nativeRsiInstallPorts) {
97
+ if (!/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/u.test(input.profile) || input.profile === 'desktop'
98
+ || await realpath(input.dshHome) !== input.dshHome)
99
+ fail('invalid native installation identity');
100
+ const signal = AbortSignal.any([input.signal ?? new AbortController().signal, AbortSignal.timeout(2_400_000)]);
101
+ return withDshHomeLifecycleLock(input.dshHome, () => withLaunchAgentTargetLock(input, async () => {
102
+ let prepared;
103
+ try {
104
+ prepared = await ports.prepare(input, signal);
105
+ }
106
+ catch (error) {
107
+ signal.throwIfAborted();
108
+ if (error instanceof RsiBuildUnavailableError)
109
+ return { mode: 'not-ready', reason: error.message };
110
+ throw error;
111
+ }
112
+ const { resources, source, build, creationBuild, executor } = prepared;
113
+ const serviceInput = { ...input, ...(ports.home ? { home: ports.home } : {}), nodePath: await realpath(process.execPath),
114
+ dshPath: executor.path, dshSha256: executor.sha256 }, paths = launchAgentPaths(serviceInput);
115
+ const profileRoot = join(input.dshHome, 'profiles', input.profile), patchPath = join(profileRoot, 'cordis.patch.yml');
116
+ await io.directory(profileRoot, false);
117
+ await mkdir(dirname(paths.plistPath), { recursive: true, mode: 0o700 });
118
+ await io.directory(dirname(paths.plistPath), false);
119
+ await privateDirectory(join(input.dshHome, 'logs'));
120
+ const observerRoot = join(input.dshHome, `.rsi-${digest(input.profile).slice(0, 12)}`);
121
+ await privateDirectory(observerRoot);
122
+ const observer = { socketPath: join(observerRoot, 'observe.sock'), keyPath: join(observerRoot, 'key') };
123
+ if (Buffer.byteLength(observer.socketPath) > 100)
124
+ fail('DSH_HOME is too long for a native Unix socket');
125
+ if (await optional(observer.keyPath) === null)
126
+ await io.writeExclusive(observer.keyPath, randomBytes(32));
127
+ const key = await io.readStable(observer.keyPath, 32, true);
128
+ if (key.length !== 32)
129
+ fail('invalid observer key');
130
+ const observerKeyDigest = createHash('sha256').update(key).digest('hex');
131
+ key.fill(0);
132
+ const planPath = join(resources.configRoot, 'native-plan.json'), journalPath = join(resources.configRoot, 'native-journal.json');
133
+ const manifestPath = join(resources.configRoot, 'native-manifest.json');
134
+ const saved = await optional(planPath);
135
+ const old = saved === null ? undefined : JSON.parse(saved);
136
+ const oldBuild = old?.compiled?.manifest?.controlPlane?.sourceBuild;
137
+ if (old && build.schemaVersion === 2 && (!oldBuild || !('backend' in oldBuild)
138
+ || oldBuild.backend !== 'macos-seatbelt')) {
139
+ fail('frozen Docker installation plan cannot be resumed with native backend');
140
+ }
141
+ if (old && (old.schemaVersion !== 1 || old.dshHome !== input.dshHome || old.profile !== input.profile
142
+ || typeof old.beforePatch !== 'string' || typeof old.beforeEffective !== 'string' || typeof old.afterPlist !== 'string'
143
+ || old.sourceCommit !== source.sourceCommit || !isDeepStrictEqual(old.executor, executor)
144
+ || old.observerKeyDigest !== observerKeyDigest))
145
+ fail('frozen native installation inputs changed');
146
+ const targetPatch = await optional(patchPath, false);
147
+ if (targetPatch === null)
148
+ fail('target profile patch is missing');
149
+ const effective = ports.dump(input.profile, input.dshHome), snapshot = await ports.snapshot(effective, input.dshHome);
150
+ if (snapshot.bindings.length !== 1)
151
+ fail('exactly one current owner DM is required');
152
+ const owner = snapshot.bindings[0];
153
+ if (old && !isDeepStrictEqual(old.owner, owner))
154
+ fail('owner changed; frozen grants cannot be reused');
155
+ const now = old?.now ?? ports.now(), expiresAt = old?.expiresAt ?? now + 365 * 86_400_000;
156
+ if (expiresAt <= ports.now())
157
+ fail('native grant expired; reinstall does not renew it');
158
+ const compiled = ports.compile({ dshHome: input.dshHome, targetProfile: input.profile,
159
+ targetPatch: old?.beforePatch ?? targetPatch, targetEffective: old?.beforeEffective ?? effective,
160
+ owner, resources, source, sourceBuild: build.sourceBuild, creationBuild, executor, now, expiresAt, observer });
161
+ if (old && !isDeepStrictEqual(old.compiled, compiled))
162
+ fail('native compiled grant differs from the frozen plan');
163
+ const currentPlist = await optional(paths.plistPath, false);
164
+ if (currentPlist !== null)
165
+ ports.validatePlist(currentPlist, serviceInput);
166
+ const state = ports.inspect(serviceInput);
167
+ if (state.registered && currentPlist === null)
168
+ fail('loaded service has no restorable plist');
169
+ const afterPlist = old?.afterPlist ?? createLaunchAgent({ ...paths, dshHome: input.dshHome, profile: input.profile,
170
+ profileDirectory: profileRoot, nodePath: await realpath(process.execPath), dshPath: executor.path,
171
+ path: [...new Set([dirname(await realpath(process.execPath)), dirname(executor.path),
172
+ ...(process.env.PATH ?? '').split(':').filter(value => value.startsWith('/')), '/opt/homebrew/bin', '/usr/local/bin', '/usr/bin', '/bin'])].join(':') });
173
+ ports.validatePlist(afterPlist, serviceInput);
174
+ const plan = old ?? { schemaVersion: 1, dshHome: input.dshHome, profile: input.profile, now, expiresAt,
175
+ beforePatch: targetPatch, beforeEffective: effective, beforePlist: currentPlist, registered: state.registered,
176
+ afterPlist, compiled, owner, observerKeyDigest, sourceCommit: source.sourceCommit, executor };
177
+ if (![plan.beforePatch, compiled.targetPatch].includes(targetPatch)
178
+ || currentPlist !== plan.beforePlist && currentPlist !== plan.afterPlist)
179
+ fail('profile or service changed outside the installation transaction');
180
+ const inventory = await ports.inventory(effective, input.dshHome);
181
+ if (!inventory.schedulerEnabled && inventory.records.length && !input.ackExistingAutomations)
182
+ fail('existing active or paused Automations require --ack-existing-automations');
183
+ const planBytes = JSON.stringify(plan), planDigest = digest(planBytes), journalBytes = await optional(journalPath);
184
+ let attempt = { beforePatch: targetPatch, beforePlist: currentPlist, registered: state.registered };
185
+ if (journalBytes !== null) {
186
+ const previous = JSON.parse(journalBytes);
187
+ if (previous.schemaVersion !== 1 || previous.planDigest !== planDigest
188
+ || !['prepared', 'applied', 'ready', 'rolled-back'].includes(previous.stage)
189
+ || ![plan.beforePatch, compiled.targetPatch].includes(previous.beforePatch)
190
+ || previous.beforePlist !== plan.beforePlist && previous.beforePlist !== plan.afterPlist
191
+ || typeof previous.registered !== 'boolean')
192
+ fail('native journal does not match the frozen plan');
193
+ // Resume an interrupted attempt with its original rollback boundary. A
194
+ // new retry after success preserves the already-installed deployment.
195
+ if (previous.stage === 'prepared' || previous.stage === 'applied') {
196
+ attempt = { beforePatch: previous.beforePatch, beforePlist: previous.beforePlist, registered: previous.registered };
197
+ }
198
+ }
199
+ await immutable(planPath, planBytes);
200
+ await immutable(manifestPath, JSON.stringify(compiled.manifest));
201
+ await immutable(compiled.manifest.controlPlane.trustPath, JSON.stringify(compiled.trust));
202
+ const journal = (stage) => atomic(journalPath, JSON.stringify({ schemaVersion: 1, planDigest, stage, ...attempt }));
203
+ await journal('prepared');
204
+ // A failed or interrupted attempt restores exact original bytes. No grant,
205
+ // runtime ledger, candidate history or resource directory is deleted.
206
+ const restore = async () => {
207
+ const recovery = AbortSignal.timeout(60_000);
208
+ await ports.stop(serviceInput, recovery);
209
+ const patch = await optional(patchPath, false), plist = await optional(paths.plistPath, false);
210
+ if (patch !== plan.beforePatch && patch !== compiled.targetPatch
211
+ || plist !== plan.beforePlist && plist !== plan.afterPlist)
212
+ fail('rollback conflicts with external changes; retain journal');
213
+ await atomic(patchPath, attempt.beforePatch);
214
+ await atomic(paths.plistPath, attempt.beforePlist);
215
+ if (attempt.registered)
216
+ await ports.start(serviceInput, recovery);
217
+ await journal('rolled-back');
218
+ };
219
+ try {
220
+ await ports.stop(serviceInput, signal);
221
+ if (await optional(patchPath, false) !== targetPatch || await optional(paths.plistPath, false) !== currentPlist)
222
+ fail('profile or service drifted while stopping');
223
+ const stoppedEffective = ports.dump(input.profile, input.dshHome);
224
+ const stoppedOwner = await ports.snapshot(stoppedEffective, input.dshHome);
225
+ const stoppedInventory = await ports.inventory(stoppedEffective, input.dshHome);
226
+ if (stoppedEffective !== effective || !isDeepStrictEqual(stoppedOwner.bindings, snapshot.bindings)
227
+ || !isDeepStrictEqual(stoppedInventory, inventory))
228
+ fail('owner, profile or Automation inventory changed while stopping');
229
+ await atomic(patchPath, compiled.targetPatch);
230
+ assertRsiEffectivePatch(compiled.targetPatch, ports.dump(input.profile, input.dshHome));
231
+ await atomic(paths.plistPath, plan.afterPlist);
232
+ await journal('applied');
233
+ await ports.start(serviceInput, signal);
234
+ await ports.ready(serviceInput, compiled.manifest, signal);
235
+ const readyEffective = ports.dump(input.profile, input.dshHome);
236
+ assertRsiEffectivePatch(compiled.targetPatch, readyEffective);
237
+ if (!isDeepStrictEqual((await ports.snapshot(readyEffective, input.dshHome)).bindings, snapshot.bindings)) {
238
+ fail('owner changed during startup readiness');
239
+ }
240
+ await journal('ready');
241
+ return { mode: 'ready', profiles: [input.profile], manifestPath };
242
+ }
243
+ catch (error) {
244
+ try {
245
+ await restore();
246
+ }
247
+ catch (rollbackError) {
248
+ throw new AggregateError([error, rollbackError], 'rsi native install failed and rollback requires reconciliation');
249
+ }
250
+ throw error;
251
+ }
252
+ }));
253
+ }
254
+ //# sourceMappingURL=rsi-native-install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rsi-native-install.js","sourceRoot":"","sources":["../src/rsi-native-install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { type RuntimeObserverConfig, type RuntimeObservation } from '@dsh-enhanced/plugin-control-plane';
2
+ export { assertNativeLaunchdPlist, inspectNativeLaunchd, startNativeLaunchd, stopNativeLaunchd } from './launchd-identity.js';
3
+ export type { NativeLaunchdCommand, NativeLaunchdCommandResult, NativeLaunchdIdentity, NativeLaunchdState } from './launchd-identity.js';
4
+ import type { NativeLaunchdIdentity } from './launchd-identity.js';
5
+ export declare function assertNativeRuntimeObservation(value: RuntimeObservation, observer: RuntimeObserverConfig, pid: number, now?: number): void;
6
+ export declare function waitNativeRuntimeReady(input: NativeLaunchdIdentity, observer: RuntimeObserverConfig, signal: AbortSignal): Promise<void>;
7
+ //# sourceMappingURL=rsi-native-launchd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rsi-native-launchd.d.ts","sourceRoot":"","sources":["../src/rsi-native-launchd.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6C,KAAK,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,MAAM,oCAAoC,CAAA;AAGnJ,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAC7H,YAAY,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AACxI,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAIlE,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,GAAG,EAAE,MAAM,EACpH,GAAG,SAAa,GAAG,IAAI,CAWxB;AAED,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,qBAAqB,EACxG,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBpC"}
@@ -0,0 +1,49 @@
1
+ import { queryRuntimeObserver, runtimeConfigDigest } from '@dsh-enhanced/plugin-control-plane';
2
+ import { setTimeout as delay } from 'node:timers/promises';
3
+ import { inspectNativeLaunchd } from './launchd-identity.js';
4
+ export { assertNativeLaunchdPlist, inspectNativeLaunchd, startNativeLaunchd, stopNativeLaunchd } from './launchd-identity.js';
5
+ function fail(message) { throw new Error(`rsi native launchd: ${message}`); }
6
+ export function assertNativeRuntimeObservation(value, observer, pid, now = Date.now()) {
7
+ if (pid < 2 || value.processId !== pid || value.profilePath !== observer.profilePath
8
+ || value.observerConfigDigest !== runtimeConfigDigest(observer) || Math.abs(now - value.observedAt) > 5_000
9
+ || value.entries.length !== observer.targets.length)
10
+ fail('runtime observation differs from the loaded Host');
11
+ for (const target of observer.targets) {
12
+ const entry = value.entries.find(item => item.entryId === target.entryId);
13
+ if (!entry?.active || entry.module !== target.module || entry.configDigest !== target.configDigest
14
+ || target.services.some(name => !entry.services.some(service => service.name === name && service.instance !== null))) {
15
+ fail(`Loader entry ${target.entryId} is not ready`);
16
+ }
17
+ }
18
+ }
19
+ export async function waitNativeRuntimeReady(input, observer, signal) {
20
+ const deadline = Date.now() + 60_000;
21
+ let stableSince = 0, previous = '', failure;
22
+ while (Date.now() < deadline) {
23
+ signal.throwIfAborted();
24
+ try {
25
+ const before = inspectNativeLaunchd(input);
26
+ const value = await queryRuntimeObserver({ ...observer, signal });
27
+ const after = inspectNativeLaunchd(input);
28
+ if (!before.registered || !after.registered || before.pid !== after.pid)
29
+ fail('Host changed during runtime observation');
30
+ assertNativeRuntimeObservation(value, observer, after.pid);
31
+ const key = JSON.stringify([after.pid, value.observerId, value.entries.map(entry => [entry.entryId, entry.instance, entry.services])]);
32
+ if (key !== previous) {
33
+ previous = key;
34
+ stableSince = Date.now();
35
+ }
36
+ if (Date.now() - stableSince >= 12_000)
37
+ return;
38
+ }
39
+ catch (error) {
40
+ signal.throwIfAborted();
41
+ failure = error;
42
+ stableSince = 0;
43
+ previous = '';
44
+ }
45
+ await delay(500, undefined, { signal });
46
+ }
47
+ throw new Error('rsi native launchd: Host failed the stable Loader readiness check', { cause: failure });
48
+ }
49
+ //# sourceMappingURL=rsi-native-launchd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rsi-native-launchd.js","sourceRoot":"","sources":["../src/rsi-native-launchd.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import type { ActiveLarkOwnerBinding } from '@dsh-enhanced/assistant-delivery';
2
+ import { type AssistantGrowthDriverConfig } from '@dsh-enhanced/assistant-growth-driver';
3
+ import { type Config as ControlPlaneConfig, type PluginControlTrustConfig } from '@dsh-enhanced/plugin-control-plane';
4
+ import type { RsiAuthorityResources } from './rsi-authority-resources.js';
5
+ import type { RsiBuildEnvironment } from './rsi-build.js';
6
+ import type { RsiCreationBuildEnvironment } from './rsi-creation-build.js';
7
+ import type { NativeRsiBuildEnvironment, NativeRsiCreationBuildEnvironment } from './rsi-native-runtime-bootstrap.js';
8
+ import { type RsiMemoryLearningSetup } from './rsi-memory-learning.js';
9
+ import { type RsiPluginCreationSetup } from './rsi-plugin-creation.js';
10
+ import type { RsiSourceWorkspace } from './rsi-source.js';
11
+ export interface NativeRsiProfileInput {
12
+ dshHome: string;
13
+ targetProfile: string;
14
+ targetEffective: string;
15
+ targetPatch: string;
16
+ owner: ActiveLarkOwnerBinding;
17
+ resources: RsiAuthorityResources;
18
+ source: RsiSourceWorkspace;
19
+ sourceBuild: RsiBuildEnvironment['sourceBuild'] | NativeRsiBuildEnvironment['sourceBuild'];
20
+ creationBuild: RsiCreationBuildEnvironment | NativeRsiCreationBuildEnvironment;
21
+ executor: PluginControlTrustConfig['executor'];
22
+ now: number;
23
+ expiresAt: number;
24
+ observer: {
25
+ socketPath: string;
26
+ keyPath: string;
27
+ };
28
+ }
29
+ export interface NativeRsiSetupManifest {
30
+ schemaVersion: 1;
31
+ kind: 'native-plugin-learning';
32
+ targetProfile: string;
33
+ owner: {
34
+ authorityId: string;
35
+ authorityHash: string;
36
+ principalId: string;
37
+ principalRecordId: string;
38
+ principalVersion: number;
39
+ workspace: string;
40
+ agentPreset: string;
41
+ };
42
+ now: number;
43
+ expiresAt: number;
44
+ controlPlane: ControlPlaneConfig;
45
+ growthDriver: AssistantGrowthDriverConfig;
46
+ memoryLearning: RsiMemoryLearningSetup;
47
+ pluginCreation: RsiPluginCreationSetup;
48
+ limits: {
49
+ periodMs: number;
50
+ reviews: number;
51
+ discovery: number;
52
+ source: number;
53
+ memoryExtractions: number;
54
+ memoryScans: number;
55
+ };
56
+ }
57
+ export interface NativeRsiCompiledProfile {
58
+ manifest: NativeRsiSetupManifest;
59
+ targetPatch: string;
60
+ trust: PluginControlTrustConfig;
61
+ }
62
+ /** Pure profile composition: prepared identities/builds are inputs, and the caller owns I/O and activation. */
63
+ export declare function compileNativeRsiProfile(input: NativeRsiProfileInput): NativeRsiCompiledProfile;
64
+ //# sourceMappingURL=rsi-native-profile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rsi-native-profile.d.ts","sourceRoot":"","sources":["../src/rsi-native-profile.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AAC9E,OAAO,EAAmB,KAAK,2BAA2B,EAAE,MAAM,uCAAuC,CAAA;AACzG,OAAO,EACL,KAAK,MAAM,IAAI,kBAAkB,EAAE,KAAK,wBAAwB,EAA8B,MAAM,oCAAoC,CAAA;AAE1I,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AAC1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,iCAAiC,EAAE,MAAM,mCAAmC,CAAA;AACrH,OAAO,EAAgC,KAAK,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAEpG,OAAO,EAAgC,KAAK,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACpG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAazD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;IACpF,KAAK,EAAE,sBAAsB,CAAC;IAAC,SAAS,EAAE,qBAAqB,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAA;IAC3F,WAAW,EAAE,mBAAmB,CAAC,aAAa,CAAC,GAAG,yBAAyB,CAAC,aAAa,CAAC,CAAA;IAC1F,aAAa,EAAE,2BAA2B,GAAG,iCAAiC,CAAA;IAC9E,QAAQ,EAAE,wBAAwB,CAAC,UAAU,CAAC,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;IAC9E,QAAQ,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAClD;AACD,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,CAAC,CAAC;IAAC,IAAI,EAAE,wBAAwB,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;IACvE,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAClG,gBAAgB,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAA;IACpE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,kBAAkB,CAAC;IAAC,YAAY,EAAE,2BAA2B,CAAA;IAC3G,cAAc,EAAE,sBAAsB,CAAC;IAAC,cAAc,EAAE,sBAAsB,CAAA;IAC9E,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAA;CACjI;AACD,MAAM,WAAW,wBAAwB;IAAG,QAAQ,EAAE,sBAAsB,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,wBAAwB,CAAA;CAAE;AAgEpI,+GAA+G;AAC/G,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,qBAAqB,GAAG,wBAAwB,CA6J9F"}