@nntoan/gstack 0.0.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.
- package/LICENSE +21 -0
- package/README.md +33 -0
- package/bin/gstack.js +2 -0
- package/dist/agents/builder.d.ts +2 -0
- package/dist/agents/ceo.d.ts +2 -0
- package/dist/agents/debugger.d.ts +2 -0
- package/dist/agents/designer.d.ts +2 -0
- package/dist/agents/doc-engineer.d.ts +2 -0
- package/dist/agents/eng-manager.d.ts +2 -0
- package/dist/agents/index.d.ts +21 -0
- package/dist/agents/qa-lead.d.ts +2 -0
- package/dist/agents/release-engineer.d.ts +2 -0
- package/dist/agents/retro-lead.d.ts +2 -0
- package/dist/agents/reviewer.d.ts +2 -0
- package/dist/agents/safety-guard.d.ts +2 -0
- package/dist/agents/session-manager.d.ts +2 -0
- package/dist/agents/types.d.ts +7 -0
- package/dist/agents/upgrader.d.ts +2 -0
- package/dist/cli/cli-program.d.ts +1 -0
- package/dist/cli/doctor/checks/config.d.ts +2 -0
- package/dist/cli/doctor/checks/index.d.ts +1 -0
- package/dist/cli/doctor/checks/mcp.d.ts +7 -0
- package/dist/cli/doctor/checks/system.d.ts +2 -0
- package/dist/cli/doctor/checks/tools.d.ts +2 -0
- package/dist/cli/doctor/index.d.ts +2 -0
- package/dist/cli/doctor/runner.d.ts +12 -0
- package/dist/cli/doctor/types.d.ts +11 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/install.d.ts +10 -0
- package/dist/cli.js +17011 -0
- package/dist/config/merge-configs.d.ts +2 -0
- package/dist/config/schema/agent-schema.d.ts +13 -0
- package/dist/config/schema/backlog-schema.d.ts +7 -0
- package/dist/config/schema/browser-schema.d.ts +6 -0
- package/dist/config/schema/constants.d.ts +1 -0
- package/dist/config/schema/index.d.ts +7 -0
- package/dist/config/schema/main.d.ts +150 -0
- package/dist/config/schema/mcp-schema.d.ts +51 -0
- package/dist/config/schema/telemetry-schema.d.ts +9 -0
- package/dist/create-hooks.d.ts +9 -0
- package/dist/create-managers.d.ts +17 -0
- package/dist/create-skills-and-agents.d.ts +8 -0
- package/dist/create-tools.d.ts +9 -0
- package/dist/features/analytics/eureka-tracker.d.ts +2 -0
- package/dist/features/analytics/index.d.ts +12 -0
- package/dist/features/analytics/skill-usage-tracker.d.ts +2 -0
- package/dist/features/analytics/sprint-logger.d.ts +2 -0
- package/dist/features/analytics/types.d.ts +38 -0
- package/dist/features/analytics/writer.d.ts +2 -0
- package/dist/features/browser-daemon/browser-manager.d.ts +99 -0
- package/dist/features/browser-daemon/buffers.d.ts +43 -0
- package/dist/features/browser-daemon/cli.d.ts +12 -0
- package/dist/features/browser-daemon/commands.d.ts +13 -0
- package/dist/features/browser-daemon/config.d.ts +6 -0
- package/dist/features/browser-daemon/cookie-import-browser.d.ts +70 -0
- package/dist/features/browser-daemon/cookie-picker-routes.d.ts +16 -0
- package/dist/features/browser-daemon/cookie-picker-ui.d.ts +9 -0
- package/dist/features/browser-daemon/find-browse.d.ts +7 -0
- package/dist/features/browser-daemon/index.d.ts +17 -0
- package/dist/features/browser-daemon/meta-commands.d.ts +6 -0
- package/dist/features/browser-daemon/platform.d.ts +3 -0
- package/dist/features/browser-daemon/read-commands.d.ts +11 -0
- package/dist/features/browser-daemon/server.d.ts +27 -0
- package/dist/features/browser-daemon/snapshot.d.ts +36 -0
- package/dist/features/browser-daemon/types.d.ts +31 -0
- package/dist/features/browser-daemon/url-validation.d.ts +5 -0
- package/dist/features/browser-daemon/write-commands.d.ts +8 -0
- package/dist/features/builtin-skills/index.d.ts +3 -0
- package/dist/features/builtin-skills/skills/benchmark.d.ts +2 -0
- package/dist/features/builtin-skills/skills/browse.d.ts +2 -0
- package/dist/features/builtin-skills/skills/canary.d.ts +2 -0
- package/dist/features/builtin-skills/skills/careful.d.ts +2 -0
- package/dist/features/builtin-skills/skills/codex.d.ts +2 -0
- package/dist/features/builtin-skills/skills/design-consultation.d.ts +2 -0
- package/dist/features/builtin-skills/skills/design-review.d.ts +2 -0
- package/dist/features/builtin-skills/skills/document-release.d.ts +2 -0
- package/dist/features/builtin-skills/skills/freeze.d.ts +2 -0
- package/dist/features/builtin-skills/skills/guard.d.ts +2 -0
- package/dist/features/builtin-skills/skills/index.d.ts +25 -0
- package/dist/features/builtin-skills/skills/investigate.d.ts +2 -0
- package/dist/features/builtin-skills/skills/land-and-deploy.d.ts +2 -0
- package/dist/features/builtin-skills/skills/office-hours.d.ts +2 -0
- package/dist/features/builtin-skills/skills/plan-ceo-review.d.ts +2 -0
- package/dist/features/builtin-skills/skills/plan-design-review.d.ts +2 -0
- package/dist/features/builtin-skills/skills/plan-eng-review.d.ts +2 -0
- package/dist/features/builtin-skills/skills/qa-only.d.ts +2 -0
- package/dist/features/builtin-skills/skills/qa.d.ts +2 -0
- package/dist/features/builtin-skills/skills/retro.d.ts +2 -0
- package/dist/features/builtin-skills/skills/review.d.ts +2 -0
- package/dist/features/builtin-skills/skills/setup-browser-cookies.d.ts +2 -0
- package/dist/features/builtin-skills/skills/setup-deploy.d.ts +2 -0
- package/dist/features/builtin-skills/skills/ship.d.ts +2 -0
- package/dist/features/builtin-skills/skills/unfreeze.d.ts +2 -0
- package/dist/features/builtin-skills/skills/upgrade.d.ts +2 -0
- package/dist/features/builtin-skills/skills.d.ts +3 -0
- package/dist/features/builtin-skills/types.d.ts +4 -0
- package/dist/features/orchestrator/delegation-engine.d.ts +19 -0
- package/dist/features/orchestrator/index.d.ts +21 -0
- package/dist/features/orchestrator/intent-classifier.d.ts +3 -0
- package/dist/features/orchestrator/intent-patterns.d.ts +4 -0
- package/dist/features/orchestrator/types.d.ts +22 -0
- package/dist/features/skill-adapter/content-transformer.d.ts +12 -0
- package/dist/features/skill-adapter/index.d.ts +4 -0
- package/dist/features/skill-adapter/placeholder-content.d.ts +5 -0
- package/dist/features/skill-adapter/template-resolver.d.ts +14 -0
- package/dist/features/skill-mcp-manager/cleanup.d.ts +4 -0
- package/dist/features/skill-mcp-manager/connection.d.ts +4 -0
- package/dist/features/skill-mcp-manager/index.d.ts +2 -0
- package/dist/features/skill-mcp-manager/manager.d.ts +19 -0
- package/dist/features/skill-mcp-manager/types.d.ts +33 -0
- package/dist/features/sprint-backlog/backlog-client.d.ts +18 -0
- package/dist/features/sprint-backlog/build-status-updater.d.ts +8 -0
- package/dist/features/sprint-backlog/graceful-degradation.d.ts +1 -0
- package/dist/features/sprint-backlog/index.d.ts +21 -0
- package/dist/features/sprint-backlog/ship-readiness-checker.d.ts +10 -0
- package/dist/features/sprint-backlog/think-plan-creator.d.ts +6 -0
- package/dist/features/sprint-backlog/types.d.ts +23 -0
- package/dist/features/workspace-state/boulder-storage.d.ts +16 -0
- package/dist/features/workspace-state/constants.d.ts +12 -0
- package/dist/features/workspace-state/ensure-workspace.d.ts +2 -0
- package/dist/features/workspace-state/index.d.ts +27 -0
- package/dist/features/workspace-state/notepad-manager.d.ts +6 -0
- package/dist/features/workspace-state/plan-progress.d.ts +4 -0
- package/dist/features/workspace-state/review-dashboard.d.ts +11 -0
- package/dist/features/workspace-state/session-tracker.d.ts +8 -0
- package/dist/features/workspace-state/types.d.ts +38 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +39359 -0
- package/dist/mcp/backlog-md.d.ts +2 -0
- package/dist/mcp/context7.d.ts +2 -0
- package/dist/mcp/contexthub.d.ts +2 -0
- package/dist/mcp/grep-app.d.ts +2 -0
- package/dist/mcp/index.d.ts +5 -0
- package/dist/mcp/types.d.ts +25 -0
- package/dist/mcp/websearch.d.ts +3 -0
- package/dist/plugin-config.d.ts +4 -0
- package/dist/plugin-handlers/config-handler.d.ts +10 -0
- package/dist/plugin-handlers/index.d.ts +3 -0
- package/dist/plugin-handlers/mcp-config-handler.d.ts +7 -0
- package/dist/plugin-interface.d.ts +18 -0
- package/dist/shared/deep-merge.d.ts +2 -0
- package/dist/shared/index.d.ts +3 -0
- package/dist/shared/logger.d.ts +2 -0
- package/dist/shared/path-helpers.d.ts +17 -0
- package/dist/types/agent.d.ts +12 -0
- package/dist/types/config.d.ts +39 -0
- package/dist/types/mcp.d.ts +11 -0
- package/dist/types/orchestrator.d.ts +30 -0
- package/dist/types/skill.d.ts +20 -0
- package/dist/types.d.ts +5 -0
- package/package.json +96 -0
- package/schemas/config.schema.json +189 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { GstackConfig } from '../types/config.ts';
|
|
2
|
+
import type { RemoteMcpConfig, StdioMcpConfig } from './types.ts';
|
|
3
|
+
export { McpNameSchema, type McpName } from './types.ts';
|
|
4
|
+
type McpServerConfig = RemoteMcpConfig | StdioMcpConfig;
|
|
5
|
+
export declare function createBuiltinMcps(disabledMcps?: string[], _config?: GstackConfig): Record<string, McpServerConfig>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const McpNameSchema: z.ZodEnum<{
|
|
3
|
+
websearch: "websearch";
|
|
4
|
+
context7: "context7";
|
|
5
|
+
contexthub: "contexthub";
|
|
6
|
+
grep_app: "grep_app";
|
|
7
|
+
backlog_md: "backlog_md";
|
|
8
|
+
}>;
|
|
9
|
+
export type McpName = z.infer<typeof McpNameSchema>;
|
|
10
|
+
export declare const AnyMcpNameSchema: z.ZodString;
|
|
11
|
+
export type AnyMcpName = z.infer<typeof AnyMcpNameSchema>;
|
|
12
|
+
export type RemoteMcpConfig = {
|
|
13
|
+
type: 'remote';
|
|
14
|
+
url: string;
|
|
15
|
+
enabled: boolean;
|
|
16
|
+
headers?: Record<string, string>;
|
|
17
|
+
oauth?: false;
|
|
18
|
+
};
|
|
19
|
+
export type StdioMcpConfig = {
|
|
20
|
+
type: 'stdio';
|
|
21
|
+
command: string;
|
|
22
|
+
args?: string[];
|
|
23
|
+
enabled: boolean;
|
|
24
|
+
env?: Record<string, string>;
|
|
25
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { GstackConfig } from './types/config.ts';
|
|
2
|
+
export declare function parseConfigPartially(rawConfig: Record<string, unknown>): Partial<GstackConfig> | null;
|
|
3
|
+
export declare function loadConfigFromPath(configPath: string, _ctx: unknown): Partial<GstackConfig> | null;
|
|
4
|
+
export declare function loadPluginConfig(directory: string, _ctx: unknown): GstackConfig;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { GstackConfig } from '../types/config.ts';
|
|
2
|
+
import type { GstackSkill } from '../types/skill.ts';
|
|
3
|
+
export interface ConfigHandlerDeps {
|
|
4
|
+
ctx: {
|
|
5
|
+
directory: string;
|
|
6
|
+
};
|
|
7
|
+
pluginConfig: GstackConfig;
|
|
8
|
+
skills?: GstackSkill[];
|
|
9
|
+
}
|
|
10
|
+
export declare function createConfigHandler(deps: ConfigHandlerDeps): (config: Record<string, unknown>) => Promise<void>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { GstackConfig } from '../types/config.ts';
|
|
2
|
+
import type { GstackSkill } from '../types/skill.ts';
|
|
3
|
+
export declare function applyMcpConfig(params: {
|
|
4
|
+
config: Record<string, unknown>;
|
|
5
|
+
pluginConfig: GstackConfig;
|
|
6
|
+
skills?: GstackSkill[];
|
|
7
|
+
}): Promise<void>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { GstackConfig } from './types/config.ts';
|
|
2
|
+
import type { GstackSkill } from './types/skill.ts';
|
|
3
|
+
import type { GstackAgent } from './types/agent.ts';
|
|
4
|
+
import type { Managers } from './create-managers.ts';
|
|
5
|
+
import type { Orchestrator } from './features/orchestrator/index.ts';
|
|
6
|
+
export type PluginInterfaceParams = {
|
|
7
|
+
ctx: {
|
|
8
|
+
directory: string;
|
|
9
|
+
};
|
|
10
|
+
pluginConfig: GstackConfig;
|
|
11
|
+
managers: Managers;
|
|
12
|
+
hooks: Record<string, unknown>;
|
|
13
|
+
tools: Record<string, unknown>;
|
|
14
|
+
orchestrator: Orchestrator;
|
|
15
|
+
skills: GstackSkill[];
|
|
16
|
+
agents: GstackAgent[];
|
|
17
|
+
};
|
|
18
|
+
export declare function createPluginInterface(params: PluginInterfaceParams): Record<string, unknown>;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { log, getLogFilePath } from './logger.ts';
|
|
2
|
+
export { deepMerge, isPlainObject } from './deep-merge.ts';
|
|
3
|
+
export { getGstackDir, getBrowserDir, getOrchestratorDir, getPlansDir, getNotepadsDir, getEvidenceDir, getReviewsDir, getSessionsDir, getAnalyticsDir, getRulesDir, getDesignDocsDir, getBrowseStatePath, getBoulderPath, getStatePath, getSprintLogPath, getBacklogDir, ensureDir, } from './path-helpers.ts';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare function getGstackDir(projectDir: string): string;
|
|
2
|
+
export declare function getBrowserDir(projectDir: string): string;
|
|
3
|
+
export declare function getOrchestratorDir(projectDir: string): string;
|
|
4
|
+
export declare function getPlansDir(projectDir: string): string;
|
|
5
|
+
export declare function getNotepadsDir(projectDir: string, planName: string): string;
|
|
6
|
+
export declare function getEvidenceDir(projectDir: string): string;
|
|
7
|
+
export declare function getReviewsDir(projectDir: string): string;
|
|
8
|
+
export declare function getSessionsDir(projectDir: string): string;
|
|
9
|
+
export declare function getAnalyticsDir(projectDir: string): string;
|
|
10
|
+
export declare function getRulesDir(projectDir: string): string;
|
|
11
|
+
export declare function getDesignDocsDir(projectDir: string): string;
|
|
12
|
+
export declare function getBrowseStatePath(projectDir: string): string;
|
|
13
|
+
export declare function getBoulderPath(projectDir: string): string;
|
|
14
|
+
export declare function getStatePath(projectDir: string): string;
|
|
15
|
+
export declare function getSprintLogPath(projectDir: string): string;
|
|
16
|
+
export declare function getBacklogDir(projectDir: string): string;
|
|
17
|
+
export declare function ensureDir(dirPath: string): Promise<void>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type SprintPhase = 'think' | 'plan' | 'build' | 'review' | 'test' | 'ship' | 'reflect' | 'cross-cutting' | 'utility';
|
|
2
|
+
export type AgentRole = 'ceo' | 'eng-manager' | 'designer' | 'builder' | 'reviewer' | 'debugger' | 'qa-lead' | 'release-engineer' | 'doc-engineer' | 'retro-lead' | 'safety-guard' | 'upgrader' | 'session-manager';
|
|
3
|
+
export interface GstackAgent {
|
|
4
|
+
role: AgentRole;
|
|
5
|
+
name: string;
|
|
6
|
+
description: string;
|
|
7
|
+
sprintPhase: SprintPhase;
|
|
8
|
+
skills: string[];
|
|
9
|
+
instructions: string;
|
|
10
|
+
model?: string;
|
|
11
|
+
subtask?: boolean;
|
|
12
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export type OrchestrationMode = 'multi-agent' | 'skills-only';
|
|
2
|
+
export interface BacklogConfig {
|
|
3
|
+
enabled: boolean;
|
|
4
|
+
auto_create_tasks: boolean;
|
|
5
|
+
auto_update_status: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface AgentOverrideConfig {
|
|
8
|
+
model?: string;
|
|
9
|
+
instructions?: string;
|
|
10
|
+
enabled?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface McpOverrideConfig {
|
|
13
|
+
enabled?: boolean;
|
|
14
|
+
url?: string;
|
|
15
|
+
api_key?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface BrowserConfig {
|
|
18
|
+
headless: boolean;
|
|
19
|
+
timeout_ms: number;
|
|
20
|
+
}
|
|
21
|
+
export interface TelemetryConfig {
|
|
22
|
+
enabled: boolean;
|
|
23
|
+
supabase?: {
|
|
24
|
+
url?: string;
|
|
25
|
+
key?: string;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export interface GstackConfig {
|
|
29
|
+
orchestration_mode: OrchestrationMode;
|
|
30
|
+
disabled_skills: string[];
|
|
31
|
+
disabled_agents: string[];
|
|
32
|
+
disabled_mcps: string[];
|
|
33
|
+
disabled_hooks: string[];
|
|
34
|
+
agents?: Record<string, AgentOverrideConfig>;
|
|
35
|
+
mcp?: Record<string, McpOverrideConfig>;
|
|
36
|
+
backlog: BacklogConfig;
|
|
37
|
+
browser?: BrowserConfig;
|
|
38
|
+
telemetry?: TelemetryConfig;
|
|
39
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface McpServerConfig {
|
|
2
|
+
type: 'remote' | 'stdio';
|
|
3
|
+
url?: string;
|
|
4
|
+
command?: string;
|
|
5
|
+
args?: string[];
|
|
6
|
+
enabled: boolean;
|
|
7
|
+
headers?: Record<string, string>;
|
|
8
|
+
oauth?: false;
|
|
9
|
+
}
|
|
10
|
+
export type McpName = 'websearch' | 'context7' | 'contexthub' | 'grep_app' | 'backlog_md';
|
|
11
|
+
export type McpTier = 'builtin' | 'user' | 'skill-embedded';
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { SprintPhase, AgentRole } from './agent.ts';
|
|
2
|
+
export interface UserIntent {
|
|
3
|
+
raw: string;
|
|
4
|
+
phase: SprintPhase;
|
|
5
|
+
confidence: number;
|
|
6
|
+
}
|
|
7
|
+
export interface DelegationResult {
|
|
8
|
+
agent: AgentRole;
|
|
9
|
+
skills: string[];
|
|
10
|
+
reasoning: string;
|
|
11
|
+
}
|
|
12
|
+
export interface BoulderState {
|
|
13
|
+
activePlan?: string;
|
|
14
|
+
startedAt?: string;
|
|
15
|
+
sessionIds: string[];
|
|
16
|
+
planName?: string;
|
|
17
|
+
currentPhase?: SprintPhase;
|
|
18
|
+
}
|
|
19
|
+
export interface SprintLogEntry {
|
|
20
|
+
timestamp: string;
|
|
21
|
+
phase: SprintPhase;
|
|
22
|
+
agent: AgentRole;
|
|
23
|
+
action: string;
|
|
24
|
+
}
|
|
25
|
+
export interface SessionState {
|
|
26
|
+
sessionId: string;
|
|
27
|
+
pid: number;
|
|
28
|
+
startTime: string;
|
|
29
|
+
agentType: string;
|
|
30
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface BuiltinSkill {
|
|
2
|
+
name: string;
|
|
3
|
+
description: string;
|
|
4
|
+
template: string;
|
|
5
|
+
allowedTools?: string[];
|
|
6
|
+
mcpConfig?: Record<string, unknown>;
|
|
7
|
+
agent?: string;
|
|
8
|
+
model?: string;
|
|
9
|
+
subtask?: boolean;
|
|
10
|
+
argumentHint?: string;
|
|
11
|
+
license?: string;
|
|
12
|
+
compatibility?: string;
|
|
13
|
+
metadata?: Record<string, unknown>;
|
|
14
|
+
}
|
|
15
|
+
export type SkillGroup = 'planning' | 'review' | 'safety' | 'utility' | 'deploy' | 'browser';
|
|
16
|
+
export interface GstackSkill extends BuiltinSkill {
|
|
17
|
+
group: SkillGroup;
|
|
18
|
+
originalSkillName: string;
|
|
19
|
+
browserRequired: boolean;
|
|
20
|
+
}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export type { BuiltinSkill, SkillGroup, GstackSkill } from './types/skill.ts';
|
|
2
|
+
export type { SprintPhase, AgentRole, GstackAgent } from './types/agent.ts';
|
|
3
|
+
export type { OrchestrationMode, GstackConfig, BacklogConfig, AgentOverrideConfig, McpOverrideConfig, BrowserConfig, TelemetryConfig, } from './types/config.ts';
|
|
4
|
+
export type { McpServerConfig, McpName, McpTier } from './types/mcp.ts';
|
|
5
|
+
export type { UserIntent, DelegationResult, BoulderState, SprintLogEntry, SessionState, } from './types/orchestrator.ts';
|
package/package.json
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@nntoan/gstack",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Use Garry Tan's exact OpenCode setup: 15 opinionated tools that serve as CEO, Designer, Eng Manager, Release Manager, Doc Engineer, and QA",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Toan Nguyen",
|
|
7
|
+
"email": "hello@nntoan.com"
|
|
8
|
+
},
|
|
9
|
+
"type": "module",
|
|
10
|
+
"main": "dist/index.js",
|
|
11
|
+
"types": "dist/index.d.ts",
|
|
12
|
+
"bin": {
|
|
13
|
+
"gstack": "dist/cli.js"
|
|
14
|
+
},
|
|
15
|
+
"exports": {
|
|
16
|
+
".": {
|
|
17
|
+
"types": "./dist/index.d.ts",
|
|
18
|
+
"default": "./dist/index.js"
|
|
19
|
+
},
|
|
20
|
+
"./schema.json": "./schemas/config.schema.json"
|
|
21
|
+
},
|
|
22
|
+
"repository": {
|
|
23
|
+
"type": "git",
|
|
24
|
+
"url": "git+https://github.com/nntoan/gstack-opencode.git"
|
|
25
|
+
},
|
|
26
|
+
"publishConfig": {
|
|
27
|
+
"access": "public"
|
|
28
|
+
},
|
|
29
|
+
"files": [
|
|
30
|
+
"dist",
|
|
31
|
+
"bin",
|
|
32
|
+
"src/version.ts",
|
|
33
|
+
"schemas"
|
|
34
|
+
],
|
|
35
|
+
"scripts": {
|
|
36
|
+
"build": "bun build src/index.ts --outdir dist --target bun --format esm && tsc -p tsconfig.build.json --emitDeclarationOnly",
|
|
37
|
+
"build:cli": "bun build src/cli/index.ts --outfile dist/cli.js --target bun --format esm",
|
|
38
|
+
"build:all": "bun run build && bun run build:cli",
|
|
39
|
+
"typecheck": "tsc --noEmit",
|
|
40
|
+
"clean": "rm -rf dist",
|
|
41
|
+
"prepublishOnly": "bun run build:all",
|
|
42
|
+
"build:platform": "bun run scripts/build-platform.ts",
|
|
43
|
+
"generate:schema": "bun scripts/generate-schema.ts",
|
|
44
|
+
"sync:upstream": "bun scripts/upstream-sync.ts",
|
|
45
|
+
"test": "bun test",
|
|
46
|
+
"lint": "eslint .",
|
|
47
|
+
"lint:fix": "eslint . --fix",
|
|
48
|
+
"format": "prettier --write ."
|
|
49
|
+
},
|
|
50
|
+
"dependencies": {
|
|
51
|
+
"@modelcontextprotocol/sdk": "^1.25.2",
|
|
52
|
+
"@opencode-ai/plugin": "^1.2.24",
|
|
53
|
+
"@opencode-ai/sdk": "^1.2.24",
|
|
54
|
+
"commander": "^14.0.2",
|
|
55
|
+
"diff": "^8.0.3",
|
|
56
|
+
"jsonc-parser": "^3.3.1",
|
|
57
|
+
"picocolors": "^1.1.1",
|
|
58
|
+
"zod": "^4.1.8"
|
|
59
|
+
},
|
|
60
|
+
"peerDependencies": {
|
|
61
|
+
"playwright": ">=1.40.0"
|
|
62
|
+
},
|
|
63
|
+
"peerDependenciesMeta": {
|
|
64
|
+
"playwright": {
|
|
65
|
+
"optional": true
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
"optionalDependencies": {
|
|
69
|
+
"@nntoan/gstack-darwin-arm64": "0.0.1",
|
|
70
|
+
"@nntoan/gstack-darwin-x64": "0.0.1",
|
|
71
|
+
"@nntoan/gstack-linux-arm64": "0.0.1",
|
|
72
|
+
"@nntoan/gstack-linux-x64": "0.0.1",
|
|
73
|
+
"@nntoan/gstack-linux-arm64-musl": "0.0.1",
|
|
74
|
+
"@nntoan/gstack-linux-x64-musl": "0.0.1",
|
|
75
|
+
"@nntoan/gstack-win32-arm64": "0.0.1",
|
|
76
|
+
"@nntoan/gstack-win32-x64": "0.0.1",
|
|
77
|
+
"@nntoan/gstack-win32-ia32": "0.0.1",
|
|
78
|
+
"@nntoan/gstack-freebsd-x64": "0.0.1",
|
|
79
|
+
"@nntoan/gstack-freebsd-arm64": "0.0.1",
|
|
80
|
+
"@nntoan/gstack-openbsd-x64": "0.0.1"
|
|
81
|
+
},
|
|
82
|
+
"devDependencies": {
|
|
83
|
+
"@eslint/js": "^9.39.1",
|
|
84
|
+
"@typescript-eslint/eslint-plugin": "8.47.0",
|
|
85
|
+
"@typescript-eslint/parser": "8.47.0",
|
|
86
|
+
"bun-types": "1.3.10",
|
|
87
|
+
"eslint": "^9.39.1",
|
|
88
|
+
"eslint-config-prettier": "10.1.8",
|
|
89
|
+
"eslint-plugin-prettier": "^5.1.3",
|
|
90
|
+
"playwright": "^1.46.1",
|
|
91
|
+
"prettier": "^3.2.4",
|
|
92
|
+
"typescript": "^5.7.3",
|
|
93
|
+
"typescript-eslint": "^8.47.0",
|
|
94
|
+
"vitest": "^3.2.4"
|
|
95
|
+
}
|
|
96
|
+
}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://raw.githubusercontent.com/nntoan/opencode-gstack/main/schemas/config.schema.json",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"orchestration_mode": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"enum": [
|
|
9
|
+
"multi-agent",
|
|
10
|
+
"skills-only"
|
|
11
|
+
],
|
|
12
|
+
"default": "multi-agent",
|
|
13
|
+
"description": "Orchestration mode for agent execution"
|
|
14
|
+
},
|
|
15
|
+
"disabled_skills": {
|
|
16
|
+
"type": "array",
|
|
17
|
+
"items": {
|
|
18
|
+
"type": "string"
|
|
19
|
+
},
|
|
20
|
+
"default": [],
|
|
21
|
+
"description": "List of disabled skill names"
|
|
22
|
+
},
|
|
23
|
+
"disabled_agents": {
|
|
24
|
+
"type": "array",
|
|
25
|
+
"items": {
|
|
26
|
+
"type": "string"
|
|
27
|
+
},
|
|
28
|
+
"default": [],
|
|
29
|
+
"description": "List of disabled agent names"
|
|
30
|
+
},
|
|
31
|
+
"disabled_mcps": {
|
|
32
|
+
"type": "array",
|
|
33
|
+
"items": {
|
|
34
|
+
"type": "string"
|
|
35
|
+
},
|
|
36
|
+
"default": [],
|
|
37
|
+
"description": "List of disabled MCP names"
|
|
38
|
+
},
|
|
39
|
+
"disabled_hooks": {
|
|
40
|
+
"type": "array",
|
|
41
|
+
"items": {
|
|
42
|
+
"type": "string"
|
|
43
|
+
},
|
|
44
|
+
"default": [],
|
|
45
|
+
"description": "List of disabled hook names"
|
|
46
|
+
},
|
|
47
|
+
"agents": {
|
|
48
|
+
"type": "object",
|
|
49
|
+
"additionalProperties": {
|
|
50
|
+
"type": "object",
|
|
51
|
+
"properties": {
|
|
52
|
+
"model": {
|
|
53
|
+
"type": "string",
|
|
54
|
+
"description": "Override model name for this agent"
|
|
55
|
+
},
|
|
56
|
+
"instructions": {
|
|
57
|
+
"type": "string",
|
|
58
|
+
"description": "Custom instructions for this agent"
|
|
59
|
+
},
|
|
60
|
+
"enabled": {
|
|
61
|
+
"type": "boolean",
|
|
62
|
+
"description": "Enable or disable this agent"
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"description": "Per-agent configuration overrides"
|
|
67
|
+
},
|
|
68
|
+
"mcp": {
|
|
69
|
+
"type": "object",
|
|
70
|
+
"properties": {
|
|
71
|
+
"websearch": {
|
|
72
|
+
"type": "object",
|
|
73
|
+
"properties": {
|
|
74
|
+
"provider": {
|
|
75
|
+
"type": "string",
|
|
76
|
+
"enum": [
|
|
77
|
+
"exa",
|
|
78
|
+
"tavily"
|
|
79
|
+
],
|
|
80
|
+
"default": "exa"
|
|
81
|
+
},
|
|
82
|
+
"api_key": {
|
|
83
|
+
"type": "string"
|
|
84
|
+
},
|
|
85
|
+
"enabled": {
|
|
86
|
+
"type": "boolean",
|
|
87
|
+
"default": true
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
"context7": {
|
|
92
|
+
"type": "object",
|
|
93
|
+
"properties": {
|
|
94
|
+
"api_key": {
|
|
95
|
+
"type": "string"
|
|
96
|
+
},
|
|
97
|
+
"enabled": {
|
|
98
|
+
"type": "boolean",
|
|
99
|
+
"default": true
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"contexthub": {
|
|
104
|
+
"type": "object",
|
|
105
|
+
"properties": {
|
|
106
|
+
"enabled": {
|
|
107
|
+
"type": "boolean",
|
|
108
|
+
"default": true
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
"grep_app": {
|
|
113
|
+
"type": "object",
|
|
114
|
+
"properties": {
|
|
115
|
+
"enabled": {
|
|
116
|
+
"type": "boolean",
|
|
117
|
+
"default": true
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
"backlog_md": {
|
|
122
|
+
"type": "object",
|
|
123
|
+
"properties": {
|
|
124
|
+
"enabled": {
|
|
125
|
+
"type": "boolean",
|
|
126
|
+
"default": true
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
"description": "MCP configuration"
|
|
132
|
+
},
|
|
133
|
+
"backlog": {
|
|
134
|
+
"type": "object",
|
|
135
|
+
"properties": {
|
|
136
|
+
"enabled": {
|
|
137
|
+
"type": "boolean",
|
|
138
|
+
"default": true
|
|
139
|
+
},
|
|
140
|
+
"auto_create_tasks": {
|
|
141
|
+
"type": "boolean",
|
|
142
|
+
"default": true
|
|
143
|
+
},
|
|
144
|
+
"auto_update_status": {
|
|
145
|
+
"type": "boolean",
|
|
146
|
+
"default": true
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
"default": {},
|
|
150
|
+
"description": "Backlog system configuration"
|
|
151
|
+
},
|
|
152
|
+
"browser": {
|
|
153
|
+
"type": "object",
|
|
154
|
+
"properties": {
|
|
155
|
+
"headless": {
|
|
156
|
+
"type": "boolean",
|
|
157
|
+
"default": true
|
|
158
|
+
},
|
|
159
|
+
"timeout_ms": {
|
|
160
|
+
"type": "number",
|
|
161
|
+
"default": 30000
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
"description": "Browser automation configuration"
|
|
165
|
+
},
|
|
166
|
+
"telemetry": {
|
|
167
|
+
"type": "object",
|
|
168
|
+
"properties": {
|
|
169
|
+
"enabled": {
|
|
170
|
+
"type": "boolean",
|
|
171
|
+
"default": true
|
|
172
|
+
},
|
|
173
|
+
"supabase": {
|
|
174
|
+
"type": "object",
|
|
175
|
+
"properties": {
|
|
176
|
+
"url": {
|
|
177
|
+
"type": "string"
|
|
178
|
+
},
|
|
179
|
+
"key": {
|
|
180
|
+
"type": "string"
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
"description": "Telemetry configuration"
|
|
186
|
+
}
|
|
187
|
+
},
|
|
188
|
+
"additionalProperties": false
|
|
189
|
+
}
|