@digitalpresence/cliclaw-auth 0.2.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,8 +3,13 @@ import type { MemoryEntry } from "./memory-store.js";
3
3
  /**
4
4
  * Generates the universal ~/.cliclaw/CLAUDE.md shared by all agents.
5
5
  * Contains safety rules, CLI usage patterns, memory instructions, and behavioral guidelines.
6
+ * When soul/role/context are provided, they are inlined so the agent doesn't waste turns reading files.
6
7
  */
7
- export declare function generateUniversalClaudeMd(): string;
8
+ export declare function generateUniversalClaudeMd(sections?: {
9
+ soul?: string;
10
+ role?: string;
11
+ context?: string;
12
+ }): string;
8
13
  /**
9
14
  * Generates per-instance CONTEXT.md with agent-specific context:
10
15
  * name, integrations, cron schedules, and current memories.
@@ -1 +1 @@
1
- {"version":3,"file":"claude-md-generator.d.ts","sourceRoot":"","sources":["../src/claude-md-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAyClD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,GAAE,WAAW,EAAO,GAAG,MAAM,CAmE3F"}
1
+ {"version":3,"file":"claude-md-generator.d.ts","sourceRoot":"","sources":["../src/claude-md-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,CAAC,EAAE;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,MAAM,CAuDT;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,GAAE,WAAW,EAAO,GAAG,MAAM,CAmE3F"}
@@ -1,13 +1,26 @@
1
1
  /**
2
2
  * Generates the universal ~/.cliclaw/CLAUDE.md shared by all agents.
3
3
  * Contains safety rules, CLI usage patterns, memory instructions, and behavioral guidelines.
4
+ * When soul/role/context are provided, they are inlined so the agent doesn't waste turns reading files.
4
5
  */
5
- export function generateUniversalClaudeMd() {
6
+ export function generateUniversalClaudeMd(sections) {
6
7
  const lines = [];
7
8
  lines.push("# Agent Instructions");
8
9
  lines.push("");
9
- lines.push("Read SOUL.md, ROLE.md, and CONTEXT.md before doing anything.");
10
- lines.push("");
10
+ if (sections?.soul || sections?.role || sections?.context) {
11
+ if (sections.soul) {
12
+ lines.push(sections.soul.trim());
13
+ lines.push("");
14
+ }
15
+ if (sections.role) {
16
+ lines.push(sections.role.trim());
17
+ lines.push("");
18
+ }
19
+ if (sections.context) {
20
+ lines.push(sections.context.trim());
21
+ lines.push("");
22
+ }
23
+ }
11
24
  lines.push("## Safety Rules");
12
25
  lines.push("- Never access files outside your workspace directory");
13
26
  lines.push("- Never modify or read system files, environment files, or credentials outside your workspace");
@@ -1 +1 @@
1
- {"version":3,"file":"claude-md-generator.js","sourceRoot":"","sources":["../src/claude-md-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-md-generator.js","sourceRoot":"","sources":["../src/claude-md-generator.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -12,8 +12,8 @@ export { createCalendarOAuthClient, getCalendarAuthUrl } from "./calendar-auth.j
12
12
  export { createFormsOAuthClient, getFormsAuthUrl } from "./forms-auth.js";
13
13
  export { waitForOAuthCallback } from "./oauth-server.js";
14
14
  export { loadConfig, getConfigDir, getTokensPath, getAgentsDir } from "./config.js";
15
- export { INTEGRATIONS } from "./integration-registry.js";
16
- export type { IntegrationDef } from "./integration-registry.js";
15
+ export { INTEGRATIONS, PROVIDERS } from "./integration-registry.js";
16
+ export type { IntegrationDef, ProviderConfig } from "./integration-registry.js";
17
17
  export type { CliclawConfig } from "./config.js";
18
18
  export { generateUniversalClaudeMd, generateContextMd } from "./claude-md-generator.js";
19
19
  export { InstanceStore } from "./instance-store.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACpE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChF,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -11,7 +11,7 @@ export { createCalendarOAuthClient, getCalendarAuthUrl } from "./calendar-auth.j
11
11
  export { createFormsOAuthClient, getFormsAuthUrl } from "./forms-auth.js";
12
12
  export { waitForOAuthCallback } from "./oauth-server.js";
13
13
  export { loadConfig, getConfigDir, getTokensPath, getAgentsDir } from "./config.js";
14
- export { INTEGRATIONS } from "./integration-registry.js";
14
+ export { INTEGRATIONS, PROVIDERS } from "./integration-registry.js";
15
15
  export { generateUniversalClaudeMd, generateContextMd } from "./claude-md-generator.js";
16
16
  export { InstanceStore } from "./instance-store.js";
17
17
  export { MemoryStore } from "./memory-store.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
@@ -4,6 +4,7 @@ export declare class InstanceStore {
4
4
  private agentStore;
5
5
  constructor(instancesDir: string, agentStore: AgentStore);
6
6
  private ensureDir;
7
+ private readFileOrEmpty;
7
8
  /** Get the root path for an instance */
8
9
  getInstancePath(agentName: string, userId: string): string;
9
10
  /** Get the workspace subdir (what gets mounted into Docker) */
@@ -1 +1 @@
1
- {"version":3,"file":"instance-store.d.ts","sourceRoot":"","sources":["../src/instance-store.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAK9C,qBAAa,aAAa;IAEtB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,UAAU;gBADV,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,UAAU;IAGhC,OAAO,CAAC,SAAS;IAMjB,wCAAwC;IACxC,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAI1D,+DAA+D;IAC/D,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAI3D,gFAAgF;IAChF,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAwCzD,kFAAkF;IAClF,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAmCrD,yBAAyB;IACzB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAO1D,4DAA4D;IAC5D,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAwB9F"}
1
+ {"version":3,"file":"instance-store.d.ts","sourceRoot":"","sources":["../src/instance-store.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAI9C,qBAAa,aAAa;IAEtB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,UAAU;gBADV,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,UAAU;IAGhC,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,eAAe;IAQvB,wCAAwC;IACxC,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAI1D,+DAA+D;IAC/D,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAI3D,gFAAgF;IAChF,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IA8BzD,kFAAkF;IAClF,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IA0BrD,yBAAyB;IACzB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAO1D,4DAA4D;IAC5D,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAwB9F"}
@@ -1,8 +1,7 @@
1
- import { existsSync, mkdirSync, writeFileSync, cpSync, rmSync, readdirSync, statSync, } from "fs";
1
+ import { existsSync, mkdirSync, readFileSync, writeFileSync, rmSync, readdirSync, statSync, } from "fs";
2
2
  import { join } from "path";
3
3
  import { generateUniversalClaudeMd, generateContextMd } from "./claude-md-generator.js";
4
4
  import { MemoryStore } from "./memory-store.js";
5
- import { getConfigDir } from "./config.js";
6
5
  export class InstanceStore {
7
6
  instancesDir;
8
7
  agentStore;
@@ -15,6 +14,14 @@ export class InstanceStore {
15
14
  mkdirSync(path, { recursive: true });
16
15
  }
17
16
  }
17
+ readFileOrEmpty(path) {
18
+ try {
19
+ return readFileSync(path, "utf-8");
20
+ }
21
+ catch {
22
+ return "";
23
+ }
24
+ }
18
25
  /** Get the root path for an instance */
19
26
  getInstancePath(agentName, userId) {
20
27
  return join(this.instancesDir, agentName, userId);
@@ -33,27 +40,16 @@ export class InstanceStore {
33
40
  this.ensureDir(join(instancePath, "workspace"));
34
41
  this.ensureDir(join(instancePath, "memory"));
35
42
  this.ensureDir(join(instancePath, "cron"));
36
- // Copy universal CLAUDE.md
37
- const universalClaudeMd = join(getConfigDir(), "CLAUDE.md");
38
- if (existsSync(universalClaudeMd)) {
39
- cpSync(universalClaudeMd, join(instancePath, "CLAUDE.md"));
40
- }
41
- else {
42
- // Generate it if it doesn't exist yet
43
- writeFileSync(join(instancePath, "CLAUDE.md"), generateUniversalClaudeMd(), "utf-8");
44
- }
45
- // Copy agent template files
43
+ // Read agent template files
46
44
  const agentDir = this.agentStore.workspacePath(agentName);
47
- for (const file of ["SOUL.md", "ROLE.md"]) {
48
- const src = join(agentDir, file);
49
- if (existsSync(src)) {
50
- cpSync(src, join(instancePath, file));
51
- }
52
- }
53
- // Generate CONTEXT.md
45
+ const soul = this.readFileOrEmpty(join(agentDir, "SOUL.md"));
46
+ const role = this.readFileOrEmpty(join(agentDir, "ROLE.md"));
47
+ // Generate CONTEXT.md content
54
48
  const memoryStore = new MemoryStore(join(instancePath, "memory"));
55
49
  const memories = memoryStore.list();
56
- writeFileSync(join(instancePath, "CONTEXT.md"), generateContextMd(config, memories), "utf-8");
50
+ const context = generateContextMd(config, memories);
51
+ // Generate unified CLAUDE.md with soul/role/context inlined
52
+ writeFileSync(join(instancePath, "CLAUDE.md"), generateUniversalClaudeMd({ soul, role, context }), "utf-8");
57
53
  return instancePath;
58
54
  }
59
55
  /** Re-copy template files and regenerate CONTEXT.md after agent config changes */
@@ -66,23 +62,15 @@ export class InstanceStore {
66
62
  this.createInstance(agentName, userId);
67
63
  return;
68
64
  }
69
- // Re-copy template files
65
+ // Read agent template files
70
66
  const agentDir = this.agentStore.workspacePath(agentName);
71
- for (const file of ["SOUL.md", "ROLE.md"]) {
72
- const src = join(agentDir, file);
73
- if (existsSync(src)) {
74
- cpSync(src, join(instancePath, file));
75
- }
76
- }
77
- // Re-copy universal CLAUDE.md
78
- const universalClaudeMd = join(getConfigDir(), "CLAUDE.md");
79
- if (existsSync(universalClaudeMd)) {
80
- cpSync(universalClaudeMd, join(instancePath, "CLAUDE.md"));
81
- }
82
- // Regenerate CONTEXT.md
67
+ const soul = this.readFileOrEmpty(join(agentDir, "SOUL.md"));
68
+ const role = this.readFileOrEmpty(join(agentDir, "ROLE.md"));
69
+ // Regenerate unified CLAUDE.md with soul/role/context inlined
83
70
  const memoryStore = new MemoryStore(join(instancePath, "memory"));
84
71
  const memories = memoryStore.list();
85
- writeFileSync(join(instancePath, "CONTEXT.md"), generateContextMd(config, memories), "utf-8");
72
+ const context = generateContextMd(config, memories);
73
+ writeFileSync(join(instancePath, "CLAUDE.md"), generateUniversalClaudeMd({ soul, role, context }), "utf-8");
86
74
  }
87
75
  /** Delete an instance */
88
76
  deleteInstance(agentName, userId) {
@@ -1 +1 @@
1
- {"version":3,"file":"instance-store.js","sourceRoot":"","sources":["../src/instance-store.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EAET,aAAa,EACb,MAAM,EACN,MAAM,EACN,WAAW,EACX,QAAQ,GACT,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,OAAO,aAAa;IAEd;IACA;IAFV,YACU,YAAoB,EACpB,UAAsB;QADtB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,eAAU,GAAV,UAAU,CAAY;IAC7B,CAAC;IAEI,SAAS,CAAC,IAAY;QAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,eAAe,CAAC,SAAiB,EAAE,MAAc;QAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,+DAA+D;IAC/D,gBAAgB,CAAC,SAAiB,EAAE,MAAc;QAChD,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC;IACpE,CAAC;IAED,gFAAgF;IAChF,cAAc,CAAC,SAAiB,EAAE,MAAc;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,aAAa,CAAC,CAAC;QAE/D,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC7D,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;QAE3C,2BAA2B;QAC3B,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,WAAW,CAAC,CAAC;QAC5D,IAAI,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAClC,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,sCAAsC;YACtC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,yBAAyB,EAAE,EAAE,OAAO,CAAC,CAAC;QACvF,CAAC;QAED,4BAA4B;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAC1D,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACjC,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAED,sBAAsB;QACtB,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QACpC,aAAa,CACX,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,EAChC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,EACnC,OAAO,CACR,CAAC;QAEF,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,kFAAkF;IAClF,YAAY,CAAC,SAAiB,EAAE,MAAc;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,aAAa,CAAC,CAAC;QAE/D,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QAED,yBAAyB;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAC1D,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACjC,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAED,8BAA8B;QAC9B,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,WAAW,CAAC,CAAC;QAC5D,IAAI,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAClC,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;QAC7D,CAAC;QAED,wBAAwB;QACxB,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QACpC,aAAa,CACX,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,EAChC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,EACnC,OAAO,CACR,CAAC;IACJ,CAAC;IAED,yBAAyB;IACzB,cAAc,CAAC,SAAiB,EAAE,MAAc;QAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5C,MAAM,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4DAA4D;IAC5D,aAAa,CAAC,SAAkB;QAC9B,MAAM,OAAO,GAA+D,EAAE,CAAC;QAE/E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;YAAE,OAAO,OAAO,CAAC;QAEnD,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1F,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YACjD,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YACjD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;gBAAE,SAAS;YAErC,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBACzC,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;oBACrC,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"instance-store.js","sourceRoot":"","sources":["../src/instance-store.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,18 @@
1
1
  export interface IntegrationDef {
2
2
  id: string;
3
3
  displayName: string;
4
+ provider: string;
4
5
  scopes: string[];
5
6
  }
7
+ export interface ProviderConfig {
8
+ authUrl: string;
9
+ tokenUrl: string;
10
+ userInfoUrl: string;
11
+ clientIdEnv: string;
12
+ clientSecretEnv: string;
13
+ extraScopes: string[];
14
+ extraAuthParams: Record<string, string>;
15
+ }
16
+ export declare const PROVIDERS: Record<string, ProviderConfig>;
6
17
  export declare const INTEGRATIONS: Record<string, IntegrationDef>;
7
18
  //# sourceMappingURL=integration-registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"integration-registry.d.ts","sourceRoot":"","sources":["../src/integration-registry.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAyCvD,CAAC"}
1
+ {"version":3,"file":"integration-registry.d.ts","sourceRoot":"","sources":["../src/integration-registry.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAmBpD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAqDvD,CAAC"}
@@ -1,17 +1,40 @@
1
+ export const PROVIDERS = {
2
+ google: {
3
+ authUrl: "https://accounts.google.com/o/oauth2/v2/auth",
4
+ tokenUrl: "https://oauth2.googleapis.com/token",
5
+ userInfoUrl: "https://www.googleapis.com/oauth2/v2/userinfo",
6
+ clientIdEnv: "GOOGLE_CLIENT_ID",
7
+ clientSecretEnv: "GOOGLE_CLIENT_SECRET",
8
+ extraScopes: ["openid", "email", "profile"],
9
+ extraAuthParams: { access_type: "offline", prompt: "consent" },
10
+ },
11
+ github: {
12
+ authUrl: "https://github.com/login/oauth/authorize",
13
+ tokenUrl: "https://github.com/login/oauth/access_token",
14
+ userInfoUrl: "https://api.github.com/user",
15
+ clientIdEnv: "GITHUB_CLIENT_ID",
16
+ clientSecretEnv: "GITHUB_CLIENT_SECRET",
17
+ extraScopes: [],
18
+ extraAuthParams: {},
19
+ },
20
+ };
1
21
  export const INTEGRATIONS = {
2
22
  gmail: {
3
23
  id: "gmail",
4
24
  displayName: "Gmail",
25
+ provider: "google",
5
26
  scopes: ["https://www.googleapis.com/auth/gmail.modify"],
6
27
  },
7
28
  gdrive: {
8
29
  id: "gdrive",
9
30
  displayName: "Google Drive",
31
+ provider: "google",
10
32
  scopes: ["https://www.googleapis.com/auth/drive"],
11
33
  },
12
34
  gsheets: {
13
35
  id: "gsheets",
14
36
  displayName: "Google Sheets",
37
+ provider: "google",
15
38
  scopes: [
16
39
  "https://www.googleapis.com/auth/spreadsheets",
17
40
  "https://www.googleapis.com/auth/drive",
@@ -20,6 +43,7 @@ export const INTEGRATIONS = {
20
43
  gslides: {
21
44
  id: "gslides",
22
45
  displayName: "Google Slides",
46
+ provider: "google",
23
47
  scopes: [
24
48
  "https://www.googleapis.com/auth/presentations",
25
49
  "https://www.googleapis.com/auth/drive.file",
@@ -28,16 +52,24 @@ export const INTEGRATIONS = {
28
52
  calendar: {
29
53
  id: "calendar",
30
54
  displayName: "Google Calendar",
55
+ provider: "google",
31
56
  scopes: ["https://www.googleapis.com/auth/calendar"],
32
57
  },
33
58
  forms: {
34
59
  id: "forms",
35
60
  displayName: "Google Forms",
61
+ provider: "google",
36
62
  scopes: [
37
63
  "https://www.googleapis.com/auth/forms.body",
38
64
  "https://www.googleapis.com/auth/forms.responses.readonly",
39
65
  "https://www.googleapis.com/auth/drive.metadata.readonly",
40
66
  ],
41
67
  },
68
+ github: {
69
+ id: "github",
70
+ displayName: "GitHub",
71
+ provider: "github",
72
+ scopes: ["repo", "read:user", "user:email"],
73
+ },
42
74
  };
43
75
  //# sourceMappingURL=integration-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"integration-registry.js","sourceRoot":"","sources":["../src/integration-registry.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,YAAY,GAAmC;IAC1D,KAAK,EAAE;QACL,EAAE,EAAE,OAAO;QACX,WAAW,EAAE,OAAO;QACpB,MAAM,EAAE,CAAC,8CAA8C,CAAC;KACzD;IACD,MAAM,EAAE;QACN,EAAE,EAAE,QAAQ;QACZ,WAAW,EAAE,cAAc;QAC3B,MAAM,EAAE,CAAC,uCAAuC,CAAC;KAClD;IACD,OAAO,EAAE;QACP,EAAE,EAAE,SAAS;QACb,WAAW,EAAE,eAAe;QAC5B,MAAM,EAAE;YACN,8CAA8C;YAC9C,uCAAuC;SACxC;KACF;IACD,OAAO,EAAE;QACP,EAAE,EAAE,SAAS;QACb,WAAW,EAAE,eAAe;QAC5B,MAAM,EAAE;YACN,+CAA+C;YAC/C,4CAA4C;SAC7C;KACF;IACD,QAAQ,EAAE;QACR,EAAE,EAAE,UAAU;QACd,WAAW,EAAE,iBAAiB;QAC9B,MAAM,EAAE,CAAC,0CAA0C,CAAC;KACrD;IACD,KAAK,EAAE;QACL,EAAE,EAAE,OAAO;QACX,WAAW,EAAE,cAAc;QAC3B,MAAM,EAAE;YACN,4CAA4C;YAC5C,0DAA0D;YAC1D,yDAAyD;SAC1D;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"integration-registry.js","sourceRoot":"","sources":["../src/integration-registry.ts"],"names":[],"mappings":"AAiBA,MAAM,CAAC,MAAM,SAAS,GAAmC;IACvD,MAAM,EAAE;QACN,OAAO,EAAE,8CAA8C;QACvD,QAAQ,EAAE,qCAAqC;QAC/C,WAAW,EAAE,+CAA+C;QAC5D,WAAW,EAAE,kBAAkB;QAC/B,eAAe,EAAE,sBAAsB;QACvC,WAAW,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC;QAC3C,eAAe,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;KAC/D;IACD,MAAM,EAAE;QACN,OAAO,EAAE,0CAA0C;QACnD,QAAQ,EAAE,6CAA6C;QACvD,WAAW,EAAE,6BAA6B;QAC1C,WAAW,EAAE,kBAAkB;QAC/B,eAAe,EAAE,sBAAsB;QACvC,WAAW,EAAE,EAAE;QACf,eAAe,EAAE,EAAE;KACpB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAmC;IAC1D,KAAK,EAAE;QACL,EAAE,EAAE,OAAO;QACX,WAAW,EAAE,OAAO;QACpB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,CAAC,8CAA8C,CAAC;KACzD;IACD,MAAM,EAAE;QACN,EAAE,EAAE,QAAQ;QACZ,WAAW,EAAE,cAAc;QAC3B,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,CAAC,uCAAuC,CAAC;KAClD;IACD,OAAO,EAAE;QACP,EAAE,EAAE,SAAS;QACb,WAAW,EAAE,eAAe;QAC5B,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE;YACN,8CAA8C;YAC9C,uCAAuC;SACxC;KACF;IACD,OAAO,EAAE;QACP,EAAE,EAAE,SAAS;QACb,WAAW,EAAE,eAAe;QAC5B,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE;YACN,+CAA+C;YAC/C,4CAA4C;SAC7C;KACF;IACD,QAAQ,EAAE;QACR,EAAE,EAAE,UAAU;QACd,WAAW,EAAE,iBAAiB;QAC9B,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,CAAC,0CAA0C,CAAC;KACrD;IACD,KAAK,EAAE;QACL,EAAE,EAAE,OAAO;QACX,WAAW,EAAE,cAAc;QAC3B,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE;YACN,4CAA4C;YAC5C,0DAA0D;YAC1D,yDAAyD;SAC1D;KACF;IACD,MAAM,EAAE;QACN,EAAE,EAAE,QAAQ;QACZ,WAAW,EAAE,QAAQ;QACrB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC;KAC5C;CACF,CAAC"}
@@ -1,13 +1,14 @@
1
- import type { Credentials } from "google-auth-library";
1
+ type OAuthCredentials = Record<string, any>;
2
2
  export declare class TokenStore {
3
3
  private tokensPath;
4
4
  constructor(tokensPath: string);
5
5
  private load;
6
6
  private save;
7
- get(account: string): Credentials | null;
8
- set(account: string, tokens: Credentials): void;
7
+ get(account: string): OAuthCredentials | null;
8
+ set(account: string, tokens: OAuthCredentials): void;
9
9
  has(account: string): boolean;
10
10
  delete(account: string): boolean;
11
11
  list(): string[];
12
12
  }
13
+ export {};
13
14
  //# sourceMappingURL=token-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"token-store.d.ts","sourceRoot":"","sources":["../src/token-store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAMvD,qBAAa,UAAU;IACT,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,MAAM;IAEtC,OAAO,CAAC,IAAI;IAWZ,OAAO,CAAC,IAAI;IAQZ,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAaxC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IAM/C,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAI7B,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAmBhC,IAAI,IAAI,MAAM,EAAE;CAGjB"}
1
+ {"version":3,"file":"token-store.d.ts","sourceRoot":"","sources":["../src/token-store.ts"],"names":[],"mappings":"AAGA,KAAK,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAM5C,qBAAa,UAAU;IACT,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,MAAM;IAEtC,OAAO,CAAC,IAAI;IAWZ,OAAO,CAAC,IAAI;IAQZ,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAa7C,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAMpD,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAI7B,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAmBhC,IAAI,IAAI,MAAM,EAAE;CAGjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"token-store.js","sourceRoot":"","sources":["../src/token-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token-store.js","sourceRoot":"","sources":["../src/token-store.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digitalpresence/cliclaw-auth",
3
- "version": "0.2.0",
3
+ "version": "0.3.1",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -10,10 +10,6 @@
10
10
  "types": "./dist/index.d.ts"
11
11
  }
12
12
  },
13
- "scripts": {
14
- "build": "tsc",
15
- "typecheck": "tsc --noEmit"
16
- },
17
13
  "dependencies": {
18
14
  "google-auth-library": "^10.5.0",
19
15
  "googleapis": "^144.0.0"
@@ -21,5 +17,9 @@
21
17
  "devDependencies": {
22
18
  "@types/node": "^22.0.0",
23
19
  "typescript": "^5.8.0"
20
+ },
21
+ "scripts": {
22
+ "build": "tsc",
23
+ "typecheck": "tsc --noEmit"
24
24
  }
25
- }
25
+ }
@@ -4,14 +4,33 @@ import type { MemoryEntry } from "./memory-store.js";
4
4
  /**
5
5
  * Generates the universal ~/.cliclaw/CLAUDE.md shared by all agents.
6
6
  * Contains safety rules, CLI usage patterns, memory instructions, and behavioral guidelines.
7
+ * When soul/role/context are provided, they are inlined so the agent doesn't waste turns reading files.
7
8
  */
8
- export function generateUniversalClaudeMd(): string {
9
+ export function generateUniversalClaudeMd(sections?: {
10
+ soul?: string;
11
+ role?: string;
12
+ context?: string;
13
+ }): string {
9
14
  const lines: string[] = [];
10
15
 
11
16
  lines.push("# Agent Instructions");
12
17
  lines.push("");
13
- lines.push("Read SOUL.md, ROLE.md, and CONTEXT.md before doing anything.");
14
- lines.push("");
18
+
19
+ if (sections?.soul || sections?.role || sections?.context) {
20
+ if (sections.soul) {
21
+ lines.push(sections.soul.trim());
22
+ lines.push("");
23
+ }
24
+ if (sections.role) {
25
+ lines.push(sections.role.trim());
26
+ lines.push("");
27
+ }
28
+ if (sections.context) {
29
+ lines.push(sections.context.trim());
30
+ lines.push("");
31
+ }
32
+ }
33
+
15
34
 
16
35
  lines.push("## Safety Rules");
17
36
  lines.push("- Never access files outside your workspace directory");
package/src/index.ts CHANGED
@@ -12,8 +12,8 @@ export { createCalendarOAuthClient, getCalendarAuthUrl } from "./calendar-auth.j
12
12
  export { createFormsOAuthClient, getFormsAuthUrl } from "./forms-auth.js";
13
13
  export { waitForOAuthCallback } from "./oauth-server.js";
14
14
  export { loadConfig, getConfigDir, getTokensPath, getAgentsDir } from "./config.js";
15
- export { INTEGRATIONS } from "./integration-registry.js";
16
- export type { IntegrationDef } from "./integration-registry.js";
15
+ export { INTEGRATIONS, PROVIDERS } from "./integration-registry.js";
16
+ export type { IntegrationDef, ProviderConfig } from "./integration-registry.js";
17
17
  export type { CliclawConfig } from "./config.js";
18
18
  export { generateUniversalClaudeMd, generateContextMd } from "./claude-md-generator.js";
19
19
  export { InstanceStore } from "./instance-store.js";
@@ -3,7 +3,6 @@ import {
3
3
  mkdirSync,
4
4
  readFileSync,
5
5
  writeFileSync,
6
- cpSync,
7
6
  rmSync,
8
7
  readdirSync,
9
8
  statSync,
@@ -12,7 +11,6 @@ import { join } from "path";
12
11
  import { AgentStore } from "./agent-store.js";
13
12
  import { generateUniversalClaudeMd, generateContextMd } from "./claude-md-generator.js";
14
13
  import { MemoryStore } from "./memory-store.js";
15
- import { getConfigDir } from "./config.js";
16
14
 
17
15
  export class InstanceStore {
18
16
  constructor(
@@ -26,6 +24,14 @@ export class InstanceStore {
26
24
  }
27
25
  }
28
26
 
27
+ private readFileOrEmpty(path: string): string {
28
+ try {
29
+ return readFileSync(path, "utf-8");
30
+ } catch {
31
+ return "";
32
+ }
33
+ }
34
+
29
35
  /** Get the root path for an instance */
30
36
  getInstancePath(agentName: string, userId: string): string {
31
37
  return join(this.instancesDir, agentName, userId);
@@ -47,30 +53,20 @@ export class InstanceStore {
47
53
  this.ensureDir(join(instancePath, "memory"));
48
54
  this.ensureDir(join(instancePath, "cron"));
49
55
 
50
- // Copy universal CLAUDE.md
51
- const universalClaudeMd = join(getConfigDir(), "CLAUDE.md");
52
- if (existsSync(universalClaudeMd)) {
53
- cpSync(universalClaudeMd, join(instancePath, "CLAUDE.md"));
54
- } else {
55
- // Generate it if it doesn't exist yet
56
- writeFileSync(join(instancePath, "CLAUDE.md"), generateUniversalClaudeMd(), "utf-8");
57
- }
58
-
59
- // Copy agent template files
56
+ // Read agent template files
60
57
  const agentDir = this.agentStore.workspacePath(agentName);
61
- for (const file of ["SOUL.md", "ROLE.md"]) {
62
- const src = join(agentDir, file);
63
- if (existsSync(src)) {
64
- cpSync(src, join(instancePath, file));
65
- }
66
- }
58
+ const soul = this.readFileOrEmpty(join(agentDir, "SOUL.md"));
59
+ const role = this.readFileOrEmpty(join(agentDir, "ROLE.md"));
67
60
 
68
- // Generate CONTEXT.md
61
+ // Generate CONTEXT.md content
69
62
  const memoryStore = new MemoryStore(join(instancePath, "memory"));
70
63
  const memories = memoryStore.list();
64
+ const context = generateContextMd(config, memories);
65
+
66
+ // Generate unified CLAUDE.md with soul/role/context inlined
71
67
  writeFileSync(
72
- join(instancePath, "CONTEXT.md"),
73
- generateContextMd(config, memories),
68
+ join(instancePath, "CLAUDE.md"),
69
+ generateUniversalClaudeMd({ soul, role, context }),
74
70
  "utf-8",
75
71
  );
76
72
 
@@ -88,27 +84,18 @@ export class InstanceStore {
88
84
  return;
89
85
  }
90
86
 
91
- // Re-copy template files
87
+ // Read agent template files
92
88
  const agentDir = this.agentStore.workspacePath(agentName);
93
- for (const file of ["SOUL.md", "ROLE.md"]) {
94
- const src = join(agentDir, file);
95
- if (existsSync(src)) {
96
- cpSync(src, join(instancePath, file));
97
- }
98
- }
99
-
100
- // Re-copy universal CLAUDE.md
101
- const universalClaudeMd = join(getConfigDir(), "CLAUDE.md");
102
- if (existsSync(universalClaudeMd)) {
103
- cpSync(universalClaudeMd, join(instancePath, "CLAUDE.md"));
104
- }
89
+ const soul = this.readFileOrEmpty(join(agentDir, "SOUL.md"));
90
+ const role = this.readFileOrEmpty(join(agentDir, "ROLE.md"));
105
91
 
106
- // Regenerate CONTEXT.md
92
+ // Regenerate unified CLAUDE.md with soul/role/context inlined
107
93
  const memoryStore = new MemoryStore(join(instancePath, "memory"));
108
94
  const memories = memoryStore.list();
95
+ const context = generateContextMd(config, memories);
109
96
  writeFileSync(
110
- join(instancePath, "CONTEXT.md"),
111
- generateContextMd(config, memories),
97
+ join(instancePath, "CLAUDE.md"),
98
+ generateUniversalClaudeMd({ soul, role, context }),
112
99
  "utf-8",
113
100
  );
114
101
  }
@@ -1,23 +1,58 @@
1
1
  export interface IntegrationDef {
2
2
  id: string;
3
3
  displayName: string;
4
+ provider: string;
4
5
  scopes: string[];
5
6
  }
6
7
 
8
+ export interface ProviderConfig {
9
+ authUrl: string;
10
+ tokenUrl: string;
11
+ userInfoUrl: string;
12
+ clientIdEnv: string;
13
+ clientSecretEnv: string;
14
+ extraScopes: string[];
15
+ extraAuthParams: Record<string, string>;
16
+ }
17
+
18
+ export const PROVIDERS: Record<string, ProviderConfig> = {
19
+ google: {
20
+ authUrl: "https://accounts.google.com/o/oauth2/v2/auth",
21
+ tokenUrl: "https://oauth2.googleapis.com/token",
22
+ userInfoUrl: "https://www.googleapis.com/oauth2/v2/userinfo",
23
+ clientIdEnv: "GOOGLE_CLIENT_ID",
24
+ clientSecretEnv: "GOOGLE_CLIENT_SECRET",
25
+ extraScopes: ["openid", "email", "profile"],
26
+ extraAuthParams: { access_type: "offline", prompt: "consent" },
27
+ },
28
+ github: {
29
+ authUrl: "https://github.com/login/oauth/authorize",
30
+ tokenUrl: "https://github.com/login/oauth/access_token",
31
+ userInfoUrl: "https://api.github.com/user",
32
+ clientIdEnv: "GITHUB_CLIENT_ID",
33
+ clientSecretEnv: "GITHUB_CLIENT_SECRET",
34
+ extraScopes: [],
35
+ extraAuthParams: {},
36
+ },
37
+ };
38
+
7
39
  export const INTEGRATIONS: Record<string, IntegrationDef> = {
8
40
  gmail: {
9
41
  id: "gmail",
10
42
  displayName: "Gmail",
43
+ provider: "google",
11
44
  scopes: ["https://www.googleapis.com/auth/gmail.modify"],
12
45
  },
13
46
  gdrive: {
14
47
  id: "gdrive",
15
48
  displayName: "Google Drive",
49
+ provider: "google",
16
50
  scopes: ["https://www.googleapis.com/auth/drive"],
17
51
  },
18
52
  gsheets: {
19
53
  id: "gsheets",
20
54
  displayName: "Google Sheets",
55
+ provider: "google",
21
56
  scopes: [
22
57
  "https://www.googleapis.com/auth/spreadsheets",
23
58
  "https://www.googleapis.com/auth/drive",
@@ -26,6 +61,7 @@ export const INTEGRATIONS: Record<string, IntegrationDef> = {
26
61
  gslides: {
27
62
  id: "gslides",
28
63
  displayName: "Google Slides",
64
+ provider: "google",
29
65
  scopes: [
30
66
  "https://www.googleapis.com/auth/presentations",
31
67
  "https://www.googleapis.com/auth/drive.file",
@@ -34,15 +70,23 @@ export const INTEGRATIONS: Record<string, IntegrationDef> = {
34
70
  calendar: {
35
71
  id: "calendar",
36
72
  displayName: "Google Calendar",
73
+ provider: "google",
37
74
  scopes: ["https://www.googleapis.com/auth/calendar"],
38
75
  },
39
76
  forms: {
40
77
  id: "forms",
41
78
  displayName: "Google Forms",
79
+ provider: "google",
42
80
  scopes: [
43
81
  "https://www.googleapis.com/auth/forms.body",
44
82
  "https://www.googleapis.com/auth/forms.responses.readonly",
45
83
  "https://www.googleapis.com/auth/drive.metadata.readonly",
46
84
  ],
47
85
  },
86
+ github: {
87
+ id: "github",
88
+ displayName: "GitHub",
89
+ provider: "github",
90
+ scopes: ["repo", "read:user", "user:email"],
91
+ },
48
92
  };
@@ -1,9 +1,10 @@
1
1
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
2
2
  import { dirname } from "path";
3
- import type { Credentials } from "google-auth-library";
3
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4
+ type OAuthCredentials = Record<string, any>;
4
5
 
5
6
  interface TokenFile {
6
- [account: string]: Credentials;
7
+ [account: string]: OAuthCredentials;
7
8
  }
8
9
 
9
10
  export class TokenStore {
@@ -28,7 +29,7 @@ export class TokenStore {
28
29
  writeFileSync(this.tokensPath, JSON.stringify(data, null, 2), "utf-8");
29
30
  }
30
31
 
31
- get(account: string): Credentials | null {
32
+ get(account: string): OAuthCredentials | null {
32
33
  const data = this.load();
33
34
  if (data[account]) return data[account];
34
35
  // Fall back to integration:account key format (portal token injection)
@@ -41,7 +42,7 @@ export class TokenStore {
41
42
  return null;
42
43
  }
43
44
 
44
- set(account: string, tokens: Credentials): void {
45
+ set(account: string, tokens: OAuthCredentials): void {
45
46
  const data = this.load();
46
47
  data[account] = tokens;
47
48
  this.save(data);