gisool 0.0.0-stage → 0.1.0

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 (84) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +136 -2
  3. package/dist/api/routes.js +166 -0
  4. package/dist/api/security.js +86 -0
  5. package/dist/api/sse.js +55 -0
  6. package/dist/api/static.js +32 -0
  7. package/dist/catalog/fields.js +146 -0
  8. package/dist/catalog/index.js +133 -0
  9. package/dist/catalog/scanner.js +185 -0
  10. package/dist/catalog/uri.js +41 -0
  11. package/dist/catalog/watcher.js +59 -0
  12. package/dist/cli/config-writer.js +255 -0
  13. package/dist/cli/doctor.js +197 -0
  14. package/dist/cli/eval.js +64 -0
  15. package/dist/cli/export-import.js +66 -0
  16. package/dist/cli/init.js +271 -0
  17. package/dist/cli/main.js +165 -0
  18. package/dist/cli/open.js +24 -0
  19. package/dist/cli/serve.js +144 -0
  20. package/dist/config.js +78 -0
  21. package/dist/dashboard/assets/app.js +256 -0
  22. package/dist/dashboard/assets/chunk-4U4GNPH4.js +17 -0
  23. package/dist/dashboard/assets/chunk-5DFWNJC2.js +1 -0
  24. package/dist/dashboard/assets/chunk-JPIEF5XO.js +17 -0
  25. package/dist/dashboard/assets/chunk-ZBUKVJOI.js +1 -0
  26. package/dist/dashboard/assets/styles.css +487 -0
  27. package/dist/dashboard/index.html +15 -0
  28. package/dist/ingest/attribution.js +55 -0
  29. package/dist/ingest/hooks.js +168 -0
  30. package/dist/ingest/mcp-recorder.js +41 -0
  31. package/dist/ingest/otlp.js +160 -0
  32. package/dist/ingest/pipeline.js +100 -0
  33. package/dist/ingest/redact.js +36 -0
  34. package/dist/ingest/runtimes.js +25 -0
  35. package/dist/mcp/http.js +84 -0
  36. package/dist/mcp/skills-extension.js +35 -0
  37. package/dist/mcp/stdio-proxy.js +53 -0
  38. package/dist/mcp/tools.js +164 -0
  39. package/dist/packs/claude-code.js +157 -0
  40. package/dist/packs/codex.js +148 -0
  41. package/dist/packs/cursor.js +95 -0
  42. package/dist/packs/gajae.js +7 -0
  43. package/dist/packs/gemini.js +88 -0
  44. package/dist/packs/json-config.js +51 -0
  45. package/dist/packs/omo.js +149 -0
  46. package/dist/packs/openclaw.js +119 -0
  47. package/dist/packs/registry.js +13 -0
  48. package/dist/search/fts.js +61 -0
  49. package/dist/search/fusion.js +50 -0
  50. package/dist/search/guidance.js +7 -0
  51. package/dist/search/index.js +74 -0
  52. package/dist/search/lexical.js +69 -0
  53. package/dist/server.js +216 -0
  54. package/dist/store/db.js +74 -0
  55. package/dist/store/export.js +199 -0
  56. package/dist/store/index.js +13 -0
  57. package/dist/store/queries.js +458 -0
  58. package/dist/store/schema.sql +96 -0
  59. package/dist/store/writes.js +172 -0
  60. package/dist/types.js +1 -0
  61. package/dist/version.js +19 -0
  62. package/package.json +46 -4
  63. package/packs/claude-code/README.md +5 -0
  64. package/packs/claude-code/settings.template.json +24 -0
  65. package/packs/codex/README.md +5 -0
  66. package/packs/codex/config.template.toml +11 -0
  67. package/packs/cursor/hooks.example.json +8 -0
  68. package/packs/cursor/mcp.example.json +8 -0
  69. package/packs/gajae/extension/discovery.md +5 -0
  70. package/packs/gajae/extension/index.js +44 -0
  71. package/packs/gemini/settings.example.json +16 -0
  72. package/packs/hook-post.mjs +29 -0
  73. package/packs/omo/extension/discovery.md +5 -0
  74. package/packs/omo/extension/index.js +44 -0
  75. package/packs/openclaw/.codex-plugin/plugin.json +11 -0
  76. package/packs/openclaw/.mcp.json +12 -0
  77. package/packs/openclaw/gisool.json +1 -0
  78. package/packs/openclaw/hooks/gisool-discovery/HOOK.md +8 -0
  79. package/packs/openclaw/hooks/gisool-discovery/handler.js +27 -0
  80. package/packs/openclaw/index.mjs +47 -0
  81. package/packs/openclaw/openclaw.plugin.json +22 -0
  82. package/packs/openclaw/package.json +11 -0
  83. package/src/store/schema.sql +96 -0
  84. package/src/store/task-types.json +15 -0
@@ -0,0 +1,96 @@
1
+ -- gisool store schema, user_version 1
2
+ CREATE TABLE IF NOT EXISTS meta (
3
+ key TEXT PRIMARY KEY,
4
+ value TEXT
5
+ );
6
+
7
+ CREATE TABLE IF NOT EXISTS skills (
8
+ uri TEXT PRIMARY KEY,
9
+ root_id TEXT NOT NULL,
10
+ name TEXT NOT NULL,
11
+ description TEXT NOT NULL DEFAULT '',
12
+ tags_json TEXT NOT NULL DEFAULT '[]',
13
+ when_to_use TEXT,
14
+ examples_json TEXT NOT NULL DEFAULT '[]',
15
+ aliases_ko_json TEXT NOT NULL DEFAULT '[]',
16
+ group_id TEXT,
17
+ group_stage TEXT,
18
+ invocation TEXT NOT NULL DEFAULT 'automatic',
19
+ body_head TEXT NOT NULL DEFAULT '',
20
+ digest TEXT NOT NULL,
21
+ manifest_digest TEXT NOT NULL,
22
+ resources_json TEXT NOT NULL DEFAULT '[]',
23
+ mtime_ms INTEGER NOT NULL DEFAULT 0,
24
+ removed_at INTEGER
25
+ );
26
+
27
+ -- uri is stored UNINDEXED so rows join back to skills(uri).
28
+ CREATE VIRTUAL TABLE IF NOT EXISTS skills_fts USING fts5(
29
+ uri UNINDEXED,
30
+ name,
31
+ description,
32
+ when_to_use,
33
+ examples,
34
+ aliases_ko,
35
+ body_head,
36
+ tokenize = 'trigram'
37
+ );
38
+
39
+ CREATE TABLE IF NOT EXISTS sessions (
40
+ id TEXT PRIMARY KEY,
41
+ runtime TEXT NOT NULL,
42
+ runtime_session_id TEXT,
43
+ conversation_id TEXT,
44
+ client_name TEXT,
45
+ cwd TEXT,
46
+ started_at INTEGER NOT NULL,
47
+ ended_at INTEGER,
48
+ first_prompt TEXT
49
+ );
50
+ CREATE INDEX IF NOT EXISTS sessions_runtime_session ON sessions(runtime, runtime_session_id);
51
+ CREATE INDEX IF NOT EXISTS sessions_runtime_conversation ON sessions(runtime, conversation_id);
52
+ CREATE INDEX IF NOT EXISTS sessions_started ON sessions(started_at);
53
+
54
+ CREATE TABLE IF NOT EXISTS events (
55
+ id TEXT PRIMARY KEY,
56
+ ts INTEGER NOT NULL,
57
+ kind TEXT NOT NULL,
58
+ source TEXT NOT NULL,
59
+ session_id TEXT NOT NULL,
60
+ attribution_method TEXT NOT NULL,
61
+ attribution_reason TEXT,
62
+ runtime TEXT NOT NULL,
63
+ trace_id TEXT,
64
+ load_id TEXT,
65
+ skill_uri TEXT,
66
+ tool_use_id TEXT,
67
+ text TEXT,
68
+ text_digest TEXT,
69
+ text_length INTEGER,
70
+ data_json TEXT NOT NULL DEFAULT '{}'
71
+ );
72
+ CREATE INDEX IF NOT EXISTS events_session_ts ON events(session_id, ts);
73
+ CREATE INDEX IF NOT EXISTS events_ts ON events(ts);
74
+ CREATE INDEX IF NOT EXISTS events_trace ON events(trace_id);
75
+ CREATE INDEX IF NOT EXISTS events_skill ON events(skill_uri);
76
+ CREATE INDEX IF NOT EXISTS events_tool_use ON events(tool_use_id);
77
+
78
+ CREATE TABLE IF NOT EXISTS loads (
79
+ load_id TEXT PRIMARY KEY,
80
+ trace_id TEXT,
81
+ uri TEXT NOT NULL,
82
+ manifest_digest TEXT NOT NULL,
83
+ resources_json TEXT NOT NULL DEFAULT '[]',
84
+ created_at INTEGER NOT NULL
85
+ );
86
+ CREATE INDEX IF NOT EXISTS loads_uri_created ON loads(uri, created_at);
87
+
88
+ CREATE TABLE IF NOT EXISTS eval_cases (
89
+ id TEXT PRIMARY KEY,
90
+ query TEXT NOT NULL,
91
+ expected_uri TEXT,
92
+ from_trace_id TEXT,
93
+ created_at INTEGER NOT NULL
94
+ );
95
+
96
+ PRAGMA user_version = 1;
@@ -0,0 +1,15 @@
1
+ [
2
+ { "taskType": "code-review", "anyTags": ["code-review", "review", "pr"], "anyGroup": ["code-review", "review"], "anyNameKeywords": ["review", "reviewer", "pr-review", "lint"], "anyPromptKeywords": ["code review", "review this", "pull request", "리뷰", "코드 검토", "PR 검토"] },
3
+ { "taskType": "debugging", "anyTags": ["debugging", "debug", "bugfix"], "anyGroup": ["debugging"], "anyNameKeywords": ["debug", "debugging", "bug", "bugfix", "crash", "troubleshoot"], "anyPromptKeywords": ["debug", "bug", "crash", "stack trace", "error", "디버그", "디버깅", "버그", "에러", "오류"] },
4
+ { "taskType": "testing", "anyTags": ["testing", "test", "qa"], "anyGroup": ["testing", "qa"], "anyNameKeywords": ["test", "tests", "testing", "qa", "e2e", "tdd"], "anyPromptKeywords": ["write tests", "unit test", "test case", "테스트", "QA"] },
5
+ { "taskType": "database", "anyTags": ["database", "sql", "db"], "anyGroup": ["database", "db"], "anyNameKeywords": ["database", "db", "sql", "query", "postgres", "mysql", "sqlite", "migration"], "anyPromptKeywords": ["sql", "database", "query", "schema", "데이터베이스", "쿼리", "디비"] },
6
+ { "taskType": "api", "anyTags": ["api", "rest", "graphql"], "anyGroup": ["api"], "anyNameKeywords": ["api", "rest", "graphql", "openapi", "endpoint", "grpc"], "anyPromptKeywords": ["api", "endpoint", "graphql", "rest api", "엔드포인트"] },
7
+ { "taskType": "frontend-ui", "anyTags": ["frontend", "ui", "ux", "css"], "anyGroup": ["frontend", "frontend-ui", "design"], "anyNameKeywords": ["frontend", "ui", "ux", "css", "react", "component", "design", "layout"], "anyPromptKeywords": ["frontend", "ui", "css", "component", "layout", "프론트", "화면", "디자인", "컴포넌트"] },
8
+ { "taskType": "docs-writing", "anyTags": ["docs", "writing", "documentation"], "anyGroup": ["docs", "writing"], "anyNameKeywords": ["docs", "doc", "writing", "readme", "documentation", "write", "copy"], "anyPromptKeywords": ["readme", "documentation", "write a doc", "문서", "글쓰기", "작성해"] },
9
+ { "taskType": "research", "anyTags": ["research"], "anyGroup": ["research"], "anyNameKeywords": ["research", "investigate", "survey", "search"], "anyPromptKeywords": ["research", "investigate", "compare", "리서치", "조사", "찾아봐"] },
10
+ { "taskType": "release-deploy", "anyTags": ["release", "deploy", "ci"], "anyGroup": ["release", "deploy", "release-deploy"], "anyNameKeywords": ["release", "deploy", "deployment", "ship", "publish", "changelog", "ci"], "anyPromptKeywords": ["release", "deploy", "ship it", "publish", "배포", "릴리스", "릴리즈"] },
11
+ { "taskType": "planning", "anyTags": ["planning", "plan"], "anyGroup": ["planning", "plan"], "anyNameKeywords": ["plan", "planning", "roadmap", "spec", "prd"], "anyPromptKeywords": ["plan", "roadmap", "spec", "계획", "기획", "설계"] },
12
+ { "taskType": "data-analysis", "anyTags": ["data", "analysis", "analytics"], "anyGroup": ["data", "data-analysis"], "anyNameKeywords": ["data", "analysis", "analytics", "csv", "pandas", "chart", "metrics"], "anyPromptKeywords": ["analyze", "analysis", "csv", "chart", "metrics", "분석", "데이터", "통계"] },
13
+ { "taskType": "browser-automation", "anyTags": ["browser", "automation", "scraping"], "anyGroup": ["browser", "browser-automation"], "anyNameKeywords": ["browser", "playwright", "puppeteer", "scrape", "scraping", "web"], "anyPromptKeywords": ["browser", "screenshot", "click", "scrape", "브라우저", "스크린샷", "크롤링"] },
14
+ { "taskType": "git", "anyTags": ["git", "vcs"], "anyGroup": ["git"], "anyNameKeywords": ["git", "commit", "rebase", "merge", "branch"], "anyPromptKeywords": ["git", "commit", "rebase", "branch", "커밋", "브랜치", "리베이스"] }
15
+ ]