@agentshouse/kit 0.2.1-alpha.9 → 0.2.1-c05cd91c26b1d

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 (107) hide show
  1. package/README.md +45 -26
  2. package/dist/abort.js +9 -0
  3. package/dist/acp.js +48 -85
  4. package/dist/agents.js +312 -53
  5. package/dist/api.js +40 -4
  6. package/dist/app-git.js +48 -0
  7. package/dist/bootstrap.json +10 -14
  8. package/dist/bridge.js +92 -77
  9. package/dist/chatgpt.js +32 -0
  10. package/dist/clis-main.js +23 -0
  11. package/dist/clis.js +213 -71
  12. package/dist/codex-main.js +58 -0
  13. package/dist/conversations.js +428 -233
  14. package/dist/copies.js +233 -171
  15. package/dist/end.js +23 -0
  16. package/dist/enrol-main.js +7 -1
  17. package/dist/events.js +525 -0
  18. package/dist/files.js +24 -3
  19. package/dist/git-main.js +2 -2
  20. package/dist/git.js +15 -9
  21. package/dist/home.js +127 -9
  22. package/dist/house-cli.js +291 -0
  23. package/dist/house-main.js +5 -102
  24. package/dist/inputs.js +37 -0
  25. package/dist/instructions.js +10 -31
  26. package/dist/kit-cli.js +68 -0
  27. package/dist/kit-main.js +8 -16
  28. package/dist/login.js +129 -94
  29. package/dist/logout.js +19 -0
  30. package/dist/mcp.js +39 -0
  31. package/dist/operation.js +7 -4
  32. package/dist/parts.js +82 -0
  33. package/dist/placement.js +30 -0
  34. package/dist/refusals.js +53 -0
  35. package/dist/relay.js +20 -0
  36. package/dist/resident.js +122 -41
  37. package/dist/scope.js +203 -0
  38. package/dist/secret-input.js +7 -2
  39. package/dist/service-main.js +9 -0
  40. package/dist/service.js +33 -0
  41. package/dist/shell.js +3 -0
  42. package/dist/sign-in.js +47 -28
  43. package/dist/skills.js +80 -16
  44. package/dist/stream.js +89 -13
  45. package/dist/transcription.js +170 -0
  46. package/dist/update.js +138 -0
  47. package/dist/wire.js +6 -0
  48. package/dist/work.js +346 -0
  49. package/how-we-work.md +22 -14
  50. package/package.json +5 -7
  51. package/skills/ask-matt/SKILL.md +17 -11
  52. package/skills/ask-matt/agents/openai.yaml +1 -0
  53. package/skills/code-review/SKILL.md +5 -5
  54. package/skills/codebase-design/DESIGN-IT-TWICE.md +1 -1
  55. package/skills/codebase-design/SKILL.md +0 -2
  56. package/skills/diagnosing-bugs/SKILL.md +2 -4
  57. package/skills/domain-modeling/{CONTEXT-FORMAT.md → GLOSSARY-FORMAT.md} +10 -10
  58. package/skills/domain-modeling/SKILL.md +12 -14
  59. package/skills/grill-me/SKILL.md +1 -2
  60. package/skills/grill-me/agents/openai.yaml +1 -0
  61. package/skills/grill-with-docs/SKILL.md +1 -2
  62. package/skills/grill-with-docs/agents/openai.yaml +1 -0
  63. package/skills/grilling/SKILL.md +2 -2
  64. package/skills/handoff/SKILL.md +2 -3
  65. package/skills/handoff/agents/openai.yaml +1 -0
  66. package/skills/implement/SKILL.md +5 -4
  67. package/skills/implement/agents/openai.yaml +1 -0
  68. package/skills/implement-spec/SKILL.md +40 -0
  69. package/skills/implement-spec/agents/openai.yaml +5 -0
  70. package/skills/improve-codebase-architecture/SKILL.md +6 -7
  71. package/skills/improve-codebase-architecture/agents/openai.yaml +1 -0
  72. package/skills/pr/CREDITS.md +3 -0
  73. package/skills/pr/LICENSE +21 -0
  74. package/skills/pr/SKILL.md +170 -0
  75. package/skills/pr/agents/openai.yaml +3 -0
  76. package/skills/prototype/SKILL.md +0 -2
  77. package/skills/research/SKILL.md +0 -2
  78. package/skills/retro/LICENSE +21 -0
  79. package/skills/retro/SKILL.md +44 -0
  80. package/skills/retro/agents/openai.yaml +5 -0
  81. package/skills/tdd/SKILL.md +2 -4
  82. package/skills/teach/SKILL.md +3 -4
  83. package/skills/teach/agents/openai.yaml +1 -0
  84. package/skills/to-questionnaire/SKILL.md +1 -2
  85. package/skills/to-questionnaire/agents/openai.yaml +1 -0
  86. package/skills/to-spec/SKILL.md +1 -2
  87. package/skills/to-spec/agents/openai.yaml +1 -0
  88. package/skills/to-tickets/SKILL.md +3 -4
  89. package/skills/to-tickets/agents/openai.yaml +1 -0
  90. package/skills/triage/AGENT-BRIEF.md +207 -0
  91. package/skills/triage/LICENSE +21 -0
  92. package/skills/triage/OUT-OF-SCOPE.md +105 -0
  93. package/skills/triage/SKILL.md +112 -0
  94. package/skills/triage/agents/openai.yaml +5 -0
  95. package/skills/wait-what/SKILL.md +2 -3
  96. package/skills/wait-what/agents/openai.yaml +1 -0
  97. package/skills/wayfinder/SKILL.md +5 -6
  98. package/skills/wayfinder/agents/openai.yaml +1 -0
  99. package/skills/wizard/LICENSE +21 -0
  100. package/skills/wizard/SKILL.md +44 -0
  101. package/skills/wizard/agents/openai.yaml +3 -0
  102. package/skills/wizard/template.sh +223 -0
  103. package/skills/writing-for-agents/SKILL.md +0 -2
  104. package/dist/blocks.js +0 -51
  105. package/skills/resolving-merge-conflicts/SKILL.md +0 -16
  106. package/skills/resolving-merge-conflicts/agents/openai.yaml +0 -3
  107. /package/skills/{resolving-merge-conflicts → implement-spec}/LICENSE +0 -0
@@ -0,0 +1,58 @@
1
+ #!/usr/bin/env node
2
+ import { spawn } from 'node:child_process';
3
+ import { connect } from 'node:net';
4
+ const KIT_ANSWER = '"house-kit-';
5
+ const SYNC = 'house-kit/sync';
6
+ function lines(each) {
7
+ let buffer = '';
8
+ return (chunk) => {
9
+ buffer += chunk;
10
+ for (let index = buffer.indexOf('\n'); index >= 0; index = buffer.indexOf('\n')) {
11
+ each(buffer.slice(0, index + 1));
12
+ buffer = buffer.slice(index + 1);
13
+ }
14
+ };
15
+ }
16
+ function answersKit(line) {
17
+ if (!line.includes(KIT_ANSWER))
18
+ return false;
19
+ try {
20
+ const message = JSON.parse(line);
21
+ return message.method === undefined && typeof message.id === 'string' && message.id.startsWith(KIT_ANSWER.slice(1));
22
+ }
23
+ catch {
24
+ return false;
25
+ }
26
+ }
27
+ const args = process.argv.slice(2);
28
+ const serving = args[0] === 'app-server';
29
+ if (process.env.HOUSE_KIT_SANDBOX === '1' && serving)
30
+ args.push('--disable', 'memories');
31
+ const codex = spawn(process.env.HOUSE_KIT_CODEX, args, { stdio: ['pipe', 'pipe', 'inherit'] });
32
+ const stream = serving ? connect(process.env.HOUSE_KIT_CODEX_STREAM) : null;
33
+ stream?.on('error', () => undefined);
34
+ process.stdin.setEncoding('utf8').on('data', lines((line) => codex.stdin.write(line)));
35
+ process.stdin.on('end', () => codex.stdin.end());
36
+ stream?.setEncoding('utf8').on('data', lines((line) => {
37
+ const message = JSON.parse(line);
38
+ if (message.method === SYNC)
39
+ stream.write(`${JSON.stringify({ jsonrpc: '2.0', id: message.id, result: {} })}\n`);
40
+ else
41
+ codex.stdin.write(line);
42
+ }));
43
+ codex.stdout.setEncoding('utf8').on('data', lines((line) => {
44
+ stream?.write(line);
45
+ if (answersKit(line) || process.stdout.write(line))
46
+ return;
47
+ codex.stdout.pause();
48
+ process.stdout.once('drain', () => codex.stdout.resume());
49
+ }));
50
+ codex.stdin.on('error', () => undefined);
51
+ for (const signal of ['SIGTERM', 'SIGINT', 'SIGHUP'])
52
+ process.on(signal, () => codex.kill(signal));
53
+ codex.on('exit', (code, signal) => {
54
+ if (signal === null)
55
+ process.exit(code ?? 1);
56
+ process.removeAllListeners(signal);
57
+ process.kill(process.pid, signal);
58
+ });