tinker-agent 1.0.28 → 1.0.30

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/agents.rb CHANGED
@@ -17,20 +17,20 @@ AGENT_CONFIGS = {
17
17
  You are equipped with the `ticket-management` skill.
18
18
  ► DO NOT hallucinate ticket formats.
19
19
  ► DO NOT guess best practices.
20
- USE THE SKILL to generate correct ticket structures.
20
+ APPLY the guidelines from the `ticket-management` skill.
21
21
 
22
22
  CORE RESPONSIBILITIES:
23
23
  1. EXPLORE: Read the codebase to understand existing architecture.
24
24
  2. DISCUSS: Clarify requirements with the human.
25
25
  3. PLAN: Propose a breakdown of work.
26
- 4. EXECUTE: Use `create_ticket` as defined in your skills.
26
+ 4. EXECUTE: Use the `create_ticket` tool.
27
27
 
28
28
  WORKFLOW:
29
29
  1. Listen to the human.
30
30
  2. Explore files to ensure technical feasibility.
31
31
  3. Propose the plan.
32
32
  4. Get confirmation.
33
- 5. CALL `create_ticket`.
33
+ 5. CALL `create_ticket` (this is the correct tool).
34
34
 
35
35
  ╺════════════════════════════════════════════════════════════════════════════╸
36
36
  ROLE BOUNDARIES
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tinker-agent",
3
- "version": "1.0.28",
3
+ "version": "1.0.30",
4
4
  "description": "Tinker Agent Runner",
5
5
  "bin": {
6
6
  "tinker-agent": "./run-tinker-agent.rb"
@@ -12,11 +12,18 @@
12
12
  # - tinker.env.rb in project root (gitignored)
13
13
 
14
14
  require "json"
15
+ require "fileutils"
15
16
 
16
17
  # Load agent configs
17
18
  require_relative "agents"
18
19
 
19
- IMAGE_NAME = "tinker-sandbox"
20
+ def image_name(config)
21
+ if config["project_id"]
22
+ "tinker-sandbox-#{config['project_id']}"
23
+ else
24
+ "tinker-sandbox"
25
+ end
26
+ end
20
27
 
21
28
  AGENT_TYPES = AGENT_CONFIGS.keys.freeze
22
29
 
@@ -84,7 +91,7 @@ def check_dockerfile!
84
91
  end
85
92
  end
86
93
 
87
- def build_docker_image
94
+ def build_docker_image(config)
88
95
  check_dockerfile!
89
96
 
90
97
  user_id = `id -u`.strip
@@ -92,14 +99,42 @@ def build_docker_image
92
99
 
93
100
  puts "🏗️ Building Docker image..."
94
101
 
95
- success = system(
96
- "docker", "build",
97
- "--build-arg", "USER_ID=#{user_id}",
98
- "--build-arg", "GROUP_ID=#{group_id}",
99
- "-t", IMAGE_NAME,
100
- "-f", "Dockerfile.sandbox",
101
- "."
102
- )
102
+ # Handle .dockerignore.sandbox
103
+ dockerignore_sandbox = ".dockerignore.sandbox"
104
+ dockerignore_original = ".dockerignore"
105
+ dockerignore_backup = ".dockerignore.bak"
106
+
107
+ has_sandbox_ignore = File.exist?(dockerignore_sandbox)
108
+ has_original_ignore = File.exist?(dockerignore_original)
109
+
110
+ if has_sandbox_ignore
111
+ puts "📦 Swapping .dockerignore with .dockerignore.sandbox..."
112
+ if has_original_ignore
113
+ FileUtils.mv(dockerignore_original, dockerignore_backup)
114
+ end
115
+ FileUtils.cp(dockerignore_sandbox, dockerignore_original)
116
+ end
117
+
118
+ success = false
119
+ begin
120
+ success = system(
121
+ "docker", "build",
122
+ "--build-arg", "USER_ID=#{user_id}",
123
+ "--build-arg", "GROUP_ID=#{group_id}",
124
+ "-t", image_name(config),
125
+ "-f", "Dockerfile.sandbox",
126
+ "."
127
+ )
128
+ ensure
129
+ if has_sandbox_ignore
130
+ # Restore original state
131
+ FileUtils.rm(dockerignore_original) if File.exist?(dockerignore_original)
132
+ if has_original_ignore
133
+ FileUtils.mv(dockerignore_backup, dockerignore_original)
134
+ end
135
+ puts "🧹 Restored original .dockerignore"
136
+ end
137
+ end
103
138
 
104
139
  unless success
105
140
  puts "❌ Failed to build Docker image"
@@ -232,9 +267,9 @@ def run_agent(agent_type, config)
232
267
  docker_cmd += mounts
233
268
 
234
269
  if File.exist?(local_setup_script)
235
- docker_cmd += [IMAGE_NAME, "ruby", "/tmp/setup-agent.rb"]
270
+ docker_cmd += [image_name(config), "ruby", "/tmp/setup-agent.rb"]
236
271
  else
237
- docker_cmd += [IMAGE_NAME]
272
+ docker_cmd += [image_name(config)]
238
273
  end
239
274
 
240
275
  success = system(*docker_cmd)
@@ -265,7 +300,7 @@ def attach_to_agent(agent_type, config)
265
300
 
266
301
  if running.empty?
267
302
  puts "⚠️ #{agent_type} agent is not running. Auto-starting..."
268
- build_docker_image
303
+ build_docker_image(config)
269
304
  run_agent(agent_type, config)
270
305
  sleep 3
271
306
  end
@@ -329,6 +364,6 @@ if command == "attach"
329
364
  attach_to_agent(agent_type, config)
330
365
  else
331
366
  config = load_config
332
- build_docker_image
367
+ build_docker_image(config)
333
368
  run_agent(command, config)
334
369
  end