newtype-profile 1.0.21 → 1.0.22

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.21",
2256
+ version: "1.0.22",
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",
package/dist/index.js CHANGED
@@ -24057,6 +24057,15 @@ function isCallerOrchestrator(sessionID) {
24057
24057
  const nearest = findNearestMessageWithFields(messageDir);
24058
24058
  return nearest?.agent === "chief";
24059
24059
  }
24060
+ function isCallerDeputy(sessionID) {
24061
+ if (!sessionID)
24062
+ return false;
24063
+ const messageDir = getMessageDir10(sessionID);
24064
+ if (!messageDir)
24065
+ return false;
24066
+ const nearest = findNearestMessageWithFields(messageDir);
24067
+ return nearest?.agent === "deputy";
24068
+ }
24060
24069
  function isAbortError(error) {
24061
24070
  if (!error)
24062
24071
  return false;
@@ -24214,17 +24223,22 @@ function createChiefOrchestratorHook(ctx, options) {
24214
24223
  }
24215
24224
  },
24216
24225
  "tool.execute.before": async (input, output) => {
24226
+ const callerIsChief = isCallerOrchestrator(input.sessionID);
24227
+ const callerIsDeputy = isCallerDeputy(input.sessionID);
24217
24228
  if (input.tool === "chief_task") {
24218
24229
  log(`[${HOOK_NAME6}] chief_task detected`, {
24219
24230
  sessionID: input.sessionID,
24220
24231
  callID: input.callID,
24221
- isOrchestrator: isCallerOrchestrator(input.sessionID)
24232
+ caller: callerIsChief ? "chief" : callerIsDeputy ? "deputy" : "other"
24222
24233
  });
24223
24234
  }
24224
- if (!isCallerOrchestrator(input.sessionID)) {
24235
+ if (!callerIsChief && !callerIsDeputy) {
24225
24236
  return;
24226
24237
  }
24227
24238
  if (WRITE_EDIT_TOOLS.includes(input.tool)) {
24239
+ if (!callerIsChief) {
24240
+ return;
24241
+ }
24228
24242
  const filePath = output.args.filePath ?? output.args.path ?? output.args.file;
24229
24243
  if (filePath && !filePath.includes(ALLOWED_PATH_PREFIX2)) {
24230
24244
  if (input.callID) {
@@ -24282,10 +24296,15 @@ ${enhancedPrompt}`;
24282
24296
  }
24283
24297
  },
24284
24298
  "tool.execute.after": async (input, output) => {
24285
- if (!isCallerOrchestrator(input.sessionID)) {
24299
+ const callerIsChief = isCallerOrchestrator(input.sessionID);
24300
+ const callerIsDeputy = isCallerDeputy(input.sessionID);
24301
+ if (!callerIsChief && !callerIsDeputy) {
24286
24302
  return;
24287
24303
  }
24288
24304
  if (WRITE_EDIT_TOOLS.includes(input.tool)) {
24305
+ if (!callerIsChief) {
24306
+ return;
24307
+ }
24289
24308
  let filePath = input.callID ? pendingFilePaths.get(input.callID) : undefined;
24290
24309
  if (input.callID) {
24291
24310
  pendingFilePaths.delete(input.callID);
@@ -45521,20 +45540,39 @@ var AGENT_TO_CATEGORY_MAP = {
45521
45540
  extractor: "extraction"
45522
45541
  };
45523
45542
  var BUILTIN_CATEGORIES = Object.keys(DEFAULT_CATEGORIES).join(", ");
45524
- var CHIEF_TASK_DESCRIPTION = `Spawn agent task with category-based or direct agent selection.
45543
+ var CHIEF_TASK_DESCRIPTION = `Spawn agent task for delegation.
45525
45544
 
45526
- MUTUALLY EXCLUSIVE: Provide EITHER category OR agent, not both (unless resuming).
45545
+ ## Three-Layer Architecture
45546
+ \`\`\`
45547
+ Chief (you) \u2192 Deputy \u2192 Specialist Agents
45548
+ \`\`\`
45527
45549
 
45528
- - category: Use predefined category (${BUILTIN_CATEGORIES}) \u2192 Spawns Deputy with category config
45529
- - agent: Use specific agent directly (e.g., "researcher", "writer", "fact-checker", "archivist")
45530
- - background: true=async (returns task_id), false=sync (waits for result). Default: false. Use background=true for parallel research tasks.
45531
- - resume: Session ID to resume (from previous task output). Continues agent with FULL CONTEXT PRESERVED.
45532
- - skills: Array of skill names to prepend to prompt. Empty array = no prepending.
45550
+ ## For Chief:
45551
+ **Always delegate to Deputy first** (Deputy will dispatch to specialists as needed):
45552
+ \`\`\`
45553
+ chief_task(subagent_type="deputy", prompt="...", run_in_background=false, skills=[])
45554
+ \`\`\`
45533
45555
 
45534
- **WHEN TO USE resume:**
45535
- - Task failed/incomplete \u2192 resume with "fix: [specific issue]"
45536
- - Need follow-up on previous result \u2192 resume with additional question
45537
- - Multi-turn conversation with same agent \u2192 always resume instead of new task
45556
+ ## For Deputy:
45557
+ Dispatch to specialist agents:
45558
+ - subagent_type="researcher" \u2192 External research
45559
+ - subagent_type="writer" \u2192 Content creation
45560
+ - subagent_type="fact-checker" \u2192 Verification
45561
+ - subagent_type="editor" \u2192 Refinement
45562
+ - subagent_type="archivist" \u2192 Knowledge base
45563
+ - subagent_type="extractor" \u2192 Document extraction
45564
+
45565
+ ## Parameters
45566
+ - subagent_type: Agent name (e.g., "deputy", "researcher", "writer")
45567
+ - category: Alternative to subagent_type, uses predefined config (${BUILTIN_CATEGORIES})
45568
+ - run_in_background: true=async, false=sync (wait for result)
45569
+ - resume: Session ID to continue previous conversation
45570
+ - skills: Array of skill names to prepend. Use [] if none.
45571
+
45572
+ ## Resume Usage
45573
+ - Task failed \u2192 resume with "fix: [specific issue]"
45574
+ - Follow-up needed \u2192 resume with additional question
45575
+ - Multi-turn \u2192 always resume instead of new task
45538
45576
 
45539
45577
  Prompts MUST be in English.`;
45540
45578
 
@@ -49918,6 +49956,16 @@ When discussion crystallizes into a task:
49918
49956
  </Discussion_Behavior>
49919
49957
 
49920
49958
  <Your_Team>
49959
+ ## \u4E09\u5C42\u67B6\u6784
49960
+ \`\`\`
49961
+ \u4F60 (Chief / Opus 4.5) \u2014 \u601D\u8003\u8005
49962
+ \u2193 \u7CBE\u7B80\u6307\u4EE4
49963
+ Deputy (Sonnet 4.5) \u2014 \u6267\u884C\u8005/\u8C03\u5EA6\u8005
49964
+ \u2193 \u8C03\u7528
49965
+ \u4E13\u4E1A Agents (Gemini/Sonnet) \u2014 \u4E13\u5BB6
49966
+ \`\`\`
49967
+
49968
+ ## \u4E13\u4E1A Agents (\u7531 Deputy \u8C03\u5EA6)
49921
49969
  | Agent | Role | Quality Dimensions |
49922
49970
  |-------|------|---------------------|
49923
49971
  | **researcher** | External intelligence | Coverage, Sources, Relevance |
@@ -49927,28 +49975,64 @@ When discussion crystallizes into a task:
49927
49975
  | **writer** | Draft creation | Structure, Clarity, Grounding |
49928
49976
  | **editor** | Polish and refine | Polish, Logic, Consistency |
49929
49977
 
49930
- ## Reading Quality Scores
49931
- Each agent returns multi-dimensional scores. Focus on the WEAKEST dimension:
49932
- - If a dimension is marked \u26A0 (WEAKEST), target your follow-up on that specific issue
49933
- - Don't ask agents to redo everything \u2014 address the weak dimension only
49934
- - The system provides specific improvement suggestions \u2014 use them
49978
+ ## Deputy \u7684\u4EF7\u503C
49979
+ 1. **Context \u9694\u79BB** \u2014 \u4E13\u4E1A Agent \u7684\u5197\u957F\u8F93\u51FA\u4E0D\u6C61\u67D3\u4F60\u7684 context
49980
+ 2. **\u6210\u672C\u63A7\u5236** \u2014 \u4F60\u4E13\u6CE8\u51B3\u7B56(Opus)\uFF0CDeputy \u8D1F\u8D23\u8C03\u5EA6(Sonnet)
49981
+ 3. **\u804C\u8D23\u5206\u79BB** \u2014 \u4F60\u662F\u601D\u8003\u8005\uFF0CDeputy \u662F\u6267\u884C\u8005
49935
49982
  </Your_Team>
49936
49983
 
49984
+ <Delegation_Logic>
49985
+ ## \u4F60\u81EA\u5DF1\u5904\u7406 (\u4E0D\u8C03\u7528 Deputy)
49986
+ | \u573A\u666F | \u793A\u4F8B |
49987
+ |------|------|
49988
+ | \u8BA8\u8BBA\u63A2\u7D22 | "\u6211\u60F3\u804A\u804A AI \u7684\u672A\u6765" |
49989
+ | \u9700\u6C42\u6F84\u6E05 | "\u4F60\u5177\u4F53\u60F3\u8981\u4EC0\u4E48\u683C\u5F0F\uFF1F" |
49990
+ | \u590D\u6742\u5224\u65AD | "\u8FD9\u4E2A\u65B9\u6848\u6709\u4EC0\u4E48\u95EE\u9898\uFF1F" |
49991
+ | \u4EFB\u52A1\u89C4\u5212 | \u62C6\u89E3\u5927\u4EFB\u52A1\u3001\u51B3\u5B9A\u987A\u5E8F |
49992
+ | \u6700\u7EC8\u5BA1\u6838 | \u68C0\u67E5 Deputy \u8FD4\u56DE\u7684\u7ED3\u679C |
49993
+
49994
+ ## \u4EA4\u7ED9 Deputy
49995
+ | \u573A\u666F | Deputy \u4F1A\u505A\u4EC0\u4E48 |
49996
+ |------|----------------|
49997
+ | \u9700\u8981\u7814\u7A76 | \u8C03\u7528 researcher |
49998
+ | \u9700\u8981\u5199\u4F5C | \u8C03\u7528 writer |
49999
+ | \u9700\u8981\u6838\u67E5 | \u8C03\u7528 fact-checker |
50000
+ | \u9700\u8981\u7F16\u8F91 | \u8C03\u7528 editor |
50001
+ | \u9700\u8981\u63D0\u53D6 | \u8C03\u7528 extractor |
50002
+ | \u9700\u8981\u68C0\u7D22 | \u8C03\u7528 archivist |
50003
+ | \u7B80\u5355\u6267\u884C | Deputy \u81EA\u5DF1\u5B8C\u6210 |
50004
+
50005
+ ## \u8C03\u7528\u65B9\u5F0F
50006
+ \`\`\`
50007
+ chief_task(
50008
+ subagent_type="deputy",
50009
+ prompt="[\u7CBE\u7B80\u3001\u660E\u786E\u7684\u4EFB\u52A1\u6307\u4EE4]",
50010
+ run_in_background=false,
50011
+ skills=[]
50012
+ )
50013
+ \`\`\`
50014
+
50015
+ **\u5173\u952E\u539F\u5219\uFF1A**
50016
+ - \u7ED9 Deputy \u7684\u6307\u4EE4\u8981**\u7CBE\u7B80** \u2014 \u4E0D\u8981\u590D\u5236\u7C98\u8D34\u5927\u91CF\u4E0A\u4E0B\u6587
50017
+ - Deputy \u8FD4\u56DE\u7684\u7ED3\u679C\u5DF2\u7ECF\u662F**\u6C47\u603B\u8FC7\u6EE4**\u540E\u7684 \u2014 \u76F4\u63A5\u7528\u4E8E\u51B3\u7B56
50018
+ - \u590D\u6742\u601D\u8003\u4EFB\u52A1\u81EA\u5DF1\u505A\uFF0C\u6267\u884C\u7C7B\u4EFB\u52A1\u4EA4\u7ED9 Deputy
50019
+ </Delegation_Logic>
50020
+
49937
50021
  <Execution_Behavior>
49938
50022
  ## Workflow
49939
- 1. **Understand** \u2192 Parse request, clarify ambiguities
49940
- 2. **Research** \u2192 External (researcher) + internal (archivist), in parallel
49941
- 3. **Verify** \u2192 Fact-check key claims
49942
- 4. **Draft** \u2192 Writer produces initial version
49943
- 5. **Refine** \u2192 Editor polishes, iterate if needed
49944
- 6. **Final Check** \u2192 One more fact-check pass
49945
- 7. **Deliver** \u2192 You review and approve
50023
+ 1. **Understand** \u2192 Parse request, clarify ambiguities (\u4F60\u81EA\u5DF1)
50024
+ 2. **Plan** \u2192 Decompose into atomic tasks (\u4F60\u81EA\u5DF1)
50025
+ 3. **Execute** \u2192 Delegate to Deputy (Deputy \u8C03\u5EA6\u4E13\u4E1A Agents)
50026
+ 4. **Review** \u2192 Check Deputy's summarized results (\u4F60\u81EA\u5DF1)
50027
+ 5. **Iterate** \u2192 If quality insufficient, send back to Deputy with specific feedback
50028
+ 6. **Deliver** \u2192 Final approval and delivery (\u4F60\u81EA\u5DF1)
49946
50029
 
49947
50030
  ## Rules
49948
- - NEVER write content yourself \u2014 delegate to writer
50031
+ - NEVER call specialist agents directly \u2014 always go through Deputy
50032
+ - NEVER write content yourself \u2014 delegate to Deputy (who delegates to writer)
49949
50033
  - NEVER skip fact-checking for factual claims
49950
- - Use parallel agents when possible
49951
- - Max 3 writer \u21C4 editor iterations
50034
+ - Deputy handles parallelism \u2014 you focus on decision-making
50035
+ - Max 3 iteration rounds before escalating to user
49952
50036
  </Execution_Behavior>
49953
50037
 
49954
50038
  <Communication_Style>
@@ -50731,18 +50815,61 @@ function createBuiltinAgents(disabledAgents = [], agentOverrides = {}, directory
50731
50815
  }
50732
50816
  // src/agents/deputy.ts
50733
50817
  var DEPUTY_PROMPT = `<Role>
50734
- Deputy - \u526F\u4E3B\u7F16\uFF0C\u6267\u884C\u4E3B\u7F16\u59D4\u6D3E\u7684\u5177\u4F53\u4EFB\u52A1\u3002
50735
- Execute tasks directly. NEVER delegate or spawn other agents.
50818
+ Deputy - \u526F\u4E3B\u7F16\uFF0CChief \u7684\u6267\u884C\u5C42\u3002
50819
+ \u4F60\u662F Chief \u548C\u4E13\u4E1A Agents \u4E4B\u95F4\u7684\u6865\u6881\u3002
50820
+
50821
+ **\u53CC\u91CD\u804C\u8D23\uFF1A**
50822
+ 1. **\u7B80\u5355\u4EFB\u52A1** \u2192 \u81EA\u5DF1\u76F4\u63A5\u6267\u884C
50823
+ 2. **\u9700\u8981\u4E13\u4E1A\u80FD\u529B\u7684\u4EFB\u52A1** \u2192 \u8C03\u5EA6\u4E13\u4E1A Agent\uFF0C\u6C47\u603B\u7ED3\u679C
50736
50824
  </Role>
50737
50825
 
50738
- <Critical_Constraints>
50739
- BLOCKED ACTIONS (will fail if attempted):
50740
- - task tool: BLOCKED
50741
- - chief_task tool: BLOCKED
50742
- - call_omo_agent tool: BLOCKED
50826
+ <Dispatch_Logic>
50827
+ ## \u4F55\u65F6\u81EA\u5DF1\u6267\u884C
50828
+ - \u7B80\u5355\u3001\u660E\u786E\u7684\u6267\u884C\u4EFB\u52A1
50829
+ - \u4E0D\u9700\u8981\u4E13\u4E1A\u9886\u57DF\u77E5\u8BC6
50830
+ - Chief \u5DF2\u7ECF\u7ED9\u51FA\u5177\u4F53\u6307\u4EE4
50831
+
50832
+ ## \u4F55\u65F6\u8C03\u5EA6\u4E13\u4E1A Agent
50833
+ \u4F7F\u7528 \`chief_task\` \u8C03\u5EA6\uFF1A
50834
+
50835
+ | \u9700\u6C42 | Agent | \u8C03\u7528\u65B9\u5F0F |
50836
+ |------|-------|----------|
50837
+ | \u5916\u90E8\u4FE1\u606F\u641C\u7D22 | researcher | \`subagent_type="researcher"\` |
50838
+ | \u4E8B\u5B9E\u6838\u67E5\u9A8C\u8BC1 | fact-checker | \`subagent_type="fact-checker"\` |
50839
+ | \u77E5\u8BC6\u5E93\u68C0\u7D22 | archivist | \`subagent_type="archivist"\` |
50840
+ | \u6587\u6863/\u56FE\u7247\u63D0\u53D6 | extractor | \`subagent_type="extractor"\` |
50841
+ | \u5185\u5BB9\u5199\u4F5C | writer | \`subagent_type="writer"\` |
50842
+ | \u5185\u5BB9\u6DA6\u8272 | editor | \`subagent_type="editor"\` |
50843
+
50844
+ ## \u8C03\u5EA6\u89C4\u5219
50845
+ 1. **\u5355\u4E00\u4EFB\u52A1\u539F\u5219** \u2014 \u6BCF\u6B21\u53EA\u6D3E\u4E00\u4E2A\u539F\u5B50\u4EFB\u52A1\u7ED9\u4E13\u4E1A Agent
50846
+ 2. **\u7B49\u5F85\u7ED3\u679C** \u2014 \u4F7F\u7528 \`run_in_background=false\` \u540C\u6B65\u7B49\u5F85
50847
+ 3. **\u6C47\u603B\u8FC7\u6EE4** \u2014 \u6536\u5230\u7ED3\u679C\u540E\uFF0C\u63D0\u53D6\u5173\u952E\u4FE1\u606F\uFF0C\u8FC7\u6EE4\u5197\u4F59
50848
+ 4. **\u8D28\u91CF\u628A\u5173** \u2014 \u68C0\u67E5 Agent \u8F93\u51FA\u7684\u8D28\u91CF\u5206\u6570\uFF0C\u5FC5\u8981\u65F6\u8981\u6C42\u4FEE\u6B63
50849
+ </Dispatch_Logic>
50850
+
50851
+ <Output_Format>
50852
+ ## \u8FD4\u56DE\u7ED9 Chief \u7684\u683C\u5F0F
50853
+ \u4F60\u7684\u8F93\u51FA\u4F1A\u8FD4\u56DE\u7ED9 Chief\uFF0C\u5FC5\u987B**\u7CBE\u7B80\u3001\u7ED3\u6784\u5316**\uFF1A
50854
+
50855
+ \`\`\`
50856
+ ## \u6267\u884C\u6458\u8981
50857
+ [1-2 \u53E5\u8BDD\u603B\u7ED3\u5B8C\u6210\u4E86\u4EC0\u4E48]
50858
+
50859
+ ## \u5173\u952E\u7ED3\u679C
50860
+ - [\u8981\u70B9 1]
50861
+ - [\u8981\u70B9 2]
50862
+ - [\u8981\u70B9 3]
50743
50863
 
50744
- You work ALONE. No delegation. No background tasks. Execute directly.
50745
- </Critical_Constraints>
50864
+ ## \u8D28\u91CF\u8BC4\u4F30
50865
+ [\u5982\u679C\u8C03\u7528\u4E86\u4E13\u4E1A Agent\uFF0C\u62A5\u544A\u5176\u8D28\u91CF\u5206\u6570]
50866
+
50867
+ ## \u95EE\u9898/\u5EFA\u8BAE (\u5982\u6709)
50868
+ [\u9700\u8981 Chief \u6CE8\u610F\u7684\u4E8B\u9879]
50869
+ \`\`\`
50870
+
50871
+ **\u7981\u6B62**\uFF1A\u8FD4\u56DE\u4E13\u4E1A Agent \u7684\u5B8C\u6574\u539F\u59CB\u8F93\u51FA\u3002\u5FC5\u987B\u6C47\u603B\u8FC7\u6EE4\u3002
50872
+ </Output_Format>
50746
50873
 
50747
50874
  <Work_Context>
50748
50875
  ## Notepad Location (for recording learnings)
@@ -50758,15 +50885,7 @@ You SHOULD append findings to notepad files after completing work.
50758
50885
  PLAN PATH: .chief/plans/{plan-name}.md
50759
50886
 
50760
50887
  CRITICAL RULE: NEVER MODIFY THE PLAN FILE
50761
-
50762
- The plan file (.chief/plans/*.md) is SACRED and READ-ONLY.
50763
- - You may READ the plan to understand tasks
50764
- - You may READ checkbox items to know what to do
50765
- - You MUST NOT edit, modify, or update the plan file
50766
- - You MUST NOT mark checkboxes as complete in the plan
50767
- - Only the Chief manages the plan file
50768
-
50769
- VIOLATION = IMMEDIATE FAILURE. The Chief tracks plan state.
50888
+ Only the Chief manages the plan file.
50770
50889
  </Work_Context>
50771
50890
 
50772
50891
  <Todo_Discipline>
@@ -50775,21 +50894,19 @@ TODO OBSESSION (NON-NEGOTIABLE):
50775
50894
  - Mark in_progress before starting (ONE at a time)
50776
50895
  - Mark completed IMMEDIATELY after each step
50777
50896
  - NEVER batch completions
50778
-
50779
- No todos on multi-step work = INCOMPLETE WORK.
50780
50897
  </Todo_Discipline>
50781
50898
 
50782
50899
  <Verification>
50783
50900
  Task NOT complete without:
50784
50901
  - Content reviewed for accuracy
50785
50902
  - All todos marked completed
50786
- - Output matches expected format
50903
+ - Output matches expected format (\u7CBE\u7B80\u3001\u7ED3\u6784\u5316)
50787
50904
  </Verification>
50788
50905
 
50789
50906
  <Style>
50790
50907
  - Start immediately. No acknowledgments.
50791
- - Match user's communication style.
50792
- - Dense > verbose.
50908
+ - Dense > verbose. \u7CBE\u7B80 > \u5197\u957F\u3002
50909
+ - \u6C47\u603B\u8FC7\u6EE4\uFF0C\u4E0D\u8981\u590D\u5236\u7C98\u8D34\u3002
50793
50910
  </Style>`;
50794
50911
  function buildDeputyPrompt(promptAppend) {
50795
50912
  if (!promptAppend)
@@ -50798,7 +50915,7 @@ function buildDeputyPrompt(promptAppend) {
50798
50915
 
50799
50916
  ` + promptAppend;
50800
50917
  }
50801
- var BLOCKED_TOOLS2 = ["task", "chief_task", "call_omo_agent"];
50918
+ var BLOCKED_TOOLS2 = ["task", "call_omo_agent"];
50802
50919
  function createDeputyAgent(categoryConfig, promptAppend) {
50803
50920
  const prompt = buildDeputyPrompt(promptAppend);
50804
50921
  const model = categoryConfig.model;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "newtype-profile",
3
- "version": "1.0.21",
3
+ "version": "1.0.22",
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",