@opengoat/core 2026.2.14 → 2026.2.17

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 (89) hide show
  1. package/dist/core/agents/application/agent.service.d.ts +19 -3
  2. package/dist/core/agents/application/agent.service.js +170 -45
  3. package/dist/core/agents/application/agent.service.js.map +1 -1
  4. package/dist/core/boards/application/board.service.d.ts +2 -0
  5. package/dist/core/boards/application/board.service.js +36 -2
  6. package/dist/core/boards/application/board.service.js.map +1 -1
  7. package/dist/core/bootstrap/application/bootstrap.service.js +17 -1
  8. package/dist/core/bootstrap/application/bootstrap.service.js.map +1 -1
  9. package/dist/core/opengoat/application/opengoat.service.d.ts +14 -3
  10. package/dist/core/opengoat/application/opengoat.service.helpers.d.ts +62 -0
  11. package/dist/core/opengoat/application/opengoat.service.helpers.js +403 -0
  12. package/dist/core/opengoat/application/opengoat.service.helpers.js.map +1 -0
  13. package/dist/core/opengoat/application/opengoat.service.js +653 -371
  14. package/dist/core/opengoat/application/opengoat.service.js.map +1 -1
  15. package/dist/core/orchestration/application/orchestration.service.d.ts +2 -0
  16. package/dist/core/orchestration/application/orchestration.service.js +150 -52
  17. package/dist/core/orchestration/application/orchestration.service.js.map +1 -1
  18. package/dist/core/providers/application/provider.service.d.ts +35 -4
  19. package/dist/core/providers/application/provider.service.js +823 -96
  20. package/dist/core/providers/application/provider.service.js.map +1 -1
  21. package/dist/core/providers/index.d.ts +1 -1
  22. package/dist/core/providers/index.js.map +1 -1
  23. package/dist/core/providers/loader.js +4 -2
  24. package/dist/core/providers/loader.js.map +1 -1
  25. package/dist/core/providers/openclaw-gateway-rpc.d.ts +20 -0
  26. package/dist/core/providers/openclaw-gateway-rpc.js +629 -0
  27. package/dist/core/providers/openclaw-gateway-rpc.js.map +1 -0
  28. package/dist/core/providers/provider-module.d.ts +11 -0
  29. package/dist/core/providers/provider-module.js +8 -1
  30. package/dist/core/providers/provider-module.js.map +1 -1
  31. package/dist/core/providers/providers/claude-code/index.d.ts +4 -0
  32. package/dist/core/providers/providers/claude-code/index.js +32 -0
  33. package/dist/core/providers/providers/claude-code/index.js.map +1 -0
  34. package/dist/core/providers/providers/claude-code/provider.d.ts +13 -0
  35. package/dist/core/providers/providers/claude-code/provider.js +152 -0
  36. package/dist/core/providers/providers/claude-code/provider.js.map +1 -0
  37. package/dist/core/providers/providers/codex/index.d.ts +4 -0
  38. package/dist/core/providers/providers/codex/index.js +32 -0
  39. package/dist/core/providers/providers/codex/index.js.map +1 -0
  40. package/dist/core/providers/providers/codex/provider.d.ts +12 -0
  41. package/dist/core/providers/providers/codex/provider.js +156 -0
  42. package/dist/core/providers/providers/codex/provider.js.map +1 -0
  43. package/dist/core/providers/providers/cursor/index.d.ts +4 -0
  44. package/dist/core/providers/providers/cursor/index.js +32 -0
  45. package/dist/core/providers/providers/cursor/index.js.map +1 -0
  46. package/dist/core/providers/providers/cursor/provider.d.ts +12 -0
  47. package/dist/core/providers/providers/cursor/provider.js +161 -0
  48. package/dist/core/providers/providers/cursor/provider.js.map +1 -0
  49. package/dist/core/providers/providers/gemini-cli/index.d.ts +4 -0
  50. package/dist/core/providers/providers/gemini-cli/index.js +36 -0
  51. package/dist/core/providers/providers/gemini-cli/index.js.map +1 -0
  52. package/dist/core/providers/providers/gemini-cli/provider.d.ts +11 -0
  53. package/dist/core/providers/providers/gemini-cli/provider.js +122 -0
  54. package/dist/core/providers/providers/gemini-cli/provider.js.map +1 -0
  55. package/dist/core/providers/providers/openclaw/index.js +8 -0
  56. package/dist/core/providers/providers/openclaw/index.js.map +1 -1
  57. package/dist/core/providers/providers/openclaw/provider.js +1 -0
  58. package/dist/core/providers/providers/openclaw/provider.js.map +1 -1
  59. package/dist/core/providers/providers/opencode/index.d.ts +4 -0
  60. package/dist/core/providers/providers/opencode/index.js +27 -0
  61. package/dist/core/providers/providers/opencode/index.js.map +1 -0
  62. package/dist/core/providers/providers/opencode/provider.d.ts +12 -0
  63. package/dist/core/providers/providers/opencode/provider.js +130 -0
  64. package/dist/core/providers/providers/opencode/provider.js.map +1 -0
  65. package/dist/core/providers/providers/registry.d.ts +2 -0
  66. package/dist/core/providers/providers/registry.js +17 -0
  67. package/dist/core/providers/providers/registry.js.map +1 -0
  68. package/dist/core/providers/registry.d.ts +2 -1
  69. package/dist/core/providers/registry.js +40 -0
  70. package/dist/core/providers/registry.js.map +1 -1
  71. package/dist/core/providers/types.d.ts +1 -0
  72. package/dist/core/scenarios/application/scenario-runner.service.js +2 -1
  73. package/dist/core/scenarios/application/scenario-runner.service.js.map +1 -1
  74. package/dist/core/sessions/application/session.service.d.ts +0 -2
  75. package/dist/core/sessions/application/session.service.js +10 -73
  76. package/dist/core/sessions/application/session.service.js.map +1 -1
  77. package/dist/core/sessions/domain/session.d.ts +0 -3
  78. package/dist/core/sessions/domain/session.js.map +1 -1
  79. package/dist/core/skills/application/skill.service.js +4 -1
  80. package/dist/core/skills/application/skill.service.js.map +1 -1
  81. package/dist/core/templates/assets/ceo/BOOTSTRAP.md +3 -3
  82. package/dist/core/templates/assets/ceo/ROLE.md +5 -3
  83. package/dist/core/templates/assets/skills/og-board-individual/SKILL.md +66 -89
  84. package/dist/core/templates/assets/skills/og-board-manager/SKILL.md +64 -45
  85. package/dist/core/templates/assets/skills/og-boards/SKILL.md +65 -0
  86. package/dist/core/templates/default-templates.d.ts +1 -2
  87. package/dist/core/templates/default-templates.js +22 -10
  88. package/dist/core/templates/default-templates.js.map +1 -1
  89. package/package.json +3 -2
@@ -12,8 +12,19 @@ export interface ProviderOnboardingSpec {
12
12
  description: string;
13
13
  };
14
14
  }
15
+ export type ProviderInvocationCwdMode = "provider-default" | "agent-workspace";
16
+ export interface ProviderRuntimePolicy {
17
+ invocation: {
18
+ cwd: ProviderInvocationCwdMode;
19
+ };
20
+ skills: {
21
+ directories: string[];
22
+ };
23
+ }
24
+ export declare const DEFAULT_PROVIDER_RUNTIME_POLICY: ProviderRuntimePolicy;
15
25
  export interface ProviderModule {
16
26
  id: string;
17
27
  create: () => Provider;
18
28
  onboarding?: ProviderOnboardingSpec;
29
+ runtime?: ProviderRuntimePolicy;
19
30
  }
@@ -1,2 +1,9 @@
1
- export {};
1
+ export const DEFAULT_PROVIDER_RUNTIME_POLICY = {
2
+ invocation: {
3
+ cwd: "provider-default",
4
+ },
5
+ skills: {
6
+ directories: ["skills"],
7
+ },
8
+ };
2
9
  //# sourceMappingURL=provider-module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider-module.js","sourceRoot":"","sources":["../../../src/core/providers/provider-module.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"provider-module.js","sourceRoot":"","sources":["../../../src/core/providers/provider-module.ts"],"names":[],"mappings":"AA4BA,MAAM,CAAC,MAAM,+BAA+B,GAA0B;IACpE,UAAU,EAAE;QACV,GAAG,EAAE,kBAAkB;KACxB;IACD,MAAM,EAAE;QACN,WAAW,EAAE,CAAC,QAAQ,CAAC;KACxB;CACF,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ProviderModule } from "../../provider-module.js";
2
+ import { ClaudeCodeProvider } from "./provider.js";
3
+ export declare const providerModule: ProviderModule;
4
+ export { ClaudeCodeProvider };
@@ -0,0 +1,32 @@
1
+ import { ClaudeCodeProvider } from "./provider.js";
2
+ export const providerModule = {
3
+ id: "claude-code",
4
+ create: () => new ClaudeCodeProvider(),
5
+ runtime: {
6
+ invocation: {
7
+ cwd: "agent-workspace",
8
+ },
9
+ skills: {
10
+ directories: [".claude/skills"],
11
+ },
12
+ },
13
+ onboarding: {
14
+ env: [
15
+ {
16
+ key: "CLAUDE_CODE_CMD",
17
+ description: "Optional claude binary path override",
18
+ },
19
+ {
20
+ key: "ANTHROPIC_API_KEY",
21
+ description: "Optional API key for non-interactive Claude Code execution",
22
+ secret: true,
23
+ },
24
+ ],
25
+ auth: {
26
+ supported: true,
27
+ description: "Runs `claude auth login`.",
28
+ },
29
+ },
30
+ };
31
+ export { ClaudeCodeProvider };
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/providers/providers/claude-code/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C,EAAE,EAAE,aAAa;IACjB,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,kBAAkB,EAAE;IACtC,OAAO,EAAE;QACP,UAAU,EAAE;YACV,GAAG,EAAE,iBAAiB;SACvB;QACD,MAAM,EAAE;YACN,WAAW,EAAE,CAAC,gBAAgB,CAAC;SAChC;KACF;IACD,UAAU,EAAE;QACV,GAAG,EAAE;YACH;gBACE,GAAG,EAAE,iBAAiB;gBACtB,WAAW,EAAE,sCAAsC;aACpD;YACD;gBACE,GAAG,EAAE,mBAAmB;gBACxB,WAAW,EAAE,4DAA4D;gBACzE,MAAM,EAAE,IAAI;aACb;SACF;QACD,IAAI,EAAE;YACJ,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,2BAA2B;SACzC;KACF;CACF,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { BaseCliProvider } from "../../cli-provider.js";
2
+ import type { ProviderAuthOptions, ProviderExecutionResult, ProviderInvocation, ProviderInvokeOptions } from "../../types.js";
3
+ export declare class ClaudeCodeProvider extends BaseCliProvider {
4
+ constructor();
5
+ buildInvocation(options: ProviderInvokeOptions, env?: NodeJS.ProcessEnv): ProviderInvocation;
6
+ protected buildInvocationArgs(options: ProviderInvokeOptions, _command: string): string[];
7
+ protected buildAuthInvocationArgs(options: ProviderAuthOptions, _command: string): string[];
8
+ invoke(options: ProviderInvokeOptions): Promise<ProviderExecutionResult>;
9
+ }
10
+ export declare function parseClaudeCodeResponse(raw: string): {
11
+ assistantText?: string;
12
+ providerSessionId?: string;
13
+ } | null;
@@ -0,0 +1,152 @@
1
+ import { BaseCliProvider } from "../../cli-provider.js";
2
+ import { attachProviderSessionId } from "../../provider-session.js";
3
+ export class ClaudeCodeProvider extends BaseCliProvider {
4
+ constructor() {
5
+ super({
6
+ id: "claude-code",
7
+ displayName: "Claude Code",
8
+ kind: "cli",
9
+ command: "claude",
10
+ commandEnvVar: "CLAUDE_CODE_CMD",
11
+ capabilities: {
12
+ agent: false,
13
+ model: true,
14
+ auth: true,
15
+ passthrough: true,
16
+ reportees: false,
17
+ agentCreate: false,
18
+ agentDelete: false,
19
+ },
20
+ });
21
+ }
22
+ buildInvocation(options, env = process.env) {
23
+ this.validateInvokeOptions(options);
24
+ const command = this.resolveCommand(env);
25
+ const args = this.buildInvocationArgs(options, command);
26
+ return { command, args };
27
+ }
28
+ buildInvocationArgs(options, _command) {
29
+ const args = ["-p", options.message, "--output-format", "json"];
30
+ const sessionId = options.providerSessionId?.trim();
31
+ if (sessionId) {
32
+ args.push("--resume", sessionId);
33
+ }
34
+ const model = options.model?.trim();
35
+ if (model) {
36
+ args.push("--model", model);
37
+ }
38
+ const systemPrompt = options.systemPrompt?.trim();
39
+ if (systemPrompt) {
40
+ args.push("--append-system-prompt", systemPrompt);
41
+ }
42
+ args.push(...(options.passthroughArgs ?? []));
43
+ return args;
44
+ }
45
+ buildAuthInvocationArgs(options, _command) {
46
+ return ["auth", "login", ...(options.passthroughArgs ?? [])];
47
+ }
48
+ async invoke(options) {
49
+ const result = await super.invoke(options);
50
+ const parsed = parseClaudeCodeResponse(result.stdout);
51
+ const normalizedStdout = parsed?.assistantText || result.stdout;
52
+ return attachProviderSessionId({
53
+ ...result,
54
+ stdout: normalizedStdout,
55
+ }, parsed?.providerSessionId);
56
+ }
57
+ }
58
+ export function parseClaudeCodeResponse(raw) {
59
+ const records = parseJsonRecords(raw);
60
+ for (let index = records.length - 1; index >= 0; index -= 1) {
61
+ const entry = records[index];
62
+ if (!entry) {
63
+ continue;
64
+ }
65
+ const normalized = normalizeClaudeCodeRecord(entry);
66
+ if (normalized) {
67
+ return normalized;
68
+ }
69
+ }
70
+ return null;
71
+ }
72
+ function normalizeClaudeCodeRecord(record) {
73
+ const sessionId = readOptionalString(record.session_id) ??
74
+ readOptionalString(record.sessionId) ??
75
+ readOptionalString(asRecord(record.meta).session_id) ??
76
+ readOptionalString(asRecord(record.meta).sessionId);
77
+ const resultText = readOptionalString(record.result) ??
78
+ readContentText(record.message) ??
79
+ readContentText(record);
80
+ if (!resultText && !sessionId) {
81
+ return null;
82
+ }
83
+ return {
84
+ assistantText: resultText,
85
+ providerSessionId: sessionId,
86
+ };
87
+ }
88
+ function parseJsonRecords(raw) {
89
+ const trimmed = raw.trim();
90
+ if (!trimmed) {
91
+ return [];
92
+ }
93
+ const direct = parseJsonRecord(trimmed);
94
+ if (direct) {
95
+ return [direct];
96
+ }
97
+ const records = [];
98
+ for (const line of trimmed.split(/\r?\n/)) {
99
+ const parsed = parseJsonRecord(line.trim());
100
+ if (parsed) {
101
+ records.push(parsed);
102
+ }
103
+ }
104
+ return records;
105
+ }
106
+ function parseJsonRecord(raw) {
107
+ if (!raw) {
108
+ return undefined;
109
+ }
110
+ try {
111
+ const parsed = JSON.parse(raw);
112
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
113
+ return undefined;
114
+ }
115
+ return parsed;
116
+ }
117
+ catch {
118
+ return undefined;
119
+ }
120
+ }
121
+ function readContentText(value) {
122
+ const record = asRecord(value);
123
+ const content = Array.isArray(record.content) ? record.content : [];
124
+ const chunks = [];
125
+ for (const item of content) {
126
+ const entry = asRecord(item);
127
+ const text = readOptionalString(entry.text) ??
128
+ readOptionalString(entry.content) ??
129
+ readOptionalString(asRecord(entry.message).text);
130
+ if (text) {
131
+ chunks.push(text);
132
+ }
133
+ }
134
+ if (chunks.length === 0) {
135
+ return undefined;
136
+ }
137
+ return chunks.join("\n\n");
138
+ }
139
+ function readOptionalString(value) {
140
+ if (typeof value !== "string") {
141
+ return undefined;
142
+ }
143
+ const normalized = value.trim();
144
+ return normalized.length > 0 ? normalized : undefined;
145
+ }
146
+ function asRecord(value) {
147
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
148
+ return {};
149
+ }
150
+ return value;
151
+ }
152
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../../src/core/providers/providers/claude-code/provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ProviderModule } from "../../provider-module.js";
2
+ import { CodexProvider } from "./provider.js";
3
+ export declare const providerModule: ProviderModule;
4
+ export { CodexProvider };
@@ -0,0 +1,32 @@
1
+ import { CodexProvider } from "./provider.js";
2
+ export const providerModule = {
3
+ id: "codex",
4
+ create: () => new CodexProvider(),
5
+ runtime: {
6
+ invocation: {
7
+ cwd: "agent-workspace",
8
+ },
9
+ skills: {
10
+ directories: [".agents/skills"],
11
+ },
12
+ },
13
+ onboarding: {
14
+ env: [
15
+ {
16
+ key: "CODEX_CMD",
17
+ description: "Optional codex binary path override",
18
+ },
19
+ {
20
+ key: "OPENAI_API_KEY",
21
+ description: "Optional API key for Codex auth and execution",
22
+ secret: true,
23
+ },
24
+ ],
25
+ auth: {
26
+ supported: true,
27
+ description: "Runs `codex login`.",
28
+ },
29
+ },
30
+ };
31
+ export { CodexProvider };
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/providers/providers/codex/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C,EAAE,EAAE,OAAO;IACX,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,aAAa,EAAE;IACjC,OAAO,EAAE;QACP,UAAU,EAAE;YACV,GAAG,EAAE,iBAAiB;SACvB;QACD,MAAM,EAAE;YACN,WAAW,EAAE,CAAC,gBAAgB,CAAC;SAChC;KACF;IACD,UAAU,EAAE;QACV,GAAG,EAAE;YACH;gBACE,GAAG,EAAE,WAAW;gBAChB,WAAW,EAAE,qCAAqC;aACnD;YACD;gBACE,GAAG,EAAE,gBAAgB;gBACrB,WAAW,EAAE,+CAA+C;gBAC5D,MAAM,EAAE,IAAI;aACb;SACF;QACD,IAAI,EAAE;YACJ,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,qBAAqB;SACnC;KACF;CACF,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { BaseCliProvider } from "../../cli-provider.js";
2
+ import type { ProviderAuthOptions, ProviderExecutionResult, ProviderInvokeOptions } from "../../types.js";
3
+ export declare class CodexProvider extends BaseCliProvider {
4
+ constructor();
5
+ protected buildInvocationArgs(options: ProviderInvokeOptions, _command: string): string[];
6
+ protected buildAuthInvocationArgs(options: ProviderAuthOptions, _command: string): string[];
7
+ invoke(options: ProviderInvokeOptions): Promise<ProviderExecutionResult>;
8
+ }
9
+ export declare function parseCodexExecResponse(raw: string): {
10
+ assistantText?: string;
11
+ providerSessionId?: string;
12
+ } | null;
@@ -0,0 +1,156 @@
1
+ import { BaseCliProvider } from "../../cli-provider.js";
2
+ import { attachProviderSessionId } from "../../provider-session.js";
3
+ export class CodexProvider extends BaseCliProvider {
4
+ constructor() {
5
+ super({
6
+ id: "codex",
7
+ displayName: "Codex",
8
+ kind: "cli",
9
+ command: "codex",
10
+ commandEnvVar: "CODEX_CMD",
11
+ capabilities: {
12
+ agent: false,
13
+ model: true,
14
+ auth: true,
15
+ passthrough: true,
16
+ reportees: false,
17
+ agentCreate: false,
18
+ agentDelete: false,
19
+ },
20
+ });
21
+ }
22
+ buildInvocationArgs(options, _command) {
23
+ const message = options.message.trim();
24
+ const model = options.model?.trim();
25
+ const providerSessionId = options.providerSessionId?.trim();
26
+ const passthrough = options.passthroughArgs ?? [];
27
+ if (providerSessionId) {
28
+ const args = ["exec", "resume", "--json", "--skip-git-repo-check"];
29
+ if (model) {
30
+ args.push("--model", model);
31
+ }
32
+ args.push(...passthrough);
33
+ args.push(providerSessionId, message);
34
+ return args;
35
+ }
36
+ const args = ["exec", "--json", "--skip-git-repo-check"];
37
+ if (model) {
38
+ args.push("--model", model);
39
+ }
40
+ args.push(...passthrough);
41
+ args.push(message);
42
+ return args;
43
+ }
44
+ buildAuthInvocationArgs(options, _command) {
45
+ return ["login", ...(options.passthroughArgs ?? [])];
46
+ }
47
+ async invoke(options) {
48
+ const result = await super.invoke(options);
49
+ const parsed = parseCodexExecResponse(result.stdout);
50
+ const normalizedStdout = parsed?.assistantText || result.stdout;
51
+ return attachProviderSessionId({
52
+ ...result,
53
+ stdout: normalizedStdout,
54
+ }, parsed?.providerSessionId);
55
+ }
56
+ }
57
+ export function parseCodexExecResponse(raw) {
58
+ const records = parseJsonRecords(raw);
59
+ if (records.length === 0) {
60
+ return null;
61
+ }
62
+ let providerSessionId;
63
+ const messageChunks = [];
64
+ for (const record of records) {
65
+ const eventType = readOptionalString(record.type);
66
+ if (eventType === "thread.started") {
67
+ providerSessionId =
68
+ readOptionalString(record.thread_id) ??
69
+ readOptionalString(record.threadId) ??
70
+ providerSessionId;
71
+ continue;
72
+ }
73
+ if (eventType === "item.completed") {
74
+ const item = asRecord(record.item);
75
+ const itemType = readOptionalString(item.type);
76
+ if (itemType === "agent_message") {
77
+ const text = readOptionalString(item.text) ?? readContentText(item);
78
+ if (text) {
79
+ messageChunks.push(text);
80
+ }
81
+ }
82
+ }
83
+ }
84
+ if (messageChunks.length === 0 && !providerSessionId) {
85
+ return null;
86
+ }
87
+ return {
88
+ assistantText: messageChunks.length > 0 ? messageChunks.join("\n\n").trim() : undefined,
89
+ providerSessionId,
90
+ };
91
+ }
92
+ function parseJsonRecords(raw) {
93
+ const trimmed = raw.trim();
94
+ if (!trimmed) {
95
+ return [];
96
+ }
97
+ const direct = parseJsonRecord(trimmed);
98
+ if (direct) {
99
+ return [direct];
100
+ }
101
+ const records = [];
102
+ for (const line of trimmed.split(/\r?\n/)) {
103
+ const parsed = parseJsonRecord(line.trim());
104
+ if (parsed) {
105
+ records.push(parsed);
106
+ }
107
+ }
108
+ return records;
109
+ }
110
+ function parseJsonRecord(raw) {
111
+ if (!raw) {
112
+ return undefined;
113
+ }
114
+ try {
115
+ const parsed = JSON.parse(raw);
116
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
117
+ return undefined;
118
+ }
119
+ return parsed;
120
+ }
121
+ catch {
122
+ return undefined;
123
+ }
124
+ }
125
+ function readContentText(value) {
126
+ const record = asRecord(value);
127
+ const content = Array.isArray(record.content) ? record.content : [];
128
+ const chunks = [];
129
+ for (const entry of content) {
130
+ const item = asRecord(entry);
131
+ const text = readOptionalString(item.text) ??
132
+ readOptionalString(item.content) ??
133
+ readOptionalString(asRecord(item.message).text);
134
+ if (text) {
135
+ chunks.push(text);
136
+ }
137
+ }
138
+ if (chunks.length === 0) {
139
+ return undefined;
140
+ }
141
+ return chunks.join("\n\n").trim() || undefined;
142
+ }
143
+ function readOptionalString(value) {
144
+ if (typeof value !== "string") {
145
+ return undefined;
146
+ }
147
+ const normalized = value.trim();
148
+ return normalized.length > 0 ? normalized : undefined;
149
+ }
150
+ function asRecord(value) {
151
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
152
+ return {};
153
+ }
154
+ return value;
155
+ }
156
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../../src/core/providers/providers/codex/provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ProviderModule } from "../../provider-module.js";
2
+ import { CursorProvider } from "./provider.js";
3
+ export declare const providerModule: ProviderModule;
4
+ export { CursorProvider };
@@ -0,0 +1,32 @@
1
+ import { CursorProvider } from "./provider.js";
2
+ export const providerModule = {
3
+ id: "cursor",
4
+ create: () => new CursorProvider(),
5
+ runtime: {
6
+ invocation: {
7
+ cwd: "agent-workspace",
8
+ },
9
+ skills: {
10
+ directories: [".cursor/skills"],
11
+ },
12
+ },
13
+ onboarding: {
14
+ env: [
15
+ {
16
+ key: "CURSOR_CMD",
17
+ description: "Optional cursor binary path override",
18
+ },
19
+ {
20
+ key: "CURSOR_API_KEY",
21
+ description: "Optional API key for Cursor Agent authentication",
22
+ secret: true,
23
+ },
24
+ ],
25
+ auth: {
26
+ supported: true,
27
+ description: "Runs `cursor agent login`.",
28
+ },
29
+ },
30
+ };
31
+ export { CursorProvider };
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/providers/providers/cursor/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C,EAAE,EAAE,QAAQ;IACZ,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,cAAc,EAAE;IAClC,OAAO,EAAE;QACP,UAAU,EAAE;YACV,GAAG,EAAE,iBAAiB;SACvB;QACD,MAAM,EAAE;YACN,WAAW,EAAE,CAAC,gBAAgB,CAAC;SAChC;KACF;IACD,UAAU,EAAE;QACV,GAAG,EAAE;YACH;gBACE,GAAG,EAAE,YAAY;gBACjB,WAAW,EAAE,sCAAsC;aACpD;YACD;gBACE,GAAG,EAAE,gBAAgB;gBACrB,WAAW,EAAE,kDAAkD;gBAC/D,MAAM,EAAE,IAAI;aACb;SACF;QACD,IAAI,EAAE;YACJ,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,4BAA4B;SAC1C;KACF;CACF,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { BaseCliProvider } from "../../cli-provider.js";
2
+ import type { ProviderAuthOptions, ProviderExecutionResult, ProviderInvokeOptions } from "../../types.js";
3
+ export declare class CursorProvider extends BaseCliProvider {
4
+ constructor();
5
+ protected buildInvocationArgs(options: ProviderInvokeOptions, command: string): string[];
6
+ protected buildAuthInvocationArgs(options: ProviderAuthOptions, command: string): string[];
7
+ invoke(options: ProviderInvokeOptions): Promise<ProviderExecutionResult>;
8
+ }
9
+ export declare function parseCursorAgentResponse(raw: string): {
10
+ assistantText?: string;
11
+ providerSessionId?: string;
12
+ } | null;