@shardworks/nexus-core 0.1.99 → 0.1.101

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 (166) hide show
  1. package/README.md +95 -166
  2. package/dist/guild-config.d.ts +14 -52
  3. package/dist/guild-config.d.ts.map +1 -1
  4. package/dist/guild-config.js +7 -10
  5. package/dist/guild-config.js.map +1 -1
  6. package/dist/guild.d.ts +83 -0
  7. package/dist/guild.d.ts.map +1 -0
  8. package/dist/guild.js +45 -0
  9. package/dist/guild.js.map +1 -0
  10. package/dist/id.d.ts +14 -0
  11. package/dist/id.d.ts.map +1 -0
  12. package/dist/id.js +19 -0
  13. package/dist/id.js.map +1 -0
  14. package/dist/index.d.ts +6 -30
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +7 -32
  17. package/dist/index.js.map +1 -1
  18. package/dist/nexus-home.d.ts +0 -4
  19. package/dist/nexus-home.d.ts.map +1 -1
  20. package/dist/nexus-home.js +1 -9
  21. package/dist/nexus-home.js.map +1 -1
  22. package/dist/plugin.d.ts +115 -0
  23. package/dist/plugin.d.ts.map +1 -0
  24. package/dist/plugin.js +39 -0
  25. package/dist/plugin.js.map +1 -0
  26. package/dist/resolve-package.d.ts +58 -0
  27. package/dist/resolve-package.d.ts.map +1 -0
  28. package/dist/resolve-package.js +123 -0
  29. package/dist/resolve-package.js.map +1 -0
  30. package/package.json +5 -14
  31. package/dist/book.d.ts +0 -110
  32. package/dist/book.d.ts.map +0 -1
  33. package/dist/book.js +0 -16
  34. package/dist/book.js.map +0 -1
  35. package/dist/legacy/1/anima.d.ts +0 -79
  36. package/dist/legacy/1/anima.d.ts.map +0 -1
  37. package/dist/legacy/1/anima.js +0 -285
  38. package/dist/legacy/1/anima.js.map +0 -1
  39. package/dist/legacy/1/audit.d.ts +0 -23
  40. package/dist/legacy/1/audit.d.ts.map +0 -1
  41. package/dist/legacy/1/audit.js +0 -61
  42. package/dist/legacy/1/audit.js.map +0 -1
  43. package/dist/legacy/1/bundle.d.ts +0 -111
  44. package/dist/legacy/1/bundle.d.ts.map +0 -1
  45. package/dist/legacy/1/bundle.js +0 -452
  46. package/dist/legacy/1/bundle.js.map +0 -1
  47. package/dist/legacy/1/clock-daemon.d.ts +0 -2
  48. package/dist/legacy/1/clock-daemon.d.ts.map +0 -1
  49. package/dist/legacy/1/clock-daemon.js +0 -72
  50. package/dist/legacy/1/clock-daemon.js.map +0 -1
  51. package/dist/legacy/1/clockworks.d.ts +0 -98
  52. package/dist/legacy/1/clockworks.d.ts.map +0 -1
  53. package/dist/legacy/1/clockworks.js +0 -359
  54. package/dist/legacy/1/clockworks.js.map +0 -1
  55. package/dist/legacy/1/conversation.d.ts +0 -165
  56. package/dist/legacy/1/conversation.d.ts.map +0 -1
  57. package/dist/legacy/1/conversation.js +0 -457
  58. package/dist/legacy/1/conversation.js.map +0 -1
  59. package/dist/legacy/1/engine.d.ts +0 -90
  60. package/dist/legacy/1/engine.d.ts.map +0 -1
  61. package/dist/legacy/1/engine.js +0 -89
  62. package/dist/legacy/1/engine.js.map +0 -1
  63. package/dist/legacy/1/events.d.ts +0 -88
  64. package/dist/legacy/1/events.d.ts.map +0 -1
  65. package/dist/legacy/1/events.js +0 -239
  66. package/dist/legacy/1/events.js.map +0 -1
  67. package/dist/legacy/1/guild-config.d.ts +0 -74
  68. package/dist/legacy/1/guild-config.d.ts.map +0 -1
  69. package/dist/legacy/1/guild-config.js +0 -51
  70. package/dist/legacy/1/guild-config.js.map +0 -1
  71. package/dist/legacy/1/id.d.ts +0 -8
  72. package/dist/legacy/1/id.d.ts.map +0 -1
  73. package/dist/legacy/1/id.js +0 -27
  74. package/dist/legacy/1/id.js.map +0 -1
  75. package/dist/legacy/1/index.d.ts +0 -28
  76. package/dist/legacy/1/index.d.ts.map +0 -1
  77. package/dist/legacy/1/index.js +0 -32
  78. package/dist/legacy/1/index.js.map +0 -1
  79. package/dist/legacy/1/init-guild.d.ts +0 -24
  80. package/dist/legacy/1/init-guild.d.ts.map +0 -1
  81. package/dist/legacy/1/init-guild.js +0 -230
  82. package/dist/legacy/1/init-guild.js.map +0 -1
  83. package/dist/legacy/1/install-tool.d.ts +0 -73
  84. package/dist/legacy/1/install-tool.d.ts.map +0 -1
  85. package/dist/legacy/1/install-tool.js +0 -436
  86. package/dist/legacy/1/install-tool.js.map +0 -1
  87. package/dist/legacy/1/instantiate.d.ts +0 -33
  88. package/dist/legacy/1/instantiate.d.ts.map +0 -1
  89. package/dist/legacy/1/instantiate.js +0 -137
  90. package/dist/legacy/1/instantiate.js.map +0 -1
  91. package/dist/legacy/1/manifest.d.ts +0 -132
  92. package/dist/legacy/1/manifest.d.ts.map +0 -1
  93. package/dist/legacy/1/manifest.js +0 -321
  94. package/dist/legacy/1/manifest.js.map +0 -1
  95. package/dist/legacy/1/migrate.d.ts +0 -84
  96. package/dist/legacy/1/migrate.d.ts.map +0 -1
  97. package/dist/legacy/1/migrate.js +0 -228
  98. package/dist/legacy/1/migrate.js.map +0 -1
  99. package/dist/legacy/1/nexus-home.d.ts +0 -11
  100. package/dist/legacy/1/nexus-home.d.ts.map +0 -1
  101. package/dist/legacy/1/nexus-home.js +0 -16
  102. package/dist/legacy/1/nexus-home.js.map +0 -1
  103. package/dist/legacy/1/plugin-descriptor.d.ts +0 -3
  104. package/dist/legacy/1/plugin-descriptor.d.ts.map +0 -1
  105. package/dist/legacy/1/plugin-descriptor.js +0 -2
  106. package/dist/legacy/1/plugin-descriptor.js.map +0 -1
  107. package/dist/legacy/1/preconditions.d.ts +0 -100
  108. package/dist/legacy/1/preconditions.d.ts.map +0 -1
  109. package/dist/legacy/1/preconditions.js +0 -189
  110. package/dist/legacy/1/preconditions.js.map +0 -1
  111. package/dist/legacy/1/rehydrate.d.ts +0 -22
  112. package/dist/legacy/1/rehydrate.d.ts.map +0 -1
  113. package/dist/legacy/1/rehydrate.js +0 -109
  114. package/dist/legacy/1/rehydrate.js.map +0 -1
  115. package/dist/legacy/1/remove-tool.d.ts +0 -19
  116. package/dist/legacy/1/remove-tool.d.ts.map +0 -1
  117. package/dist/legacy/1/remove-tool.js +0 -105
  118. package/dist/legacy/1/remove-tool.js.map +0 -1
  119. package/dist/legacy/1/session.d.ts +0 -343
  120. package/dist/legacy/1/session.d.ts.map +0 -1
  121. package/dist/legacy/1/session.js +0 -499
  122. package/dist/legacy/1/session.js.map +0 -1
  123. package/dist/legacy/1/tool-registry.d.ts +0 -12
  124. package/dist/legacy/1/tool-registry.d.ts.map +0 -1
  125. package/dist/legacy/1/tool-registry.js +0 -28
  126. package/dist/legacy/1/tool-registry.js.map +0 -1
  127. package/dist/legacy/1/tool.d.ts +0 -10
  128. package/dist/legacy/1/tool.d.ts.map +0 -1
  129. package/dist/legacy/1/tool.js +0 -2
  130. package/dist/legacy/1/tool.js.map +0 -1
  131. package/dist/legacy/1/upgrade.d.ts +0 -129
  132. package/dist/legacy/1/upgrade.d.ts.map +0 -1
  133. package/dist/legacy/1/upgrade.js +0 -355
  134. package/dist/legacy/1/upgrade.js.map +0 -1
  135. package/dist/legacy/1/workshop.d.ts +0 -95
  136. package/dist/legacy/1/workshop.d.ts.map +0 -1
  137. package/dist/legacy/1/workshop.js +0 -229
  138. package/dist/legacy/1/workshop.js.map +0 -1
  139. package/dist/legacy/1/worktree.d.ts +0 -67
  140. package/dist/legacy/1/worktree.d.ts.map +0 -1
  141. package/dist/legacy/1/worktree.js +0 -117
  142. package/dist/legacy/1/worktree.js.map +0 -1
  143. package/dist/legacy/1/writ.d.ts +0 -130
  144. package/dist/legacy/1/writ.d.ts.map +0 -1
  145. package/dist/legacy/1/writ.js +0 -599
  146. package/dist/legacy/1/writ.js.map +0 -1
  147. package/dist/rig-context.d.ts +0 -47
  148. package/dist/rig-context.d.ts.map +0 -1
  149. package/dist/rig-context.js +0 -11
  150. package/dist/rig-context.js.map +0 -1
  151. package/dist/rig-descriptor.d.ts +0 -39
  152. package/dist/rig-descriptor.d.ts.map +0 -1
  153. package/dist/rig-descriptor.js +0 -12
  154. package/dist/rig-descriptor.js.map +0 -1
  155. package/dist/rig.d.ts +0 -70
  156. package/dist/rig.d.ts.map +0 -1
  157. package/dist/rig.js +0 -14
  158. package/dist/rig.js.map +0 -1
  159. package/dist/tool.d.ts +0 -136
  160. package/dist/tool.d.ts.map +0 -1
  161. package/dist/tool.js +0 -135
  162. package/dist/tool.js.map +0 -1
  163. package/migrations/001-schema.sql +0 -177
  164. package/migrations/002-writs.sql +0 -44
  165. package/migrations/003-conversations.sql +0 -43
  166. package/migrations/004-remove-commissions.sql +0 -24
@@ -1,109 +0,0 @@
1
- /**
2
- * rehydrate — reconstruct runtime state from git-tracked guild state.
3
- *
4
- * After a fresh clone, the guild's node_modules is empty and workshop bare
5
- * clones are missing. This function:
6
- * 1. Re-clones workshop bare repos from their remote URLs in guild.json
7
- * 2. Runs `npm install` to resolve registry/git-url deps from package.json
8
- * 3. For each tool with full source on disk (workshop/tarball), runs
9
- * `npm install --no-save <tool-path>` to install from the tracked source
10
- * 4. Reports any linked tools that need to be re-linked manually
11
- */
12
- import fs from 'node:fs';
13
- import path from 'node:path';
14
- import { execFileSync } from 'node:child_process';
15
- import { readGuildConfig } from "./guild-config.js";
16
- import { workshopBarePath, workshopsPath } from "./nexus-home.js";
17
- /** Map category -> on-disk parent directory (relative to guild root). */
18
- const DIR_MAP = {
19
- tools: 'tools',
20
- engines: 'engines',
21
- curricula: 'training/curricula',
22
- temperaments: 'training/temperaments',
23
- };
24
- /**
25
- * Rehydrate a guild's node_modules from tracked state.
26
- *
27
- * Idempotent and safe to run at any time.
28
- */
29
- export function rehydrate(home) {
30
- const result = {
31
- workshopsCloned: [],
32
- workshopsFailed: [],
33
- fromPackageJson: 0,
34
- fromSlotSource: [],
35
- needsRelink: [],
36
- };
37
- // 1. Re-clone workshop bare repos from guild.json remote URLs
38
- const config = readGuildConfig(home);
39
- const wsDir = workshopsPath(home);
40
- fs.mkdirSync(wsDir, { recursive: true });
41
- for (const [name, entry] of Object.entries(config.workshops)) {
42
- const barePath = workshopBarePath(home, name);
43
- if (fs.existsSync(barePath))
44
- continue; // already cloned
45
- try {
46
- execFileSync('git', ['clone', '--bare', entry.remoteUrl, barePath], {
47
- stdio: 'pipe',
48
- });
49
- result.workshopsCloned.push(name);
50
- }
51
- catch (err) {
52
- result.workshopsFailed.push({
53
- name,
54
- error: err.message,
55
- });
56
- }
57
- }
58
- // 2. Run npm install to resolve registry/git-url deps from package.json
59
- const pkgPath = path.join(home, 'package.json');
60
- if (fs.existsSync(pkgPath)) {
61
- const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
62
- const depCount = Object.keys(pkg.dependencies ?? {}).length;
63
- if (depCount > 0) {
64
- execFileSync('npm', ['install'], { cwd: home, stdio: 'pipe' });
65
- result.fromPackageJson = depCount;
66
- }
67
- }
68
- // 3. Scan guild.json for tools that have full source on disk
69
- for (const [category, registry] of Object.entries({
70
- tools: config.tools,
71
- engines: config.engines,
72
- })) {
73
- for (const [name, entry] of Object.entries(registry)) {
74
- const toolEntry = entry;
75
- const upstream = toolEntry.upstream;
76
- const parentDir = DIR_MAP[category];
77
- const toolDir = path.join(home, parentDir, name);
78
- // Check if this is a workshop/tarball tool with full source on disk
79
- if (upstream === null || (upstream && upstream.startsWith('workshop:'))) {
80
- // Check if tool dir has a package.json (indicating full source)
81
- const toolPkgPath = path.join(toolDir, 'package.json');
82
- if (fs.existsSync(toolPkgPath)) {
83
- // Install from tool source
84
- try {
85
- execFileSync('npm', ['install', '--no-save', toolDir], {
86
- cwd: home,
87
- stdio: 'pipe',
88
- });
89
- result.fromSlotSource.push(name);
90
- }
91
- catch {
92
- // If install fails, the tool may need manual intervention
93
- }
94
- }
95
- }
96
- // Check if this was a linked tool (no upstream, no full source,
97
- // but has a package field in the descriptor)
98
- if (upstream === null) {
99
- const hasFullSource = fs.existsSync(path.join(toolDir, 'package.json'));
100
- if (!hasFullSource) {
101
- // This was likely a linked tool — needs manual re-linking
102
- result.needsRelink.push(name);
103
- }
104
- }
105
- }
106
- }
107
- return result;
108
- }
109
- //# sourceMappingURL=rehydrate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rehydrate.js","sourceRoot":"","sources":["../../../src/legacy/1/rehydrate.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- export interface RemoveToolOptions {
2
- home: string;
3
- name: string;
4
- /** Restrict to a specific category. If omitted, searches all registries. */
5
- category?: 'tools' | 'engines' | 'curricula' | 'temperaments';
6
- }
7
- export interface RemoveResult {
8
- category: 'tools' | 'engines' | 'curricula' | 'temperaments';
9
- name: string;
10
- removedFrom: string;
11
- }
12
- /**
13
- * Remove a tool from the guild — deregister from guild.json and delete from disk.
14
- *
15
- * For npm-installed tools, also runs `npm uninstall` to clean up node_modules.
16
- * For linked tools, removes the symlink from node_modules.
17
- */
18
- export declare function removeTool(opts: RemoveToolOptions): RemoveResult;
19
- //# sourceMappingURL=remove-tool.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remove-tool.d.ts","sourceRoot":"","sources":["../../../src/legacy/1/remove-tool.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,cAAc,CAAC;CAC/D;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,cAAc,CAAC;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAcD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,YAAY,CAqFhE"}
@@ -1,105 +0,0 @@
1
- import fs from 'node:fs';
2
- import path from 'node:path';
3
- import { execFileSync } from 'node:child_process';
4
- import { readGuildConfig, writeGuildConfig } from "./guild-config.js";
5
- const DIR_MAP = {
6
- tools: 'tools',
7
- engines: 'engines',
8
- curricula: 'training/curricula',
9
- temperaments: 'training/temperaments',
10
- };
11
- /** The registries in guild.json that can contain tools, in search order. */
12
- const REGISTRIES = ['tools', 'engines', 'curricula', 'temperaments'];
13
- function git(args, cwd) {
14
- execFileSync('git', args, { cwd, stdio: 'pipe' });
15
- }
16
- /**
17
- * Read the npm package name from a tool's guild.json entry.
18
- * Returns null if the tool has no package field (e.g. script-only tools).
19
- */
20
- function getPackageName(entry) {
21
- return entry['package'] ?? null;
22
- }
23
- /**
24
- * Remove a tool from the guild — deregister from guild.json and delete from disk.
25
- *
26
- * For npm-installed tools, also runs `npm uninstall` to clean up node_modules.
27
- * For linked tools, removes the symlink from node_modules.
28
- */
29
- export function removeTool(opts) {
30
- const { home, name } = opts;
31
- const config = readGuildConfig(home);
32
- // Find the tool in guild.json
33
- const searchIn = opts.category ? [opts.category] : REGISTRIES;
34
- let foundCategory;
35
- for (const cat of searchIn) {
36
- if (config[cat][name]) {
37
- foundCategory = cat;
38
- break;
39
- }
40
- }
41
- if (!foundCategory) {
42
- throw new Error(`Tool "${name}" not found in guild.json.`);
43
- }
44
- const entry = config[foundCategory][name];
45
- // Clean up npm-installed packages from node_modules
46
- const packageName = getPackageName(entry);
47
- const upstream = 'upstream' in entry ? entry.upstream : null;
48
- if (packageName) {
49
- const linkPath = path.join(home, 'node_modules', packageName);
50
- if (fs.existsSync(linkPath) && fs.lstatSync(linkPath).isSymbolicLink()) {
51
- // Linked tool: just remove the symlink
52
- fs.unlinkSync(linkPath);
53
- // Clean up empty scoped directory if needed
54
- const scopeDir = path.dirname(linkPath);
55
- if (scopeDir !== path.join(home, 'node_modules') &&
56
- fs.existsSync(scopeDir) && fs.readdirSync(scopeDir).length === 0) {
57
- fs.rmdirSync(scopeDir);
58
- }
59
- }
60
- else if (upstream && !upstream.startsWith('workshop:')) {
61
- // Registry/git-url tool saved to package.json: use npm uninstall
62
- try {
63
- execFileSync('npm', ['uninstall', packageName], { cwd: home, stdio: 'pipe' });
64
- }
65
- catch {
66
- // If npm uninstall fails (e.g. package already gone), continue with cleanup
67
- }
68
- }
69
- else {
70
- // Workshop/tarball tool (not in package.json): remove from node_modules manually
71
- if (fs.existsSync(linkPath)) {
72
- fs.rmSync(linkPath, { recursive: true });
73
- }
74
- }
75
- }
76
- // Remove on-disk directory
77
- const parentDir = DIR_MAP[foundCategory];
78
- const toolDir = path.join(home, parentDir, name);
79
- if (fs.existsSync(toolDir)) {
80
- fs.rmSync(toolDir, { recursive: true });
81
- }
82
- // Deregister from guild.json
83
- delete config[foundCategory][name];
84
- // Clean up role references for tools
85
- if (foundCategory === 'tools') {
86
- // Remove from baseTools
87
- const baseIdx = config.baseTools.indexOf(name);
88
- if (baseIdx !== -1) {
89
- config.baseTools.splice(baseIdx, 1);
90
- }
91
- // Remove from all role tool lists
92
- for (const role of Object.values(config.roles)) {
93
- const roleIdx = role.tools.indexOf(name);
94
- if (roleIdx !== -1) {
95
- role.tools.splice(roleIdx, 1);
96
- }
97
- }
98
- }
99
- writeGuildConfig(home, config);
100
- // Commit
101
- git(['add', '-A'], home);
102
- git(['commit', '-m', `Remove ${foundCategory.slice(0, -1)} ${name}`], home);
103
- return { category: foundCategory, name, removedFrom: toolDir };
104
- }
105
- //# sourceMappingURL=remove-tool.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remove-tool.js","sourceRoot":"","sources":["../../../src/legacy/1/remove-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEtE,MAAM,OAAO,GAA2B;IACtC,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,oBAAoB;IAC/B,YAAY,EAAE,uBAAuB;CACtC,CAAC;AAEF,4EAA4E;AAC5E,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,CAAU,CAAC;AAe9E,SAAS,GAAG,CAAC,IAAc,EAAE,GAAW;IACtC,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,KAA8B;IACpD,OAAQ,KAAK,CAAC,SAAS,CAAY,IAAI,IAAI,CAAC;AAC9C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,IAAuB;IAChD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAC5B,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAErC,8BAA8B;IAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IAC9D,IAAI,aAAoD,CAAC;IAEzD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,aAAa,GAAG,GAAG,CAAC;YACpB,MAAM;QACR,CAAC;IACH,CAAC;IAED,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,4BAA4B,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC;IAE1C,oDAAoD;IACpD,MAAM,WAAW,GAAG,cAAc,CAAC,KAA2C,CAAC,CAAC;IAChF,MAAM,QAAQ,GAAG,UAAU,IAAI,KAAK,CAAC,CAAC,CAAE,KAAK,CAAC,QAA0B,CAAC,CAAC,CAAC,IAAI,CAAC;IAEhF,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;QAC9D,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC;YACvE,uCAAuC;YACvC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACxB,4CAA4C;YAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,QAAQ,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;gBAC5C,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;aAAM,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACzD,iEAAiE;YACjE,IAAI,CAAC;gBACH,YAAY,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAChF,CAAC;YAAC,MAAM,CAAC;gBACP,4EAA4E;YAC9E,CAAC;QACH,CAAC;aAAM,CAAC;YACN,iFAAiF;YACjF,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAEjD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,6BAA6B;IAC7B,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC;IAEnC,qCAAqC;IACrC,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;QAC9B,wBAAwB;QACxB,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;YACnB,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACtC,CAAC;QACD,kCAAkC;QAClC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAE/B,SAAS;IACT,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACzB,GAAG,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAE5E,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;AACjE,CAAC"}
@@ -1,343 +0,0 @@
1
- /**
2
- * Session infrastructure — the unified session funnel.
3
- *
4
- * ALL sessions (interactive, summoned, briefed) flow through
5
- * `launchSession()`. This provides unified logging, events, metrics,
6
- * workspace lifecycle, and session record persistence.
7
- *
8
- * Session providers (e.g. claude-code, claude-api) implement the
9
- * `SessionProvider` interface and are registered at startup.
10
- */
11
- import type { ManifestResult } from './manifest.ts';
12
- /** Summary view of a session — for list views. */
13
- export interface SessionSummary {
14
- id: string;
15
- animaId: string;
16
- provider: string;
17
- trigger: string;
18
- workshop: string | null;
19
- workspaceKind: string;
20
- startedAt: string;
21
- endedAt: string | null;
22
- exitCode: number | null;
23
- costUsd: number | null;
24
- durationMs: number | null;
25
- }
26
- /** Full session detail — all columns from the sessions table. */
27
- export interface SessionDetail {
28
- id: string;
29
- animaId: string;
30
- provider: string;
31
- trigger: string;
32
- workshop: string | null;
33
- workspaceKind: string;
34
- curriculumName: string | null;
35
- curriculumVersion: string | null;
36
- temperamentName: string | null;
37
- temperamentVersion: string | null;
38
- roles: string[];
39
- startedAt: string;
40
- endedAt: string | null;
41
- exitCode: number | null;
42
- inputTokens: number | null;
43
- outputTokens: number | null;
44
- cacheReadTokens: number | null;
45
- cacheWriteTokens: number | null;
46
- costUsd: number | null;
47
- durationMs: number | null;
48
- providerSessionId: string | null;
49
- recordPath: string | null;
50
- }
51
- export interface ListSessionsOptions {
52
- anima?: string;
53
- workshop?: string;
54
- trigger?: string;
55
- /** Filter by active (no ended_at) or completed (has ended_at). */
56
- status?: 'active' | 'completed';
57
- /** Filter by bound writ ID. */
58
- writId?: string;
59
- /** Maximum number of results. */
60
- limit?: number;
61
- }
62
- /**
63
- * List sessions with optional filters.
64
- */
65
- export declare function listSessions(home: string, opts?: ListSessionsOptions): SessionSummary[];
66
- /**
67
- * Count sessions bound to a given writ. Used by circuit breakers to cap
68
- * retry attempts without fetching full session rows.
69
- */
70
- export declare function countSessionsForWrit(home: string, writId: string): number;
71
- /**
72
- * Show full details for a single session.
73
- */
74
- export declare function showSession(home: string, sessionId: string): SessionDetail | null;
75
- /** A chunk emitted during streaming session output. */
76
- export type SessionChunk = {
77
- type: 'text';
78
- text: string;
79
- } | {
80
- type: 'tool_use';
81
- tool: string;
82
- } | {
83
- type: 'tool_result';
84
- tool: string;
85
- };
86
- /** What a session provider must implement. */
87
- export interface SessionProvider {
88
- /** Provider identifier (e.g. "claude-code", "claude-api", "bedrock"). */
89
- name: string;
90
- /** Launch a session and return when it completes. */
91
- launch(options: SessionProviderLaunchOptions): Promise<SessionProviderResult>;
92
- /**
93
- * Launch a session with streaming output.
94
- *
95
- * Returns an async iterable of chunks for real-time output AND a promise
96
- * for the final result. Used by conversation turns to stream responses
97
- * to the dashboard while still capturing the full result for the funnel.
98
- *
99
- * Optional — providers that don't support streaming just omit this.
100
- * The conversation system falls back to launch() (no streaming, just
101
- * the final result).
102
- */
103
- launchStreaming?(options: SessionProviderLaunchOptions): {
104
- chunks: AsyncIterable<SessionChunk>;
105
- result: Promise<SessionProviderResult>;
106
- };
107
- }
108
- /** Options passed to the provider's launch() — provider-specific subset. */
109
- export interface SessionProviderLaunchOptions {
110
- /** Guild root path. */
111
- home: string;
112
- /** The manifest result — system prompt + resolved tools. */
113
- manifest: ManifestResult;
114
- /** The user-facing prompt (writ spec, consultation topic, brief). */
115
- prompt: string | null;
116
- /** Whether the session is interactive (human at keyboard) or autonomous. */
117
- interactive: boolean;
118
- /** Resolved working directory for the session. */
119
- cwd: string;
120
- /** Display name for tracking. */
121
- name?: string;
122
- /** Budget cap, if any. */
123
- maxBudgetUsd?: number;
124
- /**
125
- * Claude session ID to resume. When provided, the provider uses --resume
126
- * to continue an existing conversation instead of starting fresh.
127
- */
128
- claudeSessionId?: string;
129
- }
130
- /** What comes back from the provider (before the funnel adds its own fields). */
131
- export interface SessionProviderResult {
132
- exitCode: number;
133
- /** Provider-reported token usage, if available. */
134
- tokenUsage?: {
135
- inputTokens: number;
136
- outputTokens: number;
137
- cacheReadTokens?: number;
138
- cacheWriteTokens?: number;
139
- };
140
- /** Provider-reported cost in USD, if available. */
141
- costUsd?: number;
142
- /** Wall-clock duration in milliseconds. */
143
- durationMs: number;
144
- /** Session ID from the provider, if available (e.g. claude session ID). */
145
- providerSessionId?: string;
146
- /**
147
- * Full conversation transcript — raw provider output, minimally typed.
148
- * Stored as-is in the session record; typed normalization deferred.
149
- */
150
- transcript?: Record<string, unknown>[];
151
- }
152
- /** Everything needed to launch a session through the funnel. */
153
- export interface SessionLaunchOptions {
154
- /** Guild root path. */
155
- home: string;
156
- /** The manifest result — system prompt + resolved tools. */
157
- manifest: ManifestResult;
158
- /** The user-facing prompt (writ spec, consultation topic, brief). */
159
- prompt: string | null;
160
- /** Whether the session is interactive (human at keyboard) or autonomous. */
161
- interactive: boolean;
162
- /** Workspace context. */
163
- workspace: ResolvedWorkspace;
164
- /** What triggered this session. */
165
- trigger: 'consult' | 'summon' | 'brief' | 'convene';
166
- /** Display name for tracking. */
167
- name?: string;
168
- /** Budget cap, if any. */
169
- maxBudgetUsd?: number;
170
- /** Bound writ ID, if any. Set by clockworks for writ-driven sessions. */
171
- writId?: string;
172
- /**
173
- * Pre-generated session ID. If provided, launchSession uses this instead of
174
- * generating one internally. This allows callers to bind resources (e.g. writs)
175
- * to the session ID before the provider launches.
176
- */
177
- sessionId?: string;
178
- /** Conversation ID, if this session is a turn in a conversation. */
179
- conversationId?: string;
180
- /** Turn number within the conversation (1-indexed). */
181
- turnNumber?: number;
182
- /**
183
- * Claude session ID to resume. Passed through to the provider for
184
- * --resume support in multi-turn conversations.
185
- */
186
- claudeSessionId?: string;
187
- /**
188
- * Callback for streaming chunks during the session. When provided and
189
- * the provider supports launchStreaming(), chunks are forwarded here
190
- * as they arrive.
191
- */
192
- onChunk?: (chunk: SessionChunk) => void;
193
- /**
194
- * Additional content appended to the system prompt after manifest assembly.
195
- * Used by clockworks to inject session protocol (e.g. writ completion requirements).
196
- * Keeps dispatch concerns separate from manifest (identity).
197
- */
198
- systemPromptAppendix?: string;
199
- }
200
- /** What the funnel returns to callers. */
201
- export interface SessionResult {
202
- /** Ledger row ID — written by the funnel before provider launch. */
203
- sessionId: string;
204
- exitCode: number;
205
- /** Provider-reported token usage, if available. */
206
- tokenUsage?: {
207
- inputTokens: number;
208
- outputTokens: number;
209
- cacheReadTokens?: number;
210
- cacheWriteTokens?: number;
211
- };
212
- /** Provider-reported cost in USD, if available. */
213
- costUsd?: number;
214
- /** Wall-clock duration in milliseconds. */
215
- durationMs: number;
216
- /** Session ID from the provider, if available. */
217
- providerSessionId?: string;
218
- /** Raw transcript from the provider. */
219
- transcript?: Record<string, unknown>[];
220
- /** Bound writ ID, if any. */
221
- writId?: string;
222
- /** Conversation ID, if this session is a turn in a conversation. */
223
- conversationId?: string;
224
- /** Turn number within the conversation. */
225
- turnNumber?: number;
226
- }
227
- /**
228
- * Standard optional fields on event payloads. Any event can carry these.
229
- * The session launcher inspects the triggering event's payload and uses
230
- * them to determine the working directory for the session.
231
- */
232
- export interface WorkspaceContext {
233
- /** Workshop name — session gets a fresh temporary worktree of main. */
234
- workshop?: string;
235
- /** Explicit worktree path — used as-is (caller owns the lifecycle). */
236
- worktreePath?: string;
237
- }
238
- /** The resolved working directory for a session. */
239
- export type ResolvedWorkspace = {
240
- kind: 'guildhall';
241
- } | {
242
- kind: 'workshop-temp';
243
- workshop: string;
244
- worktreePath: string;
245
- } | {
246
- kind: 'workshop-managed';
247
- workshop: string;
248
- worktreePath: string;
249
- };
250
- /** Full session record written to disk as JSON. */
251
- export interface SessionRecord {
252
- /** Ledger session row ID (for cross-reference). */
253
- sessionId: string;
254
- /** The anima that ran this session, with full composition provenance. */
255
- anima: {
256
- id: string;
257
- name: string;
258
- roles: string[];
259
- codex: string;
260
- roleInstructions: string;
261
- curriculum: {
262
- name: string;
263
- version: string;
264
- content: string;
265
- } | null;
266
- temperament: {
267
- name: string;
268
- version: string;
269
- content: string;
270
- } | null;
271
- toolInstructions: Array<{
272
- toolName: string;
273
- instructions: string;
274
- }>;
275
- };
276
- /** The final assembled system prompt. */
277
- systemPrompt: string;
278
- /** Tools available to the anima. */
279
- tools: Array<{
280
- name: string;
281
- }>;
282
- /** Tools that were resolved but failed preconditions. */
283
- unavailableTools: Array<{
284
- name: string;
285
- reasons: string[];
286
- }>;
287
- /** The user-facing prompt. */
288
- userPrompt: string | null;
289
- /** Raw conversation transcript from the provider. */
290
- transcript: Record<string, unknown>[];
291
- }
292
- /**
293
- * Register a session provider. Called once at startup.
294
- */
295
- export declare function registerSessionProvider(provider: SessionProvider): void;
296
- /** Get the registered session provider. */
297
- export declare function getSessionProvider(): SessionProvider | null;
298
- /**
299
- * Resolve workspace context from an event payload's standard fields.
300
- */
301
- export declare function resolveWorkspace(payload: Record<string, unknown> | null): ResolvedWorkspace;
302
- /**
303
- * Create a temporary worktree from a workshop's bare repo, checked out to main.
304
- *
305
- * Uses a crypto-safe random hash for the directory name. The worktree is
306
- * a fresh snapshot — no branch management, no merge-back lifecycle.
307
- *
308
- * @returns Absolute path to the worktree directory.
309
- */
310
- export declare function createTempWorktree(home: string, workshop: string): string;
311
- /**
312
- * Remove a temporary worktree.
313
- *
314
- * Logs but does not throw on failure — stale worktrees are assumed to be
315
- * reaped by a separate mechanism.
316
- */
317
- export declare function removeTempWorktree(home: string, workshop: string, worktreePath: string): void;
318
- /**
319
- * Launch a session through the registered provider.
320
- *
321
- * This is THE code path for all sessions. It:
322
- * 1. If workspace is workshop-temp: create fresh worktree from main
323
- * 2. Records session.started in the Daybook → gets sessionId
324
- * 3. Signals session.started event
325
- * 4. Delegates to the provider (passing resolved cwd)
326
- * 5. Records session.ended in the Daybook (with metrics)
327
- * 6. Writes the SessionRecord JSON to .nexus/sessions/{uuid}.json
328
- * 7. Signals session.ended event (with full metrics + sessionId in payload)
329
- * 8. If workspace is workshop-temp AND session is autonomous: tear down the worktree
330
- * (interactive sessions leave the worktree for manual cleanup)
331
- * 9. Returns the result (including sessionId)
332
- *
333
- * Error handling guarantee: Steps 5–8 MUST execute even if the provider
334
- * throws. The funnel wraps step 4 in try/finally. If the provider crashes,
335
- * the session row still gets ended_at, exit_code, and the session.ended
336
- * event still fires (with error details in the payload). If the funnel
337
- * itself fails during recording (e.g. Ledger locked), it signals
338
- * session.record-failed as a core event and continues with remaining
339
- * cleanup steps. Worktree teardown failures are logged but do not throw —
340
- * stale worktrees are assumed to be reaped by a separate mechanism.
341
- */
342
- export declare function launchSession(options: SessionLaunchOptions): Promise<SessionResult>;
343
- //# sourceMappingURL=session.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/legacy/1/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAUH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAIpD,kDAAkD;AAClD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,iEAAiE;AACjE,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,MAAM,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IAChC,+BAA+B;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,mBAAwB,GAAG,cAAc,EAAE,CAyE3F;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAWzE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAsDjF;AAID,uDAAuD;AACvD,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1C,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,MAAM,CAAC,OAAO,EAAE,4BAA4B,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC9E;;;;;;;;;;OAUG;IACH,eAAe,CAAC,CAAC,OAAO,EAAE,4BAA4B,GAAG;QACvD,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;QACpC,MAAM,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;KACxC,CAAC;CACH;AAED,4EAA4E;AAC5E,MAAM,WAAW,4BAA4B;IAC3C,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,QAAQ,EAAE,cAAc,CAAC;IACzB,qEAAqE;IACrE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,4EAA4E;IAC5E,WAAW,EAAE,OAAO,CAAC;IACrB,kDAAkD;IAClD,GAAG,EAAE,MAAM,CAAC;IACZ,iCAAiC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,iFAAiF;AACjF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,UAAU,CAAC,EAAE;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CACxC;AAED,gEAAgE;AAChE,MAAM,WAAW,oBAAoB;IACnC,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,QAAQ,EAAE,cAAc,CAAC;IACzB,qEAAqE;IACrE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,4EAA4E;IAC5E,WAAW,EAAE,OAAO,CAAC;IACrB,yBAAyB;IACzB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,mCAAmC;IACnC,OAAO,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;IACpD,iCAAiC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACxC;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,0CAA0C;AAC1C,MAAM,WAAW,aAAa;IAC5B,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,UAAU,CAAC,EAAE;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACvC,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,oDAAoD;AACpD,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GACjE;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzE,mDAAmD;AACnD,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,KAAK,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,gBAAgB,EAAE,MAAM,CAAC;QACzB,UAAU,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;QACtE,WAAW,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;QACvE,gBAAgB,EAAE,KAAK,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACrE,CAAC;IACF,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/B,yDAAyD;IACzD,gBAAgB,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAC7D,8BAA8B;IAC9B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CACvC;AAMD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAEvE;AAED,2CAA2C;AAC3C,wBAAgB,kBAAkB,IAAI,eAAe,GAAG,IAAI,CAE3D;AAID;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GACtC,iBAAiB,CAiBnB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAoBzE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAa7F;AAmKD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC,CA4LzF"}