newtype-profile 1.0.61 → 1.0.62

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/dist/cli/index.js CHANGED
@@ -2253,7 +2253,7 @@ var require_picocolors = __commonJS((exports, module) => {
2253
2253
  var require_package = __commonJS((exports, module) => {
2254
2254
  module.exports = {
2255
2255
  name: "newtype-profile",
2256
- version: "1.0.61",
2256
+ version: "1.0.62",
2257
2257
  description: "AI Agent Collaboration System for Content Creation - Based on oh-my-opencode",
2258
2258
  main: "dist/index.js",
2259
2259
  types: "dist/index.d.ts",
@@ -66,3 +66,13 @@ export declare function detectAgentType(output: string, category?: string): Agen
66
66
  * Check if output contains a confidence score
67
67
  */
68
68
  export declare function hasConfidenceScore(output: string): boolean;
69
+ export interface FailureJournalEntry {
70
+ timestamp: string;
71
+ agentType: AgentType;
72
+ confidence: number;
73
+ attempts: number;
74
+ outputExcerpt: string;
75
+ sessionId: string;
76
+ }
77
+ export declare function buildFailureJournalEntry(agentType: AgentType, confidence: number, attempts: number, output: string, sessionId: string): FailureJournalEntry;
78
+ export declare function formatFailureJournalMarkdown(entry: FailureJournalEntry): string;
@@ -57,3 +57,8 @@ export declare function buildImprovementDirective(assessment: QualityAssessment,
57
57
  * Check if output has quality scores (either format)
58
58
  */
59
59
  export declare function hasQualityScores(output: string): boolean;
60
+ /**
61
+ * Build a warning directive when an agent's output lacks quality scores.
62
+ * Tells Chief what dimensions to expect and how to request them.
63
+ */
64
+ export declare function buildMissingScoresWarning(agentType: AgentType, sessionId: string): string;
@@ -53,3 +53,4 @@ export declare function getArtifactDetails(sessionID: string, artifactIds: strin
53
53
  export declare function getAllSources(sessionID: string): Source[];
54
54
  export declare function getAllFindings(sessionID: string): Finding[];
55
55
  export declare function hasArtifacts(output: string): boolean;
56
+ export declare function buildDetailedContextSummary(sessionID: string, downstreamAgent?: string): string | null;
package/dist/index.js CHANGED
@@ -22427,7 +22427,7 @@ to resume: chief_task(resume="${sessionId}", prompt="...")`;
22427
22427
  }
22428
22428
  // src/hooks/chief-orchestrator/index.ts
22429
22429
  import { execSync as execSync2 } from "child_process";
22430
- import { existsSync as existsSync39, readdirSync as readdirSync14 } from "fs";
22430
+ import { existsSync as existsSync39, readdirSync as readdirSync14, appendFileSync as appendFileSync6, mkdirSync as mkdirSync12 } from "fs";
22431
22431
  import { join as join47 } from "path";
22432
22432
  // src/features/boulder-state/constants.ts
22433
22433
  var BOULDER_DIR = ".chief";
@@ -22974,6 +22974,36 @@ function detectAgentType(output, category) {
22974
22974
  function hasConfidenceScore(output) {
22975
22975
  return extractConfidence(output) !== null;
22976
22976
  }
22977
+ function buildFailureJournalEntry(agentType, confidence, attempts, output, sessionId) {
22978
+ const excerpt = output.slice(0, 1000).replace(/\n{3,}/g, `
22979
+
22980
+ `);
22981
+ return {
22982
+ timestamp: new Date().toISOString(),
22983
+ agentType,
22984
+ confidence,
22985
+ attempts,
22986
+ outputExcerpt: excerpt,
22987
+ sessionId
22988
+ };
22989
+ }
22990
+ function formatFailureJournalMarkdown(entry) {
22991
+ const confPct = Math.round(entry.confidence * 100);
22992
+ return `## Escalation: ${entry.agentType} (${entry.timestamp.split("T")[0]})
22993
+
22994
+ - **Agent**: ${entry.agentType}
22995
+ - **Confidence**: ${confPct}%
22996
+ - **Rewrite attempts**: ${entry.attempts}
22997
+ - **Session**: ${entry.sessionId}
22998
+
22999
+ ### Last Output Excerpt
23000
+ \`\`\`
23001
+ ${entry.outputExcerpt}
23002
+ \`\`\`
23003
+
23004
+ ---
23005
+ `;
23006
+ }
22977
23007
 
22978
23008
  // src/hooks/chief-orchestrator/quality-dimensions.ts
22979
23009
  var AGENT_DIMENSIONS = {
@@ -23349,6 +23379,40 @@ function getImprovementCategory(agentType, weakDimension) {
23349
23379
  function hasQualityScores(output) {
23350
23380
  return /\*\*QUALITY SCORES:\*\*/i.test(output) || /\*\*CONFIDENCE:\s*[\d.]+\*\*/i.test(output);
23351
23381
  }
23382
+ function buildMissingScoresWarning(agentType, sessionId) {
23383
+ const dimensions = AGENT_DIMENSIONS[agentType];
23384
+ const dimList = dimensions.map((d) => d.label).join(", ");
23385
+ const agentLabels = {
23386
+ "fact-checker": "FACT-CHECK",
23387
+ researcher: "RESEARCH",
23388
+ writer: "DRAFT",
23389
+ editor: "EDIT",
23390
+ archivist: "ARCHIVE",
23391
+ extractor: "EXTRACTION"
23392
+ };
23393
+ const label = agentLabels[agentType];
23394
+ return `
23395
+
23396
+ ---
23397
+ [${label}: QUALITY SCORES MISSING]
23398
+
23399
+ \u26A0\uFE0F The ${agentType} agent did not include quality self-assessment scores.
23400
+ Without scores, the quality feedback loop cannot function.
23401
+
23402
+ **Expected dimensions for ${agentType}:** ${dimList}
23403
+
23404
+ **RECOMMENDED ACTION:**
23405
+ Request scores by resuming the session:
23406
+ \`\`\`
23407
+ chief_task(
23408
+ resume="${sessionId}",
23409
+ prompt="Please provide your quality self-assessment. Output in this format:\\n**QUALITY SCORES:**\\n${dimensions.map((d) => `- ${d.label}: <0.00-1.00>`).join("\\n")}\\n**OVERALL: <0.00-1.00>**"
23410
+ )
23411
+ \`\`\`
23412
+
23413
+ If the output quality is obviously high, you may skip this and proceed.
23414
+ ---`;
23415
+ }
23352
23416
 
23353
23417
  // src/hooks/chief-orchestrator/shared-context.ts
23354
23418
  var contextPool = new Map;
@@ -23505,11 +23569,153 @@ function formatAgentName(agentType) {
23505
23569
  function hasArtifacts(output) {
23506
23570
  return /\*\*ARTIFACTS:\*\*/i.test(output);
23507
23571
  }
23572
+ var DETAIL_HUNGRY_AGENTS = ["writer", "editor", "fact-checker"];
23573
+ function buildDetailedContextSummary(sessionID, downstreamAgent) {
23574
+ const ctx = getContext(sessionID);
23575
+ if (!ctx || ctx.artifacts.length === 0) {
23576
+ return null;
23577
+ }
23578
+ const isDetailHungry = downstreamAgent ? DETAIL_HUNGRY_AGENTS.includes(downstreamAgent) : false;
23579
+ if (!isDetailHungry) {
23580
+ return buildContextSummary(sessionID);
23581
+ }
23582
+ const lines = [
23583
+ "<shared-context>",
23584
+ "## Previous Work by Other Agents (DETAILED)",
23585
+ ""
23586
+ ];
23587
+ const byAgent = new Map;
23588
+ for (const a of ctx.artifacts) {
23589
+ const list = byAgent.get(a.agentType) ?? [];
23590
+ list.push(a);
23591
+ byAgent.set(a.agentType, list);
23592
+ }
23593
+ for (const [agentType, artifacts] of byAgent) {
23594
+ lines.push(`### ${formatAgentName(agentType)} (${artifacts.length} task${artifacts.length > 1 ? "s" : ""})`);
23595
+ for (const a of artifacts) {
23596
+ lines.push(`- **[${a.id}]** ${a.taskDescription}`);
23597
+ if (a.sources && a.sources.length > 0) {
23598
+ lines.push(` - **Sources (${a.sources.length} total):**`);
23599
+ for (const s of a.sources) {
23600
+ const credIcon = s.credibility === "high" ? "\u2713" : s.credibility === "low" ? "\u26A0" : "\u25CB";
23601
+ const urlPart = s.url ? ` \u2014 ${s.url}` : "";
23602
+ const excerptPart = s.excerpt ? `
23603
+ > ${s.excerpt.slice(0, 200)}${s.excerpt.length > 200 ? "..." : ""}` : "";
23604
+ lines.push(` - ${credIcon} **${s.title}** (${s.type}, ${s.credibility ?? "unknown"} credibility)${urlPart}${excerptPart}`);
23605
+ }
23606
+ }
23607
+ if (a.findings && a.findings.length > 0) {
23608
+ lines.push(` - **Findings (${a.findings.length} total):**`);
23609
+ for (const f of a.findings) {
23610
+ const confPct = Math.round(f.confidence * 100);
23611
+ const refs = f.sourceRefs.length > 0 ? ` [refs: ${f.sourceRefs.join(", ")}]` : "";
23612
+ const notes = f.notes ? ` \u2014 ${f.notes}` : "";
23613
+ lines.push(` - ${f.claim} (${confPct}% confident)${refs}${notes}`);
23614
+ }
23615
+ }
23616
+ if (a.issues && a.issues.length > 0) {
23617
+ lines.push(` - **Issues (${a.issues.length} total):**`);
23618
+ for (const i2 of a.issues) {
23619
+ const sev = i2.severity === "critical" ? "\uD83D\uDD34" : i2.severity === "major" ? "\uD83D\uDFE1" : "\u26AA";
23620
+ const suggestion = i2.suggestion ? ` \u2192 ${i2.suggestion}` : "";
23621
+ lines.push(` - ${sev} [${i2.type}] ${i2.description}${suggestion}`);
23622
+ }
23623
+ }
23624
+ if (a.connections && a.connections.length > 0) {
23625
+ lines.push(` - **Connections:** ${a.connections.join(", ")}`);
23626
+ }
23627
+ if (a.content) {
23628
+ const preview = a.content.slice(0, 500).replace(/\n/g, " ");
23629
+ lines.push(` - **Content preview:** "${preview}${a.content.length > 500 ? "..." : ""}"`);
23630
+ }
23631
+ }
23632
+ lines.push("");
23633
+ }
23634
+ lines.push("## How to Use This Context");
23635
+ lines.push("- Reference artifacts by ID (e.g., [researcher_001]) in your output");
23636
+ lines.push("- Build upon findings rather than re-researching");
23637
+ lines.push("- Cite sources when making claims based on research");
23638
+ lines.push("- Flag any inconsistencies you find with previous work");
23639
+ lines.push("</shared-context>");
23640
+ return lines.join(`
23641
+ `);
23642
+ }
23508
23643
 
23509
23644
  // src/hooks/chief-orchestrator/index.ts
23510
23645
  var HOOK_NAME5 = "chief-orchestrator";
23511
23646
  var ALLOWED_PATH_PREFIX2 = ".chief/";
23512
23647
  var WRITE_EDIT_TOOLS = ["Write", "Edit", "write", "edit"];
23648
+ var DEPUTY_SHOULD_DELEGATE_TOOLS = {
23649
+ web_search_exa: "researcher",
23650
+ websearch_web_search_exa: "researcher",
23651
+ tavily_search: "researcher",
23652
+ tavily_extract: "researcher",
23653
+ firecrawl_scrape: "researcher",
23654
+ firecrawl_search: "researcher",
23655
+ firecrawl_crawl: "researcher",
23656
+ webfetch: "researcher",
23657
+ context7_resolve_library_id: "researcher",
23658
+ "context7_resolve-library-id": "researcher",
23659
+ context7_query_docs: "researcher",
23660
+ "context7_query-docs": "researcher",
23661
+ grep_app_searchGitHub: "researcher"
23662
+ };
23663
+ function shouldDelegateToSpecialist(tool) {
23664
+ return tool in DEPUTY_SHOULD_DELEGATE_TOOLS;
23665
+ }
23666
+ function getRecommendedSpecialist(tool) {
23667
+ return DEPUTY_SHOULD_DELEGATE_TOOLS[tool] ?? "researcher";
23668
+ }
23669
+ function buildDeputyDelegationReminder(tool, specialist) {
23670
+ return `
23671
+
23672
+ ---
23673
+
23674
+ [SYSTEM REMINDER - DELEGATION RECOMMENDED]
23675
+
23676
+ You (Deputy) are directly calling \`${tool}\`, which is a search/research tool.
23677
+
23678
+ **Best practice**: Delegate search tasks to the **${specialist}** agent via:
23679
+ \`\`\`
23680
+ chief_task(subagent_type="${specialist}", prompt="[search task]")
23681
+ \`\`\`
23682
+
23683
+ **Why**: The ${specialist} agent has specialized prompts for source evaluation,
23684
+ quality scoring, and structured artifact output that you lack.
23685
+
23686
+ **Exception**: If this is a quick one-off lookup (< 1 query), proceed.
23687
+ For systematic research (multiple queries, source comparison), delegate.
23688
+
23689
+ ---
23690
+ `;
23691
+ }
23692
+ var FAILURE_JOURNAL_DIR = ".opencode/memory";
23693
+ var FAILURE_JOURNAL_FILE = "escalation-log.md";
23694
+ function writeFailureJournal(directory, entry) {
23695
+ try {
23696
+ const memDir = join47(directory, FAILURE_JOURNAL_DIR);
23697
+ if (!existsSync39(memDir)) {
23698
+ mkdirSync12(memDir, { recursive: true });
23699
+ }
23700
+ const filePath = join47(memDir, FAILURE_JOURNAL_FILE);
23701
+ const needsHeader = !existsSync39(filePath);
23702
+ if (needsHeader) {
23703
+ appendFileSync6(filePath, `# Escalation Log
23704
+
23705
+ Automatic failure journal for quality escalations.
23706
+
23707
+ `);
23708
+ }
23709
+ appendFileSync6(filePath, formatFailureJournalMarkdown(entry));
23710
+ log(`[${HOOK_NAME5}] Failure journal entry written`, {
23711
+ agentType: entry.agentType,
23712
+ confidence: entry.confidence,
23713
+ file: filePath
23714
+ });
23715
+ } catch (err) {
23716
+ log(`[${HOOK_NAME5}] Failed to write failure journal`, { error: String(err) });
23717
+ }
23718
+ }
23513
23719
  var DIRECT_WORK_REMINDER = `
23514
23720
 
23515
23721
  ---
@@ -23980,18 +24186,30 @@ function createChiefOrchestratorHook(ctx, options) {
23980
24186
  }
23981
24187
  return;
23982
24188
  }
24189
+ if (callerIsDeputy && shouldDelegateToSpecialist(input.tool)) {
24190
+ const specialist = getRecommendedSpecialist(input.tool);
24191
+ output.message = (output.message || "") + buildDeputyDelegationReminder(input.tool, specialist);
24192
+ log(`[${HOOK_NAME5}] Deputy delegation reminder`, {
24193
+ sessionID: input.sessionID,
24194
+ tool: input.tool,
24195
+ recommendedSpecialist: specialist
24196
+ });
24197
+ }
23983
24198
  if (input.tool === "chief_task") {
23984
24199
  const prompt = output.args.prompt;
23985
24200
  if (prompt && !prompt.includes("[SYSTEM DIRECTIVE - SINGLE TASK ONLY]")) {
23986
24201
  let enhancedPrompt = prompt;
23987
24202
  if (input.sessionID) {
23988
- const sharedContext = buildContextSummary(input.sessionID);
24203
+ const downstreamAgent = output.args.subagent_type;
24204
+ const sharedContext = buildDetailedContextSummary(input.sessionID, downstreamAgent) ?? buildContextSummary(input.sessionID);
23989
24205
  if (sharedContext) {
23990
24206
  enhancedPrompt = `${sharedContext}
23991
24207
 
23992
24208
  ${enhancedPrompt}`;
23993
24209
  log(`[${HOOK_NAME5}] Injected shared context to chief_task`, {
23994
- sessionID: input.sessionID
24210
+ sessionID: input.sessionID,
24211
+ downstreamAgent,
24212
+ detailed: sharedContext.includes("DETAILED")
23995
24213
  });
23996
24214
  }
23997
24215
  }
@@ -24132,6 +24350,10 @@ ${buildImprovementDirective(qualityAssessment, subagentSessionId)}
24132
24350
  weakest: qualityAssessment.weakest?.name,
24133
24351
  allPass: qualityAssessment.allPass
24134
24352
  });
24353
+ if (qualityAssessment.overall < 0.5) {
24354
+ const journalEntry = buildFailureJournalEntry(agentType, qualityAssessment.overall, 1, output.output, subagentSessionId);
24355
+ writeFailureJournal(ctx.directory, journalEntry);
24356
+ }
24135
24357
  }
24136
24358
  } else if (hasConfidenceScore(output.output) && agentType) {
24137
24359
  const confidenceResult = analyzeAgentOutput(output.output, subagentSessionId, agentType);
@@ -24148,6 +24370,16 @@ ${confidenceResult.directive}
24148
24370
  recommendation: confidenceResult.recommendation
24149
24371
  });
24150
24372
  }
24373
+ if (confidenceResult.recommendation === "escalate" && confidenceResult.confidence !== null) {
24374
+ const journalEntry = buildFailureJournalEntry(agentType, confidenceResult.confidence, 3, output.output, subagentSessionId);
24375
+ writeFailureJournal(ctx.directory, journalEntry);
24376
+ }
24377
+ } else if (agentType && !hasQualityScores(output.output) && !hasConfidenceScore(output.output)) {
24378
+ confidenceDirective = buildMissingScoresWarning(agentType, subagentSessionId);
24379
+ log(`[${HOOK_NAME5}] Quality scores missing from agent output`, {
24380
+ sessionID: input.sessionID,
24381
+ agentType
24382
+ });
24151
24383
  }
24152
24384
  output.output = `${formattedSummary}
24153
24385
 
@@ -24183,8 +24415,8 @@ var DEEP_SUMMARY_TAGS = ["#project", "#preference", "#policy", "#important"];
24183
24415
  // src/hooks/memory-system/storage.ts
24184
24416
  import {
24185
24417
  existsSync as existsSync40,
24186
- mkdirSync as mkdirSync12,
24187
- appendFileSync as appendFileSync6,
24418
+ mkdirSync as mkdirSync13,
24419
+ appendFileSync as appendFileSync7,
24188
24420
  readFileSync as readFileSync26,
24189
24421
  readdirSync as readdirSync15,
24190
24422
  unlinkSync as unlinkSync10,
@@ -24194,14 +24426,14 @@ import { join as join48 } from "path";
24194
24426
  function ensureMemoryDir(projectDir) {
24195
24427
  const memoryPath = join48(projectDir, MEMORY_DIR);
24196
24428
  if (!existsSync40(memoryPath)) {
24197
- mkdirSync12(memoryPath, { recursive: true });
24429
+ mkdirSync13(memoryPath, { recursive: true });
24198
24430
  }
24199
24431
  return memoryPath;
24200
24432
  }
24201
24433
  function ensureFullMemoryDir(projectDir) {
24202
24434
  const memoryPath = join48(projectDir, FULL_MEMORY_DIR);
24203
24435
  if (!existsSync40(memoryPath)) {
24204
- mkdirSync12(memoryPath, { recursive: true });
24436
+ mkdirSync13(memoryPath, { recursive: true });
24205
24437
  }
24206
24438
  return memoryPath;
24207
24439
  }
@@ -24343,9 +24575,9 @@ async function archiveOldMemories(projectDir, options) {
24343
24575
 
24344
24576
  This file contains archived conversation memories.
24345
24577
  `;
24346
- appendFileSync6(memoryFilePath, fileHeader);
24578
+ appendFileSync7(memoryFilePath, fileHeader);
24347
24579
  }
24348
- appendFileSync6(memoryFilePath, archivedContent.join(""));
24580
+ appendFileSync7(memoryFilePath, archivedContent.join(""));
24349
24581
  return {
24350
24582
  archived: checkResult.archived,
24351
24583
  totalFiles: checkResult.totalFiles - checkResult.archived.length,
@@ -24463,9 +24695,9 @@ function appendMemoryEntry(projectDir, entry) {
24463
24695
  const header = `# Memory Log - ${new Date().toISOString().split("T")[0]}
24464
24696
 
24465
24697
  `;
24466
- appendFileSync6(filePath, header);
24698
+ appendFileSync7(filePath, header);
24467
24699
  }
24468
- appendFileSync6(filePath, content);
24700
+ appendFileSync7(filePath, content);
24469
24701
  return true;
24470
24702
  } catch {
24471
24703
  return false;
@@ -43225,7 +43457,7 @@ import { dirname as dirname11, join as join53 } from "path";
43225
43457
  import { existsSync as existsSync45, statSync as statSync4 } from "fs";
43226
43458
 
43227
43459
  // src/tools/ast-grep/downloader.ts
43228
- import { existsSync as existsSync44, mkdirSync as mkdirSync13, chmodSync as chmodSync2, unlinkSync as unlinkSync11 } from "fs";
43460
+ import { existsSync as existsSync44, mkdirSync as mkdirSync14, chmodSync as chmodSync2, unlinkSync as unlinkSync11 } from "fs";
43229
43461
  import { join as join52 } from "path";
43230
43462
  import { homedir as homedir16 } from "os";
43231
43463
  import { createRequire as createRequire3 } from "module";
@@ -43299,7 +43531,7 @@ async function downloadAstGrep(version2 = DEFAULT_VERSION) {
43299
43531
  console.log(`[oh-my-opencode] Downloading ast-grep binary...`);
43300
43532
  try {
43301
43533
  if (!existsSync44(cacheDir)) {
43302
- mkdirSync13(cacheDir, { recursive: true });
43534
+ mkdirSync14(cacheDir, { recursive: true });
43303
43535
  }
43304
43536
  const response2 = await fetch(downloadUrl, { redirect: "follow" });
43305
43537
  if (!response2.ok) {
@@ -43740,7 +43972,7 @@ import { join as join55, dirname as dirname12 } from "path";
43740
43972
  import { spawnSync } from "child_process";
43741
43973
 
43742
43974
  // src/tools/grep/downloader.ts
43743
- import { existsSync as existsSync47, mkdirSync as mkdirSync14, chmodSync as chmodSync3, unlinkSync as unlinkSync12, readdirSync as readdirSync16 } from "fs";
43975
+ import { existsSync as existsSync47, mkdirSync as mkdirSync15, chmodSync as chmodSync3, unlinkSync as unlinkSync12, readdirSync as readdirSync16 } from "fs";
43744
43976
  import { join as join54 } from "path";
43745
43977
  function findFileRecursive(dir, filename) {
43746
43978
  try {
@@ -43841,7 +44073,7 @@ async function downloadAndInstallRipgrep() {
43841
44073
  if (existsSync47(rgPath)) {
43842
44074
  return rgPath;
43843
44075
  }
43844
- mkdirSync14(installDir, { recursive: true });
44076
+ mkdirSync15(installDir, { recursive: true });
43845
44077
  const filename = `ripgrep-${RG_VERSION}-${config3.platform}.${config3.extension}`;
43846
44078
  const url2 = `https://github.com/BurntSushi/ripgrep/releases/download/${RG_VERSION}/${filename}`;
43847
44079
  const archivePath = join54(installDir, filename);
@@ -50756,6 +50988,13 @@ You switch modes based on user intent.
50756
50988
  - Questions without clear deliverable
50757
50989
  - Exploratory, open-ended requests
50758
50990
 
50991
+ **\u26A0\uFE0F MANDATORY SKILL CHECK on Discussion Mode entry:**
50992
+ When entering discussion mode, BEFORE responding, check if any skill should be loaded:
50993
+ - \u7528\u6237\u8BF4"\u5206\u6790/\u8BC4\u4F30/\u5BF9\u6BD4/\u8C03\u7814" \u2192 \`skill({ name: "super-analyst" })\`
50994
+ - \u7528\u6237\u8BF4"\u5E2E\u6211\u7406\u601D\u8DEF/\u60F3\u6CD5/\u63A2\u7D22" \u2192 \`skill({ name: "super-interviewer" })\`
50995
+ - \u7528\u6237\u8BF4"\u5199/\u521B\u4F5C" \u2192 \u5207\u6362\u5230 Execution Mode
50996
+ Do NOT skip this check. Skills provide structured frameworks that dramatically improve output quality.
50997
+
50759
50998
  ## Execution Mode Signals
50760
50999
  - "\u5E2E\u6211\u5199\u4E00\u7BC7..." / "Write me a..."
50761
51000
  - "\u6574\u7406\u6210..." / "Compile into..."
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "newtype-profile",
3
- "version": "1.0.61",
3
+ "version": "1.0.62",
4
4
  "description": "AI Agent Collaboration System for Content Creation - Based on oh-my-opencode",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",