@nepopsx/cli 0.0.24 → 0.0.26

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 (139) hide show
  1. package/dist/agents/remote-config.d.ts +12 -0
  2. package/dist/agents/remote-config.d.ts.map +1 -1
  3. package/dist/agents/remote-config.js +19 -0
  4. package/dist/agents/remote-config.js.map +1 -1
  5. package/dist/commands/guard.d.ts +10 -0
  6. package/dist/commands/guard.d.ts.map +1 -0
  7. package/dist/commands/guard.js +63 -0
  8. package/dist/commands/guard.js.map +1 -0
  9. package/dist/commands/import-agents.d.ts +17 -0
  10. package/dist/commands/import-agents.d.ts.map +1 -0
  11. package/dist/commands/import-agents.js +192 -0
  12. package/dist/commands/import-agents.js.map +1 -0
  13. package/dist/commands/import.d.ts +19 -0
  14. package/dist/commands/import.d.ts.map +1 -0
  15. package/dist/commands/import.js +182 -0
  16. package/dist/commands/import.js.map +1 -0
  17. package/dist/commands/init.d.ts.map +1 -1
  18. package/dist/commands/init.js +21 -13
  19. package/dist/commands/init.js.map +1 -1
  20. package/dist/commands/install.d.ts.map +1 -1
  21. package/dist/commands/install.js +12 -1
  22. package/dist/commands/install.js.map +1 -1
  23. package/dist/commands/login.d.ts.map +1 -1
  24. package/dist/commands/login.js +15 -37
  25. package/dist/commands/login.js.map +1 -1
  26. package/dist/commands/push-learnings.d.ts.map +1 -1
  27. package/dist/commands/push-learnings.js +8 -1
  28. package/dist/commands/push-learnings.js.map +1 -1
  29. package/dist/commands/scan.d.ts.map +1 -1
  30. package/dist/commands/scan.js +17 -0
  31. package/dist/commands/scan.js.map +1 -1
  32. package/dist/commands/sync.d.ts.map +1 -1
  33. package/dist/commands/sync.js +29 -4
  34. package/dist/commands/sync.js.map +1 -1
  35. package/dist/commands/up.d.ts.map +1 -1
  36. package/dist/commands/up.js +92 -9
  37. package/dist/commands/up.js.map +1 -1
  38. package/dist/config/api-config.d.ts +5 -7
  39. package/dist/config/api-config.d.ts.map +1 -1
  40. package/dist/config/api-config.js +2 -3
  41. package/dist/config/api-config.js.map +1 -1
  42. package/dist/config/global-config.d.ts +52 -0
  43. package/dist/config/global-config.d.ts.map +1 -0
  44. package/dist/config/global-config.js +161 -0
  45. package/dist/config/global-config.js.map +1 -0
  46. package/dist/config/global-config.test.d.ts +2 -0
  47. package/dist/config/global-config.test.d.ts.map +1 -0
  48. package/dist/config/global-config.test.js +62 -0
  49. package/dist/config/global-config.test.js.map +1 -0
  50. package/dist/enrichment/workflow.d.ts.map +1 -1
  51. package/dist/enrichment/workflow.js +8 -1
  52. package/dist/enrichment/workflow.js.map +1 -1
  53. package/dist/guard/policy.d.ts +38 -0
  54. package/dist/guard/policy.d.ts.map +1 -0
  55. package/dist/guard/policy.js +62 -0
  56. package/dist/guard/policy.js.map +1 -0
  57. package/dist/guard/policy.test.d.ts +2 -0
  58. package/dist/guard/policy.test.d.ts.map +1 -0
  59. package/dist/guard/policy.test.js +47 -0
  60. package/dist/guard/policy.test.js.map +1 -0
  61. package/dist/hooks/capture-hooks.d.ts.map +1 -1
  62. package/dist/hooks/capture-hooks.js +36 -1
  63. package/dist/hooks/capture-hooks.js.map +1 -1
  64. package/dist/import/adapter.d.ts +82 -0
  65. package/dist/import/adapter.d.ts.map +1 -0
  66. package/dist/import/adapter.js +111 -0
  67. package/dist/import/adapter.js.map +1 -0
  68. package/dist/import/adapter.test.d.ts +2 -0
  69. package/dist/import/adapter.test.d.ts.map +1 -0
  70. package/dist/import/adapter.test.js +100 -0
  71. package/dist/import/adapter.test.js.map +1 -0
  72. package/dist/import/agents/agent-adapter.d.ts +83 -0
  73. package/dist/import/agents/agent-adapter.d.ts.map +1 -0
  74. package/dist/import/agents/agent-adapter.js +66 -0
  75. package/dist/import/agents/agent-adapter.js.map +1 -0
  76. package/dist/import/agents/agent-adapter.test.d.ts +2 -0
  77. package/dist/import/agents/agent-adapter.test.d.ts.map +1 -0
  78. package/dist/import/agents/agent-adapter.test.js +99 -0
  79. package/dist/import/agents/agent-adapter.test.js.map +1 -0
  80. package/dist/import/agents/artifact-parser.d.ts +26 -0
  81. package/dist/import/agents/artifact-parser.d.ts.map +1 -0
  82. package/dist/import/agents/artifact-parser.js +40 -0
  83. package/dist/import/agents/artifact-parser.js.map +1 -0
  84. package/dist/import/agents/assembler.d.ts +32 -0
  85. package/dist/import/agents/assembler.d.ts.map +1 -0
  86. package/dist/import/agents/assembler.js +0 -0
  87. package/dist/import/agents/assembler.js.map +1 -0
  88. package/dist/import/agents/assembler.test.d.ts +2 -0
  89. package/dist/import/agents/assembler.test.d.ts.map +1 -0
  90. package/dist/import/agents/assembler.test.js +115 -0
  91. package/dist/import/agents/assembler.test.js.map +1 -0
  92. package/dist/import/agents/claude-code-adapter.d.ts +11 -0
  93. package/dist/import/agents/claude-code-adapter.d.ts.map +1 -0
  94. package/dist/import/agents/claude-code-adapter.js +84 -0
  95. package/dist/import/agents/claude-code-adapter.js.map +1 -0
  96. package/dist/import/agents/copilot-agent-adapter.d.ts +12 -0
  97. package/dist/import/agents/copilot-agent-adapter.d.ts.map +1 -0
  98. package/dist/import/agents/copilot-agent-adapter.js +89 -0
  99. package/dist/import/agents/copilot-agent-adapter.js.map +1 -0
  100. package/dist/import/agents/scanner.d.ts +15 -0
  101. package/dist/import/agents/scanner.d.ts.map +1 -0
  102. package/dist/import/agents/scanner.js +87 -0
  103. package/dist/import/agents/scanner.js.map +1 -0
  104. package/dist/import/agents/secret-scan.d.ts +14 -0
  105. package/dist/import/agents/secret-scan.d.ts.map +1 -0
  106. package/dist/import/agents/secret-scan.js +64 -0
  107. package/dist/import/agents/secret-scan.js.map +1 -0
  108. package/dist/import/agents/secret-scan.test.d.ts +2 -0
  109. package/dist/import/agents/secret-scan.test.d.ts.map +1 -0
  110. package/dist/import/agents/secret-scan.test.js +41 -0
  111. package/dist/import/agents/secret-scan.test.js.map +1 -0
  112. package/dist/import/claude-memory-adapter.d.ts +20 -0
  113. package/dist/import/claude-memory-adapter.d.ts.map +1 -0
  114. package/dist/import/claude-memory-adapter.js +87 -0
  115. package/dist/import/claude-memory-adapter.js.map +1 -0
  116. package/dist/import/copilot-adapter.d.ts +13 -0
  117. package/dist/import/copilot-adapter.d.ts.map +1 -0
  118. package/dist/import/copilot-adapter.js +75 -0
  119. package/dist/import/copilot-adapter.js.map +1 -0
  120. package/dist/index.js +61 -2
  121. package/dist/index.js.map +1 -1
  122. package/dist/learnings/memory-index.d.ts +17 -0
  123. package/dist/learnings/memory-index.d.ts.map +1 -0
  124. package/dist/learnings/memory-index.js +73 -0
  125. package/dist/learnings/memory-index.js.map +1 -0
  126. package/dist/licensing/installer.d.ts.map +1 -1
  127. package/dist/licensing/installer.js +3 -5
  128. package/dist/licensing/installer.js.map +1 -1
  129. package/dist/licensing/license-manager.d.ts +6 -5
  130. package/dist/licensing/license-manager.d.ts.map +1 -1
  131. package/dist/licensing/license-manager.js +10 -8
  132. package/dist/licensing/license-manager.js.map +1 -1
  133. package/dist/licensing/workspace-name.d.ts +1 -1
  134. package/dist/licensing/workspace-name.js +1 -1
  135. package/dist/utils/fetch.d.ts +8 -0
  136. package/dist/utils/fetch.d.ts.map +1 -1
  137. package/dist/utils/fetch.js +35 -0
  138. package/dist/utils/fetch.js.map +1 -1
  139. package/package.json +2 -2
@@ -47,4 +47,16 @@ export interface ApprovedLearnings {
47
47
  merged_learnings: Record<string, Record<string, MergedLearningEntry>>;
48
48
  }
49
49
  export declare function fetchApprovedLearnings(rootDir: string, licenseKey: string, workspace?: string): Promise<ApprovedLearnings>;
50
+ /** A provider-native file rendered from a blessed imported-agent bundle. */
51
+ export interface BlessedRenderFile {
52
+ path: string;
53
+ content: string;
54
+ }
55
+ /**
56
+ * Fetch the rendered provider files for every BLESSED imported agent in the
57
+ * workspace. Lets `sync` materialize the org's governed custom agents so a
58
+ * teammate who clones the repo gets them (the bless-time render never touches
59
+ * their disk). Best-effort: returns [] on any error so sync never hard-fails on it.
60
+ */
61
+ export declare function fetchBlessedRender(rootDir: string, licenseKey: string, workspace?: string): Promise<BlessedRenderFile[]>;
50
62
  //# sourceMappingURL=remote-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"remote-config.d.ts","sourceRoot":"","sources":["../../src/agents/remote-config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAKlE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAiBvE,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,WAAW,GACrB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAQhC;AAED,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,SAAS,CAAC,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,wBAAwB,GACpC,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAwBlD;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAC3C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;CAClD;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAkDvC;AAED,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,eAAe,EACvB,UAAU,CAAC,EAAE,wBAAwB,GACpC,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/G,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxF,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7G,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC;CACvE;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,iBAAiB,CAAC,CA6B5B"}
1
+ {"version":3,"file":"remote-config.d.ts","sourceRoot":"","sources":["../../src/agents/remote-config.ts"],"names":[],"mappings":"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"}
@@ -151,4 +151,23 @@ export async function fetchApprovedLearnings(rootDir, licenseKey, workspace) {
151
151
  merged_learnings: payload.merged_learnings ?? {},
152
152
  };
153
153
  }
154
+ /**
155
+ * Fetch the rendered provider files for every BLESSED imported agent in the
156
+ * workspace. Lets `sync` materialize the org's governed custom agents so a
157
+ * teammate who clones the repo gets them (the bless-time render never touches
158
+ * their disk). Best-effort: returns [] on any error so sync never hard-fails on it.
159
+ */
160
+ export async function fetchBlessedRender(rootDir, licenseKey, workspace) {
161
+ const apiBase = resolveApiBase(rootDir);
162
+ const url = new URL(`${apiBase}/agents/blessed-render`);
163
+ if (workspace)
164
+ url.searchParams.set('workspace', workspace);
165
+ const response = await fetchWithTimeout(url.toString(), { headers: { Authorization: `Bearer ${licenseKey}` } }, DOWNLOAD_TIMEOUT_MS);
166
+ if (!response.ok) {
167
+ const body = await response.text().catch(() => '');
168
+ throw new Error(`Failed to fetch blessed agents (${response.status}): ${body || response.statusText}`);
169
+ }
170
+ const payload = (await response.json());
171
+ return payload.files ?? [];
172
+ }
154
173
  //# sourceMappingURL=remote-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"remote-config.js","sourceRoot":"","sources":["../../src/agents/remote-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote-config.js","sourceRoot":"","sources":["../../src/agents/remote-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * `nepopsx guard` — a Claude Code PreToolUse hook. Reads the tool call from stdin,
3
+ * evaluates it against the local policy, and emits a `permissionDecision: deny`
4
+ * (which blocks the call) when a rule matches. NO network on the hot path.
5
+ *
6
+ * SOFT-FAIL by design: any error in the guard itself exits cleanly (fail-open) so it
7
+ * can never crash or hang the calling session. Only an explicit rule match blocks.
8
+ */
9
+ export declare function guardCommand(): Promise<void>;
10
+ //# sourceMappingURL=guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../src/commands/guard.ts"],"names":[],"mappings":"AA0BA;;;;;;;GAOG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAgClD"}
@@ -0,0 +1,63 @@
1
+ import { existsSync, readFileSync } from 'node:fs';
2
+ import { resolve } from 'node:path';
3
+ import { BUILTIN_RULES, evaluate, validRule } from '../guard/policy.js';
4
+ /** Read all of stdin (the hook payload). */
5
+ async function readStdin() {
6
+ const chunks = [];
7
+ for await (const chunk of process.stdin)
8
+ chunks.push(chunk);
9
+ return Buffer.concat(chunks).toString('utf-8');
10
+ }
11
+ /** Built-in rules + the locally-cached `.nepopsx/policy.json` (synced out-of-band). */
12
+ function loadRules(cwd) {
13
+ const rules = [...BUILTIN_RULES];
14
+ const policyPath = resolve(cwd, '.nepopsx', 'policy.json');
15
+ if (existsSync(policyPath)) {
16
+ try {
17
+ const parsed = JSON.parse(readFileSync(policyPath, 'utf-8'));
18
+ if (Array.isArray(parsed.rules))
19
+ rules.push(...parsed.rules.filter(validRule));
20
+ }
21
+ catch {
22
+ /* fail-open: a corrupt policy file must never break the session */
23
+ }
24
+ }
25
+ return rules;
26
+ }
27
+ /**
28
+ * `nepopsx guard` — a Claude Code PreToolUse hook. Reads the tool call from stdin,
29
+ * evaluates it against the local policy, and emits a `permissionDecision: deny`
30
+ * (which blocks the call) when a rule matches. NO network on the hot path.
31
+ *
32
+ * SOFT-FAIL by design: any error in the guard itself exits cleanly (fail-open) so it
33
+ * can never crash or hang the calling session. Only an explicit rule match blocks.
34
+ */
35
+ export async function guardCommand() {
36
+ try {
37
+ const raw = await readStdin();
38
+ if (!raw.trim())
39
+ return;
40
+ const payload = JSON.parse(raw);
41
+ const cwd = typeof payload.cwd === 'string' && payload.cwd ? payload.cwd : process.cwd();
42
+ const input = {
43
+ tool_name: typeof payload.tool_name === 'string' ? payload.tool_name : '',
44
+ tool_input: payload.tool_input ?? {},
45
+ };
46
+ const verdict = evaluate(input, loadRules(cwd));
47
+ if (verdict.decision === 'deny' && verdict.rule) {
48
+ // permissionDecision:deny blocks the tool call; the reason is shown to the agent.
49
+ process.stdout.write(`${JSON.stringify({
50
+ hookSpecificOutput: {
51
+ hookEventName: 'PreToolUse',
52
+ permissionDecision: 'deny',
53
+ permissionDecisionReason: `[nepopsx policy:${verdict.rule.id}] ${verdict.rule.reason}`,
54
+ },
55
+ })}\n`);
56
+ }
57
+ // allow → no output, exit 0
58
+ }
59
+ catch {
60
+ /* fail-open */
61
+ }
62
+ }
63
+ //# sourceMappingURL=guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guard.js","sourceRoot":"","sources":["../../src/commands/guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAoC,MAAM,oBAAoB,CAAC;AAE1G,4CAA4C;AAC5C,KAAK,UAAU,SAAS;IACtB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK;QAAE,MAAM,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC;IACtE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,uFAAuF;AACvF,SAAS,SAAS,CAAC,GAAW;IAC5B,MAAM,KAAK,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC;IACjC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IAC3D,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAA0B,CAAC;YACtF,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QACjF,CAAC;QAAC,MAAM,CAAC;YACP,mEAAmE;QACrE,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;YAAE,OAAO;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAI7B,CAAC;QACF,MAAM,GAAG,GAAG,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACzF,MAAM,KAAK,GAAe;YACxB,SAAS,EAAE,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YACzE,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;SACrC,CAAC;QAEF,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YAChD,kFAAkF;YAClF,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,IAAI,CAAC,SAAS,CAAC;gBAChB,kBAAkB,EAAE;oBAClB,aAAa,EAAE,YAAY;oBAC3B,kBAAkB,EAAE,MAAM;oBAC1B,wBAAwB,EAAE,mBAAmB,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE;iBACvF;aACF,CAAC,IAAI,CACP,CAAC;QACJ,CAAC;QACD,4BAA4B;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;AACH,CAAC"}
@@ -0,0 +1,17 @@
1
+ interface ImportAgentsOptions {
2
+ config: string;
3
+ workspace?: string;
4
+ dryRun?: boolean;
5
+ }
6
+ /**
7
+ * `nepopsx import-agents` — comprehend a customer's existing custom agents
8
+ * (.claude/agents, .github/agents) into the platform as governed PENDING bundles.
9
+ *
10
+ * Scans both ecosystems, assembles agent-centric bundles (orchestration graph +
11
+ * dangling-ref flags), redacts secrets locally, then POSTs in size-bounded batches to
12
+ * /agents/import. Foreign agents are untrusted: every bundle lands PENDING (or
13
+ * QUARANTINED on a security-scan hit) for review — never auto-blessed.
14
+ */
15
+ export declare function importAgentsCommand(options: ImportAgentsOptions): Promise<void>;
16
+ export {};
17
+ //# sourceMappingURL=import-agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-agents.d.ts","sourceRoot":"","sources":["../../src/commands/import-agents.ts"],"names":[],"mappings":"AAaA,UAAU,mBAAmB;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAqED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8HrF"}
@@ -0,0 +1,192 @@
1
+ import { existsSync, readFileSync } from 'node:fs';
2
+ import { resolve } from 'node:path';
3
+ import { parse as parseYaml } from 'yaml';
4
+ import chalk from 'chalk';
5
+ import { input } from '@inquirer/prompts';
6
+ import { resolveApiBase } from '../config/api-config.js';
7
+ import { readLicense, resolveWorkspaceName } from '../licensing/index.js';
8
+ import { fetchWithTimeout } from '../utils/fetch.js';
9
+ import { DOWNLOAD_TIMEOUT_MS } from '../constants.js';
10
+ import { scanRepo } from '../import/agents/scanner.js';
11
+ import { assembleBundles } from '../import/agents/assembler.js';
12
+ import { redactSecrets, redactValue } from '../import/agents/secret-scan.js';
13
+ /** Conservative per-request budget — the /agents/import body limit 413s on big repos. */
14
+ const MAX_REQUEST_BYTES = 60_000;
15
+ /** Serialize one assembled bundle into the import payload, redacting secrets first. */
16
+ function toPayload(b) {
17
+ const inst = redactSecrets(b.agent.instructions);
18
+ const rawR = redactSecrets(b.agent.raw);
19
+ const extraR = redactValue(b.agent.extra);
20
+ const redactions = inst.count + rawR.count + extraR.count;
21
+ const fidelity = [
22
+ ...b.fidelity,
23
+ ...b.agent.fidelity,
24
+ ...(redactions > 0
25
+ ? [{ field: 'secrets', severity: 'loss', detail: `Redacted ${redactions} secret(s) before import.` }]
26
+ : []),
27
+ ];
28
+ return {
29
+ redactions,
30
+ payload: {
31
+ slug: b.agent.slug,
32
+ name: b.agent.name,
33
+ kind: b.agent.kind,
34
+ description: b.agent.description,
35
+ originProvider: b.agent.originProvider,
36
+ instructions: inst.value,
37
+ importedFrom: b.agent.importedFrom,
38
+ fidelity,
39
+ ir: {
40
+ agent: {
41
+ modelRaw: b.agent.modelRaw,
42
+ tools: b.agent.tools,
43
+ disallowedTools: b.agent.disallowedTools,
44
+ subAgents: b.agent.subAgents,
45
+ handoffs: b.agent.handoffs,
46
+ userInvocable: b.agent.userInvocable,
47
+ target: b.agent.target,
48
+ extra: extraR.value,
49
+ raw: rawR.value,
50
+ },
51
+ graph: b.graph,
52
+ skills: b.skills.map((s) => s.slug),
53
+ },
54
+ },
55
+ };
56
+ }
57
+ /** Greedily batch payloads so each POST body stays under the size limit (413 fix). */
58
+ function chunkByBytes(items, maxBytes) {
59
+ const out = [];
60
+ let cur = [];
61
+ let size = 2; // "[]"
62
+ for (const it of items) {
63
+ const s = JSON.stringify(it).length + 1;
64
+ if (cur.length > 0 && size + s > maxBytes) {
65
+ out.push(cur);
66
+ cur = [];
67
+ size = 2;
68
+ }
69
+ cur.push(it);
70
+ size += s;
71
+ }
72
+ if (cur.length > 0)
73
+ out.push(cur);
74
+ return out;
75
+ }
76
+ /**
77
+ * `nepopsx import-agents` — comprehend a customer's existing custom agents
78
+ * (.claude/agents, .github/agents) into the platform as governed PENDING bundles.
79
+ *
80
+ * Scans both ecosystems, assembles agent-centric bundles (orchestration graph +
81
+ * dangling-ref flags), redacts secrets locally, then POSTs in size-bounded batches to
82
+ * /agents/import. Foreign agents are untrusted: every bundle lands PENDING (or
83
+ * QUARANTINED on a security-scan hit) for review — never auto-blessed.
84
+ */
85
+ export async function importAgentsCommand(options) {
86
+ const cwd = process.cwd();
87
+ let config = {};
88
+ const configPath = resolve(cwd, options.config);
89
+ if (existsSync(configPath)) {
90
+ try {
91
+ const raw = parseYaml(readFileSync(configPath, 'utf-8'));
92
+ if (raw && typeof raw === 'object')
93
+ config = raw;
94
+ }
95
+ catch {
96
+ /* best-effort */
97
+ }
98
+ }
99
+ const bundles = assembleBundles(scanRepo(cwd));
100
+ if (bundles.length === 0) {
101
+ console.log(chalk.dim('nepopsx import-agents: no agents found under .claude/agents or .github/agents.'));
102
+ return;
103
+ }
104
+ const serialized = bundles.map(toPayload);
105
+ const totalRedactions = serialized.reduce((n, s) => n + s.redactions, 0);
106
+ const dangling = bundles.reduce((n, b) => n + b.graph.filter((e) => !e.resolvedInSet).length, 0);
107
+ // ── Dry run: report locally, no auth, no POST ──────────────────────────────
108
+ if (options.dryRun) {
109
+ console.log(chalk.bold.cyan(`\n🔎 nepopsx import-agents — dry run (${bundles.length} bundle(s))\n`));
110
+ for (const b of bundles) {
111
+ const tag = b.agent.kind === 'command' ? chalk.magenta('orchestrator') : chalk.dim('agent');
112
+ // Collapse multi-kind edges to one entry per target so a sub-agent reached
113
+ // by BOTH `agents:` and `handoffs:` shows once in the graph summary.
114
+ const targets = new Map();
115
+ for (const e of b.graph)
116
+ targets.set(e.to, (targets.get(e.to) ?? true) && e.resolvedInSet);
117
+ const edges = targets.size
118
+ ? ` graph[${[...targets].map(([to, ok]) => to + (ok ? '' : ' ✗')).join(', ')}]`
119
+ : '';
120
+ console.log(` ${chalk.bold(b.agent.slug)} ${tag} ${chalk.dim(`[${b.agent.originProvider}]`)}${edges}`);
121
+ console.log(` ${chalk.dim(b.agent.importedFrom)}`);
122
+ }
123
+ const batches = chunkByBytes(serialized.map((s) => s.payload), MAX_REQUEST_BYTES);
124
+ console.log(chalk.dim(`\n ${totalRedactions} secret(s) would be redacted · ${dangling} dangling ref(s) · ${batches.length} batch(es).`));
125
+ console.log(chalk.dim(' No changes sent. Re-run without --dry-run to import as PENDING for review.\n'));
126
+ return;
127
+ }
128
+ // ── Real run: auth + workspace, then POST in batches ───────────────────────
129
+ const license = readLicense(cwd);
130
+ if (!license) {
131
+ console.error(chalk.red('nepopsx import-agents: not logged in. Run `nepopsx login` first.'));
132
+ process.exitCode = 1;
133
+ return;
134
+ }
135
+ let workspace = options.workspace ?? resolveWorkspaceName(cwd, license, config);
136
+ if (!workspace || workspace === 'unknown') {
137
+ // No workspace from --workspace, workspace.yaml, or the license. Ask rather than
138
+ // dead-end (A3): the dry-run already succeeded, so don't strand the user here.
139
+ const interactive = Boolean(process.stdin.isTTY);
140
+ if (interactive) {
141
+ const answer = (await input({
142
+ message: 'Which workspace should these agents import into? (name or slug)',
143
+ validate: (v) => (v.trim() ? true : 'Enter a workspace name or slug.'),
144
+ })).trim();
145
+ workspace = answer;
146
+ }
147
+ if (!workspace || workspace === 'unknown') {
148
+ console.error(chalk.red('nepopsx import-agents: no workspace resolved.') +
149
+ chalk.dim('\n Run `nepopsx up` here first to create one, or pass `--workspace <name>`.'));
150
+ process.exitCode = 1;
151
+ return;
152
+ }
153
+ }
154
+ const apiBase = resolveApiBase(cwd);
155
+ const batches = chunkByBytes(serialized.map((s) => s.payload), MAX_REQUEST_BYTES);
156
+ let received = 0;
157
+ let pending = 0;
158
+ let quarantined = 0;
159
+ try {
160
+ for (const [i, batch] of batches.entries()) {
161
+ const response = await fetchWithTimeout(`${apiBase}/agents/import`, {
162
+ method: 'POST',
163
+ headers: { Authorization: `Bearer ${license.key}`, 'Content-Type': 'application/json' },
164
+ body: JSON.stringify({ workspace, bundles: batch }),
165
+ }, DOWNLOAD_TIMEOUT_MS);
166
+ if (!response.ok) {
167
+ const body = await response.text().catch(() => '');
168
+ console.error(chalk.red(`nepopsx import-agents: batch ${i + 1}/${batches.length} → ${response.status} ${body.slice(0, 200)}`));
169
+ process.exitCode = 1;
170
+ return;
171
+ }
172
+ const json = (await response.json());
173
+ received += json.received ?? 0;
174
+ pending += json.pending ?? 0;
175
+ quarantined += json.quarantined ?? 0;
176
+ }
177
+ }
178
+ catch (err) {
179
+ console.error(chalk.red(`nepopsx import-agents: failed — ${err instanceof Error ? err.message : String(err)}`));
180
+ process.exitCode = 1;
181
+ return;
182
+ }
183
+ // `received` = source files sent; `pending+quarantined` = unique bundles stored
184
+ // (the same agent in .claude AND .github dedups to one bundle by slug). Show both
185
+ // so the counts reconcile instead of looking like data loss (A4).
186
+ const stored = pending + quarantined;
187
+ const dedupNote = received > stored ? chalk.dim(` (${received} source file(s) deduped to ${stored} unique)`) : "";
188
+ console.log(chalk.green(`\n✅ nepopsx import-agents: ${stored} bundle(s) → ${pending} pending, ${quarantined} quarantined` +
189
+ chalk.green(` (${totalRedactions} secret(s) redacted, ${batches.length} batch(es)).`)) + dedupNote);
190
+ console.log(chalk.dim(' Review pending agents in the dashboard before they render.'));
191
+ }
192
+ //# sourceMappingURL=import-agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-agents.js","sourceRoot":"","sources":["../../src/commands/import-agents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ interface ImportOptions {
2
+ config: string;
3
+ workspace?: string;
4
+ source: string;
5
+ agent?: string;
6
+ dryRun?: boolean;
7
+ force?: boolean;
8
+ }
9
+ /**
10
+ * `nepopsx import` — ingest agent-memory files written by OTHER tools (GitHub
11
+ * Copilot instructions, Claude project memory) into the platform as PENDING
12
+ * learnings, routed to the resolved org/workspace and scoped by service.
13
+ *
14
+ * Governance: every imported learning is sent with frequency=1 so it can never
15
+ * auto-approve — it always lands in the review queue. Foreign memory is untrusted.
16
+ */
17
+ export declare function importCommand(options: ImportOptions): Promise<void>;
18
+ export {};
19
+ //# sourceMappingURL=import.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/commands/import.ts"],"names":[],"mappings":"AAeA,UAAU,aAAa;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAeD;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA+LzE"}
@@ -0,0 +1,182 @@
1
+ import { existsSync, readFileSync } from 'node:fs';
2
+ import { resolve } from 'node:path';
3
+ import { parse as parseYaml } from 'yaml';
4
+ import chalk from 'chalk';
5
+ import { resolveApiBase } from '../config/api-config.js';
6
+ import { readLicense, resolveWorkspaceName } from '../licensing/index.js';
7
+ import { fetchWithTimeout } from '../utils/fetch.js';
8
+ import { DOWNLOAD_TIMEOUT_MS } from '../constants.js';
9
+ import { writeYamlLearning } from '../learnings/yaml-learnings.js';
10
+ import { regenerateMemoryIndex } from '../learnings/memory-index.js';
11
+ import { copilotAdapter } from '../import/copilot-adapter.js';
12
+ import { claudeMemoryAdapter } from '../import/claude-memory-adapter.js';
13
+ const ADAPTERS = [copilotAdapter, claudeMemoryAdapter];
14
+ /** Map an adapter's source tag to the constrained LearningYaml.source union. */
15
+ function provenanceSource(adapterId) {
16
+ return adapterId === 'claude-memory' ? 'claude-auto-memory' : 'manual';
17
+ }
18
+ /**
19
+ * `nepopsx import` — ingest agent-memory files written by OTHER tools (GitHub
20
+ * Copilot instructions, Claude project memory) into the platform as PENDING
21
+ * learnings, routed to the resolved org/workspace and scoped by service.
22
+ *
23
+ * Governance: every imported learning is sent with frequency=1 so it can never
24
+ * auto-approve — it always lands in the review queue. Foreign memory is untrusted.
25
+ */
26
+ export async function importCommand(options) {
27
+ const cwd = process.cwd();
28
+ // Load workspace config (services for scope inference + workspace name).
29
+ let config = {};
30
+ const configPath = resolve(cwd, options.config);
31
+ if (existsSync(configPath)) {
32
+ try {
33
+ const raw = parseYaml(readFileSync(configPath, 'utf-8'));
34
+ if (raw && typeof raw === 'object')
35
+ config = raw;
36
+ }
37
+ catch {
38
+ /* best-effort */
39
+ }
40
+ }
41
+ const services = Array.isArray(config.services)
42
+ ? config.services
43
+ .filter((s) => typeof s?.name === 'string')
44
+ .map((s) => ({ name: s.name, path: s.path }))
45
+ : [];
46
+ const ctx = { rootDir: cwd, services };
47
+ // Select adapters.
48
+ const wanted = options.source === 'all' ? ADAPTERS.map((a) => a.id) : [options.source];
49
+ const selected = ADAPTERS.filter((a) => wanted.includes(a.id));
50
+ if (selected.length === 0) {
51
+ console.error(chalk.red(`Unknown --source "${options.source}". Use: copilot | claude-memory | all.`));
52
+ process.exitCode = 1;
53
+ return;
54
+ }
55
+ // Parse all candidates.
56
+ const importedDir = resolve(cwd, '.nepopsx', 'imported');
57
+ const candidates = [];
58
+ let skippedExisting = 0;
59
+ for (const adapter of selected) {
60
+ const agent = options.agent ?? adapter.id;
61
+ const files = adapter.detect(ctx);
62
+ for (const file of files) {
63
+ for (const raw of adapter.parse(file, ctx)) {
64
+ // Idempotency: skip a candidate already imported (unless --force).
65
+ const marker = resolve(importedDir, adapter.id, `${raw.slug}.yaml`);
66
+ if (!options.force && existsSync(marker)) {
67
+ skippedExisting++;
68
+ continue;
69
+ }
70
+ candidates.push({ adapterId: adapter.id, agent, raw });
71
+ }
72
+ }
73
+ }
74
+ // For a real (non-dry) run, require auth BEFORE the empty-state short-circuit (C2)
75
+ // so a logged-out user gets an auth error rather than a misleading exit-0.
76
+ if (!options.dryRun && !readLicense(cwd)) {
77
+ console.error(chalk.red('nepopsx import: not logged in. Run `nepopsx login` first.'));
78
+ process.exitCode = 1;
79
+ return;
80
+ }
81
+ if (candidates.length === 0) {
82
+ console.log(chalk.dim(`nepopsx import: nothing new to import` +
83
+ (skippedExisting > 0 ? ` (${skippedExisting} already imported — use --force to re-import).` : '.')));
84
+ return;
85
+ }
86
+ // ── Dry run: report and exit, no POST ──────────────────────────────────────
87
+ if (options.dryRun) {
88
+ console.log(chalk.bold.cyan(`\n🔎 nepopsx import — dry run (${candidates.length} candidate(s))\n`));
89
+ for (const c of candidates) {
90
+ const scope = c.raw.services && c.raw.services.length > 0 ? c.raw.services.join(', ') : 'workspace-wide';
91
+ console.log(` ${chalk.bold(c.raw.slug)} ${chalk.dim(`[${c.adapterId} → ${scope}]`)}`);
92
+ console.log(` ${chalk.dim(c.raw.importedFrom)}`);
93
+ }
94
+ if (skippedExisting > 0) {
95
+ console.log(chalk.dim(`\n (${skippedExisting} already imported; skipped.)`));
96
+ }
97
+ console.log(chalk.dim('\n No changes written. Re-run without --dry-run to import as pending.\n'));
98
+ return;
99
+ }
100
+ // ── Real run: require auth + a resolved org/workspace ───────────────────────
101
+ const license = readLicense(cwd);
102
+ if (!license) {
103
+ console.error(chalk.red('nepopsx import: not logged in. Run `nepopsx login` first.'));
104
+ process.exitCode = 1;
105
+ return;
106
+ }
107
+ const workspace = options.workspace ?? resolveWorkspaceName(cwd, license, config);
108
+ if (!workspace || workspace === 'unknown') {
109
+ console.error(chalk.red('nepopsx import: could not resolve a workspace. Set workspace.name in workspace.yaml or pass --workspace.'));
110
+ process.exitCode = 1;
111
+ return;
112
+ }
113
+ if (!license.org) {
114
+ console.error(chalk.red('nepopsx import: could not resolve an org for this project. Run `nepopsx login` here, ' +
115
+ 'or pin the org in workspace.yaml.'));
116
+ process.exitCode = 1;
117
+ return;
118
+ }
119
+ const namespace = `${license.org}/${workspace}`;
120
+ const apiBase = resolveApiBase(cwd);
121
+ // frequency=1 ⇒ low confidence ⇒ backend lands it PENDING (never auto-approved).
122
+ const patterns = candidates.map((c) => ({
123
+ type: c.raw.type ?? 'custom_instruction',
124
+ slug: c.raw.slug,
125
+ title: c.raw.title,
126
+ content: c.raw.content,
127
+ agent: c.agent,
128
+ applies_to: c.raw.appliesTo ?? [],
129
+ services: c.raw.services ?? [],
130
+ source: c.raw.source,
131
+ frequency: 1,
132
+ config_path: c.raw.configPath,
133
+ config_value: c.raw.configValue,
134
+ }));
135
+ let results = [];
136
+ try {
137
+ const response = await fetchWithTimeout(`${apiBase}/learnings/auto`, {
138
+ method: 'POST',
139
+ headers: { Authorization: `Bearer ${license.key}`, 'Content-Type': 'application/json' },
140
+ body: JSON.stringify({ workspace, namespace, patterns }),
141
+ }, DOWNLOAD_TIMEOUT_MS);
142
+ if (!response.ok) {
143
+ const body = await response.text().catch(() => '');
144
+ console.error(chalk.red(`nepopsx import: backend ${response.status} — ${body.slice(0, 200)}`));
145
+ process.exitCode = 1;
146
+ return;
147
+ }
148
+ const json = (await response.json());
149
+ results = json.results ?? [];
150
+ // Write provenance YAML per candidate, stamped with the server's verdict.
151
+ const verdictBySlug = new Map(results.map((r) => [r.slug, r.status]));
152
+ for (const c of candidates) {
153
+ const status = verdictBySlug.get(c.raw.slug);
154
+ const yaml = {
155
+ slug: c.raw.slug,
156
+ type: (c.raw.type ?? 'custom_instruction'),
157
+ confidence: 'low',
158
+ agent: c.agent,
159
+ applies_to: c.raw.appliesTo ?? [],
160
+ services: c.raw.services ?? [],
161
+ status: status === 'rejected' ? 'reverted' : status === 'approved' ? 'approved' : 'pending',
162
+ content: c.raw.content,
163
+ evidence: `Imported from ${c.raw.importedFrom} via ${c.raw.source}`,
164
+ source: provenanceSource(c.adapterId),
165
+ created_at: new Date().toISOString(),
166
+ };
167
+ writeYamlLearning(resolve(importedDir, c.adapterId), yaml);
168
+ }
169
+ console.log(chalk.green(`\n✅ nepopsx import: ${json.received ?? patterns.length} imported → ` +
170
+ `${json.pending ?? 0} pending, ${json.auto_applied ?? 0} applied, ${json.rejected ?? 0} rejected (scanned).`));
171
+ console.log(chalk.dim(' Review pending imports in the dashboard, or `nepopsx sync` once approved.'));
172
+ }
173
+ catch (err) {
174
+ console.error(chalk.red(`nepopsx import: failed — ${err instanceof Error ? err.message : String(err)}`));
175
+ process.exitCode = 1;
176
+ return;
177
+ }
178
+ // Refresh the human-scannable index.
179
+ const index = regenerateMemoryIndex(cwd);
180
+ console.log(chalk.dim(` MEMORY.md updated (${index.count} learnings indexed).\n`));
181
+ }
182
+ //# sourceMappingURL=import.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import.js","sourceRoot":"","sources":["../../src/commands/import.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAaA,UAAU,WAAW;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AA4ND,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA8JrE"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAaA,UAAU,WAAW;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AA+ND,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA8JrE"}