gyoshu 0.1.0 → 0.2.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/README.md CHANGED
@@ -46,28 +46,30 @@ Think of it like a research lab:
46
46
 
47
47
  ## 🚀 One-Click Installation
48
48
 
49
- ### Option 1: curl (Recommended)
49
+ ### Option 1: bunx (Recommended)
50
+
51
+ ```bash
52
+ bunx gyoshu install
53
+ ```
54
+
55
+ ### Option 2: curl
50
56
 
51
57
  ```bash
52
58
  curl -fsSL https://raw.githubusercontent.com/Yeachan-Heo/My-Jogyo/refs/heads/main/install.sh | bash
53
59
  ```
54
60
 
55
- ### Option 2: Clone & Install
61
+ ### Option 3: Clone & Install
56
62
 
57
63
  ```bash
58
64
  git clone https://github.com/Yeachan-Heo/My-Jogyo.git
59
65
  cd My-Jogyo && ./install.sh
60
66
  ```
61
67
 
62
- ### Option 3: Manual Installation
68
+ ### Option 4: npm global install
63
69
 
64
70
  ```bash
65
- # Clone the repo
66
- git clone https://github.com/Yeachan-Heo/My-Jogyo.git
67
-
68
- # Copy to global config
69
- mkdir -p ~/.config/opencode/
70
- cp -r My-Jogyo/src/* ~/.config/opencode/
71
+ npm install -g gyoshu
72
+ gyoshu install
71
73
  ```
72
74
 
73
75
  ---
package/bin/gyoshu.js CHANGED
@@ -168,11 +168,11 @@ function uninstall() {
168
168
  'command/gyoshu.md', 'command/gyoshu-auto.md',
169
169
  'tool/gyoshu-completion.ts', 'tool/gyoshu-snapshot.ts', 'tool/python-repl.ts',
170
170
  'tool/notebook-writer.ts', 'tool/notebook-search.ts', 'tool/research-manager.ts',
171
- 'tool/session-manager.ts', 'tool/migration-tool.ts', 'tool/literature-search.ts',
171
+ 'tool/session-manager.ts', 'tool/migration-tool.ts',
172
172
  'tool/retrospective-store.ts', 'tool/checkpoint-manager.ts',
173
173
  'bridge',
174
174
  'skill/ml-rigor', 'skill/scientific-method', 'skill/experiment-design', 'skill/data-analysis',
175
- 'lib/quality-gates.ts', 'lib/marker-parser.ts', 'lib/literature-client.ts',
175
+ 'lib/quality-gates.ts', 'lib/marker-parser.ts',
176
176
  'lib/notebook-frontmatter.ts', 'lib/report-markdown.ts', 'lib/pdf-export.ts',
177
177
  'lib/paths.ts', 'lib/atomic-write.ts', 'lib/cell-identity.ts',
178
178
  'lib/checkpoint-schema.ts', 'lib/environment-capture.ts', 'lib/session-lock.ts',
package/install.sh CHANGED
@@ -140,7 +140,7 @@ uninstall() {
140
140
  echo -e "🗑️ ${CYAN}Uninstalling Gyoshu...${NC}"
141
141
 
142
142
  # Gyoshu-specific directories/files
143
- local gyoshu_items="agent/gyoshu.md agent/jogyo.md agent/baksa.md agent/jogyo-paper-writer.md agent/jogyo-feedback.md agent/jogyo-insight.md command/gyoshu.md command/gyoshu-auto.md tool/gyoshu-completion.ts tool/gyoshu-snapshot.ts tool/python-repl.ts tool/notebook-writer.ts tool/notebook-search.ts tool/research-manager.ts tool/session-manager.ts tool/migration-tool.ts tool/literature-search.ts tool/retrospective-store.ts tool/checkpoint-manager.ts bridge skill/ml-rigor skill/scientific-method skill/experiment-design skill/data-analysis lib/quality-gates.ts lib/marker-parser.ts lib/literature-client.ts lib/notebook-frontmatter.ts lib/report-markdown.ts lib/pdf-export.ts lib/paths.ts lib/atomic-write.ts lib/cell-identity.ts lib/checkpoint-schema.ts lib/environment-capture.ts lib/session-lock.ts lib/readme-index.ts lib/filesystem-check.ts lib/artifact-security.ts plugin/gyoshu-hooks.ts"
143
+ local gyoshu_items="agent/gyoshu.md agent/jogyo.md agent/baksa.md agent/jogyo-paper-writer.md agent/jogyo-feedback.md agent/jogyo-insight.md command/gyoshu.md command/gyoshu-auto.md tool/gyoshu-completion.ts tool/gyoshu-snapshot.ts tool/python-repl.ts tool/notebook-writer.ts tool/notebook-search.ts tool/research-manager.ts tool/session-manager.ts tool/migration-tool.ts tool/retrospective-store.ts tool/checkpoint-manager.ts bridge skill/ml-rigor skill/scientific-method skill/experiment-design skill/data-analysis lib/quality-gates.ts lib/marker-parser.ts lib/notebook-frontmatter.ts lib/report-markdown.ts lib/pdf-export.ts lib/paths.ts lib/atomic-write.ts lib/cell-identity.ts lib/checkpoint-schema.ts lib/environment-capture.ts lib/session-lock.ts lib/readme-index.ts lib/filesystem-check.ts lib/artifact-security.ts plugin/gyoshu-hooks.ts"
144
144
 
145
145
  for item in $gyoshu_items; do
146
146
  if [ -e "$OPENCODE_CONFIG/$item" ] || [ -L "$OPENCODE_CONFIG/$item" ]; then
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "gyoshu",
3
- "version": "0.1.0",
3
+ "version": "0.2.1",
4
4
  "description": "Scientific research agent extension for OpenCode - turns research goals into reproducible Jupyter notebooks",
5
5
  "type": "module",
6
6
  "bin": {
7
- "gyoshu": "./bin/gyoshu.js"
7
+ "gyoshu": "bin/gyoshu.js"
8
8
  },
9
9
  "files": [
10
10
  "bin/",
@@ -24,12 +24,19 @@ import { parseMarkers, ParsedMarker, getMarkersByType } from "./marker-parser";
24
24
  import { Notebook, NotebookCell } from "./cell-identity";
25
25
  import { extractFrontmatter, GyoshuFrontmatter } from "./notebook-frontmatter";
26
26
  import { getNotebookPath, getReportDir, getReportReadmePath, getReportsRootDir } from "./paths";
27
- import {
28
- Citation,
29
- getCitationByDOI,
30
- getArxivPaper,
31
- formatCitationAPA
32
- } from "./literature-client";
27
+ // Literature client deprecated - citations now use fallback identifiers only
28
+ // TODO: Re-enable when a reliable citation API is available
29
+
30
+ /**
31
+ * Minimal citation interface for fallback mode.
32
+ */
33
+ interface Citation {
34
+ doi?: string;
35
+ arxivId?: string;
36
+ title?: string;
37
+ authors?: string[];
38
+ year?: number;
39
+ }
33
40
 
34
41
  // =============================================================================
35
42
  // FINDING VERIFICATION - Separate verified vs unverified findings
@@ -218,64 +225,15 @@ export function collectCitationIdentifiers(markers: ParsedMarker[]): string[] {
218
225
  return identifiers;
219
226
  }
220
227
 
221
- /**
222
- * Resolve citation identifiers to full citation metadata.
223
- *
224
- * Uses getCitationByDOI for DOIs and getArxivPaper for arXiv IDs.
225
- * Failed resolutions return null citation with a fallback formatted string.
226
- *
227
- * @param identifiers - Array of citation identifiers (DOIs or arXiv IDs)
228
- * @returns Array of resolved citations with formatted strings
229
- */
230
228
  export async function resolveCitations(identifiers: string[]): Promise<ResolvedCitation[]> {
231
- const results: ResolvedCitation[] = [];
232
-
233
- for (let i = 0; i < identifiers.length; i++) {
234
- const identifier = identifiers[i];
235
- const number = i + 1;
236
-
237
- try {
238
- let citation: Citation | null = null;
239
-
240
- if (isArxivId(identifier)) {
241
- citation = await getArxivPaper(identifier);
242
- } else {
243
- // Assume it's a DOI
244
- citation = await getCitationByDOI(identifier);
245
- }
246
-
247
- if (citation) {
248
- results.push({
249
- identifier,
250
- number,
251
- citation,
252
- formatted: formatCitationAPA(citation),
253
- });
254
- } else {
255
- // Resolution failed - provide fallback
256
- results.push({
257
- identifier,
258
- number,
259
- citation: null,
260
- formatted: isArxivId(identifier)
261
- ? `arXiv:${identifier}`
262
- : `https://doi.org/${identifier}`,
263
- });
264
- }
265
- } catch (error) {
266
- // API error - provide fallback
267
- results.push({
268
- identifier,
269
- number,
270
- citation: null,
271
- formatted: isArxivId(identifier)
272
- ? `arXiv:${identifier}`
273
- : `https://doi.org/${identifier}`,
274
- });
275
- }
276
- }
277
-
278
- return results;
229
+ return identifiers.map((identifier, i) => ({
230
+ identifier,
231
+ number: i + 1,
232
+ citation: null,
233
+ formatted: isArxivId(identifier)
234
+ ? `arXiv:${identifier}`
235
+ : `https://doi.org/${identifier}`,
236
+ }));
279
237
  }
280
238
 
281
239
  export interface ArtifactEntry {